July 7, 2022

JMeter 5.5: What It Means & What To Expect

Open Source Automation

In June 2022, Apache JMeter team announced the release of Apache JMeter 5.5, bringing new features, improvements, and bug fixes. 

This article highlights the noteworthy changes that come with JMeter 5.5, which will hopefully give you a smoother JMeter testing experience. 

Key JMeter 5.5 Features

Open Model Thread Group

In addition to JMeter’s “normal” Thread Group, there is a brand new Thread Group implementation: Open Model Thread Group. Open Model Thread Group provides an extremely flexible way to control the workload with methods such as ramp-up, ramp-down, plateau, spikes, pauses, and more. 

The feature is still experimental, so there might be possible changes in the implementation in the future. Therefore, it is important to consult the up-to-date documentation prior to upgrading to the next version of JMeter, since there may be some breaking changes. 

With JMeter 5.5, it is also possible to define the virtual user “arrival” rates using human-readable expressions to immediately see the anticipated load in an interactive chart. 

Here is an example definition:

rate(0/sec) random_arrivals(1 min) rate(10/sec)random_arrivals(1 min) rate(10/sec)rate(10/sec) random_arrivals(1 min) rate(0/sec)

Will result in:

  1. Ramp-up from 0 arrivals per second to 10 arrivals per second in 60 seconds
  2. Hold the load of 10 arrivals per second for another 1 minute
  3. Ramp-down from 10 arrivals per second to 0
JMeter 5.5 open model thread group ramp-up

So the test will last for three minutes, and there will be 600 “arrivals” during the “plateau” phase. Given equal ramp-up and ramp-down phases you can expect 1200 arrivals in total. 

In the above example, there is only one Dummy Sampler. With two samplers, you will have 1200 executions for each sampler, resulting in 2400 total executions in three minutes.

It is important to note that these “arrivals” have nothing in common with active virtual users or with server hits per second. Rather, these arrivals just refer to the “rate” of new threads being kicked off. The interval between new threads starting is random.

Active threads over time

Java 17 Support

Although you could run Java 17 with JMeter 5.4.3 (or even earlier versions), teams could risk getting the following error in earlier JMeter versions with certain Groovy scripts:

org.codehaus.groovy.GroovyBugError: BUG! exception in phase 'semantic analysis' in source unit 'Script2.groovy' Unsupported class file major version 61

    at org.codehaus.groovy.control.CompilationUnit$ISourceUnitOperation.doPhaseOperation(CompilationUnit.java:905) ~[groovy-3.0.7.jar:3.0.7]

The reason for this error is that groovy-3.0.7 was released long before Java 17. With JMeter 5.5, you can use Java 17 with any test element without issues:

JMeter 5.5 and Java 17

Bolt Request Sampler Improvements

With JMeter 5.5, there is a new “Options” section for the Bolt Request sampler.

JMeter 5.5 Bold Request sampler

Now it is possible to specify:

  • Access Mode (READ or WRITE). This specification allows teams to choose their database access mode, mostly applying to clustered database instances.
  • Database. It is now possible to explicitly specify the database name, whereas queries previously targeted the default database.
  • Transaction Timeout.  It is now possible to set a timeout for database transactions. If the transaction fails to complete within the specified threshold, the sampler will be marked as failed.

If Controller and While Controller UI Improvements

The JMeter 5.5 “Condition” text area became also much larger to improve code readability for complex multiline conditions:

JMeter 5.5 larger Condition text area

Regular Expression Engine Change

Currently, JMeter uses the Jakarta ORO engine for pattern matching in the Regular Expression Extractor, HTTP Request Defaults, Response Assertion, and so on. But with the retirement of the ORO engine, there is ongoing work happening to deprecate it in JMeter. 

This deprecation means that ORO-based regular expressions will stop working as expected in a future release. 

If you want to test whether your regular expressions will be impacted by this change you can set jmeter.regex.engine to java in user.properties file and run your test.

Bottom Line

JMeter is a leading open-source tool loved by thousands of testers and developers, and JMeter 5.5 is sure to accept a warm reception from the user community. BlazeMeter adds to JMeter, offering 100% JMeter compatibility and allowing JMeter users to enjoy additional benefits that add scalability, security, and enterprise capabilities when load testing in the cloud.

Explore load testing with JMeter today:

Start Testing Now