Skip to content

JMeter 5.0 Release Notes

Apache JMeter 5.0 release notes with 52 improvements and 43 bug fixes, plus upgrade notes from the official changelog.

Difficulty
intermediate
Guide type
reference
Estimated read time
11 min read
Last verified version
Verified JMeter 5.0
SectionChanges
New and Noteworthy3
Incompatible changes6
Improvements49
Bug fixes43
Non-functional changes21

Rest support has been improved in many fields

  • Multipart/form-data requests now work for PUT, DELETE
  • It is now also possible to send a JSON Body with attached file
  • Parameters entered in Parameters Tab are now used in body instead of being ignored

changes/5.0/jmeter_5_rest1.png

changes/5.0/jmeter_5_rest2.png

In distributed testing, JMeter now automatically prefixes thread names with engine host and port, this makes the counting of threads correct in the HTML report without any other configuration as it was required before changes/5.0/jmeter_5_distributed.png

XPath 2.0 is supported in a new element called XPath2 extractor providing easier XML namespaces handling, up to date XPath syntax and better performances changes/5.0/jmeter_5_xpath2_extractor.png

changes/5.0/jmeter_5_xpath2_tester.png

Upgrade to HTTP Components 4.6 last APIs has been completed and JMeter does not rely anymore on deprecated APIs of this library

It is now possible to control in an easier way Loop breaking and Loop switching to next iteration. This is available in Flow Control Action and Result Status Action Handler elements changes/5.0/jmeter_5_flow_control_action.png

changes/5.0/jmeter_5_result_status_handler.png

While Controller now exports a variable containing its current index named __jm__<Name of your element>__idx. So for example, if your While Controller is named WC, then you can access the looping index through \${__jm__WC__idx}

Search feature has been improved to allow you to iterate in the tree over search results and do necessary replacements through Next/Previous/Replace/Replace/Find buttons changes/5.0/jmeter_5_search_feature.png

In View Results Tree, the request and response headers/body are clearly separated to allow you to better inspect requests and responses. You can also search in all those tabs for a particular value changes/5.0/jmeter_5_vrt_request_body.png

changes/5.0/jmeter_5_vrt_response_body.png

Recording feature has been improved to provide a popup that is always on top when you navigate in browser allowing you to name transactions while you navigate in your application. changes/5.0/jmeter_5_recording.png

You can now restart JMeter from menu File → Restart changes/5.0/jmeter_5_restart.png

Reporting feature has been enhanced A new Graph Total Transactions per second has been added to the HTML Web Report changes/5.0/jmeter_5_total_trans_per_sec.png

It is now possible to graph over time custom metrics available as JMeter Variables through sample_variables. Those custom metrics graphs will be available in the HTML Report in Custom Graphs section changes/5.0/jmeter_5_custom_graphs.png

Hits per second graph now takes into account the embedded resources changes/5.0/jmeter_5_hits_per_sec.png

In Live reporting, the sent and received bytes are now sent to Backends (InfluxDB or Graphite)

