Skip to content

JMeter 5.1 Release Notes

Apache JMeter 5.1 release notes with 42 improvements and 39 bug fixes, plus upgrade notes from the official changelog.

Difficulty
intermediate
Guide type
reference
Estimated read time
9 min read
Last verified version
Verified JMeter 5.1
SectionChanges
New and Noteworthy13
Incompatible changes4
Improvements29
Bug fixes39
Non-functional changes35

JDBC testing has been improved with ability to set init SQL statements and add compatibility with JDBC drivers that do not support QueryTimeout changes/5.1/jdbc-connection-config-init-request.png

  • Various bug fixes have been implemented, like gathering the correct headers when recording requests through the HTTP(S) Test Script Recorder using HTTPS
  • In version 5.0, JMeter was changed to rename Sub results using a custom Naming Policy (Bug 62550). This change could be annoying for Functional Testing, a new property subresults.disable_renaming=true has been introduced to revert if needed to previous behaviour. An alternative is to check Functional Test Mode in Test Plan, see Bug 63055

Templates can provide parameters that are filled in on test plan generation, Recording template uses this feature changes/5.1/templates-parametes.png

A new Tools menu has been introduced to collect those entries, that are used for general usage around JMeter, like:

  • Function Helper Dialog
  • Export transactions for report
  • Generate Schematic View which provides an overview as HTML of the Test plan
  • Import from cURL which allows you to create or update your test plan by importing a cURL command
  • Compile JSR223 Test Elements
  • Create a heap dump
  • Create a thread dump

changes/5.1/jmeter-new-menu-tools.png

Ability to create a Test plan from a cURL command. changes/5.1/http-request-from-curl-request.png

  • A menu item to compile all JSR223 Elements is now available in Tools menu
  • A JSON file containing summary of a load test statistics is now generated when using -e or -g options.
  • Percentiles computing graphed over time algorithm has been modified to restart for each time slot
  • More user-friendly behaviour when reporting folder does not exist or is not empty through -f command line option
  • In Response Time Percentiles Over Time (successful responses) graph of the HTML report, before this version, percentile computation of each time slot used the percentile data of previous time slot as a base. Starting with this version, each time slot is independant. See Bug 62883
  • ClientJMeterEngine#rsetProperties signature has been changed to use HashMap<String,String> instead of Properties, see Bug 63034
  • A new Menu item Tools has been introduced, some menu items that were in Help menu are now under this new menu item. See Bug 63094
  • slf4j-ext has been removed from libraries (lib folder) and JMeter pom. It was not used by default and due to CVE-2018-8088 and unavailability of a stable version containing a fix to this issue, we decided to remove it. If you still needed, you can add it in lib folder.
  • Bug 62840HTTP Request: Add option httpclient4.gzip_relax_mode to avoid error when unzipping what seems to be invalid streams
  • Bug 63025Enhance Search & Replace functionality for HTTP Request to include port and protocol field. Initial code fix by Mohamed Ibrahim (rollno748 at gmail.com)
  • Bug 62934Add compatibility for JDBC drivers that do not support QueryTimeout
  • Bug 62935Pass custom mail.* properties to Mail Reader Sampler. Implemented by Artem Fedorov (artem.fedorov at blazemeter.com) and contributed by BlazeMeter.
  • Bug 63055Don’t rename SampleResult Label when test is running in Functional mode or property subresults.disable_renaming=true. Implemented by Artem Fedorov (artem.fedorov at blazemeter.com) and contributed by BlazeMeter.
  • Bug 62822PR#407Render uninitialized min and max values in Summary Report as #N/A

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

