| <?xml version="1.0"?> |
| <!-- |
| ~ Licensed to the Apache Software Foundation (ASF) under one or more |
| ~ contributor license agreements. See the NOTICE file distributed with |
| ~ this work for additional information regarding copyright ownership. |
| ~ The ASF licenses this file to you under the Apache License, Version 2.0 |
| ~ (the "License"); you may not use this file except in compliance with |
| ~ the License. You may obtain a copy of the License at |
| ~ |
| ~ http://www.apache.org/licenses/LICENSE-2.0 |
| ~ |
| ~ Unless required by applicable law or agreed to in writing, software |
| ~ distributed under the License is distributed on an "AS IS" BASIS, |
| ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| ~ See the License for the specific language governing permissions and |
| ~ limitations under the License. |
| --> |
| |
| <!DOCTYPE document |
| [ |
| <!ENTITY hellip "…"> |
| <!ENTITY le "≤"> |
| <!ENTITY nbsp " "> |
| <!ENTITY ndash "–"> |
| <!ENTITY oacute "ó"> |
| <!ENTITY rarr "→"> |
| <!ENTITY rArr "⇒"> |
| <!ENTITY THORN "Þ"> |
| <!ENTITY vellip "⋮"> |
| ]> |
| <document> |
| <properties> |
| <author email="dev AT jmeter.apache.org">JMeter developers</author> |
| <title>Changes</title> |
| </properties> |
| <body> |
| <section name="Changes"> |
| <style type="text/css"><!-- |
| h2 { color: #960000; } |
| h3 { color: #960000; } |
| --></style> |
| <note> |
| <b>This page details the changes made in the current version only.</b> |
| <br></br> |
| Earlier changes are detailed in the <a href="changes_history.html">History of Previous Changes</a>. |
| </note> |
| |
| <br></br> |
| <note> |
| JMeter 5.6.x requires Java 8 or later for execution (Java 17 or later recommended). |
| <br></br> |
| <b>The next major release would require Java 17 or later.</b> |
| </note> |
| |
| <!-- =================== 5.6.3 =================== --> |
| |
| <h1>Version 5.6.3 </h1> |
| <p> |
| Summary |
| </p> |
| <ul> |
| <li><a href="#Bug fixes">Bug fixes</a></li> |
| </ul> |
| |
| <ch_section>Improvements</ch_section> |
| <h3>General</h3> |
| <ul> |
| <li><pr>6199</pr>Enable use of <code>${...}</code> expressions for <code>TransactionController</code> "generate parent sample", and "include timers" checkboxes</li> |
| <li><pr>6199</pr>Enable use of <code>${...}</code> expressions for <code>ThreadGroupGui</code> "scheduler" checkbox</li> |
| <li><pr>6199</pr>Enable use of <code>${...}</code> expressions for <code>HTTP Request</code> "retrieve embedded resources", "download resources concurrently", and "store as MD5" checkboxes</li> |
| </ul> |
| |
| <!-- =================== Bug fixes =================== --> |
| |
| <ch_section>Bug fixes</ch_section> |
| |
| <h3>General</h3> |
| <ul> |
| <li><issue>6043</issue><pr>6044</pr>JMeter 5.6 shows 0 as a min response time in summary report</li> |
| <li>Restored binary API compatibility with pre-5.6.2: restore public methods to non-static as they were before 5.6.2 <code>JavaSamplerContext.getJMeterVariables</code>, |
| <code>JavaSamplerContext.getJMeterProperties</code>, <code>BoundaryExtractor.extractAll</code>, |
| <code>AuthManager.setupCredentials</code>, <code>HttpRequestHdr.getMultipartConfig</code>, (regression since 5.6.2)</li> |
| <li><issue>6165</issue><pr>6192</pr>The Constant Throughput Timer is throwing a NullPointerException when using variables (vars.get) in "Target Throughput"-field</li> |
| <li><issue>6162</issue>The Constant Timer is throwing a NullPointerException when using variables (vars.get) in "delay"-field</li> |
| <li><pr>6193</pr>Log errors happening while JMeter starts the test (previously, errors from TestStateListener.testStarted were not logged)</li> |
| </ul> |
| |
| <ch_section>Non-functional changes</ch_section> |
| <ul> |
| <li><pr>6166</pr>Use Gradle to 8.5 for building JMeter</li> |
| <li>Require Java 17 for building JMeter </li> |
| <li><pr>6199</pr>Improved API for programmatic test plan creation, see default implementations of <code>createTestElement</code>, <code>modifyTestElement</code>, |
| and new <code>makeTestElement</code> and <code>assignDefaultValues</code> methods in <code>JMeterGUIComponent</code>. |
| <code>AbstractJMeterGuiComponent.configureTestElement</code> is now discouraged</li> |
| <li><pr>6212</pr>Refactor: migrate existing Groovy tests to Kotlin, remove Groovy compiler from the build pipeline</li> |
| <li><pr>6214</pr>Refactor JUnit 3 and JUnit 4 tests to JUnit 5, remove JUnit 4 test dependency</li> |
| </ul> |
| |
| <ch_section>Dependency upgrades</ch_section> |
| <ul> |
| <li>Update com.fasterxml.jackson.core:jackson-annotations to 2.16.1 (was 2.15.2)</li> |
| <li>Update com.fasterxml.jackson.core:jackson-core to 2.16.1 (was 2.15.2)</li> |
| <li>Update com.fasterxml.jackson.core:jackson-databind to 2.16.1 (was 2.15.2)</li> |
| <li>Update com.fifesoft:rsyntaxtextarea to 3.3.4 (was 3.3.3)</li> |
| <li>Update com.google.errorprone:error_prone_annotations to 2.24.0 (was 2.20.0)</li> |
| <li>Update commons-codec:commons-codec to 1.16.0 (was 1.15)</li> |
| <li>Update commons-io:commons-io to 2.15.1 (was 2.12.0)</li> |
| <li>Update commons-logging:commons-logging to 1.3.0 (was 1.2)</li> |
| <li>Update commons-net:commons-net to 3.9.0 (was 3.10.0)</li> |
| <li>Update io.burt:jmespath-core to 0.6.0 (was 0.5.1)</li> |
| <li>Update io.burt:jmespath-jackson to 0.6.0 (was 0.5.1)</li> |
| <li>Update net.minidev:accessors-smart to 2.5.0 (was 2.4.11)</li> |
| <li>Update net.minidev:json-smart to 2.5.0 (was 2.4.11)</li> |
| <li>Update net.sf.saxon:Saxon-HE to 11.6 (was 11.5)</li> |
| <li>Update org.apache.commons:commons-lang3 to 3.14.0 (was 3.12.0)</li> |
| <li>Update org.apache.commons:commons-pool2 to 2.12.0 (was 2.11.1)</li> |
| <li>Update org.apache.commons:commons-text to 1.11.0 (was 1.10.0)</li> |
| <li>Update org.apache.httpcomponents.client5:httpclient5 to 5.3 (was 5.2.1)</li> |
| <li>Update org.apache.httpcomponents.core5:httpcore5-h2 to 5.2.4 (was 5.2)</li> |
| <li>Update org.apache.httpcomponents.core5:httpcore5 to 5.2.4 (was 5.2)</li> |
| <li>Update org.apache.logging.log4j:log4j-1.2-api to 2.22.1 (was 2.20.0)</li> |
| <li>Update org.apache.logging.log4j:log4j-api to 2.22.1 (was 2.20.0)</li> |
| <li>Update org.apache.logging.log4j:log4j-core to 2.22.1 (was 2.20.0)</li> |
| <li>Update org.apache.logging.log4j:log4j-slf4j-impl to 2.22.1 (was 2.20.0)</li> |
| <li>Update org.apache.xmlgraphics:xmlgraphics-commons to 2.9 (was 2.8)</li> |
| <li>Update org.checkerframework:checker-qual to 3.42.0 (was 3.35.0)</li> |
| <li>Update org.codehaus.groovy:groovy-datetime to 3.0.20 (was 3.0.17)</li> |
| <li>Update org.codehaus.groovy:groovy-dateutil to 3.0.20 (was 3.0.17)</li> |
| <li>Update org.codehaus.groovy:groovy-jmx to 3.0.20 (was 3.0.17)</li> |
| <li>Update org.codehaus.groovy:groovy-json to 3.0.20 (was 3.0.17)</li> |
| <li>Update org.codehaus.groovy:groovy-jsr223 to 3.0.20 (was 3.0.17)</li> |
| <li>Update org.codehaus.groovy:groovy-sql to 3.0.20 (was 3.0.17)</li> |
| <li>Update org.codehaus.groovy:groovy-templates to 3.0.20 (was 3.0.17)</li> |
| <li>Update org.codehaus.groovy:groovy-xml to 3.0.20 (was 3.0.17)</li> |
| <li>Update org.codehaus.groovy:groovy to 3.0.20 (was 3.0.17)</li> |
| <li>Remove org.jetbrains.kotlin:kotlin-stdlib-common:1.8.22</li> |
| <li>Update org.jetbrains.kotlin:kotlin-stdlib-jdk7 to 1.9.10 (was 1.8.22)</li> |
| <li>Update org.jetbrains.kotlin:kotlin-stdlib-jdk8 to 1.9.10 (was 1.8.22)</li> |
| <li>Update org.jetbrains.kotlin:kotlin-stdlib to 1.9.22 (was 1.8.22)</li> |
| <li>Update org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm to 1.7.3 (was 1.7.1)</li> |
| <li>Update org.jetbrains.kotlinx:kotlinx-coroutines-swing to 1.7.3 (was 1.7.1)</li> |
| <li>Update org.jetbrains.lets-plot:base-portable-jvm to 4.1.0 (was 3.2.0)</li> |
| <li>Update org.jetbrains.lets-plot:lets-plot-common to 4.1.0 (was 3.2.0)</li> |
| <li>Update org.jetbrains.lets-plot:lets-plot-kotlin-jvm to 4.5.0 (was 4.4.1)</li> |
| <li>Update org.jetbrains.lets-plot:plot-common-portable-jvm to 4.1.0 (was 3.2.0)</li> |
| <li>Update org.jetbrains:annotations to 24.1.0 (was 24.0.1)</li> |
| <li>Update org.jsoup:jsoup to 1.17.1 (was 1.16.1)</li> |
| <li>Update org.mongodb:mongo-java-driver to 2.14.3 (was 2.11.3)</li> |
| <li>Update org.neo4j.driver:neo4j-java-driver to 4.4.13 (was 4.4.11)</li> |
| <li>Update org.ow2.asm:asm to 9.6 (was 9.5)</li> |
| <li>Update org.xmlresolver:xmlresolver to 5.2.1 (was 4.6.4)</li> |
| <li>Update org.xmlresolver:xmlresolver:data to 5.2.1 (was 4.6.4)</li> |
| </ul> |
| |
| <!-- =================== Thanks =================== --> |
| |
| <ch_section>Thanks</ch_section> |
| <p>We thank all contributors mentioned in bug and improvement sections above: |
| </p> |
| <ul> |
| </ul> |
| <p>We also thank bug reporters who helped us improve JMeter.</p> |
| <ul> |
| </ul> |
| <p> |
| Apologies if we have omitted anyone else. |
| </p> |
| <!-- =================== Known bugs or issues related to JAVA Bugs =================== --> |
| |
| <ch_section>Known problems and workarounds</ch_section> |
| <ul> |
| <li>The Once Only controller behaves correctly under a Thread Group or Loop Controller, |
| but otherwise its behaviour is not consistent (or clearly specified).</li> |
| |
| <li> |
| 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 <code>0</code> (see <bugzilla>55510</bugzilla>). |
| </li> |
| |
| <li> |
| Note that under some windows systems you may have this WARNING: |
| <source> |
| 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. |
| </source> |
| 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. |
| </li> |
| |
| <li> |
| You may encounter the following error: |
| <source>java.security.cert.CertificateException: Certificates does not conform to algorithm constraints</source> |
| 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 <code>md2WithRSAEncryption</code>) or with a SSL certificate with a size lower than 1024 bits. |
| This error is related to increased security in Java 8+. |
| <br></br> |
| To allow you to perform your HTTPS request, you can downgrade the security of your Java installation by editing |
| the Java <code>jdk.certpath.disabledAlgorithms</code> property. Remove the MD2 value or the constraint on size, depending on your case. |
| <br></br> |
| This property is in this file: |
| <source>JAVA_HOME/jre/lib/security/java.security</source> |
| See <bugzilla>56357</bugzilla> for details. |
| </li> |
| |
| <li> |
| 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 <a href="https://bugs.openjdk.java.net/browse/JDK-8065373" >JDK-8065373</a> |
| The fix is to use JDK8_u45 or later. |
| </li> |
| |
| <li> |
| View Results Tree may fail to display some HTML code under HTML renderer, see <bugzilla>54586</bugzilla>. |
| This is due to a known Java bug which fails to parse "<code>px</code>" units in row/col attributes. |
| See Bug <a href="https://bugs.openjdk.java.net/browse/JDK-8031109" >JDK-8031109</a> |
| The fix is to use JDK9 b65 or later. |
| </li> |
| |
| <li> |
| JTable selection with keyboard (<keycombo><keysym>SHIFT</keysym><keysym>up/down</keysym></keycombo>) is totally unusable with Java 7 on Mac OSX. |
| This is due to a known Java bug <a href="https://bugs.openjdk.java.net/browse/JDK-8025126" >JDK-8025126</a> |
| The fix is to use JDK 8 b132 or later. |
| </li> |
| |
| <li> |
| Since Java 11 the JavaScript implementation <a href="https://openjdk.java.net/jeps/335">Nashorn has been deprecated</a>. |
| Java will emit the following deprecation warnings, if you are using JavaScript based on Nashorn. |
| <source> |
| Warning: Nashorn engine is planned to be removed from a future JDK release |
| </source> |
| To silence these warnings, add <code>-Dnashorn.args=--no-deprecation-warning</code> to your Java arguments. |
| That can be achieved by setting the enviroment variable <code>JVM_ARGS</code> |
| <source> |
| export JVM_ARGS="-Dnashorn.args=--no-deprecation-warning" |
| </source> |
| </li> |
| |
| <li> |
| With Java 15 the JavaScript implementation <a href="https://openjdk.java.net/jeps/372">Nashorn has been removed</a>. To add back a JSR-223 compatible JavaScript engine you have two options: |
| <dl> |
| <dt>Use Mozilla Rhino</dt> |
| <dd>Copy <a href="https://github.com/mozilla/rhino/releases/download/Rhino1_7_14_Release/rhino-engine-1.7.14.jar">rhino-engine-1.7.14.jar</a> into <code>$JMETER_HOME/lib/ext</code>.</dd> |
| <dt>Use OpenJDK Nashorn</dt> |
| <dd> |
| 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: |
| <source> |
| 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 |
| </source> |
| </dd> |
| </dl> |
| </li> |
| |
| </ul> |
| |
| </section> |
| </body> |
| </document> |