A New function [__threadGroupName](/user-manual/functions/#__threadGroupName) has been introduced to obtain ThreadGroup name.

  • Since JMeter 5.0, when using default HC4 Implementation, JMeter will reset HTTP state (SSL State + Connections) on each thread group iteration. If you don’t want this behaviour, set httpclient.reset_state_on_thread_group_iteration=false
  • Since JMeter 5.0, in relation to above remark, https.use.cached.ssl.context is deprecated and not used anymore.
  • Since JMeter 5.0, when using CSV output, sub results will now be also output to CSV file. To revert to previous behaviour set jmeter.save.saveservice.subresults=false, see Bug 62470, Bug 60917, Bug 62550.
  • Since JMeter 5.0, CSS/JQuery Extractor has been renamed to CSS Selector Extractor
  • Since JMeter 5.0, Test Action has been renamed to Flow Control Action
  • Since JMeter 5.0, JMeter renames subResults to parentName-N where N is a number to ensure that Hits Per Second graph includes resources downloads, see Bug 62550, Bug 62470 and Bug 60917
  • Bug 62260Improve Rest support. Contributed by Ubik Load Pack (support at ubikloadpack.com)
  • Bug 58757HTTP Request : Updated deprecated methods of HttpComponents to last APIs of httpclient-4.5.X. Contributed by Ubik Load Pack (support at ubikloadpack.com)
  • Bug 62212Recorder : Improve UX by providing a popup above all windows to be able to change Transaction names and pauses while using Browser. Contributed by Ubik Load Pack (support at ubikloadpack.com)
  • Bug 62248HTTP Request : Parameters entered in Parameters Tab should be used in body instead of being ignored. Partly based on a patch by Artem Fedorov contributed by Blazemeter.
  • Bug 60015Multipart/form-data works only for POST using HTTPClient4 while it should for PUT, DELETE, … Contributed by Ubik Load Pack (support at ubikloadpack.com)
  • Bug 62317HTTP(S) Test Script Recorder: allow to add ResultSaver to created sampler
  • PR#376JUnitSampler logs exceptions except assertion-failures from test cases as warnings. Contributed by Davide Angelocola (davide.angelocola at fisglobal.com)
  • Bug 62244Rename Test Action to Flow Control Action
  • Bug 62302Move JSR223 Sampler up the menu. Contributed by Ori Marko (orimarko at gmail.com)
  • Bug 62595SMTPSampler does not allow configuring the SSL/TLS protocols to be used on handshake. Contributed by Felipe Cuozzo (felipe.cuozzo at gmail.com)
  • Bug 62237While Controller : Export variable containing current index of iteration. Contributed by Ubik Load Pack (support at ubikloadpack.com)
  • Bug 62195Save Responses to a file : Improve component and UI. Contributed by Ubik Load Pack (support at ubikloadpack.com)
  • Bug 62209InfluxBackendListenerClient: First Assertion Failure Message must be sent if error code and response code are empty or OK
  • Bug 62269Bug 62269 - View Results Tree : Response and Request Tabs should contains Header and Body tabs. Contributed by Ubik Load Pack (support at ubikloadpack.com)
  • Bug 62270View Results Tree : Allow searching in Request headers, Response Headers, and Request body. Contributed by Ubik Load Pack (support at ubikloadpack.com)
  • Bug 62276InfluxDBBackendListenerClient / GraphiteBackendListenerClient : Add sent and received bytes to metrics. Contributed by Ubik Load Pack (support at ubikloadpack.com)

Timers, Assertions, Config, Pre- & Post-Processors

Section titled “Timers, Assertions, Config, Pre- & Post-Processors”
  • Bug 62320Counter : Reference Name property is not clear
  • Bug 60991XPath Extractor : Implement XPath 2.0. Contributed by Ubik Load Pack (support at ubikloadpack.com)
  • Bug 62593Rename CSS/JQuery Extractor to CSS Selector Extractor. Contributed by Ori Marko (orimarko at gmail.com)
  • Bug 62178Add default value to [__V](/user-manual/functions/#__V) function. Contributed by Ori Marko (orimarko at gmail.com)
  • Bug 62178Add function [__threadGroupName](/user-manual/functions/#__threadGroupName) function to obtain ThreadGroup name. Mainly contributed by Ori Marko (orimarko at gmail.com)
  • Bug 62533Allow use epoch time as Date String value in function [__dateTimeConvert](/user-manual/functions/#__dateTimeConvert)
  • Bug 62541Allow [__jexl3](/user-manual/functions/#__jexl3), [__jexl2](/user-manual/functions/#__jexl2) functions to support new syntax as var x;. Contributed by Ori Marko (orimarko at gmail.com)
  • Bug 61834Function Helper Dialog : Improve tests by showing variables and keeping them available between evaluations
  • Bug 62243Dashboard : make option “--forceDeleteResultFile”/“-f” option delete folder referenced by “-o” option
  • Bug 62367HTML Report Generator: Add Graph Total Transactions per Second. Contributed mainly by Martha Laks (laks.martha at gmail.com)
  • Bug 62166Report/Dashboard: Provide ability to register custom graphs and metrics in the JMeter Dashboard. Contributed by Ubik Load Pack (support at ubikloadpack.com)
  • Bug 62542Report/Dashboard : Display more information on filters when graph is empty. Contributed by Ubik Load Pack (support at ubikloadpack.com)
  • Bug 62426Optimize performance of report generation. Based on feedback by Allen (444104595 at qq.com)
  • Bug 62550Modify SubResult Naming Policy
  • Bug 60917Load Test with embedded resources download : Hits per seconds does not take into account the downloaded resources
  • Bug 62684Distributed Testing : Add automatically to thread name a prefix to identify engine. Contributed by Ubik Load Pack (support at ubikloadpack.com)
  • Bug 62155Search Feature: Make Search text field get focus
  • Bug 62156Search Feature : Distinguish between node that matches search and node that contains a child that matches search
  • Bug 62234Search/Replace Feature : Enhance UX and add Replace/Next/Previous/Replace & Find features. Contributed by Ubik Load Pack (support at ubikloadpack.com)
  • Bug 62238Add ability to Switch to next iteration of Current Loop. Contributed by Ubik Load Pack (support at ubikloadpack.com)
  • Bug 62239Add ability to Break Current Loop
  • Bug 61635Add a menu to restart JMeter
  • Bug 62470CSV Output : Enable logging of sub results when jmeter.save.saveservice.subresults=true. Contributed by Ubik Load Pack (support at ubikloadpack.com)
  • Bug 62473Setting “saveservice_properties” has counter intuitive behaviour
  • Bug 62354Correct calculation and usage of units for second per user (reported by jffagot05 at gmail.com)
  • Bug 62700Introduce jsr223.init.file to allow calling a JSR-223 script on JMeter startup
  • Bug 62128Try to guess JMETER_HOME correctly, when jmeter.bat is called from a batch file in another directory. Contributed by logox01 (logox01 at gmx.at)
  • PR#386Add parameter support for RMI keystore creation scripts. Contributed by Logan Mauzaize (t524467 at airfrance.fr)
  • Bug 62065Use Maven artifact for JAF Module instead of embedded module
  • Bug 61714Update Real-time results documentation
  • PR#382Correct typo in documentation. Reported by Perze Ababa (perze.ababa at gmail.com>)
  • PR#392Correct typo in documentation. Reported by Aaron Levin
  • PR#379 Improve chinese translations. Contributed by XmeterNet
  • Bug 62114HTTP(S) Test Script Recorder : Client certificate authentication uses the first SSLManager created. Contributed by Ubik Load Pack (support at ubikloadpack.com)
  • Bug 61058HTTP Request : Add option httpclient4.deflate_relax_mode to avoid “Unexpected end of ZLIB input stream” when deflating what seems to be invalid streams. Contributed by Ubik Load Pack (support at ubikloadpack.com)
  • Bug 43612HTTP PUT does not honor request parameters. Implemented by Artem Fedorov (artem.fedorov at blazemeter.com) and contributed by BlazeMeter Ltd.
  • Bug 60190Content-Type is added for POST unconditionally. Contributed by Ubik Load Pack (support at ubikloadpack.com)
  • Bug 62462PR#387Make delegation of credentials in SPNEGO possible again.
  • Bug 58807Reset SSL State on Thread Group iteration only (was https.use.cached.ssl.context=false is broken)
  • Bug 62716When Recording, JMeter removes Authorization from generated Header Manager when using Bearer Token
  • Bug 62235Java 9 - illegal reflective access by org.apache.jmeter.util.HostNameSetter
  • Bug 62464Set start- and end-time on JMS publisher sampler, even if initialization fails.
  • Bug 62616FTPSampler: Upload file-size is not counted in sentBytes
  • Bug 62265ModuleController behaves strangely
  • Bug 62097Update JTable in Aggregate Report only when new data has arrived. That way selections of rows will be kept longer around.
  • Bug 62203Influxdb BackendListener client: store user tags to annotation and internal transaction. Contributed by Sergey Batalin (sergey_batalin at mail.ru)
  • Bug 62251TextGraphiteMetricsSender does not invalidate lost connections in case of network errors
  • Bug 60705Fix headers of Aggregate Reports and friends when columns are moved around.
  • Bug 62463Distributed client/server setup: use different RMI ports for the remote objects when using SSL

Timers, Assertions, Config, Pre- & Post-Processors

Section titled “Timers, Assertions, Config, Pre- & Post-Processors”
  • Bug 61664HTTP Authorization Manager : Digest works only with legacy RFC 2069, RFC 2617 is not implemented. Contributed by Ubik Load Pack (support at ubikloadpack.com)
  • Bug 62252HTTP header merging logic does not correspond to the documentation
  • Bug 62554BoundaryExtractor : Field to check is not reset
  • Bug 62553Random element might return same value even if property “Per thread user (User)” is set to TRUE
  • Bug 62637Take scheduler into account when calcuting delay for Synchronizing Timer
  • Bug 62310French translation of Precise Throughput Timer label
  • Bug 62333Report Dashboard - When one series contains no value, the graph colors logic is wrong. Contributed by Ubik Load Pack (support at ubikloadpack.com)
  • Bug 62283Report Dashboard - Date is not correctly displayed on chart when granularity is ≤ 1 day
  • Bug 62520The tool-tip text when we hover on the point in ‘Latency Vs Request’ graph should be ‘Median Latency’
  • Bug 62211Fix HTTP Request Server Documentation. Contributed by Ori Marko (orimarko at gmail.com)
  • PR#388Fix a typo. Contributed by Giancarlo Romeo (giancarloromeo at gmail.com)
  • Bug 62107JMeter fails to start under Windows when JM_LAUNCH contains spaces
  • Bug 62110A broken JUnit class (due to missing dependency) breaks JMeter menus. Contributed by Ubik Load Pack (support at ubikloadpack.com)
  • PR#377Small fix of the docs. Contributed by Peter Doornbosch (peter.doornbosch at luminis.eu)
  • Bug 62124Recording templates : Add more exclusions and use Transaction Name by default
  • Bug 62127Store filename as String instead of File in FileEditor. This will prevent conversion of filenames from Unix style path separators to Windows style when used for example in CSV Data Set Config.
  • Bug 56150Keep the index right, when scrolling through the menu items.
  • Bug 62240If SampleMonitor implementation is a TestBean if will not be initialized correctly
  • Bug 62295Correct order of elements when duplicating a selection of multiple elements.
  • Bug 62397Don’t break lines at commata when using JSON Path Tester
  • Bug 62281Prevent NPE in MapProperty. Patch by belugabehr (dam6923 at gmail.com)
  • Bug 62457In usermanual, the UUID Function’s example is wrong. Contributed by helppass (onegaicimasu at hotmail.com)
  • Bug 62478Escape commata in parameters when constructing function strings in the GUI function helper. Reported by blue414 (blue414 at 163.com)
  • Bug 62463Fix usage of ports, when client.rmi.localport is set for distributed runs.
  • Bug 62545Don’t use a colon as part of the “tab” string when indenting JSON in RenderAsJSON.
  • Part of Bug 62637 Avoid Integer overrun when dealing with very large values in TimerService#adjustDelay
  • Bug 62683Error dialog has no text when user opens completely invalid test plan.
  • PR#358PR#365PR#366PR#375Updated to latest checkstyle (v8.8). Expanded Checkstyle to files in src and test; fixed newly checked files. Based on contribution by Graham Russell (graham at ham1.co.uk)
  • Bug 62095Correct description for right boundary parameter in Boundary Extractor. Contributed by Ori Marko (orimarko at gmail.com)
  • Bug 62113Updated to latest Bouncycastle (v1.60). Based on contribution by Olaf Flebbe (oflebbe at apache.org)
  • Bug 62171Remove .md5 checksums and keep only .sha512 checksums for source and binary archives
  • Updated to groovy-all-2.4.15 (from groovy-all-2.4.13)
  • Updated to asm-6.1 (from 6.0)
  • Updated to tika-core and tika-parsers 1.18 (from 1.17)
  • Bug 62482Sync documentation to the implementation of the ForEachController. Based on contribution by Ori Marko (orimarko at gmail.com)
  • Bug 62529Updated to httpclient-4.5.6 (from httpclient 4.5.5) and updated to freemarker-2.3.28 (from freemarker-2.3.23). Based on patch by Ori Marko (orimarko at gmail.com)
  • Updated to httpmime-4.5.6 (from httpmime-4.5.5)
  • Updated to caffeine-2.6.2 (from caffeine-2.6.1)
  • Updated to cglib-nodep-3.2.7 (from cglib-nodep-3.2.6)
  • Updated to commons-dbcp2-2.4.0 (from commons-dbcp2-2.2.0)
  • Updated to commons-pool2-2.6.0 (from commons-pool2-2.5.0)
  • Updated to httpcore-4.4.10 (from httpcore-4.4.9)
  • Updated to httpcore-nio-4.4.10 (from httpcore-nio-4.4.9)
  • Updated to log4j-2.11.0 (from log4j-2.10.0)
  • Updated to ph-css-6.1.1 (from ph-css-6.0.0)
  • Updated to ph-commons-9.1.2 (from ph-commons-9.0.0)
  • Updated to rhino-1.7.10 (from +rhino-1.7.7.2)
  • Updated to commons-lang3-3.8 (from commons-lang3-3.7)

We thank all contributors mentioned in bug and improvement sections above:

  • Graham Russell (graham at ham1.co.uk)
  • Ori Marko (orimarko at gmail.com)
  • Davide Angelocola (davide.angelocola at fisglobal.com)
  • Ubik Load Pack
  • Olaf Flebbe (oflebbe at apache.org)
  • Peter Doornbosch (peter.doornbosch at luminis.eu)
  • logox01 (logox01 at gmx.at)
  • Sergey Batalin (sergey_batalin at mail.ru)
  • XMeter
  • Imane Ankhila (iankhila at ahlane.net)
  • jffagot05 (jffagot05 at gmail.com)
  • Perze Ababa (perze.ababa at gmail.com)
  • Martha Laks (laks.martha at gmail.com)
  • Logan Mauzaize (t524467 at airfrance.fr)
  • belugabehr (dam6923 at gmail.com)
  • Giancarlo Romeo (giancarloromeo at gmail.com)
  • helppass (onegaicimasu at hotmail.com)
  • blue414 (blue414 at 163.com)
  • Aaron Levin
  • Allen (444104595 at qq.com)
  • Felipe Cuozzo (felipe.cuozzo at gmail.com)
  • bangnab (ambrosetti.nicola at gmail.com)

We also thank bug reporters who helped us improve JMeter.

Apologies if we have omitted anyone else.

On this page