---
title: "JMeter 5.1 Release Notes"
description: "Apache JMeter 5.1 release notes with 42 improvements and 39 bug fixes, plus upgrade notes from the official changelog."
url: https://docs.jmeter.ai/releases/5-1/
lastUpdated: 2026-10-01
source: docs.jmeter.ai
---

# JMeter 5.1 Release Notes

> **About these release notes**
> This page lists every documented change shipped in Apache JMeter 5.1, generated from the official changelog. For download and upgrade guidance, see [Download JMeter](/reference/download-jmeter/).

## Change summary

| Section | Changes |
| --- | --- |
| New and Noteworthy | 13 |
| Incompatible changes | 4 |
| Improvements | 29 |
| Bug fixes | 39 |
| Non-functional changes | 35 |

## New and Noteworthy

### 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

![changes/5.1/jdbc-connection-config-init-request.png](/images/screenshots/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](https://bz.apache.org/bugzilla/show_bug.cgi?id=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](https://bz.apache.org/bugzilla/show_bug.cgi?id=63055)

### UX improvements

Templates can provide parameters that are filled in on test plan generation,
`Recording` template uses this feature

![changes/5.1/templates-parametes.png](/images/screenshots/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](/images/screenshots/changes/5.1/jmeter-new-menu-tools.png)

### Test Plan

Ability to create a Test plan from a cURL command.

![changes/5.1/http-request-from-curl-request.png](/images/screenshots/changes/5.1/http-request-from-curl-request.png)

### Scripting / Debugging enhancements

- A menu item to compile all JSR223 Elements is now available in `Tools` menu

### Live Reporting and Web Report

- 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

## 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](https://bz.apache.org/bugzilla/show_bug.cgi?id=62883)
- `ClientJMeterEngine#rsetProperties` signature has been changed to use `HashMap&lt;String,String&gt;` instead of Properties, see [Bug 63034](https://bz.apache.org/bugzilla/show_bug.cgi?id=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](https://bz.apache.org/bugzilla/show_bug.cgi?id=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.

## Improvements

#### HTTP Samplers and Test Script Recorder

- [Bug 62840](https://bz.apache.org/bugzilla/show_bug.cgi?id=62840)HTTP Request: Add option `httpclient4.gzip_relax_mode` to avoid error when unzipping what seems to be invalid streams
- [Bug 63025](https://bz.apache.org/bugzilla/show_bug.cgi?id=63025)Enhance Search & Replace functionality for HTTP Request to include port and protocol field. Initial code fix by Mohamed Ibrahim (rollno748 at gmail.com)

#### Other samplers

- [Bug 62934](https://bz.apache.org/bugzilla/show_bug.cgi?id=62934)Add compatibility for JDBC drivers that do not support QueryTimeout
- [Bug 62935](https://bz.apache.org/bugzilla/show_bug.cgi?id=62935)Pass custom `mail.*` properties to Mail Reader Sampler. Implemented by Artem Fedorov (artem.fedorov at blazemeter.com) and contributed by BlazeMeter.
- [Bug 63055](https://bz.apache.org/bugzilla/show_bug.cgi?id=63055)Don’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

#### Listeners

- [Bug 62822](https://bz.apache.org/bugzilla/show_bug.cgi?id=62822)[PR#407](https://github.com/apache/jmeter/pull/407)Render uninitialized min and max values in Summary Report as `#N/A`

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

- [Bug 62766](https://bz.apache.org/bugzilla/show_bug.cgi?id=62766)Keystore Config: We should load all aliases by default. Contributed by Ubik Load Pack (support at ubikloadpack.com)
- [Bug 62832](https://bz.apache.org/bugzilla/show_bug.cgi?id=62832)JDBC Connection Configuration: Be able to set init SQL statements. Contributed by Ubik Load Pack (support at ubikloadpack.com)

#### Functions

- [Bug 63037](https://bz.apache.org/bugzilla/show_bug.cgi?id=63037)When using `CSVRead` search the script base path for files, too.

#### I18N

#### Report / Dashboard

- [Bug 62883](https://bz.apache.org/bugzilla/show_bug.cgi?id=62883)Report / Dashboard: Change the way percentiles are computed for Response Time Percentiles Over Time (successful responses) graph
- [Bug 63060](https://bz.apache.org/bugzilla/show_bug.cgi?id=63060)Report Generator: A generator should only check for folder/files it generates and only delete those ones
- [Bug 63059](https://bz.apache.org/bugzilla/show_bug.cgi?id=63059)Create 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 63081](https://bz.apache.org/bugzilla/show_bug.cgi?id=63081)Command 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)

#### General

- [Bug 62959](https://bz.apache.org/bugzilla/show_bug.cgi?id=62959)Ability to create a Test plan from a cURL command. Contributed by Ubik Load Pack (support at ubikloadpack.com)
- [PR#394](https://github.com/apache/jmeter/pull/394)Allow `null` values in `FieldStringEditor`. Based on patch by Mingun (alexander_sergey at mail.ru)
- [Bug 62826](https://bz.apache.org/bugzilla/show_bug.cgi?id=62826)When changing LAF, make JMeter restart if user clicks yes to popup
- [Bug 62257](https://bz.apache.org/bugzilla/show_bug.cgi?id=62257)[PR#401](https://github.com/apache/jmeter/pull/401)Expand/Collapse short key  (minus sign) on numpad doesn’t work. Contributed by Ori Marko (orimarko at gmail.com)
- [Bug 62752](https://bz.apache.org/bugzilla/show_bug.cgi?id=62752)Add to Documentation: `ctx.getThreadNum()` is zero-based while `\${__threadNum}` is one-based
- [PR#411](https://github.com/apache/jmeter/pull/411)Use `SHA-1` instead of `SHA1` in `org.apache.jmeter.save.SaveService`. Contributed by Paco (paco.xu at daocloud.io)
- [Bug 62914](https://bz.apache.org/bugzilla/show_bug.cgi?id=62914)Add a hint in Thread Group UI about duration of test
- [Bug 62925](https://bz.apache.org/bugzilla/show_bug.cgi?id=62925)Add support for ThreadDump to the JMeter non-GUI
- [Bug 62870](https://bz.apache.org/bugzilla/show_bug.cgi?id=62870)Templates: Add ability to provide parameters. Contributed by Ubik Load Pack (support at ubikloadpack.com)
- [Bug 62829](https://bz.apache.org/bugzilla/show_bug.cgi?id=62829)Allow 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 59633](https://bz.apache.org/bugzilla/show_bug.cgi?id=59633)Menus `Save Test Plan as`, `Save as Test Fragment` and `Save Selection as ...` should use a new file name in File Dialog
- [Bug 61486](https://bz.apache.org/bugzilla/show_bug.cgi?id=61486)Make jmeter-server and non GUI mode run headless
- [Bug 63093](https://bz.apache.org/bugzilla/show_bug.cgi?id=63093)Add `Compile JSR223 Test Elements` menu item. Contributed by Ubik Load Pack (support at ubikloadpack.com)
- [Bug 63094](https://bz.apache.org/bugzilla/show_bug.cgi?id=63094)Introduce a new Tools menu
- [Bug 63101](https://bz.apache.org/bugzilla/show_bug.cgi?id=63101)Propose a menu item to generate readable overview of Test Plan
- [Bug 63144](https://bz.apache.org/bugzilla/show_bug.cgi?id=63144)View listener tree take a long time to open response that has huge text. Contributed by Ubik Load Pack (support at ubikloadpack.com)

## Bug fixes

#### HTTP Samplers and Test Script Recorder

- [Bug 62785](https://bz.apache.org/bugzilla/show_bug.cgi?id=62785)[PR#400](https://github.com/apache/jmeter/pull/400)Incomplete 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 62842](https://bz.apache.org/bugzilla/show_bug.cgi?id=62842)HTTP(S) Test Script Recorder: Brotli compression is not supported leading to “`Content Encoding Error`”
- [Bug 60424](https://bz.apache.org/bugzilla/show_bug.cgi?id=60424)Hessian Burlap application: JMeter inserts `0x0D` before `0x0A` automatically (http binary post data)
- [Bug 62940](https://bz.apache.org/bugzilla/show_bug.cgi?id=62940)Use different `cn` and type of SAN extension when we are generating certificates based on IP addresses.
- [Bug 62916](https://bz.apache.org/bugzilla/show_bug.cgi?id=62916)HTTP Test Script Recorder fails with UnsupportedOperationException if recording is started after a distributed test has been run
- [Bug 62987](https://bz.apache.org/bugzilla/show_bug.cgi?id=62987)A TestBean element under HTTP(S) Test Script recorder does not work. Contributed by Ubik Load Pack (support at ubikloadpack.com)
- [Bug 63015](https://bz.apache.org/bugzilla/show_bug.cgi?id=63015)Abnormal 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 62852](https://bz.apache.org/bugzilla/show_bug.cgi?id=62852)HTTP Request Header missing information when using a proxy. Thanks to Oleg Kalnichevski (olegk at apache.org)
- [Bug 63048](https://bz.apache.org/bugzilla/show_bug.cgi?id=63048)JMeter does not retrieve link resources of type “shortcut icon” or “icon”. Contributed by Ubik Load Pack (support at ubikloadpack.com)

#### Other Samplers

- [Bug 62775](https://bz.apache.org/bugzilla/show_bug.cgi?id=62775)If many jars are in a folder referenced by `user.classpath`, startup can be extremely slow due to JUnit
- [Bug 63031](https://bz.apache.org/bugzilla/show_bug.cgi?id=63031)Incorrect JDBC driver class: `org.firebirdsql.jdbc.FBDrivery`. Contributed by Sonali (arora.sonali99 at gmail.com)

#### Controllers

- [Bug 62806](https://bz.apache.org/bugzilla/show_bug.cgi?id=62806)ModuleController cloning by Run behaves differently whether in GUI or Non GUI mode. Contributed by Ubik Load Pack (support at ubikloadpack.com)
- [Bug 62847](https://bz.apache.org/bugzilla/show_bug.cgi?id=62847)If Controller cannot use variable for index exposed by LoopController/WhileController/ForEachController
- [Bug 63064](https://bz.apache.org/bugzilla/show_bug.cgi?id=63064)Ignore spaces at the end and beginning of expressions used in IfController

#### Listeners

- [Bug 62770](https://bz.apache.org/bugzilla/show_bug.cgi?id=62770)Aggregate Graph throws `ArrayIndexOutOfBoundsException`
- [Bug 63069](https://bz.apache.org/bugzilla/show_bug.cgi?id=63069)ResultCollector 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 63138](https://bz.apache.org/bugzilla/show_bug.cgi?id=63138)InfluxDB BackendListenerClient: In case of error, log is in debug, it should be in error

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

- [Bug 62774](https://bz.apache.org/bugzilla/show_bug.cgi?id=62774)XPath2Extractor: Scope variable is broken. Contributed by Ubik Load Pack (support at ubikloadpack.com)
- [Bug 62860](https://bz.apache.org/bugzilla/show_bug.cgi?id=62860)JSON Extractor: Avoid NPE and noisy error message “`Error processing JSON content in`” when variable is not found

#### Functions

#### I18N

#### Report / Dashboard

- [Bug 62777](https://bz.apache.org/bugzilla/show_bug.cgi?id=62777)Web Report / Dashboard: Hide All in `Response Time Percentiles Over Time (successful responses)` fails.
- [Bug 62780](https://bz.apache.org/bugzilla/show_bug.cgi?id=62780)Web Report / Dashboard: Display All in `Response Time Vs Request` fails.
- [Bug 62781](https://bz.apache.org/bugzilla/show_bug.cgi?id=62781)Web Report / Dashboard: Display All in `Response Time Overview` fails.
- [Bug 62782](https://bz.apache.org/bugzilla/show_bug.cgi?id=62782)Web Report / Dashboard: Remove duplicate/unused dependencies
- [Bug 62894](https://bz.apache.org/bugzilla/show_bug.cgi?id=62894)Report / Dashboard: Throughput is in wrong column which is confusing as unit is millisecond
- [Bug 63016](https://bz.apache.org/bugzilla/show_bug.cgi?id=63016)Empty HTML report if source csv contains labels with quotes. Contributed by Ubik Load Pack (support at ubikloadpack.com)

#### Documentation

- Change `Test Action` (old name) to `Flow Control Action` in Component Reference documentation. Contributed by Ori Marko (orimarko at gmail.com)

#### General

- [Bug 62745](https://bz.apache.org/bugzilla/show_bug.cgi?id=62745)Fix undefined disabled icon. Contributed by Till Neunast ([https://github.com/tilln](https://github.com/tilln))
- [Bug 62743](https://bz.apache.org/bugzilla/show_bug.cgi?id=62743)Client auth must be enabled on distributed testing
- [Bug 62767](https://bz.apache.org/bugzilla/show_bug.cgi?id=62767)NPE when searching under certain conditions. Contributed by Ubik Load Pack (support at ubikloadpack.com)
- [Bug 62790](https://bz.apache.org/bugzilla/show_bug.cgi?id=62790)`ArrayIndexOutOfBoundsException` when calling replace without selecting the first match
- [Bug 62795](https://bz.apache.org/bugzilla/show_bug.cgi?id=62795)JMeter controller node sometimes ends distributed test even though some of the worker nodes have not finished
- [Bug 62336](https://bz.apache.org/bugzilla/show_bug.cgi?id=62336)[PR#396](https://github.com/apache/jmeter/pull/396)Some shortcuts are not working correctly on windows. Contributed by Michael Pavlov (michael.paulau at gmail.com)
- [Bug 62889](https://bz.apache.org/bugzilla/show_bug.cgi?id=62889)Format JSON Arrays when displayed with JSON Path Tester.
- [Bug 62900](https://bz.apache.org/bugzilla/show_bug.cgi?id=62900)ObjectProperty#getStringValue() can throw NullPointerException
- [Bug 63099](https://bz.apache.org/bugzilla/show_bug.cgi?id=63099)Escape commata in function helper dialog only outside of variable replacement structures.
- [Bug 63105](https://bz.apache.org/bugzilla/show_bug.cgi?id=63105)Export Transactions for Report: fix 2 bugs
- [Bug 63106](https://bz.apache.org/bugzilla/show_bug.cgi?id=63106)Apply naming policy does not refresh UI
- [Bug 63180](https://bz.apache.org/bugzilla/show_bug.cgi?id=63180)Apply Naming Policy allows multi selection but only considers first node
- [Bug 63090](https://bz.apache.org/bugzilla/show_bug.cgi?id=63090)Remove slf4j-ext due to CVE-2018-8088

## Non-functional changes

- [PR#408](https://github.com/apache/jmeter/pull/408)Log an informational message instead of an stack trace, when JavaFX is not found for the `RenderInBrowser` component.
- [PR#412](https://github.com/apache/jmeter/pull/412)Update Chinese translation. Contributed by 刘士 (liushilive at outlook.com).
- [PR#406](https://github.com/apache/jmeter/pull/406)Add a short paragraph on how to use a security manager with JMeter.
- [Bug 62893](https://bz.apache.org/bugzilla/show_bug.cgi?id=62893)Use StringEscapeUtils from commons-text (version 1.6) instead of the deprecated ones from commons-lang3.
- [Bug 62972](https://bz.apache.org/bugzilla/show_bug.cgi?id=62972)[PR#435](https://github.com/apache/jmeter/pull/435)Replace calls to deprecated method `Class#newInstance`.
- [Bug 63034](https://bz.apache.org/bugzilla/show_bug.cgi?id=63034)ClientJMeterEngine: Make rsetProperties use `HashMap&lt;String,String&gt;` 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 63033](https://bz.apache.org/bugzilla/show_bug.cgi?id=63033)Updated 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 62818](https://bz.apache.org/bugzilla/show_bug.cgi?id=62818)Updated to xercesImpl to 2.12.0 (from 2.11.0). Reported by Stefan Seide (stefan at trilobyte-se.de)
- [Bug 62744](https://bz.apache.org/bugzilla/show_bug.cgi?id=62744)Upgrade jquery to version 3.3.1, jquery-ui to 1.12.1, bootstrap to 3.3.7
- [Bug 62821](https://bz.apache.org/bugzilla/show_bug.cgi?id=62821)[PR#405](https://github.com/apache/jmeter/pull/405)Use SHA-512 checksums instead of MD5 to verify jar downloads
- [Bug 63053](https://bz.apache.org/bugzilla/show_bug.cgi?id=63053)Remove referrals to never implemented internals from user documentation. Reported by U. Poblotzki (u.poblotzki at thalia.de)
- [Bug 63082](https://bz.apache.org/bugzilla/show_bug.cgi?id=63082)[PR#437](https://github.com/apache/jmeter/pull/437)Use utf-8 for properties files in source
- [Bug 63177](https://bz.apache.org/bugzilla/show_bug.cgi?id=63177)Rename NON GUI mode into CLI Mode in documentation

## Thanks

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

- Oleg Kalnichevski (olegk at apache.org)
- Till Neunast ([https://github.com/tilln](https://github.com/tilln))
- Mingun (alexander_sergey at mail.ru)
- [Ubik Load Pack](https://ubikloadpack.com)
- 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](https://www.saxonica.com)

We also thank bug reporters who helped us improve JMeter.

Apologies if we have omitted anyone else.

## Useful links

- [Download JMeter](/reference/download-jmeter/)
- [Getting started guide](/getting-started/get-started/)
- [All release notes](/releases/)
- [Current changes page](/user-manual/changes/)
- [History of previous changes](/user-manual/changes-history/)
