JMeter struggles? Taurus to the rescue!

For those of you who know JMeter (the most popular open source tool for testing performance), your first thought was probably not “What a user-friendly software program! It’s so clear what this script does!” Taurus is here to fix that by keeping you afloat in a sea of scripts.

Undoubtedly, most people with a lot of experience eventually find JMeter’s script very easy to understand. Abstracta’s tool (which is still in development, yet free and available on Github), ScriptGenerator, helps with this task of generating a simpler JMeter script that still follows the best practices we have defined.

In this post, we’ll look at Taurus, an open source tool developed by the creators of Blazemeter, as another approach to facilitate the task of developing a script and how we can take advantage of its various features.

The idea of Taurus is to provide language creation/configuration scripts in a more user-friendly way. Taurus, with its written language based on JSON or YAML generates scripts in JMeter, Grinder or Gatling. Not only can you create scripts from Taurus, but one of its many benefits is that you can also use pre-existing scripts.

Some Advantages of Taurus

  • The scenario definition is clearer than JMeter. The plugins Ultimate Thread Group and Stepping Thread Group try to solve that problem.
  • Versioning of scripts is easier, as it is a YAML or JSON instead of XML.
  • The configuration script in Taurus can be understood by someone without much experience.
  • Real-time reporting during test execution
  • The possibility of using pre-existing scripts
  • Integration with BlazeMeter

On the Integration with BlazeMeter, Taurus allows us to move the information from the test execution servers into the cloud and get the graphical response time using BlazeMeter’s interface. For those who already know BlazeMeter, you may wonder if it is possible to run it on BlazeMeter’s infrastructure and, well… the answer is no. Not yet at least.

UPDATE AUGUST 2016: Yes, you can now execute in BlazeMeter, there are actually 9 executors with quite a few added in the last year. Learn more about execution settings.

An example of a YAML in Taurus is shown in the following figure.

yaml in taurus

(Source: https://gettaurus.org/kb/Basic1/)

This file defines a simple load test with 10 concurrent users, ramp-up of 1 minute, with a length of  2m 30s invoking the web http://example.com using GET. This will generate a JMeter file with the code to run the defined test. Clearly, its much more simple and readable than the equivalent test in JMeter.

You may wonder, how do I do it if I need to set a parameter? What if the body of a POST is very large and I do not want it in my configuration file? Below shows a complete example of the definition of a request, where the only required attribute is the URL. It shows the use of parameters in a request and even the use of files for building a request. The use of variables is also allowed in the form $ {variable}. In the Taurus user manual, you can find this information and more. 

What do you think of this tool? Would you find it useful? Has anyone used it on a project? Looking forward to your comments! 

 


Recommended for You

Gatling Tool Review for Performance Tests (Written in Scala)
Performance Testing in Production