February 11 was the release of a major new
version 4.0 of Apache
JMeter . Since we use this tool for load testing on many projects, we could not disregard this event.
The previous major release (version 3.0) was released a little less than two years ago (for comparison, version 2.0 was released already in 2004!). Also, over the past 2 years, several minor releases have been released (version 3.1-3.3). It shows us how JMeter is developing to keep pace with new technologies and to meet the needs of developers.
It seems that the new version of JMeter focuses primarily on improving the user interface (UX). The process of navigating and creating tests has become easier, the elements are friendlier and more convenient, and the system for notifying the user of problems with tests has been reworked.
')

Under the cut, the most important changes in JMeter 4.0 that you need to know about.
UX enhancements
New default interface color scheme
JMeter now looks new! A dark color scheme (
Dracula LAF ) has been added, and it is installed by default. If you do not like it, you can always return to the old topic through the menu “Options-> Look and Feel”.

English is the default language
Due to the fact that the JMeter interface was not translated into all languages, it was decided to make English the default language. You can choose any other interface language available in the “Options-> Choose Language” menu.
The most frequently used items are now shown first.
In the updated JMeter, when you open the list of items through the menu, the most frequently used items will be at the top of the list, which makes creating new test scripts faster and more convenient.

New items in JMeter 4.0
JSON Assertion
Artyom Fedorov from BlazeMeter created the
JSON Assertion component to validate JSON documents. The code of this component is in the public domain, and if before it had to be installed as a plugin, now it is part of the JMeter core. This means that now JMeter has all the necessary functions for working with JSON out of the box, and you no longer need to install third-party plug-ins for this. The checks work in three stages: it is determined whether the document is JSON, the necessary paths are found and, finally, the values ​​of interest to the user are found. The transition to the next stage is carried out only after successful completion of the previous one.
Boundary Extractor
Boundary Extractor is a postprocessor that allows you to extract boundary values ​​from server responses in accordance with user-defined rules. After the boundaries are found, the extractor will extract the values, create the string, and save the result to a variable that can be configured in one of the element fields.
Precise Throughput Timer
Precise Throughput Timer is a timer that allows the user to set the load (the number of samples per second / minute / hour / etc.) With which he wants to run his tests. This timer, unlike Constant Throughput Timer, allows the user to more flexibly adjust the distribution of samples over time. In addition, the execution is scheduled randomly, which allows you to create a constant load. In addition to the above, this timer uses a Poisson process to distribute pauses between requests, which makes the test run most similar to the actions of a real user.

Test Run Improvements
Java 9 support
JMeter now supports Java 9. You no longer need to use the previous version of Java, but JMeter can work with both Java 8 and Java 9.
Workbench removed from JMeter
Thanks to the changes made by Artem Fedorov from BlazeMeter, you no longer need to use the Workbench in your scripts. Users often wrote that after the appearance of the Test Plan element several versions ago, the assignment of the Workbench became unclear, and moreover, the element itself became virtually useless and only confused what should be used in scripts. Thus, deleting a Workbench from the interface was a logical step, and elements that previously could only be placed in the Workbench scoop can now be added to the Test Plan.
Test Plan is now automatically saved
No more annoying pop-up windows with a reminder to save changes to your tests!
Item Improvements
- Three new options are now available for the JMS point-to-point sampler: read (read), browse (browse) and clean (clean).
- Checking the server response (Response Assertion) now includes checking the request data.
- For the If controller, the option “interpret the condition as a variable expression” is enabled by default.
- For JSR223, caching of compiled scripts is now enabled by default.
- The Loop controller and the ForEach controller now store information about the current iteration number in a variable that has the following format: __jm __ <Your item name> __ idx
In addition, a number of bugs were fixed, new functions were added, and several new elements were added. A complete list of changes is available on
the JMeter website.This article is a translation. Original:
Noga Cohen .