blob: 988377c81b17f92bd260f1a4d8d5343629697afa [file]
<?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 "&#x02026;">
<!ENTITY le "&#x02264;">
<!ENTITY nbsp "&#x000A0;">
<!ENTITY ndash "&#x02013;">
<!ENTITY oacute "&#x000F3;">
<!ENTITY rarr "&#x02192;">
<!ENTITY rArr "&#x021D2;">
<!ENTITY THORN "&#x000DE;">
<!ENTITY vellip "&#x022EE;">
]>
<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 6.x requires Java 17 or later for execution (Java 21 is recommended).
</note>
<!-- =================== 6.0.0 =================== -->
<h1>Version 6.0.0 </h1>
<p>
Summary
</p>
<ul>
<li><a href="#Changes">Changes</a></li>
<li><a href="#Bug fixes">Bug fixes</a></li>
</ul>
<ch_section>Changes</ch_section>
<h3>General</h3>
<ul>
<li><pr>6220</pr> Require Java 17 or later for running JMeter</li>
<li><pr>6550</pr> Require Kotlin 1.9 or later for running JMeter</li>
<li><pr>6274</pr> Change references to old MySQL driver to new class <code>com.mysql.cj.jdbc.Driver</code></li>
<li><issue>6352</issue> Calculate delays in Open Model Thread Group and Precise Throughput
Timer relative to start of Thread Group instead of the start of the test.</li>
<li><issue>6357</issue><pr>6358</pr> Ensure writable directories when copying template files while report generation.</li>
<li><pr>6509</pr><pr>6675</pr> Synchronize recent file menu across multiple JVMs. Contributed by Corneliu C (https://github.com/KingRabbid)</li>
<li><pr>6596</pr>Fallback to English locale when loading test plans that use string values for enum properties, so old sample plans load correctly even with non-English locales.</li>
</ul>
<h3>HTTP Samplers and Test Script Recorder</h3>
<ul>
<li><pr>5891</pr>Skip Internet Explorer 6-9 conditional comment processing when fetching resource links</li>
<li><issue>5466</issue>Allow enabling or disabling individual HTTP request arguments in the HTTP Sampler UI. Contributed by Pasquale Pochop (github.com/pochopsp)</li>
<li><issue>6250</issue>Avoid adding "; charset=" automatically to <code>multipart/form-data</code> requests to align behavior with modern HTTP clients.</li>
<li><issue>6080</issue>Preserve the original HTTP method when following 307 and 308 redirects according to the HTTP specification. Contributed by LeeJiWon (github.com/dlwldnjs1009)</li>
<li><issue>6267</issue><pr>6268</pr>Add a space between key and value after <code>:</code> in View Results Tree &gt; Sampler result tab for better readability.</li>
</ul>
<h3>Timers, Assertions, Config, Pre- &amp; Post-Processors</h3>
<ul>
<li><issue>6448</issue>Support trailing empty default values in JSON Extractor so expressions like <code>${VAR:-}</code> are handled correctly. Contributed by Raul Almeida (github.com/ratacolita)</li>
<li><pr>6596</pr>Add a schema for ConstantThroughputTimer and use it to ensure required properties are initialized properly.</li>
</ul>
<h3>Non-functional changes</h3>
<ul>
<li>Update Apache Tika to 3.x from 1.x to use the latest parser engine.</li>
<li>Update Saxon-HE to 12.x from 11.x for XSLT and XQuery processing.</li>
<li>Update Groovy to 5.x for the Groovy-based scripting environment.</li>
<li>Update Bouncy Castle to 1.82 for cryptographic operations.</li>
<li>Update json-path to 2.10.0 for JSON query expressions.</li>
<li>Update Neo4j Java driver to 6.x for Bolt-based database tests.</li>
<li>Update Rhino JavaScript engine to 1.8.0 for JSR-223 JavaScript execution.</li>
</ul>
<h3>UI</h3>
<ul>
<li><pr>6333</pr>Apply HiDPI mode automatically when setting up the GUI so JMeter looks sharp on high-resolution displays. Contributed by Gabriele Coletta (github.com/gdmg92)</li>
<li><pr>6656</pr>Replace the previous feather icon with the new oak leaf in the JMeter logo.</li>
</ul>
<ch_section>Bug fixes</ch_section>
<h3>General</h3>
<ul>
<li><pr>6654</pr><issue>6611</issue>Support JDK 25 and above for result collectors with empty file names</li>
<li>Trim whitespace when parsing numeric JMeter properties so accidental spaces do not silently change configuration values.</li>
<li><pr>6372</pr>Fix KeyManager logging when using CLI mode so keystore passwords are not incorrectly reported as missing. Contributed by Patrick Uiterwijk (patrick at puiterwijk.org)</li>
<li><issue>5937</issue>Remove deprecated Log4j package scanning and configure plugin metadata processing to improve startup time and avoid deprecation warnings. Contributed by Piotr P. Karwasz (github.com/piotrgithub)</li>
<li><pr>6620</pr>Fix report generation paths so dashboard output files are created in the correct location after internal refactoring.</li>
<li><bug>6456</bug>Handle malformed percent-encoded URLs gracefully when recording HTTP traffic, logging a warning instead of failing the recording.</li>
</ul>
<!-- =================== Thanks =================== -->
<ch_section>Thanks</ch_section>
<p>We thank all contributors mentioned in bug and improvement sections above:
</p>
<ul>
<li>Raul Almeida (github.com/ratacolita)</li>
<li>Pasquale Pochop (github.com/pochopsp)</li>
<li>Gabriele Coletta (github.com/gdmg92)</li>
<li>Patrick Uiterwijk (patrick at puiterwijk.org)</li>
<li>Piotr P. Karwasz (github.com/piotrgithub)</li>
</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(&hellip;) 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>
With Java 15 the JavaScript implementation <a href="https://openjdk.java.net/jeps/372">Nashorn has been removed</a>.
JMeter now ships with a JSR-223 compatible JavaScript engine by default (Mozilla Rhino 1.8.0),
so you do not need to download Rhino separately anymore.<br></br>
If you prefer to use Nashorn instead, you can still add it as a module. One way to download
version 15.7 (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.7/nashorn-core-15.7.jar
wget https://repo1.maven.org/maven2/org/ow2/asm/asm/9.9.1/asm-9.9.1.jar
wget https://repo1.maven.org/maven2/org/ow2/asm/asm-commons/9.9.1/asm-commons-9.9.1.jar
wget https://repo1.maven.org/maven2/org/ow2/asm/asm-util/9.9.1/asm-util-9.9.1.jar
wget https://repo1.maven.org/maven2/org/ow2/asm/asm-tree/9.9.1/asm-tree-9.9.1.jar
wget https://repo1.maven.org/maven2/org/ow2/asm/asm-analysis/9.9.1/asm-analysis-9.9.1.jar
popd
export JVM_ARGS="--module-path $PWD/lib/modules"
./bin/jmeter
</source>
</li>
</ul>
</section>
</body>
</document>