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.
Join the DZone community and get the full member experience.
Join For FreeLast 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.

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

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

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 |

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.

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

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.

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.

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!
Related Refcard:
Published at DZone with permission of naveenkumar . See the original article here.
Opinions expressed by DZone contributors are their own.
Comments