Changes

> This page details the changes made in the current version only. Earlier changes are detailed in the History of Previous Changes.

> # Version 5.4

> Summary

> - New and Noteworthy
> - Incompatible changes
> - Bug fixes
> - Improvements
> - Non-functional changes
> - Known problems and workarounds
> - Thanks

> New and Noteworthy

> UX improvements

> Bug 62179 - Bug 64658 - The splash screen is now application-modal rather than system-modal, so it does not block other applications when JMeter is starting up.

> Incompatible changes

> - Remove LogKit logger functionality from some classes. This was intended to completely remove `LoggingManager` class (it has been deprecated since JMeter 3.2), but as jmeter-plugins depended on it, `LoggingManager` and our `LogKit`-adapter will remain for this version (but is still deprecated).

> Improvements

> ### HTTP Samplers and Test Script Recorder

> - Bug 53848 - Bug 63527 - Implement a new setting to allow the exclusion of embedded URLs
> - Bug 64696 - Pull request #571 - Pull request #595 - Freestyle format for names in (Default)SamplerCreater. Based on a patch by Vincent Daburon (vdaburon at gmail.com)
> - Bug 64752 - Add GraphQL/HTTP Request Sampler. Contributed by woonsan.

> ### Other samplers

> - Bug 64555 - Set JMSType header field through JMSProperties. Contributed by Daniel van den Ouden

> ### Controllers

> ### Listeners

> - Pull request #544 - Add BackendListener that sends "raw" results to InfluxDB. Contributed by Graham Russell (graham at ham1.co.uk)

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

> ### Functions

> ### I18N

> ### Report / Dashboard

> - Bug 64824 - Dashboard/HTML Report: Rename `KO` to `FAIL`
> - Bug 64936 - Increase generate_report_ui.generation_timeout to 5 minutes to handle large performance test

> ### General

> - Bug 64446 - Better parse curl commands with backslash at line endings and support `PUT` method with data arguments
> - Pull request #599 - Ensure all buttons added to the toolbar behave/look consistently. Contributed by Jannis Weis
> - Bug 64581 - Allow `SampleResult#setIgnore` to influence behaviour on Sampler Error
> - Bug 64680 - Fall back to `JMETER_HOME` on startup to detect JMeter's installation directory
> - Bug 64787 - Pull request #630 - Add Korean translation. Contributed by Woonsan Ko (woonsan at apache.org)
> - Bug 64776 - Add the ability to install additional SecurityProvider. Contributed by Timo (ASF.Software.Timo at Leefers.eu)

> Non-functional changes

> - Build system upgraded from Gradle to 6.7 (from 6.6)
> - Pull request #594 - Updated neo4j-java-driver to 4.2.0 (from 1.7.5)
> - Bug 64454 - More precise error message, when no datasource value can be found in JDBC sampler
> - Bug 64440 - Log exeptions reported via `JMeterUtils#reportToUser` even when in GUI mode
> - Pull request #591 - Remove deprecated sudo flag from travis file. Deng Liming (liming.d.pro at gmail.com)
> - Updated Darklaf to 2.4.10 (from 2.1.1)
> - Updated Groovy to 3.0.5 (from 3.0.3)
> - Pull request #596 - Use neutral words in documentation
> - Bug 63809 - Pull request #557 - Updated commons-collections to 4.4 (from 3.2.2) while keeping the jars for the old commons-collections 3.x for compatibility
> - Pull request #598 - Add another option for creating diffs to the building page. Contributed by jmetertea (github.com/jmetertea)
> - Pull request #609 - Make use of newer API for darklaf installation. Jannis Weis
> - Pull request #612 - Correct typos in `README.md`. Based on patches by Pooja Chandak (poojachandak002 at gmail.com)
> - Pull request #613 - Add documentation for Darklaf properties. Jannis Weis
> - Update SpotBugs to 4.1.2 (from 4.1.1), upgrade spotbugs-gradle-plugin to 4.5.0 (from 2.0.0)
> - Update org.sonarqube Gradle plugin to 3.0 (from 2.7.1)
> - Update Apache ActiveMQ to 5.16.0 (from 5.15.11)
> - Update Bouncycastle to 1.66 (from 1.64)
> - Update Apache commons-io to 2.7 (from 2.6)
> - Update Apache commons-lang3 to 3.11 (from 3.10)
> - Update Apache commons-net to 3.7 (from 3.6)
> - Update Apache commons-pool2 to 2.9.0 (from 2.8.0)
> - Update Apache commons-text to 1.9 (from 1.8)
> - Update equalsverifier to 3.4.2 (from 3.1.13)
> - Update junit5 to 5.6.2 (from 5.6.0)
> - Update Apache log4j2 to 2.13.3 (from 2.13.1)
> - Update rsyntaxtextarea to 3.1.1 (from 3.1.0)
> - Update JUnit5 to 5.7.0 (from 5.6.2)
> - Update Rhino to 1.7.13 (from 1.7.12)
> - Update XStream to 1.4.14 (from 1.4.14.1)
> - Update Apache commons-dbcp2 to 2.8.0 (from 2.7.0)
> - Pull request #635 - Correct some image ratios in the documentation. Patch provided by Vincent Daburon (vdaburon at gmail.com)

