JMeter, Performance Testing, Testing, Tools

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. 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 are major revamp done in the JMeter GUI. Icons have been redesigned and importantly the JMeter logo. Poll was conducted and the team decided the final JMeter logo as shown below.

Apache JMeter 3.0
Apache JMeter 3.0

Below is the latest GUI of JMeter 3.0. Note the icons and few extra objects at the top right corner.

Apache JMeter 3.0 UI
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
Apache JMeter 3.0 View Results Tree7

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

For the JSON path expression, please refer http://goessner.net/articles/JsonPath/

Below is the 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
JSON processor

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

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

Apache JMeter 3.0 HTTP Request
Apache JMeter 3.0 HTTP Request

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

Graphite Backend Listener
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.

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

Sample Timeout
Sample Timeout

You can use 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
Start no Pauses validate

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

Groovy
Groovy

There are lots of defects have been fixed and numerous improvements. You can see everything in detail in 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 take backup while upgrading.

Happy Testing!

Once a week we send a digest with the most popular articles.

One Comment

  1. Hi Naveen,

    Jmeter keeps throwing: java.net.SocketException: Broken pipe
    when I try to send a request to https

    The same request (usecase) works perfectly fine in manual testing.
    Is there any configuration in newer or older version to resolve this and successfully test it using jmeter.

    Thanks!

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

New Year. New Hope. Learn TruWeb. 78% OFF for Limited Time of my Udemy course..BUY NOW