Out of Box

JMeter Non-GUI Test Execution Monitoring

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.

Installation

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:

bzt C:\PerformanceTesting\Scripts\Jmeter_Script.jmx

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

bzt C:\PerformanceTesting\Scripts\perf_test_yaml.yml

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.

References:

https://gettaurus.org/docs/JMeter/

https://jmeter.apache.org/usermanual/build-web-test-plan.html

https://www.blazemeter.com/blog/taurus-new-star-test-automation-tools-constellation

Categories: Out of Box

Tagged as: , ,

2 replies »

  1. How to add multiple thread group into single test plan using yaml and is there any way we can fetch the script from git else from tfs. Please let me know.. Thanks in advance.

    • You can’t add through yaml in taurus ,do that setting in your jmeter script and as of now yaml also does not support to fetch the script from version control system.

Leave a Reply