Section titled “Timers, Assertions, Config, Pre- & Post-Processors”
  • Bug 62766Keystore Config: We should load all aliases by default. Contributed by Ubik Load Pack (support at ubikloadpack.com)
  • Bug 62832JDBC Connection Configuration: Be able to set init SQL statements. Contributed by Ubik Load Pack (support at ubikloadpack.com)
  • Bug 63037When using CSVRead search the script base path for files, too.
  • Bug 62883Report / Dashboard: Change the way percentiles are computed for Response Time Percentiles Over Time (successful responses) graph
  • Bug 63060Report Generator: A generator should only check for folder/files it generates and only delete those ones
  • Bug 63059Create a new JsonExporter that exports as JSON the content of data computed for HTML Dashboard Statistics table. Contributed by Ubik Load Pack (support at ubikloadpack.com)
  • Bug 63081Command line Option -f does not delete report folder when using generation only through command line option -g. Contributed by Ubik Load Pack (support at ubikloadpack.com)
  • Bug 62959Ability to create a Test plan from a cURL command. Contributed by Ubik Load Pack (support at ubikloadpack.com)
  • PR#394Allow null values in FieldStringEditor. Based on patch by Mingun (alexander_sergey at mail.ru)
  • Bug 62826When changing LAF, make JMeter restart if user clicks yes to popup
  • Bug 62257PR#401Expand/Collapse short key (minus sign) on numpad doesn’t work. Contributed by Ori Marko (orimarko at gmail.com)
  • Bug 62752Add to Documentation: ctx.getThreadNum() is zero-based while \${__threadNum} is one-based
  • PR#411Use SHA-1 instead of SHA1 in org.apache.jmeter.save.SaveService. Contributed by Paco (paco.xu at daocloud.io)
  • Bug 62914Add a hint in Thread Group UI about duration of test
  • Bug 62925Add support for ThreadDump to the JMeter non-GUI
  • Bug 62870Templates: Add ability to provide parameters. Contributed by Ubik Load Pack (support at ubikloadpack.com)
  • Bug 62829Allow specifying Proxy server scheme for HTTP request sampler, Advanced tab and command line option. Contributed by Hitesh Patel (hitesh.h.patel at gmail.com)
  • Bug 59633Menus Save Test Plan as, Save as Test Fragment and Save Selection as ... should use a new file name in File Dialog
  • Bug 61486Make jmeter-server and non GUI mode run headless
  • Bug 63093Add Compile JSR223 Test Elements menu item. Contributed by Ubik Load Pack (support at ubikloadpack.com)
  • Bug 63094Introduce a new Tools menu
  • Bug 63101Propose a menu item to generate readable overview of Test Plan
  • Bug 63144View listener tree take a long time to open response that has huge text. Contributed by Ubik Load Pack (support at ubikloadpack.com)
  • Bug 62785PR#400Incomplete search path applied to the filenames used in the upload functionality of the HTTP sampler. Implemented by Artem Fedorov (artem.fedorov at blazemeter.com) and contributed by BlazeMeter.
  • Bug 62842HTTP(S) Test Script Recorder: Brotli compression is not supported leading to “Content Encoding Error
  • Bug 60424Hessian Burlap application: JMeter inserts 0x0D before 0x0A automatically (http binary post data)
  • Bug 62940Use different cn and type of SAN extension when we are generating certificates based on IP addresses.
  • Bug 62916HTTP Test Script Recorder fails with UnsupportedOperationException if recording is started after a distributed test has been run
  • Bug 62987A TestBean element under HTTP(S) Test Script recorder does not work. Contributed by Ubik Load Pack (support at ubikloadpack.com)
  • Bug 63015Abnormal NoHttpResponseException when running request through proxy HTTP(S) Test Script Recorder after a first failing request. Contributed by Ubik Load Pack (support at ubikloadpack.com)
  • Bug 62852HTTP Request Header missing information when using a proxy. Thanks to Oleg Kalnichevski (olegk at apache.org)
  • Bug 63048JMeter does not retrieve link resources of type “shortcut icon” or “icon”. Contributed by Ubik Load Pack (support at ubikloadpack.com)
  • Bug 62775If many jars are in a folder referenced by user.classpath, startup can be extremely slow due to JUnit
  • Bug 63031Incorrect JDBC driver class: org.firebirdsql.jdbc.FBDrivery. Contributed by Sonali (arora.sonali99 at gmail.com)
  • Bug 62806ModuleController cloning by Run behaves differently whether in GUI or Non GUI mode. Contributed by Ubik Load Pack (support at ubikloadpack.com)
  • Bug 62847If Controller cannot use variable for index exposed by LoopController/WhileController/ForEachController
  • Bug 63064Ignore spaces at the end and beginning of expressions used in IfController
  • Bug 62770Aggregate Graph throws ArrayIndexOutOfBoundsException
  • Bug 63069ResultCollector does not write end of XML file if user exits while a Recording or a test is running. Contributed by Ubik Load Pack (support at ubikloadpack.com)
  • Bug 63138InfluxDB BackendListenerClient: In case of error, log is in debug, it should be in error

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

