Apache JMeter - Changes

Changes
> This page details the changes made in the current version only. Earlier changes are detailed in the History of Previous Changes.
> JMeter 5.6.x requires Java 8 or later for execution (Java 17 or later recommended). The next major release would require Java 17 or later.
> # Version 5.6.3 Summary Bug fixes
> Improvements
> ### General Pull request #6199 - Enable use of `${...}` expressions for `TransactionController` "generate parent sample", and "include timers" checkboxes Pull request #6199 - Enable use of `${...}` expressions for `ThreadGroupGui` "scheduler" checkbox Pull request #6199 - Enable use of `${...}` expressions for `HTTP Request` "retrieve embedded resources", "download resources concurrently", and "store as MD5" checkboxes
> Bug fixes
> ### General Issue #6043 Pull request #6044 - JMeter 5.6 shows 0 as a min response time in summary report Restored binary API compatibility with pre-5.6.2: restore public methods to non-static as they were before 5.6.2 `JavaSamplerContext.getJMeterVariables`, `JavaSamplerContext.getJMeterProperties`, `BoundaryExtractor.extractAll`, `AuthManager.setupCredentials`, `HttpRequestHdr.getMultipartConfig`, (regression since 5.6.2) Issue #6165 Pull request #6192 - The Constant Throughput Timer is throwing a NullPointerException when using variables (vars.get) in "Target Throughput"-field Issue #6162The Constant Timer is throwing a NullPointerException when using variables (vars.get) in "delay"-field Pull request #6193 - Log errors happening while JMeter starts the test (previously, errors from TestStateListener.testStarted were not logged) Pull request #6216 - Pass JDBCSampler.maxRows to Statement.setMaxRows so the driver does not fetch extra rows from the database
> Non-functional changes
> Pull request #6166 - Use Gradle to 8.5 for building JMeter Require Java 17 for building JMeter Pull request #6199 - Improved API for programmatic test plan creation, see default implementations of `createTestElement`, `modifyTestElement`, and new `makeTestElement` and `assignDefaultValues` methods in `JMeterGUIComponent`. `AbstractJMeterGuiComponent.configureTestElement` is now discouraged Pull request #6212 - Refactor: migrate existing Groovy tests to Kotlin, remove Groovy compiler from the build pipeline Pull request #6214 - Refactor JUnit 3 and JUnit 4 tests to JUnit 5, remove JUnit 4 test dependency
> Dependency upgrades
> Update com.fasterxml.jackson.core:jackson-annotations to 2.16.1 (was 2.15.2) Update com.fasterxml.jackson.core:jackson-core to 2.16.1 (was 2.15.2) Update com.fasterxml.jackson.core:jackson-databind to 2.16.1 (was 2.15.2) Update com.fifesoft:rsyntaxtextarea to 3.3.4 (was 3.3.3) Update com.google.errorprone:error_prone_annotations to 2.24.0 (was 2.20.0) Update commons-codec:commons-codec to 1.16.0 (was 1.15) Update commons-io:commons-io to 2.15.1 (was 2.12.0) Update commons-logging:commons-logging to 1.3.0 (was 1.2) Update commons-net:commons-net to 3.9.0 (was 3.10.0) Update io.burt:jmespath-core to 0.6.0 (was 0.5.1) Update io.burt:jmespath-jackson to 0.6.0 (was 0.5.1) Update net.minidev:accessors-smart to 2.5.0 (was 2.4.11) Update net.minidev:json-smart to 2.5.0 (was 2.4.11) Update net.sf.saxon:Saxon-HE to 11.6 (was 11.5) Update org.apache.commons:commons-lang3 to 3.14.0 (was 3.12.0) Update org.apache.commons:commons-pool2 to 2.12.0 (was 2.11.1) Update org.apache.commons:commons-text to 1.11.0 (was 1.10.0) Update org.apache.httpcomponents.client5:httpclient5 to 5.3 (was 5.2.1) Update org.apache.httpcomponents.core5:httpcore5-h2 to 5.2.4 (was 5.2) Update org.apache.httpcomponents.core5:httpcore5 to 5.2.4 (was 5.2) Update org.apache.logging.log4j:log4j-1.2-api to 2.22.1 (was 2.20.0) Update org.apache.logging.log4j:log4j-api to 2.22.1 (was 2.20.0) Update org.apache.logging.log4j:log4j-core to 2.22.1 (was 2.20.0) Update org.apache.logging.log4j:log4j-slf4j-impl to 2.22.1 (was 2.20.0) Update org.apache.xmlgraphics:xmlgraphics-commons to 2.9 (was 2.8) Update org.checkerframework:checker-qual to 3.42.0 (was 3.35.0) Update org.codehaus.groovy:groovy-datetime to 3.0.20 (was 3.0.17) Update org.codehaus.groovy:groovy-dateutil to 3.0.20 (was 3.0.17) Update org.codehaus.groovy:groovy-jmx to 3.0.20 (was 3.0.17) Update org.codehaus.groovy:groovy-json to 3.0.20 (was 3.0.17) Update org.codehaus.groovy:groovy-jsr223 to 3.0.20 (was 3.0.17) Update org.codehaus.groovy:groovy-sql to 3.0.20 (was 3.0.17) Update org.codehaus.groovy:groovy-templates to 3.0.20 (was 3.0.17) Update org.codehaus.groovy:groovy-xml to 3.0.20 (was 3.0.17) Update org.codehaus.groovy:groovy to 3.0.20 (was 3.0.17) Remove org.jetbrains.kotlin:kotlin-stdlib-common:1.8.22 Update org.jetbrains.kotlin:kotlin-stdlib-jdk7 to 1.9.10 (was 1.8.22) Update org.jetbrains.kotlin:kotlin-stdlib-jdk8 to 1.9.10 (was 1.8.22) Update org.jetbrains.kotlin:kotlin-stdlib to 1.9.22 (was 1.8.22) Update org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm to 1.7.3 (was 1.7.1) Update org.jetbrains.kotlinx:kotlinx-coroutines-swing to 1.7.3 (was 1.7.1) Update org.jetbrains.lets-plot:base-portable-jvm to 4.1.0 (was 3.2.0) Update org.jetbrains.lets-plot:lets-plot-common to 4.1.0 (was 3.2.0) Update org.jetbrains.lets-plot:lets-plot-kotlin-jvm to 4.5.0 (was 4.4.1) Update org.jetbrains.lets-plot:plot-common-portable-jvm to 4.1.0 (was 3.2.0) Update org.jetbrains:annotations to 24.1.0 (was 24.0.1) Update org.jsoup:jsoup to 1.17.1 (was 1.16.1) Update org.mongodb:mongo-java-driver to 2.14.3 (was 2.11.3) Update org.neo4j.driver:neo4j-java-driver to 4.4.13 (was 4.4.11) Update org.ow2.asm:asm to 9.6 (was 9.5) Update org.xmlresolver:xmlresolver to 5.2.1 (was 4.6.4) Update org.xmlresolver:xmlresolver:data to 5.2.1 (was 4.6.4)
> Thanks
> We thank all contributors mentioned in bug and improvement sections above: We also thank bug reporters who helped us improve JMeter. 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.14.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 (or later) 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.4/nashorn-core-15.4.jar
>         wget https://repo1.maven.org/maven2/org/ow2/asm/asm/9.6/asm-9.6.jar
>         wget https://repo1.maven.org/maven2/org/ow2/asm/asm-commons/9.6/asm-commons-9.6.jar
>         wget https://repo1.maven.org/maven2/org/ow2/asm/asm-util/9.6/asm-util-9.6.jar
>         wget https://repo1.maven.org/maven2/org/ow2/asm/asm-tree/9.6/asm-tree-9.6.jar
>         wget https://repo1.maven.org/maven2/org/ow2/asm/asm-analysis/9.6/asm-analysis-9.6.jar
>         popd
>         export JVM_ARGS="--module-path $PWD/lib/modules"
>         ./bin/jmeter
Copyright © 1999-2023, Apache Software Foundation
Apache, Apache JMeter, JMeter, the Apache feather, and the Apache JMeter logo are trademarks of the Apache Software Foundation.