| <?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 " " > |
| <!ENTITY ndash "–" > |
| ]> |
| <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.5 =================== --> |
| |
| <h1>Version 5.5</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> |
| <p>JMeter now supports Java 17</p> |
| |
| <p>JMeter 5.5 ships with log4j2 2.17.2</p> |
| |
| <ch_title>Open Model Thread Group</ch_title> |
| |
| <p>New component: <code><a href="./usermanual/component_reference.html#Open_Model_Thread_Group">Open Model Thread Group</a></code> |
| allows creating load profiles with variable load.</p> |
| |
| <p>For example, if you need to gradually increase load from <code>0/sec</code> to <code>10/sec</code> during <code>minute</code> |
| you could previously use <code>Thread Group + Timer</code> combinations. However, then you need to compute |
| the expected number of threads, ensure they are created only when needed, and so on.</p> |
| |
| <p>With <code>Open Model Thread Group</code> you can configure the same load profile as <code>rate(0/sec) random_arrivals(1 minute) rate(10/sec)</code>. |
| The thread group would spawn threads as needed to drive the configured load. |
| The load profile can use properties, so you can launch the same script with slightly different load levels, |
| however, the profile can't be updated while the test is running. |
| </p> |
| |
| <p>The new thread group is experimental in JMeter 5.5, so please feel free to submit your feedback.</p> |
| <figure width="1398" height="1117" image="open_model_thread_group.png">Open Model Thread Group sample</figure> |
| |
| <ch_title>Preparing the deprecation of Oro Regex usage</ch_title> |
| |
| <p>Another experimental feature in JMeter 5.5 is the ability to replace the Oro based Regex implementation |
| by the built-in Java based one. To choose the Java based one, set the JMeter property <code>jmeter.regex.engine</code> |
| to the value <code>java</code>.</p> |
| |
| <ch_title>Core improvements</ch_title> |
| <p>Kotlin language is now used in some core classes and tests (e.g. Open Model Thread Group). |
| JMeter is compiled with <code>apiTarget=1.5</code>, and it ships with <code>kotlin-stdlib</code> 1.6. |
| </p> |
| |
| <p><a href="https://github.com/JetBrains/lets-plot-kotlin">lets-plot-kotlin</a> charting library is added, |
| so it will be easier to refine and create new charts in UI in the future. |
| </p> |
| |
| <ch_section>Improvements</ch_section> |
| |
| <h3>Thread Groups</h3> |
| <ul> |
| <li>New component: <code><a href="./usermanual/component_reference.html#Open_Model_Thread_Group">Open Model Thread Group</a></code></li> |
| </ul> |
| |
| <h3>HTTP Samplers and Test Script Recorder</h3> |
| <ul> |
| <li><bug>65027</bug>Detect mime-type for files automatically when adding files to HTTP Sampler</li> |
| <li><bug>65020</bug>HTTP Sampler/Files upload tab – add missing buttons</li> |
| <li><pr>650</pr>HTTP Sampler timestamp fix when exception is caught. Contributed by Konstantin Kalinin (konstantin at kkalinin.pro)</li> |
| <li><bug>65328</bug><pr>666</pr>HTTP 308 Permanent Redirect is not supported. Contributed by |
| Baptiste Gaillard (baptiste.gaillard at gmail.com)</li> |
| </ul> |
| |
| <h3>Other samplers</h3> |
| <ul> |
| <li><bug>65149</bug><pr>644</pr>Encode the personal part of email addresses in SMTP Sampler</li> |
| <li><pr>638</pr>Various additions to the Bolt Sampler. Added <code>transaction timeout</code>, <code>database</code> |
| option required for Neo4j 4.x (with multi-database support) and <code>access mode</code> option, that allows running |
| against a Neo4j Enterprise Causal Cluster. Contributed by David Pecollet (david.pecollet at gmail.com)</li> |
| </ul> |
| |
| <h3>Controllers</h3> |
| <ul> |
| <li><pr>665</pr>Increase visible lines of code in <code>IfController</code> and <code>WhileController</code>. |
| Based on an idea by David Getzlaff (david.getzlaff at t-systems.com>).</li> |
| </ul> |
| |
| <h3>Listeners</h3> |
| <ul> |
| <li><bug>64988</bug>Sort properties and variables in a human expected order for DebugPostProcessor and DebugSampler</li> |
| <li><bug>63061</bug>Sort View Results in Table in a human expected order</li> |
| <li><pr>706</pr>Try to keep UI responsive when displaying large text results. Can be configured with the new property |
| <code>view.results.tree.simple_view_limit</code></li> |
| </ul> |
| |
| <h3>Timers, Assertions, Config, Pre- & Post-Processors</h3> |
| <ul> |
| <li><pr>638</pr>Bolt Connection Configuration: added <code>ConnectionPoolMaxSize</code> parameter. Contributed by |
| David Pecollet (david.pecollet at gmail.com)</li> |
| <li><bug>65515</bug>Allow pooling of Prepared Statements in JDBC</li> |
| <li><bug>65299</bug>JSONPathAssertion attributes are out of order/Compare JSON objects and |
| not their string representations.</li> |
| </ul> |
| |
| <h3>Report / Dashboard</h3> |
| <ul> |
| <li><bug>65353</bug>Make the estimator used for calculating percentiles on the dashboard configurable</li> |
| </ul> |
| |
| <h3>General</h3> |
| <ul> |
| <li><bug>61805</bug><pr>663</pr>Add simple HTTP request template. Contributed by Ori Marko (orimarko at gmail.com)</li> |
| <li><bug>65611</bug><pr>673</pr>Add support for IPv6 addresses when specifying a remote worker node. Based on a patch by Peter Wong (peter.wong at csexperts.com)</li> |
| <li>Reduce memory consumption by the logging panel (disable undo events for it)</li> |
| <li><bug>63620</bug><pr>694</pr>Fix GUI freeze when viewing response body with long line breaks</li> |
| <li><pr>699</pr>Add documentation for Graphite Backend Listener. Contributed by Ji Hun (jihunkimkw at gmail.com)</li> |
| <li><bug>57672</bug><pr>700</pr>Add a switch (<code>jmeter.regex.engine</code>) to replace Oro Regex implementation by the built-in Java one.</li> |
| </ul> |
| |
| <ch_section>Non-functional changes</ch_section> |
| <ul> |
| <li>Added Kotlin 1.6.21 for JMeter engine implementation (apiVersion=1.5). The set of JSR 223 languages is intact.</li> |
| <li><bug>65128</bug><pr>643</pr>Add missing documentation about <code>Same user on each iteration</code> for Thread Groups. Contributed by njkuzas.</li> |
| <li><pr>648</pr>Updated xmlgraphics-commons to 2.6 (from 2.3). Contributed by Stefan Seide (stefan at trilobyte-se.de)</li> |
| <li><pr>655</pr><pr>667</pr><pr>675</pr><pr>698</pr>Updated x-stream to 1.4.19 (from 1.4.15). Contributed by Stefan Seide (stefan at trilobyte-se.de)</li> |
| <li><pr>656</pr><pr>668</pr>Updated json-smart to 2.4.8 (from 2.3), accessors-smart to 2.4.8 (from 1.2) and asm 9.3 (from 9.0). Contributed by Stefan Seide (stefan at trilobyte-se.de)</li> |
| <li><bug>64831</bug>Log truststore entries in debug level for logger <code>org.apache.jmeter.util.keystore.JmeterKeyStore</code></li> |
| <li><bug>65232</bug>Hide splash screen when an error is displayed because the test plan could not be parsed.</li> |
| <li>Updated Groovy to 3.0.11 (from 3.0.7).</li> |
| <li>Updated Darklaf to 2.7.3 (from 2.5.4).</li> |
| <li>Updated Apache ActiveMQ to 15.6.4 (from 15.6.0).</li> |
| <li>Updated Asm to 9.2 (from 9.1).</li> |
| <li>Updated Bouncycastle to 1.70 (from 1.67).</li> |
| <li>Updated Caffeine to 2.9.3 (from 2.8.8).</li> |
| <li>Updated Apache commons-dbcp2 to 2.9.0 (from 2.8.0).</li> |
| <li>Updated Apache commons-io to 2.11.0 (from 2.8.0).</li> |
| <li>Updated Apache commons-lang3 to 3.12.0 (from 3.11).</li> |
| <li>Updated Apache commons-net to 3.8.0 (from 3.7.2).</li> |
| <li>Updated Apache commons-pool2 to 2.11.1 (from 2.9.0).</li> |
| <li>Updated equalsverifier to 3.10 (from 3.4.2).</li> |
| <li>Updated Apache Freemarker to 2.3.31 (from 2.3.30).</li> |
| <li>Updated hsqldb to 2.5.2 (from 2.5.0).</li> |
| <li>Updated Apache HttpClient to 4.5.13 (from 4.5.12).</li> |
| <li>Updated Apache HttpCore to 4.4.15 (from 4.4.13).</li> |
| <li>Updated jacoco to 0.8.7 (from 0.8.5).</li> |
| <li>Updated json-path to 2.7.0 (from 2.4.0).</li> |
| <li>Updated jsoup to 1.15.1 (from 1.13.1).</li> |
| <li>Updated JUnit to 4.13.2 and 5.8.2 (from 4.13.1 and 5.7.0).</li> |
| <li>Updated Apache log4j2 to 2.17.2 (from 2.13.3).</li> |
| <li>Updated Miglayout to 5.3 (from 5.2).</li> |
| <li>Updated Neo4j Java driver to 4.4.6 (from 4.2.0).</li> |
| <li>Updated Objenesis to 3.2 (from 2.6).</li> |
| <li>Updated ktlint to 0.40.0</li> |
| <li>Updated PH CSS and PH commons to 6.5.4 and 10.1.6 (from 6.2.3 and 9.5.1).</li> |
| <li>Updated RSyntaxTextArea to 3.2.0 (from 3.1.1).</li> |
| <li>Updated SLF4J to 1.7.36 (from 1.7.30).</li> |
| <li>Updated SvgSalamander to 1.1.2.4 (from 1.1.2.1).</li> |
| <li><pr>698</pr>Updated Apache Tika to 1.28.3 (from 1.26).</li> |
| <li>Updated WireMock-JRE8 to 2.30.0 (from 2.24.1).</li> |
| <li>Updated com.github.vlsi.vlsi-release-plugins 1.76 (from 1.74).</li> |
| <li>Updated jackson to 2.13.3 (from 2.10.5)</li> |
| <li>Updated jmespath to 0.5.1</li> |
| <li>Updated Saxon-HE to 11.2 (from 9.9.1-8)</li> |
| <li>Updated Apache xmlgraphics commons to 2.7 (from 2.6)</li> |
| <li><pr>671</pr>Move example definition of property <code>jmeter.reportgenerator.statistic_window</code> |
| to <code>user.properties</code>, as it is read from that place. |
| Contributed by Rithvik Patibandla (rithvikp98 at gmail.com)</li> |
| <li><bug>65456</bug>Updated commons-jexl 3 to 3.2.1 (from 3.1). Contributed by Ori Marko (orimarko at gmail.com>)</li> |
| <li><pr>654</pr>Try do give better feedback while loading keystores</li> |
| <li><pr>672</pr>Add more details to documentation for timeShift function. Contributed by Mariusz (mawasak at gmail.com)</li> |
| <li>Updated Gradle to 7.3 (from 7.2)</li> |
| <li><pr>689</pr>Code clean up in StringFromFile. Contributed by Sampath Kumar Krishnasamy (sampathkumar.krishnasamykuppusamy at aexp.com)</li> |
| <li><pr>690</pr>Refactor a few unit tests. Contributed by Sampath Kumar Krishnasamy (sampathkumar.krishnasamykuppusamy at aexp.com)</li> |
| <li><pr>692></pr>Fix a few deprecation warnings for Gradle. Contributed by Sampath Kumar Krishnasamy (sampathkumar.krishnasamykuppusamy at aexp.com)</li> |
| <li><pr>697></pr>Junit 5 tests to use asserts from Junit 5 API. Contributed by Sampath Kumar Krishnasamy (sampathkumar.krishnasamykuppusamy at aexp.com)</li> |
| <li><bug>65983</bug><pr>707</pr>Use current screenshot for save-to-file listener in documentation. Based on patch by NaveenKumar Namachivayam (catch.nkn at gmail.com)</li> |
| <li><pr>708</pr>Make errorprone happier. Based on patch by Wilson Kurniawan (wilson at visenze.com)></li> |
| <li>Updated Rhino JavaScript to 1.7.14 (from 1.7.13)</li> |
| </ul> |
| |
| <!-- =================== Bug fixes =================== --> |
| |
| <ch_section>Bug fixes</ch_section> |
| |
| <h3>HTTP Samplers and Test Script Recorder</h3> |
| <ul> |
| <li><bug>65310</bug>Don't let users override <code>multipart/form-data</code> <code>content-type</code> |
| header in HC4 sampler.</li> |
| <li><bug>65363</bug><code>NullPointerException</code> in <code>HTTPHC4Impl$ManagedCredentialsProvider.getAuthorizationForAuthScope</code> when <code>401</code> response from remote and <code>httpclient4.auth.preemptive=false</code></li> |
| <li><bug>65692</bug>HTTP(s) Test Script Recorder: Enable setting enabled cipher suite and enabled protocols on SSLContext/ Align SSL properties between Java and HC4 implementation</li> |
| <li><bug>65108</bug>Support JMeter variables in <a href="./usermanual/component_reference.html#HTTP_Request">GraphQL HTTP Request</a></li> |
| <li><bug>65864</bug>Catch <code>NullPointerException</code> from JSoup when recording a test plan</li> |
| </ul> |
| |
| <h3>Other Samplers</h3> |
| <ul> |
| <li><bug>65152</bug>OS Process Sampler – Cannot <code>Add from Clipboard</code> Command parameters</li> |
| <li><pr>638</pr>Bolt Sampler: fixed error displaying results when "Record Query Results" is enabled. Contributed by |
| David Pecollet (david.pecollet at gmail.com)</li> |
| </ul> |
| |
| <h3>Controllers</h3> |
| <ul> |
| </ul> |
| |
| <h3>Listeners</h3> |
| <ul> |
| <li><bug>64962</bug>Save CSV sub-results recursively from View Results Tree</li> |
| <li><bug>65784</bug>No Graphs displayed in Aggregate Report/Response Time Graph</li> |
| <li><bug>65884</bug>GUI doesn't display response for multipart request <em>manually</em> encoded</li> |
| </ul> |
| |
| <h3>Timers, Assertions, Config, Pre- & Post-Processors</h3> |
| <ul> |
| <li><bug>65257</bug>JMESPathExtractor writes error log entries if JMESPath filter returns empty result</li> |
| <li><bug>65259</bug>JMESPathExtractor Attribute <code>Match No.</code> Required</li> |
| <li><bug>65269</bug>JSON Extractor and JSON JMESPath Extractor ignore sub-samples</li> |
| <li><bug>65352</bug>Warning logged when Boundary Extractor doesn't find any match</li> |
| <li><bug>65681</bug>Use default values for <code>null</code> values when extracting with JSONPostProcessor</li> |
| <li>Allow setters in ConstantThroughputTimer to update the values during run time</li> |
| <li><bug>65782</bug>Use correct message format for MessageFormat in HTMLAssertion</li> |
| <li><bug>65794</bug>JSON Assertion always successful with indefinite paths</li> |
| </ul> |
| |
| <h3>Functions</h3> |
| <ul> |
| </ul> |
| |
| <h3>I18N</h3> |
| <ul> |
| </ul> |
| |
| <h3>Report / Dashboard</h3> |
| <ul> |
| </ul> |
| |
| <h3>Documentation</h3> |
| <ul> |
| <li><pr>658</pr>Improve javadoc. Contributed by Ori Marko (orimarko at gmail.com)</li> |
| </ul> |
| |
| <h3>General</h3> |
| <ul> |
| <li><bug>64318</bug>DNS Cache Manager – custom DNS resolver does not use system resolver by default</li> |
| <li><pr>641</pr><pr>698</pr>Updated xercesImpl to 2.12.2 (from 2.12.0). Based on patch by Stefan Seide (stefan at trilobyte-se.de).</li> |
| <li><pr>645</pr>Add escaping for new lines in <code>AbstractInfluxdbMetricsSender</code>. Contributed by David Getzlaff (david.getzlaff at t-systems.com>)</li> |
| <li><bug>65198</bug>Can't copy generated function from FunctionHelper</li> |
| <li><pr>661</pr>Fix wording in doc. Contributed by BugKing (wangzhen at fit2cloud.com)</li> |
| <li><pr>664</pr>Allow whitespace in path. Contributed by Till Neunast (github.com/tilln)</li> |
| <li><bug>65270</bug>POST <code>application/x-www-form-urlencoded</code> cURL code generated from Postman is not imported correctly</li> |
| <li>Silence warnings of missing font Arial on startup under Linux</li> |
| <li><bug>65300</bug><code>IllegalAccessError</code> when opening file dialog with Java 16</li> |
| <li><bug>65336</bug>Blank labels when different elements had the same name</li> |
| <li><bug>65522</bug>Restart doesn't work, when parameters contain spaces</li> |
| <li><bug>63914</bug>Simplify <code>:src:dist:clean</code> configuration, ensure <code>/lib/junit/test.jar</code> is removed on clean</li> |
| <li><pr>696</pr>Keep JSyntaxTextArea text value for use in headless mode. Contributed by Peter Paul Bakker (peter.paul.bakker at stokpop.nl)</li> |
| </ul> |
| |
| <!-- =================== Thanks =================== --> |
| |
| <ch_section>Thanks</ch_section> |
| <p>We thank all contributors mentioned in bug and improvement sections above: |
| </p> |
| <ul> |
| <li>Stefan Seide (stefan at trilobyte-se.de)</li> |
| <li>njzukas (github.com/njzukas)</li> |
| <li>David Getzlaff (david.getzlaff at t-systems.com>)</li> |
| <li>Konstantin Kalinin (konstantin at kkalinin.pro)</li> |
| <li>David Pecollet (david.pecollet at gmail.com)</li> |
| <li>Ori Marko (orimarko at gmail.com)</li> |
| <li>BugKing (wangzhen at fit2cloud.com)</li> |
| <li>Till Neunast (github.com/tilln)</li> |
| <li>Baptiste Gaillard (baptiste.gaillard at gmail.com)</li> |
| <li>Rithvik Patibandla (rithvikp98 at gmail.com)</li> |
| <li>Mariusz (mawasak at gmail.com)</li> |
| <li>peter.wong@csexperts.com</li> |
| <li>Woonsan Ko (woonsan.ko at bloomreach.com)</li> |
| <li>Chromico Rek (atech5122 at gmail.com)</li> |
| <li>Magnus SpÄngdal (magnus.spangdal as avanza.se)</li> |
| <li>Piotr Smietana (piotrsmietana1998 at gmail.com)</li> |
| <li>Sampath Kumar Krishnasamy (sampathkumar.krishnasamykuppusamy at aexp.com)</li> |
| <li>Ji Hun (jihunkimkw at gmail.com)</li> |
| <li>Peter Paul Bakker (peter.paul.bakker at stokpop.nl)</li> |
| <li>NaveenKumar Namachivayam (catch.nkn at gmail.com)</li> |
| <li>Wilson Kurniawan (wilson at visenze.com)</li> |
| </ul> |
| <p>We also thank bug reporters who helped us improve JMeter.</p> |
| <ul> |
| <li>Nikola Aleksic (nalexic at gmail.com)</li> |
| <li>Vladimir Rosu (rosuvladimir at gmail.com)</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_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.3/nashorn-core-15.3.jar |
| wget https://repo1.maven.org/maven2/org/ow2/asm/asm/9.2/asm-9.2.jar |
| wget https://repo1.maven.org/maven2/org/ow2/asm/asm-commons/9.2/asm-commons-9.2.jar |
| wget https://repo1.maven.org/maven2/org/ow2/asm/asm-util/9.2/asm-util-9.2.jar |
| wget https://repo1.maven.org/maven2/org/ow2/asm/asm-tree/9.2/asm-tree-9.2.jar |
| wget https://repo1.maven.org/maven2/org/ow2/asm/asm-analysis/9.2/asm-analysis-9.2.jar |
| popd |
| export JVM_ARGS="--module-path $PWD/lib/modules" |
| ./bin/jmeter |
| </source> |
| </dd> |
| </dl> |
| </li> |
| |
| </ul> |
| |
| </section> |
| </body> |
| </document> |