| <?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 rarr "→" > |
| <!ENTITY vellip "⋮" > |
| <!ENTITY nbsp " " > |
| ]> |
| <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> |
| |
| |
| <!-- =================== 5.4 =================== --> |
| |
| <h1>Version 5.4</h1> |
| <p> |
| Summary |
| </p> |
| <ul> |
| <li><a href="#New and Noteworthy">New and Noteworthy</a></li> |
| <li><a href="#Incompatible changes">Incompatible changes</a></li> |
| <li><a href="#Bug fixes">Bug fixes</a></li> |
| <li><a href="#Improvements">Improvements</a></li> |
| <li><a href="#Non-functional changes">Non-functional changes</a></li> |
| <li><a href="#Known problems and workarounds">Known problems and workarounds</a></li> |
| <li><a href="#Thanks">Thanks</a></li> |
| |
| </ul> |
| |
| <ch_section>New and Noteworthy</ch_section> |
| <!-- |
| <ch_title>Core improvements</ch_title> |
| <ch_title>Test Plan</ch_title> |
| <ch_title>Scripting / Debugging enhancements</ch_title> |
| <ch_title>Functions</ch_title> |
| --> |
| <ch_title>UX improvements</ch_title> |
| |
| <p><bug>62179</bug><bug>64658</bug>The splash screen is now application-modal rather than system-modal, so it does not block other |
| applications when JMeter is starting up.</p> |
| |
| <!-- =================== Incompatible changes =================== --> |
| |
| <ch_section>Incompatible changes</ch_section> |
| <ul> |
| <li>Remove LogKit logger functionality from some classes. This was intended to completely remove |
| <code>LoggingManager</code> class (it has been deprecated since JMeter 3.2), but as jmeter-plugins |
| depended on it, <code>LoggingManager</code> and our <code>LogKit</code>-adapter will remain for |
| this version (but is still deprecated).</li> |
| </ul> |
| <!-- =================== Improvements =================== --> |
| |
| <ch_section>Improvements</ch_section> |
| |
| <h3>HTTP Samplers and Test Script Recorder</h3> |
| <ul> |
| <li><bug>53848</bug><bug>63527</bug>Implement a new setting to allow the exclusion of embedded URLs</li> |
| <li><bug>64696</bug><pr>571</pr><pr>595</pr>Freestyle format for names in (Default)SamplerCreater. Based on a patch by Vincent Daburon (vdaburon at gmail.com)</li> |
| <li><bug>64752</bug>Add GraphQL/HTTP Request Sampler. Contributed by woonsan.</li> |
| </ul> |
| |
| <h3>Other samplers</h3> |
| <ul> |
| <li><bug>64555</bug>Set JMSType header field through JMSProperties. Contributed by Daniel van den Ouden</li> |
| </ul> |
| |
| <h3>Controllers</h3> |
| <ul> |
| </ul> |
| |
| <h3>Listeners</h3> |
| <ul> |
| <li><pr>544</pr>Add BackendListener that sends "raw" results to InfluxDB. Contributed by Graham Russell |
| (graham at ham1.co.uk)</li> |
| </ul> |
| |
| <h3>Timers, Assertions, Config, Pre- & Post-Processors</h3> |
| <ul> |
| </ul> |
| |
| <h3>Functions</h3> |
| <ul> |
| </ul> |
| |
| <h3>I18N</h3> |
| <ul> |
| </ul> |
| |
| <h3>Report / Dashboard</h3> |
| <ul> |
| <li><bug>64824</bug>Dashboard/HTML Report: Rename <code>KO</code> to <code>FAIL</code></li> |
| <li><bug>64936</bug>Increase generate_report_ui.generation_timeout to 5 minutes to handle large performance test</li> |
| </ul> |
| |
| <h3>General</h3> |
| <ul> |
| <li><bug>64446</bug>Better parse curl commands with backslash at line endings and support <code>PUT</code> method with data arguments</li> |
| <li><pr>599</pr>Ensure all buttons added to the toolbar behave/look consistently. Contributed by Jannis Weis</li> |
| <li><bug>64581</bug>Allow <code>SampleResult#setIgnore</code> to influence behaviour on Sampler Error</li> |
| <li><bug>64680</bug>Fall back to <code>JMETER_HOME</code> on startup to detect JMeter's installation directory</li> |
| <li><bug>64787</bug><pr>630</pr>Add Korean translation. Contributed by Woonsan Ko (woonsan at apache.org)</li> |
| <li><bug>64776</bug>Add the ability to install additional SecurityProvider. Contributed by Timo (ASF.Software.Timo at Leefers.eu)</li> |
| </ul> |
| |
| <ch_section>Non-functional changes</ch_section> |
| <ul> |
| <li>Build system upgraded from Gradle to 6.7 (from 6.6)</li> |
| <li><pr>594</pr>Updated neo4j-java-driver to 4.2.0 (from 1.7.5)</li> |
| <li><bug>64454</bug>More precise error message, when no datasource value can be found in JDBC sampler</li> |
| <li><bug>64440</bug>Log exeptions reported via <code>JMeterUtils#reportToUser</code> even when in GUI mode</li> |
| <li><pr>591</pr>Remove deprecated sudo flag from travis file. Deng Liming (liming.d.pro at gmail.com)</li> |
| <li>Updated Darklaf to 2.4.10 (from 2.1.1)</li> |
| <li>Updated Groovy to 3.0.5 (from 3.0.3)</li> |
| <li><pr>596</pr>Use neutral words in documentation</li> |
| <li><bug>63809</bug><pr>557</pr>Updated commons-collections to 4.4 (from 3.2.2) while keeping the jars for the old commons-collections 3.x for compatibility</li> |
| <li><pr>598</pr>Add another option for creating diffs to the building page. Contributed by jmetertea (github.com/jmetertea)</li> |
| <li><pr>609</pr>Make use of newer API for darklaf installation. Jannis Weis</li> |
| <li><pr>612</pr>Correct typos in <code>README.md</code>. Based on patches by Pooja Chandak (poojachandak002 at gmail.com)</li> |
| <li><pr>613</pr>Add documentation for Darklaf properties. Jannis Weis</li> |
| <li>Update SpotBugs to 4.1.2 (from 4.1.1), upgrade spotbugs-gradle-plugin to 4.5.0 (from 2.0.0)</li> |
| <li>Update org.sonarqube Gradle plugin to 3.0 (from 2.7.1)</li> |
| <li>Update Apache ActiveMQ to 5.16.0 (from 5.15.11)</li> |
| <li>Update Bouncycastle to 1.66 (from 1.64)</li> |
| <li>Update Apache commons-io to 2.7 (from 2.6)</li> |
| <li>Update Apache commons-lang3 to 3.11 (from 3.10)</li> |
| <li>Update Apache commons-net to 3.7 (from 3.6)</li> |
| <li>Update Apache commons-pool2 to 2.9.0 (from 2.8.0)</li> |
| <li>Update Apache commons-text to 1.9 (from 1.8)</li> |
| <li>Update equalsverifier to 3.4.2 (from 3.1.13)</li> |
| <li>Update junit5 to 5.6.2 (from 5.6.0)</li> |
| <li>Update Apache log4j2 to 2.13.3 (from 2.13.1)</li> |
| <li>Update rsyntaxtextarea to 3.1.1 (from 3.1.0)</li> |
| <li>Update JUnit5 to 5.7.0 (from 5.6.2)</li> |
| <li>Update Rhino to 1.7.13 (from 1.7.12)</li> |
| <li>Update XStream to 1.4.14 (from 1.4.14.1)</li> |
| <li>Update Apache commons-dbcp2 to 2.8.0 (from 2.7.0)</li> |
| <li><pr>635</pr>Correct some image ratios in the documentation. Patch provided |
| by Vincent Daburon (vdaburon at gmail.com)</li> |
| </ul> |
| |
| <!-- =================== Bug fixes =================== --> |
| |
| <ch_section>Bug fixes</ch_section> |
| |
| <h3>HTTP Samplers and Test Script Recorder</h3> |
| <ul> |
| <li><bug>64479</bug>Regression: HTTP(s) Script Recorder prevents proper shutdown in non-GUI mode</li> |
| <li><bug>64653</bug>Exclude Javascript and JSON from parsing for charsets from forms by proxy</li> |
| </ul> |
| |
| <h3>Other Samplers</h3> |
| <ul> |
| </ul> |
| |
| <h3>Controllers</h3> |
| <ul> |
| <li><bug>64795</bug>Generate summary report may not output a summary line in the configured interval (<code>summariser.interval</code>): Clarify documentation</li> |
| </ul> |
| |
| <h3>Listeners</h3> |
| <ul> |
| </ul> |
| |
| <h3>Timers, Assertions, Config, Pre- & Post-Processors</h3> |
| <ul> |
| <li><bug>64638</bug>JSON JMESPath Assertion / JSON Assertion: Opening GUI shows a horizontal scrollbar that keeps sliding</li> |
| <li><bug>64915</bug>JMeter Cache Manager misbehaving when "Use Cache-Control/Expires header" is checked</li> |
| </ul> |
| |
| <h3>Functions</h3> |
| <ul> |
| </ul> |
| |
| <h3>I18N</h3> |
| <ul> |
| </ul> |
| |
| <h3>Report / Dashboard</h3> |
| <ul> |
| <li><bug>64547</bug>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)</li> |
| <li><bug>64617</bug>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</li> |
| <li>64553<bug>When using Transaction Controller, send Bytes and Received Bytes are displayed as 0 in the influxdb(BackendListener)</bug></li> |
| <li><bug>64624</bug>Use less aggressive escaping for JSON Strings in reports error messages</li> |
| </ul> |
| |
| <h3>Documentation</h3> |
| <ul> |
| <li><pr>571</pr>Correct documented name of generated CA when using proxy script recorder. Part of a bigger PR. Vincent Daburon (vdaburon at gmail.com)</li> |
| <li>Change documentation of the special header functionality of the mirror server to reflect the implementation.</li> |
| </ul> |
| |
| <h3>General</h3> |
| <ul> |
| <li><bug>64448</bug>User Defined Variable Duplication in Right Click Context Menu</li> |
| <li><bug>64499</bug>Exiting JMeter when <code>jmeterengine.stopfail.system.exit=true</code> takes too much time if threads are not stopped</li> |
| <li><bug>64510</bug>Darklaf- IntelliJ Theme throws NPE in DarkTreeUI on MacOS</li> |
| <li><bug>64543</bug>On MacOSX, Darklaf- IntelliJ Theme throws NPE in javax.swing.ToolTipManager.initiateToolTip</li> |
| <li><bug>64594</bug>Unable to enter variable values instead of numeric values in components using PowerTableModel (Impacts 3rd party plugins like Throughput Shaping Timer)</li> |
| <li><bug>64475</bug>Menu Generate HTML Report: When report generation fails due to timeout, error message is not explicit. Contributed by Ubik Load Pack (https://ubikloadpack.com)</li> |
| <li><bug>64627</bug>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</li> |
| <li><bug>64647</bug>groovy-dateutil is missing in distribution</li> |
| <li><bug>64640</bug>Darklaf: NPE at com.github.weisj.darklaf.ui.DarkPopupFactory.getPopupType(DarkPopupFactory.java:96)</li> |
| <li><bug>64641</bug>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]</li> |
| <li><bug>64453</bug>Darklaf: Save Test Plan as New Folder failure</li> |
| <li><bug>64625</bug>Darklaf: trying to select a folder in Browse leads to an error popup and stacktrace</li> |
| <li><bug>64711</bug>Textarea Colors are not good in dark modes. Contributed by Jannis Weis</li> |
| <li><bug>64935</bug>A broken plugin class should not prevent JMeter from starting</li> |
| </ul> |
| |
| <!-- =================== Thanks =================== --> |
| |
| <ch_section>Thanks</ch_section> |
| <p>We thank all contributors mentioned in bug and improvement sections above: |
| </p> |
| <ul> |
| <li>Michael Weidmann (https://github.com/michaelweidmann)</li> |
| <li>Deng Liming (liming.d.pro at gmail.com)</li> |
| <li>jmetertea (https://github.com/jmetertea)</li> |
| <li><a href="https://ubikloadpack.com" >Ubik Load Pack</a></li> |
| <li><a href="https://github.com/weisJ/darklaf">Jannis Weis</a></li> |
| <li><a href="https://github.com/topicus-pw-dvdouden">Daniel van den Ouden</a></li> |
| <li>Till Neunast (https://github.com/tilln)</li> |
| <li>Pooja Chandak (poojachandak002 at gmail.com)</li> |
| <li>Vincent Daburon (vdaburon at gmail.com)</li> |
| <li>Woonsan Ko (woonsan at apache.org)</li> |
| <li>Timo (ASF.Software.Timo at Leefers.eu)</li> |
| <li>Graham Russell (graham at ham1.co.uk)</li> |
| </ul> |
| <p>We also thank bug reporters who helped us improve JMeter.</p> |
| <ul> |
| <li>Hiroyoshi Mitsumori (mitsumori at mis.dev)</li> |
| </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_13_Release/rhino-engine-1.7.13.jar">rhino-engine-1.7.13.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 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.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 |
| </source> |
| </dd> |
| </dl> |
| </li> |
| |
| </ul> |
| |
| </section> |
| </body> |
| </document> |