In performance testing, JMeter is fantastic open source tool but not perfect. There is lot of challenges in JMeter as a load testing tool. One of them is that JMeter doesn’t provide much detail during Non-GUI execution mode . It provides poor run time data for executing test in Non-GUI (Command Line) Mode.
Taurus, an open source test automation tool that extends and abstracts JMeter, and helps to overcome various challenges. Taurus provides a simple way to create, run and analyze performance tests. It provides execution of JMX files, parametrizing via YAML, development of new tests in YAML, merging multiple JMX and YAML combinations, console, JUnit and BlazeMeter reporting.
Taurus solves the following JMeter problems:
- Setting a Load Test Profile: you don’t need to calculate proper ramp-up, ramp-down nor iteration numbers, values, duration, concurrency, time to hold the load, etc. Now these can be set as name-value pairs.
- Running several tests at once. It is possible to feed several .jmx input files into Taurus, moreover, it is possible to use YAML to modify .jmx scripts as required or run YAML tests in combination with .jmx
- You don’t need to worry about Assertions, pass-fail criteria can be defined via YAML and it is extremely easy to define the criteria and to understand them.
- Improved reporting: Taurus injects “good” reporting configuration into an existing or new JMeter test so the test results details level would be enough for an analysis and won’t cause overhead during execution.
- Non-GUI Execution Console : It provides a detailed console for executing test in Non-GUI mode.
To get started, first follow these instructions to install Taurus on your computer. If there is no JMeter installed at the configured path, Taurus will attempt to install the latest JMeter and associated plugins into this location (by default this is: ~/.bzt/jmeter-taurus/bin/jmeter). You can change this setting to your preferred JMeter location (consider putting it into the ~/.bzt-rc file).
How to Run an Existing JMeter Script
Taurus provides different executors for many open-source testing tools like JMeter, Selenium, Gatling, Grinder, and more. The default executor is JMeter so if you’ve already created a JMX file with JMeter, it’s very easy to run it with Taurus! Just use the bzt command followed by the JMX path. For example:
In this case, Jmeter_Script.jmx is the name of your JMeter test file.
This command will initiate JMeter and run the JMX file. After a few seconds, you’ll be able to see a full screen dashboard with all the Taurus reports. This dashboard features ASCII-art graphs displaying key statistics and KPIs about your test – all while your tests are still running.
JMeter Scenario setup Using YAML
You can use ‘Taurus’ simple configuration syntax to create a test scenario as a YAML file. You can setup concurrency(No of Users) ,throughput ramp-up etc. It over ride the setting in script and easy to setup a scenario for a JMeter script
Take a look at the following example:
Note : Just put below code in a notepad and save it with extension .yml
execution: - concurrency: 3 throughput: 3 ramp-up: 30s hold-for: 5m30s scenarios: script: C:\NewLearning\Taurus\Jmeter_Script.jmx reporting: - module: final-stats dump-xml: stats.xml dump-csv: Jmeter_Result.csv
Run JMeter script using YAML file by below command
JMeter JTL Result File
After execution you can find a JTL result file from the execution folder, which is by default generated by Taurus (You don’t have to use listener Simple Data Write to write result into a JTL file)
you can use the JTL file to fetch Summary Report ,Aggregate Report ,Graphs etc by using JMeter listeners.
How to integrate JMeter with Blazemeter for Online Reporting
You should a blazemeter account if you don’t have ,you can create one by Sign up .Go to Blazemeter Profile Page>Setting>API Keys ,create API Key. Either you can set these API key in ~/.bzt-rc file
or pass it as a command-line argument.
bzt C:\NewLearning\Taurus\perf_test_yam.yml -o modules.blazemeter.token=00f0e4124a3ddw797ea7:01d4244wwww9ccbfdaed179ee87wqwqwa1d890f5bff3618cdb31f5a662awwwef709ba5 -o modules.blazemeter.project=JMeterIntegrationBlazeMeter -o modules.blazemeter.test=JMeterDemoTest -report
Where we are –
- Passing blazemeter API key
- Project name in blazemeter under which your report would be saved
- Test Name
When you run the script by above command ,a browser a launched ,you have login into blazemeter account and can see metrics ,graphs and summary info online during test execution.