> Bug fixes

> ### HTTP Samplers and Test Script Recorder

> - Bug 64479 - Regression: HTTP(s) Script Recorder prevents proper shutdown in non-GUI mode
> - Bug 64653 - Exclude Javascript and JSON from parsing for charsets from forms by proxy

> ### Other Samplers

> ### Controllers

> - Bug 64795 - Generate summary report may not output a summary line in the configured interval (`summariser.interval`): Clarify documentation

> ### Listeners

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

> - Bug 64638 - JSON JMESPath Assertion / JSON Assertion: Opening GUI shows a horizontal scrollbar that keeps sliding
> - Bug 64915 - JMeter Cache Manager misbehaving when "Use Cache-Control/Expires header" is checked

> ### Functions

> ### I18N

> ### Report / Dashboard

> - Bug 64547 - Report/Dashboard: Ensure graphs Response codes per second is not broken by empty response code in SampleResult. Contributed by Ubik Load Pack (https://ubikloadpack.com)
> - Bug 64617 - HTML report: In graph Response Time Percentiles Over Time 90,95,99th percentile correspond in reality to 0.90, 0.95 and 0.99 percentiles
> - 64553Bug When using Transaction Controller, send Bytes and Received Bytes are displayed as 0 in the influxdb(BackendListener) -
> - Bug 64624 - Use less aggressive escaping for JSON Strings in reports error messages

> ### Documentation

> - Pull request #571 - Correct documented name of generated CA when using proxy script recorder. Part of a bigger PR. Vincent Daburon (vdaburon at gmail.com)
> - Change documentation of the special header functionality of the mirror server to reflect the implementation.

> ### General

> - Bug 64448 - User Defined Variable Duplication in Right Click Context Menu
> - Bug 64499 - Exiting JMeter when `jmeterengine.stopfail.system.exit=true` takes too much time if threads are not stopped
> - Bug 64510 - Darklaf- IntelliJ Theme throws NPE in DarkTreeUI on MacOS
> - Bug 64543 - On MacOSX, Darklaf- IntelliJ Theme throws NPE in javax.swing.ToolTipManager.initiateToolTip
> - Bug 64594 - Unable to enter variable values instead of numeric values in components using PowerTableModel (Impacts 3rd party plugins like Throughput Shaping Timer)
> - Bug 64475 - Menu Generate HTML Report: When report generation fails due to timeout, error message is not explicit. Contributed by Ubik Load Pack (https://ubikloadpack.com)
> - Bug 64627 - Programmatic manipulation of the control flow via API methods of JMeterContext is not working as it used to before 5.0. Contributed by Till Neunast
> - Bug 64647 - groovy-dateutil is missing in distribution
> - Bug 64640 - Darklaf: NPE at com.github.weisj.darklaf.ui.DarkPopupFactory.getPopupType(DarkPopupFactory.java:96)
> - Bug 64641 - Darklaf: NPE at com.github.weisj.darklaf.ui.tree.DarkTreeUI.isChildOfSelectionPath(DarkTreeUI.java:603) ~[darklaf-core-2.4.2-SNAPSHOT.jar:2.4.2-SNAPSHOT]
> - Bug 64453 - Darklaf: Save Test Plan as New Folder failure
> - Bug 64625 - Darklaf: trying to select a folder in Browse leads to an error popup and stacktrace
> - Bug 64711 - Textarea Colors are not good in dark modes. Contributed by Jannis Weis
> - Bug 64935 - A broken plugin class should not prevent JMeter from starting

> Thanks

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

> - Michael Weidmann (https://github.com/michaelweidmann)
> - Deng Liming (liming.d.pro at gmail.com)
> - jmetertea (https://github.com/jmetertea)
> - Ubik Load Pack
> - Jannis Weis
> - Daniel van den Ouden
> - Till Neunast (https://github.com/tilln)
> - Pooja Chandak (poojachandak002 at gmail.com)
> - Vincent Daburon (vdaburon at gmail.com)
> - Woonsan Ko (woonsan at apache.org)
> - Timo (ASF.Software.Timo at Leefers.eu)
> - Graham Russell (graham at ham1.co.uk)

> We also thank bug reporters who helped us improve JMeter.

> - Hiroyoshi Mitsumori (mitsumori at mis.dev)

> Apologies if we have omitted anyone else.

> Known problems and workarounds

> - The Once Only controller behaves correctly under a Thread Group or Loop Controller, but otherwise its behaviour is not consistent (or clearly specified).
> - The numbers that appear to the left of the green box are the number of active threads / total number of threads, the total number of threads only applies to a locally run test, otherwise it will show `0` (see Bug 55510 ).
> - Note that under some windows systems you may have this WARNING:

>       java.util.prefs.WindowsPreferences
>       WARNING: Could not open/create prefs root node Software\JavaSoft\Prefs at root 0
>       x80000002. Windows RegCreateKeyEx(…) returned error code 5.

>   The fix is to run JMeter as Administrator, it will create the registry key for you, then you can restart JMeter as a normal user and you won't have the warning anymore.
> - You may encounter the following error:

>       java.security.cert.CertificateException: Certificates does not conform to algorithm constraints

>   if you run a HTTPS request on a web site with a SSL certificate (itself or one of SSL certificates in its chain of trust) with a signature algorithm using MD2 (like `md2WithRSAEncryption`) or with a SSL certificate with a size lower than 1024 bits. This error is related to increased security in Java 8+.
>   To allow you to perform your HTTPS request, you can downgrade the security of your Java installation by editing the Java `jdk.certpath.disabledAlgorithms` property. Remove the MD2 value or the constraint on size, depending on your case.
>   This property is in this file:

>       JAVA_HOME/jre/lib/security/java.security

>   See Bug 56357 for details.
> - Under Mac OSX Aggregate Graph will show wrong values due to mirroring effect on numbers. This is due to a known Java bug, see Bug JDK-8065373 The fix is to use JDK8_u45 or later.
> - View Results Tree may fail to display some HTML code under HTML renderer, see Bug 54586 . This is due to a known Java bug which fails to parse "`px`" units in row/col attributes. See Bug JDK-8031109 The fix is to use JDK9 b65 or later.
> - JTable selection with keyboard (SHIFT + up/down) is totally unusable with Java 7 on Mac OSX. This is due to a known Java bug JDK-8025126 The fix is to use JDK 8 b132 or later.
> - Since Java 11 the JavaScript implementation Nashorn has been deprecated. Java will emit the following deprecation warnings, if you are using JavaScript based on Nashorn.

>       Warning: Nashorn engine is planned to be removed from a future JDK release

>   To silence these warnings, add `-Dnashorn.args=--no-deprecation-warning` to your Java arguments. That can be achieved by setting the enviroment variable `JVM_ARGS`

>       export JVM_ARGS="-Dnashorn.args=--no-deprecation-warning"

> - With Java 15 the JavaScript implementation Nashorn has been removed. To add back a JSR-223 compatible JavaScript engine you have two options:
>   Use Mozilla Rhino
>     Copy rhino-engine-1.7.13.jar into `$JMETER_HOME/lib/ext`.
>   Use OpenJDK Nashorn
>     The OpenJDK Nashorn implementation comes as a module. To use it, you will have to download it and add it to the module path. A hacky way to download the version 15.0 and its dependencies and set the module path is outlined below:

>         mkdir lib/modules
>         pushd lib/modules
>         wget https://repo1.maven.org/maven2/org/openjdk/nashorn/nashorn-core/15.0/nashorn-core-15.0.jar
>         wget https://repo1.maven.org/maven2/org/ow2/asm/asm/9.0/asm-9.0.jar
>         wget https://repo1.maven.org/maven2/org/ow2/asm/asm-commons/9.0/asm-commons-9.0.jar
>         wget https://repo1.maven.org/maven2/org/ow2/asm/asm-util/9.0/asm-util-9.0.jar
>         wget https://repo1.maven.org/maven2/org/ow2/asm/asm-tree/9.0/asm-tree-9.0.jar
>         wget https://repo1.maven.org/maven2/org/ow2/asm/asm-analysis/9.0/asm-analysis-9.0.jar
>         popd
>         export JVM_ARGS="--modulepath $PWD/lib/modules"
>         ./bin/jmeter

Copyright © 1999-2020, Apache Software Foundation
Apache, Apache JMeter, JMeter, the Apache feather, and the Apache JMeter logo are trademarks of the Apache Software Foundation.