Section titled “Timers, Assertions, Config, Pre- & Post-Processors”
  • Bug 62774XPath2Extractor: Scope variable is broken. Contributed by Ubik Load Pack (support at ubikloadpack.com)
  • Bug 62860JSON Extractor: Avoid NPE and noisy error message “Error processing JSON content in” when variable is not found
  • Bug 62777Web Report / Dashboard: Hide All in Response Time Percentiles Over Time (successful responses) fails.
  • Bug 62780Web Report / Dashboard: Display All in Response Time Vs Request fails.
  • Bug 62781Web Report / Dashboard: Display All in Response Time Overview fails.
  • Bug 62782Web Report / Dashboard: Remove duplicate/unused dependencies
  • Bug 62894Report / Dashboard: Throughput is in wrong column which is confusing as unit is millisecond
  • Bug 63016Empty HTML report if source csv contains labels with quotes. Contributed by Ubik Load Pack (support at ubikloadpack.com)
  • Change Test Action (old name) to Flow Control Action in Component Reference documentation. Contributed by Ori Marko (orimarko at gmail.com)
  • Bug 62745Fix undefined disabled icon. Contributed by Till Neunast (https://github.com/tilln)
  • Bug 62743Client auth must be enabled on distributed testing
  • Bug 62767NPE when searching under certain conditions. Contributed by Ubik Load Pack (support at ubikloadpack.com)
  • Bug 62790ArrayIndexOutOfBoundsException when calling replace without selecting the first match
  • Bug 62795JMeter controller node sometimes ends distributed test even though some of the worker nodes have not finished
  • Bug 62336PR#396Some shortcuts are not working correctly on windows. Contributed by Michael Pavlov (michael.paulau at gmail.com)
  • Bug 62889Format JSON Arrays when displayed with JSON Path Tester.
  • Bug 62900ObjectProperty#getStringValue() can throw NullPointerException
  • Bug 63099Escape commata in function helper dialog only outside of variable replacement structures.
  • Bug 63105Export Transactions for Report: fix 2 bugs
  • Bug 63106Apply naming policy does not refresh UI
  • Bug 63180Apply Naming Policy allows multi selection but only considers first node
  • Bug 63090Remove slf4j-ext due to CVE-2018-8088
  • PR#408Log an informational message instead of an stack trace, when JavaFX is not found for the RenderInBrowser component.
  • PR#412Update Chinese translation. Contributed by 刘士 (liushilive at outlook.com).
  • PR#406Add a short paragraph on how to use a security manager with JMeter.
  • Bug 62893Use StringEscapeUtils from commons-text (version 1.6) instead of the deprecated ones from commons-lang3.
  • Bug 62972PR#435Replace calls to deprecated method Class#newInstance.
  • Bug 63034ClientJMeterEngine: Make rsetProperties use HashMap<String,String> instead of Properties
  • Updated to httpclient/httpmime 4.5.7 (from 4.5.6)
  • Updated to httpcore 4.4.11 (from 4.4.10)
  • Updated to httpcore-nio 4.4.11 (from 4.4.10)
  • Updated to tika-core and tika-parsers 1.20 (from 1.18)
  • Updated to commons-dbcp2-2.5.0 (from commons-dbcp2-2.4.0)
  • Updated to commons-lang3-3.8.1 (from commons-lang3-3.8)
  • Updated to groovy-all-2.4.16 (from groovy-all-2.4.15)
  • Updated to httpasyncclient-4.1.4.jar (from 4.1.3)
  • Updated to jsoup-1.11.3 (from 1.11.2)
  • Updated to cglib-nodep-3.2.9 (from cglib-nodep-3.2.7)
  • Updated to ph-commons-9.2.1 (from ph-commons-9.1.2)
  • Updated to log4j-2.11.1 (from log4j-2.11.0)
  • Updated to xmlgraphics-commons 2.3 (from 2.2)
  • Bug 63033Updated to Saxon-HE 9.9.1-1 (from 9.8.0-12). Thanks at Saxonica
  • Updated to xstream 1.4.11 (from 1.4.10)
  • Updated to jodd 5.0.6 (from 4.1.4)
  • Updated to asm-7.0 (from 6.1)
  • Update to ActiveMQ 5.15.8 (from 5.5.16)
  • Updated to rsyntaxtextarea-3.0.2 (from 2.6.1)
  • Updated to apache-rat-0.13 (from 0.12)
  • Updated to jacocoant-0.8.3 (from 0.8.2)
  • Updated to hsqldb-2.4.1 (from 2.4.0)
  • Updated to mina-core-2.0.19 (from 2.0.16)
  • Bug 62818Updated to xercesImpl to 2.12.0 (from 2.11.0). Reported by Stefan Seide (stefan at trilobyte-se.de)
  • Bug 62744Upgrade jquery to version 3.3.1, jquery-ui to 1.12.1, bootstrap to 3.3.7
  • Bug 62821PR#405Use SHA-512 checksums instead of MD5 to verify jar downloads
  • Bug 63053Remove referrals to never implemented internals from user documentation. Reported by U. Poblotzki (u.poblotzki at thalia.de)
  • Bug 63082PR#437Use utf-8 for properties files in source
  • Bug 63177Rename NON GUI mode into CLI Mode in documentation

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

  • Oleg Kalnichevski (olegk at apache.org)
  • Till Neunast (https://github.com/tilln)
  • Mingun (alexander_sergey at mail.ru)
  • Ubik Load Pack
  • Artem Fedorov (artem.fedorov at blazemeter.com)
  • Stefan Seide (stefan at trilobyte-se.de)
  • 刘士 (liushilive at outlook.com)
  • Michael Pavlov (michael.paulau at gmail.com)
  • Ori Marko (orimarko at gmail.com)
  • Paco (paco.xu at daocloud.io)
  • Hitesh Patel (hitesh.h.patel at gmail.com)
  • Sonali (arora.sonali99 at gmail.com)
  • Mohamed Ibrahim (rollno748 at gmail.com)
  • U. Poblotzki (u.poblotzki at thalia.de)
  • Saxonica

We also thank bug reporters who helped us improve JMeter.

Apologies if we have omitted anyone else.

On this page