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.
Change summary
Section titled “Change summary”| Section | Changes |
|---|---|
| New and Noteworthy | 13 |
| Incompatible changes | 4 |
| Improvements | 29 |
| Bug fixes | 39 |
| Non-functional changes | 35 |
New and Noteworthy
Section titled “New and Noteworthy”Core improvements
Section titled “Core improvements”JDBC testing has been improved with ability to set init SQL statements and add
compatibility with JDBC drivers that do not support QueryTimeout

- 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=truehas been introduced to revert if needed to previous behaviour. An alternative is to checkFunctional Test Modein Test Plan, see Bug 63055
UX improvements
Section titled “UX improvements”Templates can provide parameters that are filled in on test plan generation,
Recording template uses this feature

A new Tools menu has been introduced to collect those entries,
that are used for general usage around JMeter, like:
Function Helper DialogExport transactions for reportGenerate Schematic Viewwhich provides an overview as HTML of the Test planImport from cURLwhich allows you to create or update your test plan by importing a cURL commandCompile JSR223 Test ElementsCreate a heap dumpCreate a thread dump

Test Plan
Section titled “Test Plan”Ability to create a Test plan from a cURL command.

Scripting / Debugging enhancements
Section titled “Scripting / Debugging enhancements”- A menu item to compile all JSR223 Elements is now available in
Toolsmenu
Live Reporting and Web Report
Section titled “Live Reporting and Web Report”- A JSON file containing summary of a load test statistics is now generated when using
-eor-goptions. - 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
-fcommand line option
Incompatible changes
Section titled “Incompatible changes”- 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#rsetPropertiessignature has been changed to useHashMap<String,String>instead of Properties, see Bug 63034- A new Menu item
Toolshas been introduced, some menu items that were inHelpmenu are now under this new menu item. See Bug 63094 slf4j-exthas 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.
Improvements
Section titled “Improvements”HTTP Samplers and Test Script Recorder
Section titled “HTTP Samplers and Test Script Recorder”- Bug 62840HTTP Request: Add option
httpclient4.gzip_relax_modeto 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)
Other samplers
Section titled “Other samplers”- 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.
Controllers
Section titled “Controllers”Listeners
Section titled “Listeners”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)
Functions
Section titled “Functions”- Bug 63037When using
CSVReadsearch the script base path for files, too.
Report / Dashboard
Section titled “Report / Dashboard”- 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
-fdoes not delete report folder when using generation only through command line option-g. Contributed by Ubik Load Pack (support at ubikloadpack.com)
General
Section titled “General”- Bug 62959Ability to create a Test plan from a cURL command. Contributed by Ubik Load Pack (support at ubikloadpack.com)
- PR#394Allow
nullvalues inFieldStringEditor. 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-1instead ofSHA1inorg.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 FragmentandSave 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 Elementsmenu 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 fixes
Section titled “Bug fixes”HTTP Samplers and Test Script Recorder
Section titled “HTTP Samplers and Test Script Recorder”- 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
0x0Dbefore0x0Aautomatically (http binary post data) - Bug 62940Use different
cnand 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)
Other Samplers
Section titled “Other Samplers”- 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)
Controllers
Section titled “Controllers”- 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
Listeners
Section titled “Listeners”- 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
Functions
Section titled “Functions”Report / Dashboard
Section titled “Report / Dashboard”- 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 Requestfails. - Bug 62781Web Report / Dashboard: Display All in
Response Time Overviewfails. - 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)
Documentation
Section titled “Documentation”- Change
Test Action(old name) toFlow Control Actionin Component Reference documentation. Contributed by Ori Marko (orimarko at gmail.com)
General
Section titled “General”- 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 62790
ArrayIndexOutOfBoundsExceptionwhen 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
Non-functional changes
Section titled “Non-functional changes”- PR#408Log an informational message instead of an stack trace, when JavaFX is not found for the
RenderInBrowsercomponent. - 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
Thanks
Section titled “Thanks”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.