Apache JMeter 3.0 – What’s New?

DZone 's Guide to

Apache JMeter 3.0 – What’s New?

Last week, Apache released its major version of JMeter called Apache JMeter 3.0 with lots of enhancements and features.

· Performance Zone ·
Free Resource

Last week, Apache released its major version of JMeter, called Apache JMeter 3.0, with lots of enhancements and features. It was a long wait since JMeter 2.13. In this article, we are going see about noteworthy features of Apache JMeter 3.0.

Apache JMeter 3.0 Major Changes

Firstly, there was a major revamp done in the JMeter GUI. Icons have been redesigned, and importantly, the JMeter logo was updated. A poll was conducted and the team decided on the final JMeter logo as shown below.

Apache JMeter 3.0 

Below is the GUI for JMeter 3.0. Note the icons and a few extra objects in the top right corner.

Apache JMeter 3.0 UI 

View Results Tree got a Search option where you can search for a string with regular expressions and case sensitive options.

Apache JMeter 3.0 View Results Tree 

If you are working with modern web stack applications like AngularJS, ReactJS, etc., then you need to use a JSON processor. JMeter 3.0 has a dedicated JSON extractor called JSON Path PostProcessor which is same as the Regular Expression Extractor.

For JSON path expressions, please refer to http://goessner.net/articles/JsonPath/

Below is a glimpse of XPath and JSONPath syntax.

XPath JSONPath Description
/ $ the root object/element
. @ the current object/element
/ . or [] child operator
.. n/a parent operator
// .. recursive descent. JSONPath borrows this syntax from E4X.
* * wildcard. All objects/elements regardless their names.
@ n/a attribute access. JSON structures don’t have attributes.
[] [] subscript operator. XPath uses it to iterate over element collections and for predicates. In Javascript and JSON it is the native array operator.
| [,] Union operator in XPath results in a combination of node sets. JSONPath allows alternate names or array indices as a set.
n/a [start:end:step] array slice operator borrowed from ES4.
[] ?() applies a filter (script) expression.
n/a () script expression, using the underlying script engine.
() n/a grouping in Xpath
JSON processor 

Nashorn Support: If you are using Java 8, you can use the Nashorn – Javascript Engine by changing the property javascript.use_rhino=false in the user.properties. It is compatible with If controller, JSR223 and the __javascript function. Also, you can use JEXL3 language by using the __jexl function.

HTTP sampler and HTTP Request defaults have an advanced tab where you can set the options below.

Apache JMeter 3.0 HTTP Request 

Now you can generate dynamic graphs in an HTML report using APDEX. By installing Grafana and InfluxDB, you can generate beautiful charts and graphs.

Graphite Backend Listener 

There is a migration to HTTPClient 4.5.2 which is not completed yet. Upon completion, there will be lots of improvements in JMeter.

A new pre-processor called Sample Timeout has been introduced. This will apply a timeout to any samplers which are in scope. By default, it is 10 seconds.

Sample Timeout 

You can use a DBCP2 pool in your JDBC request sampler.

Thread Group right click has more options: Start no pauses and Validate. Also, you can assign shortcuts and there is a shortcut to expand nodes.

Start no Pauses validate 

Are you a Groovy scripter? You can use it immediately in JMeter through JSR223 elements.


Lots of defects have been fixed and there are numerous improvements. You can see everything in detail at http://jmeter.apache.org/changes.html

You can download the latest version of JMeter in here http://jmeter.apache.org/download_jmeter.cgi. It requires Java 7 or later. Please make a backup before upgrading.

Happy Testing!

apache jmeter, performance testin

Published at DZone with permission of naveenkumar . See the original article here.

Opinions expressed by DZone contributors are their own.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}