Over a million developers have joined DZone.

What's New in JMeter 4.0?

DZone's Guide to

What's New in JMeter 4.0?

The latest iteration of Apache's JMeter is here, and we have the run-down on some of the newest features and how they will help you.

· Performance Zone ·
Free Resource

Built by operators for operators, the Sensu monitoring event pipeline empowers businesses to automate their monitoring workflows and gain deep visibility into their multi-cloud environments. Get started for free today.

A new Apache JMeter version was released on Feb. 11th, version 4.0! Given that the last major release, of version 3.0, took place only a little less than two years ago (by comparison, the release of JMeter 2.0 was in 2004!), as well as the occurrence of many smaller releases (versions 3.1-3.3) during this time, this shows how much JMeter is progressing and keeping up to date with new technologies and developers' needs.

It seems like this JMeter version has put an emphasis on improving user experience — making it easier to navigate and create tests, making elements more friendly and readable, and alerting you when there are issues with your test.

Here are the most important things you need to know about the JMeter 4.0 version.

GUI Changed to Black

JMeter has a new look! JMeter now has a Black GUI (the Darcula LAF theme). If you don't like it, you can always switch back through the "Options -> Look and Feel" menu.

English is the Default Language

English is now the default language for the JMeter UI, due to missing translations. You can change the language if you want.

Most-Used Elements Shown First

When opening elements through the menu, JMeter will now show you your most used elements, making it easier and quicker to build your test scenario.

JSON Assertion

Contributed by Artem Fedorov from BlazeMeter to the open source community, the JSON Assertion asserts JSON documents. Previously a part of JMeter plugins, the JSON Assertion is now a part of the JMeter core. This means that the JSON functions offering from core is now complete and there is no need to install third-party JSON plugins anymore. The assertions works in three phases: determining if the document is JSON, finding the required path, and finding the required value. Only by passing the previous phase does the assertion move on to the next one.

Boundary Extractor

The Boundary Extractor is a postprocessor that extracts values from a server response by using right and left boundaries that the user determined. After the boundaries are found, the extractor takes the values, creates a string and stores the result in a variable, which was also configured in the element's fields.

Precise Throughput Timer

The Precise Throughput Timer is a timer that enables users to determine the throughput (samplers per second/minute/hour/etc.) they want to run in their tests. Compared to the Constant Throughput Timer, the user is more flexible when deciding how to spread out the samples over time. In addition, execution is scheduled in a random way, enabling a constant load to build up. Finally, this timer uses the Poisson arrival schedule for its pauses, making it close to real-life scenarios.

Java 9 Support

JMeter now supports Java 9. No need to keep old Java 8 for JMeter, it now works on both Java 8 and Java 9.

Workbench Dropped

Contributed by BlazeMeter's Artem Fedorov, JMeter users no longer have to see the Workbench in their test script. Users have been reporting that the Workbench was confusing, given that its purpose vanished after introducing the "Test Fragment" several versions ago. Therefore, it was the logical move to clean it up from the GUI. Elements that were previously placed in the scope of the Workbench can now be added to the Test Plan.

Test Plan Now Saved Automatically

No more annoying pop-ups reminding you to save your test.

  • The JMS point-to-point sampler now enables three more communication options: read, browse and clear
  • The Response Assertion now enables asserting Request Data
  • The If Controller now checks "Interpret Condition as Variable Expression" by default
  • The JSR223 test elements now check "Cache compiled script" by default
  • The Loop controller and ForEach Controller show their current iteration as a variable in this form: __jm__<Name of your element>__idx

In addition, bugs were fixed, functions were added and more elements were improved. Read the full list of changes, here.

To learn how to use JMeter, sign up for our free JMeter academy.

With BlazeMeter, you can run all of your JMeter scripts in the cloud and get brilliant reporting. To learn how, just request a demo, or put your URL in the box below and your test will start in minutes.

Download our guide to mitigating alert fatigue, with real-world tips on automating remediation and triage from an IT veteran.

boundary extractor ,performance testing ,ux improvements ,jmeter ,open source ,precise throughput timer ,jmeter version update ,jmeter 4.0 ,json assertion ,load testing

Published at DZone with permission of

Opinions expressed by DZone contributors are their own.

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

{{ parent.tldr }}

{{ parent.urlSource.name }}