JMeter 5.5 Release Notes
Apache JMeter 5.5 release notes with 21 improvements and 32 bug fixes, plus upgrade notes from the official changelog.
Change summary
Section titled “Change summary”| Section | Changes |
|---|---|
| Improvements | 21 |
| Bug fixes | 32 |
| Non-functional changes | 55 |
New and Noteworthy
Section titled “New and Noteworthy”JMeter now supports Java 17
JMeter 5.5 ships with log4j2 2.17.2
Open Model Thread Group
Section titled “Open Model Thread Group”New component: [Open Model Thread Group](/./usermanual/component-reference/#Open_Model_Thread_Group)
allows creating load profiles with variable load.
For example, if you need to gradually increase load from 0/sec to 10/sec during minute
you could previously use Thread Group + Timer combinations. However, then you need to compute
the expected number of threads, ensure they are created only when needed, and so on.
With Open Model Thread Group you can configure the same load profile as rate(0/sec) random_arrivals(1 minute) rate(10/sec).
The thread group would spawn threads as needed to drive the configured load.
The load profile can use properties, so you can launch the same script with slightly different load levels,
however, the profile can’t be updated while the test is running.
The new thread group is experimental in JMeter 5.5, so please feel free to submit your feedback.
Open Model Thread Group sample
Preparing the deprecation of Oro Regex usage
Section titled “Preparing the deprecation of Oro Regex usage”Another experimental feature in JMeter 5.5 is the ability to replace the Oro based Regex implementation
by the built-in Java based one. To choose the Java based one, set the JMeter property jmeter.regex.engine
to the value java.
Core improvements
Section titled “Core improvements”Kotlin language is now used in some core classes and tests (e.g. Open Model Thread Group).
JMeter is compiled with apiTarget=1.5, and it ships with kotlin-stdlib 1.6.
lets-plot-kotlin charting library is added, so it will be easier to refine and create new charts in UI in the future.
Improvements
Section titled “Improvements”Thread Groups
Section titled “Thread Groups”- New component:
[Open Model Thread Group](/./usermanual/component-reference/#Open_Model_Thread_Group)
HTTP Samplers and Test Script Recorder
Section titled “HTTP Samplers and Test Script Recorder”- Bug 65027Detect mime-type for files automatically when adding files to HTTP Sampler
- Bug 65020HTTP Sampler/Files upload tab - add missing buttons
- PR#650HTTP Sampler timestamp fix when exception is caught. Contributed by Konstantin Kalinin (konstantin at kkalinin.pro)
- Bug 65328PR#666HTTP 308 Permanent Redirect is not supported. Contributed by Baptiste Gaillard (baptiste.gaillard at gmail.com)
Other samplers
Section titled “Other samplers”- Bug 65149PR#644Encode the personal part of email addresses in SMTP Sampler
- PR#638Various additions to the Bolt Sampler. Added
transaction timeout,databaseoption required for Neo4j 4.x (with multi-database support) andaccess modeoption, that allows running against a Neo4j Enterprise Causal Cluster. Contributed by David Pecollet (david.pecollet at gmail.com)
Controllers
Section titled “Controllers”- PR#665Increase visible lines of code in
IfControllerandWhileController. Based on an idea by David Getzlaff (david.getzlaff at t-systems.com>).
Listeners
Section titled “Listeners”- Bug 64988Sort properties and variables in a human expected order for DebugPostProcessor and DebugSampler
- Bug 63061Sort View Results in Table in a human expected order
- PR#706Try to keep UI responsive when displaying large text results. Can be configured with the new property
view.results.tree.simple_view_limit
Timers, Assertions, Config, Pre- & Post-Processors
Section titled “Timers, Assertions, Config, Pre- & Post-Processors”- PR#638Bolt Connection Configuration: added
ConnectionPoolMaxSizeparameter. Contributed by David Pecollet (david.pecollet at gmail.com) - Bug 65515Allow pooling of Prepared Statements in JDBC
- Bug 65299JSONPathAssertion attributes are out of order/Compare JSON objects and not their string representations.
Report / Dashboard
Section titled “Report / Dashboard”- Bug 65353Make the estimator used for calculating percentiles on the dashboard configurable
General
Section titled “General”- Bug 61805PR#663Add simple HTTP request template. Contributed by Ori Marko (orimarko at gmail.com)
- Bug 65611PR#673Add support for IPv6 addresses when specifying a remote worker node. Based on a patch by Peter Wong (peter.wong at csexperts.com)
- Reduce memory consumption by the logging panel (disable undo events for it)
- Bug 63620PR#694Fix GUI freeze when viewing response body with long line breaks
- PR#699Add documentation for Graphite Backend Listener. Contributed by Ji Hun (jihunkimkw at gmail.com)
- Bug 57672PR#700Add a switch (
jmeter.regex.engine) to replace Oro Regex implementation by the built-in Java one.
Bug fixes
Section titled “Bug fixes”HTTP Samplers and Test Script Recorder
Section titled “HTTP Samplers and Test Script Recorder”- Bug 65310Don’t let users override
multipart/form-datacontent-typeheader in HC4 sampler. - Bug 65363
NullPointerExceptioninHTTPHC4Impl$ManagedCredentialsProvider.getAuthorizationForAuthScopewhen401response from remote andhttpclient4.auth.preemptive=false - Bug 65692HTTP(s) Test Script Recorder: Enable setting enabled cipher suite and enabled protocols on SSLContext/ Align SSL properties between Java and HC4 implementation
- Bug 65108Support JMeter variables in GraphQL HTTP Request
- Bug 65864Catch
NullPointerExceptionfrom JSoup when recording a test plan
Other Samplers
Section titled “Other Samplers”- Bug 65152OS Process Sampler - Cannot
Add from ClipboardCommand parameters - PR#638Bolt Sampler: fixed error displaying results when “Record Query Results” is enabled. Contributed by David Pecollet (david.pecollet at gmail.com)
Controllers
Section titled “Controllers”Listeners
Section titled “Listeners”- Bug 64962Save CSV sub-results recursively from View Results Tree
- Bug 65784No Graphs displayed in Aggregate Report/Response Time Graph
- Bug 65884GUI doesn’t display response for multipart request manually encoded
Timers, Assertions, Config, Pre- & Post-Processors
Section titled “Timers, Assertions, Config, Pre- & Post-Processors”- Bug 65257JMESPathExtractor writes error log entries if JMESPath filter returns empty result
- Bug 65259JMESPathExtractor Attribute
Match No.Required - Bug 65269JSON Extractor and JSON JMESPath Extractor ignore sub-samples
- Bug 65352Warning logged when Boundary Extractor doesn’t find any match
- Bug 65681Use default values for
nullvalues when extracting with JSONPostProcessor - Allow setters in ConstantThroughputTimer to update the values during run time
- Bug 65782Use correct message format for MessageFormat in HTMLAssertion
- Bug 65794JSON Assertion always successful with indefinite paths
Functions
Section titled “Functions”Report / Dashboard
Section titled “Report / Dashboard”Documentation
Section titled “Documentation”- PR#658Improve javadoc. Contributed by Ori Marko (orimarko at gmail.com)
General
Section titled “General”- Bug 64318DNS Cache Manager - custom DNS resolver does not use system resolver by default
- PR#641PR#698Updated xercesImpl to 2.12.2 (from 2.12.0). Based on patch by Stefan Seide (stefan at trilobyte-se.de).
- PR#645Add escaping for new lines in
AbstractInfluxdbMetricsSender. Contributed by David Getzlaff (david.getzlaff at t-systems.com>) - Bug 65198Can’t copy generated function from FunctionHelper
- PR#661Fix wording in doc. Contributed by BugKing (wangzhen at fit2cloud.com)
- PR#664Allow whitespace in path. Contributed by Till Neunast (github.com/tilln)
- Bug 65270POST
application/x-www-form-urlencodedcURL code generated from Postman is not imported correctly - Silence warnings of missing font Arial on startup under Linux
- Bug 65300
IllegalAccessErrorwhen opening file dialog with Java 16 - Bug 65336Blank labels when different elements had the same name
- Bug 65522Restart doesn’t work, when parameters contain spaces
- Bug 63914Simplify
:src:dist:cleanconfiguration, ensure/lib/junit/test.jaris removed on clean - PR#696Keep JSyntaxTextArea text value for use in headless mode. Contributed by Peter Paul Bakker (peter.paul.bakker at stokpop.nl)
Non-functional changes
Section titled “Non-functional changes”- Added Kotlin 1.6.21 for JMeter engine implementation (apiVersion=1.5). The set of JSR 223 languages is intact.
- Bug 65128PR#643Add missing documentation about
Same user on each iterationfor Thread Groups. Contributed by njkuzas. - PR#648Updated xmlgraphics-commons to 2.6 (from 2.3). Contributed by Stefan Seide (stefan at trilobyte-se.de)
- PR#655PR#667PR#675PR#698Updated x-stream to 1.4.19 (from 1.4.15). Contributed by Stefan Seide (stefan at trilobyte-se.de)
- PR#656PR#668Updated json-smart to 2.4.8 (from 2.3), accessors-smart to 2.4.8 (from 1.2) and asm 9.3 (from 9.0). Contributed by Stefan Seide (stefan at trilobyte-se.de)
- Bug 64831Log truststore entries in debug level for logger
org.apache.jmeter.util.keystore.JmeterKeyStore - Bug 65232Hide splash screen when an error is displayed because the test plan could not be parsed.
- Updated Groovy to 3.0.11 (from 3.0.7).
- Updated Darklaf to 2.7.3 (from 2.5.4).
- Updated Apache ActiveMQ to 15.6.4 (from 15.6.0).
- Updated Asm to 9.2 (from 9.1).
- Updated Bouncycastle to 1.70 (from 1.67).
- Updated Caffeine to 2.9.3 (from 2.8.8).
- Updated Apache commons-dbcp2 to 2.9.0 (from 2.8.0).
- Updated Apache commons-io to 2.11.0 (from 2.8.0).
- Updated Apache commons-lang3 to 3.12.0 (from 3.11).
- Updated Apache commons-net to 3.8.0 (from 3.7.2).
- Updated Apache commons-pool2 to 2.11.1 (from 2.9.0).
- Updated equalsverifier to 3.10 (from 3.4.2).
- Updated Apache Freemarker to 2.3.31 (from 2.3.30).
- Updated hsqldb to 2.5.2 (from 2.5.0).
- Updated Apache HttpClient to 4.5.13 (from 4.5.12).
- Updated Apache HttpCore to 4.4.15 (from 4.4.13).
- Updated jacoco to 0.8.7 (from 0.8.5).
- Updated json-path to 2.7.0 (from 2.4.0).
- Updated jsoup to 1.15.1 (from 1.13.1).
- Updated JUnit to 4.13.2 and 5.8.2 (from 4.13.1 and 5.7.0).
- Updated Apache log4j2 to 2.17.2 (from 2.13.3).
- Updated Miglayout to 5.3 (from 5.2).
- Updated Neo4j Java driver to 4.4.6 (from 4.2.0).
- Updated Objenesis to 3.2 (from 2.6).
- Updated ktlint to 0.40.0
- Updated PH CSS and PH commons to 6.5.4 and 10.1.6 (from 6.2.3 and 9.5.1).
- Updated RSyntaxTextArea to 3.2.0 (from 3.1.1).
- Updated SLF4J to 1.7.36 (from 1.7.30).
- Updated SvgSalamander to 1.1.2.4 (from 1.1.2.1).
- PR#698Updated Apache Tika to 1.28.3 (from 1.26).
- Updated WireMock-JRE8 to 2.30.0 (from 2.24.1).
- Updated com.github.vlsi.vlsi-release-plugins 1.76 (from 1.74).
- Updated jackson to 2.13.3 (from 2.10.5)
- Updated jmespath to 0.5.1
- Updated Saxon-HE to 11.2 (from 9.9.1-8)
- Updated Apache xmlgraphics commons to 2.7 (from 2.6)
- PR#671Move example definition of property
jmeter.reportgenerator.statistic_windowtouser.properties, as it is read from that place. Contributed by Rithvik Patibandla (rithvikp98 at gmail.com) - Bug 65456Updated commons-jexl 3 to 3.2.1 (from 3.1). Contributed by Ori Marko (orimarko at gmail.com>)
- PR#654Try do give better feedback while loading keystores
- PR#672Add more details to documentation for timeShift function. Contributed by Mariusz (mawasak at gmail.com)
- Updated Gradle to 7.3 (from 7.2)
- PR#689Code clean up in StringFromFile. Contributed by Sampath Kumar Krishnasamy (sampathkumar.krishnasamykuppusamy at aexp.com)
- PR#690Refactor a few unit tests. Contributed by Sampath Kumar Krishnasamy (sampathkumar.krishnasamykuppusamy at aexp.com)
- PR#692>Fix a few deprecation warnings for Gradle. Contributed by Sampath Kumar Krishnasamy (sampathkumar.krishnasamykuppusamy at aexp.com)
- PR#697>Junit 5 tests to use asserts from Junit 5 API. Contributed by Sampath Kumar Krishnasamy (sampathkumar.krishnasamykuppusamy at aexp.com)
- Bug 65983PR#707Use current screenshot for save-to-file listener in documentation. Based on patch by NaveenKumar Namachivayam (catch.nkn at gmail.com)
- PR#708Make errorprone happier. Based on patch by Wilson Kurniawan (wilson at visenze.com)>
- Updated Rhino JavaScript to 1.7.14 (from 1.7.13)
Thanks
Section titled “Thanks”We thank all contributors mentioned in bug and improvement sections above:
- Stefan Seide (stefan at trilobyte-se.de)
- njzukas (github.com/njzukas)
- David Getzlaff (david.getzlaff at t-systems.com>)
- Konstantin Kalinin (konstantin at kkalinin.pro)
- David Pecollet (david.pecollet at gmail.com)
- Ori Marko (orimarko at gmail.com)
- BugKing (wangzhen at fit2cloud.com)
- Till Neunast (github.com/tilln)
- Baptiste Gaillard (baptiste.gaillard at gmail.com)
- Rithvik Patibandla (rithvikp98 at gmail.com)
- Mariusz (mawasak at gmail.com)
- peter.wong@csexperts.com
- Woonsan Ko (woonsan.ko at bloomreach.com)
- Chromico Rek (atech5122 at gmail.com)
- Magnus Spångdal (magnus.spangdal as avanza.se)
- Piotr Smietana (piotrsmietana1998 at gmail.com)
- Sampath Kumar Krishnasamy (sampathkumar.krishnasamykuppusamy at aexp.com)
- Ji Hun (jihunkimkw at gmail.com)
- Peter Paul Bakker (peter.paul.bakker at stokpop.nl)
- NaveenKumar Namachivayam (catch.nkn at gmail.com)
- Wilson Kurniawan (wilson at visenze.com)
We also thank bug reporters who helped us improve JMeter.
- Nikola Aleksic (nalexic at gmail.com)
- Vladimir Rosu (rosuvladimir at gmail.com)
Apologies if we have omitted anyone else.