<!DOCTYPE html SYSTEM "about:legacy-compat">
<html lang="en">
<head>
<META http-equiv="Content-Type" content="text/html; charset=iso-8859-15">
<title>Apache JMeter
          -
          History of Previous Changes</title>
<meta name="author" value="JMeter developers">
<meta name="email" value="dev AT jmeter.apache.org">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link href="https://fonts.googleapis.com/css?family=Merriweather:400normal" rel="stylesheet" type="text/css">
<link href="https://maxcdn.bootstrapcdn.com/font-awesome/4.6.1/css/font-awesome.min.css" rel="stylesheet" type="text/css">
<link rel="stylesheet" type="text/css" href="./css/new-style.css">
<link rel="apple-touch-icon-precomposed" href="./images/apple-touch-icon.png">
<link rel="icon" href="./images/favicon.png">
<meta name="msapplication-TileColor" content="#ffffff">
<meta name="msapplication-TileImage" content="./images/mstile-144x144.png">
<meta name="theme-color" content="#ffffff">
</head>
<body role="document">
<a href="#content" class="hidden">Main content</a>
<div class="header">
<!--
            APACHE LOGO
          -->
<div>
<a href="https://www.apache.org"><img title="Apache Software Foundation" class="asf-logo logo" src="./images/asf-logo.svg" alt="Logo ASF"></a>
</div>
<!--
              PROJECT LOGO
            -->
<div>
<a href="https://jmeter.apache.org/"><img class="logo" src="./images/logo.svg" alt="Apache JMeter"></a>
</div>
<div class="banner">
<a href="https://www.apache.org/events/current-event.html"><img src="https://www.apache.org/events/current-event-234x60.png" alt="Current Apache event teaser"></a>
<div class="clear"></div>
</div>
</div>
<div class="nav">
<ul class="menu">
<li onClick="return true">
<div class="menu-title">About</div>
<ul>
<li>
<a href="./index.html">Overview</a>
</li>
<li>
<a href="https://www.apache.org/licenses/">License</a>
</li>
</ul>
</li>
</ul>
<ul class="menu">
<li onClick="return true">
<div class="menu-title">Download</div>
<ul>
<li>
<a href="./download_jmeter.cgi">Download Releases</a>
</li>
<li>
<a href="./changes.html">Release Notes</a>
</li>
</ul>
</li>
</ul>
<ul class="menu">
<li onClick="return true">
<div class="menu-title">Documentation</div>
<ul>
<li>
<a href="./usermanual/get-started.html">Get Started</a>
</li>
<li>
<a href="./usermanual/index.html">User Manual</a>
</li>
<li>
<a href="./usermanual/best-practices.html">Best Practices</a>
</li>
<li>
<a href="./usermanual/component_reference.html">Component Reference</a>
</li>
<li>
<a href="./usermanual/functions.html">Functions Reference</a>
</li>
<li>
<a href="./usermanual/properties_reference.html">Properties Reference</a>
</li>
<li>
<a href="./changes_history.html">Change History</a>
</li>
<li>
<a href="./api/index.html">Javadocs</a>
</li>
<li>
<a href="https://cwiki.apache.org/confluence/display/JMETER/Home">JMeter Wiki</a>
</li>
<li>
<a href="https://cwiki.apache.org/confluence/display/JMETER/JMeterFAQ">FAQ (Wiki)</a>
</li>
</ul>
</li>
</ul>
<ul class="menu">
<li onClick="return true">
<div class="menu-title">Tutorials</div>
<ul>
<li>
<a href="./usermanual/jmeter_distributed_testing_step_by_step.html">Distributed Testing</a>
</li>
<li>
<a href="./usermanual/jmeter_proxy_step_by_step.html">Recording Tests</a>
</li>
<li>
<a href="./usermanual/junitsampler_tutorial.html">JUnit Sampler</a>
</li>
<li>
<a href="./usermanual/jmeter_accesslog_sampler_step_by_step.html">Access Log Sampler</a>
</li>
<li>
<a href="./usermanual/jmeter_tutorial.html">Extending JMeter</a>
</li>
</ul>
</li>
</ul>
<ul class="menu">
<li onClick="return true">
<div class="menu-title">Community</div>
<ul>
<li>
<a href="./issues.html">Issue Tracking</a>
</li>
<li>
<a href="https://www.apache.org/security/">Security</a>
</li>
<li>
<a href="./mail.html">Mailing Lists</a>
</li>
<li>
<a href="./svnindex.html">Source Repositories</a>
</li>
<li>
<a href="./building.html">Building and Contributing</a>
</li>
<li>
<a href="https://projects.apache.org/project.html?jmeter">Project info at Apache</a>
</li>
<li>
<a href="https://cwiki.apache.org/confluence/display/JMETER/JMeterCommitters">Contributors</a>
</li>
</ul>
</li>
</ul>
<ul class="menu">
<li onClick="return true">
<div class="menu-title">Foundation</div>
<ul>
<li>
<a href="https://www.apache.org/">The Apache Software Foundation (ASF)</a>
</li>
<li>
<a href="https://www.apache.org/foundation/getinvolved.html">Get Involved in the ASF</a>
</li>
<li>
<a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a>
</li>
<li>
<a href="https://www.apache.org/foundation/thanks.html">Thanks</a>
</li>
</ul>
</li>
</ul>
</div>
<div class="main" id="content">
<div class="social-media">
<ul class="social-media-links">
<li class="twitter">
<a href="https://twitter.com/ApacheJMeter" title="Follow us on Twitter"><i class="fa fa-twitter" aria-hidden="true"></i>Twitter</a>
</li>
<li class="github">
<a href="https://github.com/apache/jmeter" title="Fork us on github"><i class="fa fa-github" aria-hidden="true"></i>github</a>
</li>
</ul>
</div>
<div class="section">
<h1>History of Previous Changes</h1>

<div class="clear"></div>
<div class="note">

<b>This page details the changes made in previous versions only.</b>

<br>
Current changes are detailed in <a href="changes.html">Changes</a>.
</div>
<div class="clear"></div>

<p>
<b>Changes sections are chronologically ordered from top (most recent) to bottom
(least recent)</b>
</p>




<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>


<h2 class="ch_section" id="New and Noteworthy">New and Noteworthy</h2>


<h3 class="ch_title">UX improvements</h3>


<p>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=62179">
      Bug
      62179</a>
    -
  <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=64658">
      Bug
      64658</a>
    -
  The splash screen is now application-modal rather than system-modal, so it does not block other
applications when JMeter is starting up.</p>




<h2 class="ch_section" id="Incompatible changes">Incompatible changes</h2>

<ul>
    
<li>Remove LogKit logger functionality from some classes. This was intended to completely remove
      <span class="code">LoggingManager</span> class (it has been deprecated since JMeter 3.2), but as jmeter-plugins
      depended on it, <span class="code">LoggingManager</span> and our <span class="code">LogKit</span>-adapter will remain for
      this version (but is still deprecated).</li>

</ul>



<h2 class="ch_section" id="Improvements">Improvements</h2>


<h3>HTTP Samplers and Test Script Recorder</h3>

<ul>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53848">
      Bug
      53848</a>
    -
  <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=63527">
      Bug
      63527</a>
    -
  Implement a new setting to allow the exclusion of embedded URLs</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=64696">
      Bug
      64696</a>
    -
  <a href="https://github.com/apache/jmeter/pull/571">
      Pull request #571</a>,
  <a href="https://github.com/apache/jmeter/pull/595">
      Pull request #595</a>
    -
  Freestyle format for names in (Default)SamplerCreater. Based on a patch by Vincent Daburon (vdaburon at gmail.com)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=64752">
      Bug
      64752</a>
    -
  Add GraphQL/HTTP Request Sampler. Contributed by woonsan.</li>

</ul>


<h3>Other samplers</h3>

<ul>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=64555">
      Bug
      64555</a>
    -
  Set JMSType header field through JMSProperties. Contributed by Daniel van den Ouden</li>

</ul>


<h3>Controllers</h3>

<ul>

</ul>


<h3>Listeners</h3>

<ul>
    
<li>
<a href="https://github.com/apache/jmeter/pull/544">
      Pull request #544</a>
    -
  Add BackendListener that sends "raw" results to InfluxDB. Contributed by Graham Russell
      (graham at ham1.co.uk)</li>

</ul>


<h3>Timers, Assertions, Config, Pre- &amp; Post-Processors</h3>

<ul>

</ul>


<h3>Functions</h3>

<ul>

</ul>


<h3>I18N</h3>

<ul>

</ul>


<h3>Report / Dashboard</h3>

<ul>
  
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=64824">
      Bug
      64824</a>
    -
  Dashboard/HTML Report: Rename <span class="code">KO</span> to <span class="code">FAIL</span>
</li>
  
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=64936">
      Bug
      64936</a>
    -
  Increase generate_report_ui.generation_timeout to 5 minutes to handle large performance test</li>

</ul>


<h3>General</h3>

<ul>
  
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=64446">
      Bug
      64446</a>
    -
  Better parse curl commands with backslash at line endings and support <span class="code">PUT</span> method with data arguments</li>
  
<li>
<a href="https://github.com/apache/jmeter/pull/599">
      Pull request #599</a>
    -
  Ensure all buttons added to the toolbar behave/look consistently. Contributed by Jannis Weis</li>
  
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=64581">
      Bug
      64581</a>
    -
  Allow <span class="code">SampleResult#setIgnore</span> to influence behaviour on Sampler Error</li>
  
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=64680">
      Bug
      64680</a>
    -
  Fall back to <span class="code">JMETER_HOME</span> on startup to detect JMeter's installation directory</li>
  
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=64787">
      Bug
      64787</a>
    -
  <a href="https://github.com/apache/jmeter/pull/630">
      Pull request #630</a>
    -
  Add Korean translation. Contributed by Woonsan Ko (woonsan at apache.org)</li>
  
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=64776">
      Bug
      64776</a>
    -
  Add the ability to install additional SecurityProvider. Contributed by Timo (ASF.Software.Timo at Leefers.eu)</li>

</ul>


<h2 class="ch_section" id="Non-functional changes">Non-functional changes</h2>

<ul>
    
<li>Build system upgraded from Gradle to 6.7 (from 6.6)</li>
    
<li>
<a href="https://github.com/apache/jmeter/pull/594">
      Pull request #594</a>
    -
  Updated neo4j-java-driver to 4.2.0 (from 1.7.5)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=64454">
      Bug
      64454</a>
    -
  More precise error message, when no datasource value can be found in JDBC sampler</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=64440">
      Bug
      64440</a>
    -
  Log exeptions reported via <span class="code">JMeterUtils#reportToUser</span> even when in GUI mode</li>
    
<li>
<a href="https://github.com/apache/jmeter/pull/591">
      Pull request #591</a>
    -
  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>
<a href="https://github.com/apache/jmeter/pull/596">
      Pull request #596</a>
    -
  Use neutral words in documentation</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=63809">
      Bug
      63809</a>
    -
  <a href="https://github.com/apache/jmeter/pull/557">
      Pull request #557</a>
    -
  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>
<a href="https://github.com/apache/jmeter/pull/598">
      Pull request #598</a>
    -
  Add another option for creating diffs to the building page. Contributed by jmetertea (github.com/jmetertea)</li>
    
<li>
<a href="https://github.com/apache/jmeter/pull/609">
      Pull request #609</a>
    -
  Make use of newer API for darklaf installation. Jannis Weis</li>
    
<li>
<a href="https://github.com/apache/jmeter/pull/612">
      Pull request #612</a>
    -
  Correct typos in <span class="code">README.md</span>. Based on patches by Pooja Chandak (poojachandak002 at gmail.com)</li>
    
<li>
<a href="https://github.com/apache/jmeter/pull/613">
      Pull request #613</a>
    -
  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>
<a href="https://github.com/apache/jmeter/pull/635">
      Pull request #635</a>
    -
  Correct some image ratios in the documentation. Patch provided
      by Vincent Daburon (vdaburon at gmail.com)</li>

</ul>

 


<h2 class="ch_section" id="Bug fixes">Bug fixes</h2>


<h3>HTTP Samplers and Test Script Recorder</h3>

<ul>
  
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=64479">
      Bug
      64479</a>
    -
  Regression: HTTP(s) Script Recorder prevents proper shutdown in non-GUI mode</li>
  
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=64653">
      Bug
      64653</a>
    -
  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>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=64795">
      Bug
      64795</a>
    -
  Generate summary report may not output a summary line in the configured interval (<span class="code">summariser.interval</span>): Clarify documentation</li>

</ul>


<h3>Listeners</h3>

<ul>

</ul>


<h3>Timers, Assertions, Config, Pre- &amp; Post-Processors</h3>

<ul>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=64638">
      Bug
      64638</a>
    -
  JSON JMESPath Assertion / JSON Assertion: Opening GUI shows a horizontal scrollbar that keeps sliding</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=64915">
      Bug
      64915</a>
    -
  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>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=64547">
      Bug
      64547</a>
    -
  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>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=64617">
      Bug
      64617</a>
    -
  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>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=64553">
      Bug
      64553</a>
    -
  When using Transaction Controller, send Bytes and Received Bytes are displayed as 0 in the influxdb(BackendListener)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=64624">
      Bug
      64624</a>
    -
  Use less aggressive escaping for JSON Strings in reports error messages</li>

</ul>


<h3>Documentation</h3>

<ul>
    
<li>
<a href="https://github.com/apache/jmeter/pull/571">
      Pull request #571</a>
    -
  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>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=64448">
      Bug
      64448</a>
    -
  User Defined Variable Duplication in Right Click Context Menu</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=64499">
      Bug
      64499</a>
    -
  Exiting JMeter when <span class="code">jmeterengine.stopfail.system.exit=true</span> takes too much time if threads are not stopped</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=64510">
      Bug
      64510</a>
    -
  Darklaf- IntelliJ Theme throws NPE in DarkTreeUI on MacOS</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=64594">
      Bug
      64594</a>
    -
  Unable to enter variable values instead of numeric values in components using PowerTableModel (Impacts 3rd party plugins like Throughput Shaping Timer)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=64475">
      Bug
      64475</a>
    -
  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>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=64627">
      Bug
      64627</a>
    -
  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>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=64647">
      Bug
      64647</a>
    -
  groovy-dateutil is missing in distribution</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=64640">
      Bug
      64640</a>
    -
  Darklaf: NPE at com.github.weisj.darklaf.ui.DarkPopupFactory.getPopupType(DarkPopupFactory.java:96)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=64641">
      Bug
      64641</a>
    -
  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>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=64453">
      Bug
      64453</a>
    -
  Darklaf: Save Test Plan as New Folder failure</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=64625">
      Bug
      64625</a>
    -
  Darklaf: trying to select a folder in Browse leads to an error popup and stacktrace</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=64711">
      Bug
      64711</a>
    -
  Textarea Colors are not good in dark modes. Contributed by Jannis Weis</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=64935">
      Bug
      64935</a>
    -
  A broken plugin class should not prevent JMeter from starting</li>

</ul>

 


<h2 class="ch_section" id="Thanks">Thanks</h2>

<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>
 


<h2 class="ch_section" id="Known problems and workarounds">Known problems and workarounds</h2>

<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 <span class="code">0</span> (see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55510">
      Bug
      55510</a>).
</li>


<li>
Note that under some windows systems you may have this WARNING:
<pre class="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.
</pre>
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:
<pre class="source">java.security.cert.CertificateException: Certificates does not conform to algorithm constraints</pre>
 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 <span class="code">md2WithRSAEncryption</span>) or with a SSL certificate with a size lower than 1024 bits.
This error is related to increased security in Java 8+.
<br>
To allow you to perform your HTTPS request, you can downgrade the security of your Java installation by editing
the Java <span class="code">jdk.certpath.disabledAlgorithms</span> property. Remove the MD2 value or the constraint on size, depending on your case.
<br>
This property is in this file:
<pre class="source">JAVA_HOME/jre/lib/security/java.security</pre>
See  <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56357">
      Bug
      56357</a> 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 <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54586">
      Bug
      54586</a>.
This is due to a known Java bug which fails to parse "<span class="code">px</span>" 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 (<span class="keycombo"><span class="keysym">SHIFT</span>&nbsp;+&nbsp;<span class="keysym">up/down</span></span>) 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.
<pre class="source">
Warning: Nashorn engine is planned to be removed from a future JDK release
</pre>
To silence these warnings, add <span class="code">-Dnashorn.args=--no-deprecation-warning</span> to your Java arguments.
That can be achieved by setting the enviroment variable <span class="code">JVM_ARGS</span>

<pre class="source">
export JVM_ARGS="-Dnashorn.args=--no-deprecation-warning"
</pre>

</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 <span class="code">$JMETER_HOME/lib/ext</span>.</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:
      <pre class="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
      </pre>
    
</dd>
  
</dl>

</li>


</ul>




<h1>Version 5.3</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>


<h2 class="ch_section" id="New and Noteworthy">New and Noteworthy</h2>


<h3 class="ch_title">UX improvements</h3>
Added <a href="https://github.com/weisJ/darklaf">Darklaf</a> look and feel that improves several components.

<p>Tree indentation level is easier to follow:</p>

<figure>
<a href="./images/screenshots/changes/5.3/tree_theme_darcula.png"><img src="./images/screenshots/changes/5.3/tree_theme_darcula.png" width="224" height="247" alt="JMeter tree with Darklaf Darcula theme"></a>
<figcaption>JMeter tree with Darklaf Darcula theme</figcaption>
</figure>

<figure>
<a href="./images/screenshots/changes/5.3/tree_theme_intellij.png"><img src="./images/screenshots/changes/5.3/tree_theme_intellij.png" width="223" height="246" alt="JMeter tree with Darklaf IntelliJ theme"></a>
<figcaption>JMeter tree with Darklaf IntelliJ theme</figcaption>
</figure>


<p>New look and feel themes. Light: IntellJ, Solarized Light, HighContrast Light.
    Dark: OneDark, Solarized Dark, HighContrast Dark.
</p>


<p>When an element in tree is disabled, all its descendants are shown in gray.
For instance, <span class="code">While Contoller</span> is disabled in the following tree, so its children
are gray. It is purely a UI change, and the behavior is not altered.
</p>

<figure>
<a href="./images/screenshots/changes/5.3/disabled_subtree.png"><img src="./images/screenshots/changes/5.3/disabled_subtree.png" width="223" height="256" alt="While controller is disabled, so its children are gray"></a>
<figcaption>While controller is disabled, so its children are gray</figcaption>
</figure>


<p>Tree context menu is shown even in case the node selection is changed. Previously
    the popup did disappear and it was required to select a node first and only then launch popup.</p>


<p>Look and feel can now be updated without a restart</p>


<p>Use <span class="keycombo"><span class="keysym">CTRL</span>&nbsp;+&nbsp;<span class="keysym">ALT</span>&nbsp;+&nbsp;<span class="keysym">wheel</span></span> for zooming
    fonts. Previous shortcut was <span class="keycombo"><span class="keysym">CTRL</span>&nbsp;+&nbsp;<span class="keysym">SHIFT</span>&nbsp;+&nbsp;<span class="keysym">wheel</span></span>,
    however, it conflicted with horizontal scrolling.</p>


<p>In-app zoom is more consistent (e.g. sometimes not all the labels or even panels were scaled).
For instance: log viewer, JSR223 code editor were not previously scaled with zoom-in/out feature</p>


<p>Tree context menu is shown for the full row, not for the label only</p>


<p>Undo and redo support for editable fields. Keystrokes are <span class="keycombo"><span class="keysym">CTRL</span>&nbsp;+&nbsp;<span class="keysym">Z</span></span> /
    <span class="keycombo"><span class="keysym">CTRL</span>&nbsp;+&nbsp;<span class="keysym">SHIFT</span>&nbsp;+&nbsp;<span class="keysym">Z</span></span>, or
    <span class="keycombo"><span class="keysym">CMD</span>&nbsp;+&nbsp;<span class="keysym">Z</span></span>/
    <span class="keycombo"><span class="keysym">CMD</span>&nbsp;+&nbsp;<span class="keysym">SHIFT</span>&nbsp;+&nbsp;<span class="keysym">Z</span></span> depending on the operating system.
Undo is implemented on a field level basis (each fields has its own history), and the history is
invalidated when tree selection changes.</p>


<p>Mark the currently selected language in the options menu.</p>


<p>Mark the currently selected log level in the options menu.</p>


<p>Rework of many Test Element UI (JUnit Request, ForEach Controller, If Controller, Throughput Controller, WhileController,
Counter Config, XPath2 Extractor, Function Helper Dialog, Search popup, JMS Elements)</p>




<h2 class="ch_section" id="Incompatible changes">Incompatible changes</h2>

<ul>
    
<li>Default value of <span class="code">httpclient4.time_to_live</span> has been modified from <span class="code">2000</span> to <span class="code">60000</span>,
    this means HTTP connections will live longer than before. This
    has impact on connection creation and SSL handshake, see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=64289">
      Bug
      64289</a>
</li>
    
<li>The update to Groovy 3 (<a href="https://github.com/apache/jmeter/pull/590">
      Pull request #590</a>
    -
  ) might break some old Groovy code of your tests. Have a look
    at <a href="https://groovy-lang.org/releasenotes/groovy-3.0.html">the update notes for Groovy 3</a>
</li>

</ul>



<h2 class="ch_section" id="Improvements">Improvements</h2>


<h3>HTTP Samplers and Test Script Recorder</h3>

<ul>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=64160">
      Bug
      64160</a>
    -
  Test HTTP/S Test Script Recorder: Name transaction controller/ simple controller using prefix without "<span class="code">-XXXX</span>" suffix</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=64289">
      Bug
      64289</a>
    -
  Make <span class="code">httpclient4.time_to_live</span> to <span class="code">60000</span> to be closer to typical browser behavior</li>

</ul>


<h3>Other samplers</h3>

<ul>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=64288">
      Bug
      64288</a>
    -
  JUnit Request: Improve UX</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=64407">
      Bug
      64407</a>
    -
  Improve JMS Publisher UX. Contributed by Ubik Load Pack (https://ubikloadpack.com)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=64408">
      Bug
      64408</a>
    -
  Improve JMS Subscriber UX. Contributed by Ubik Load Pack (https://ubikloadpack.com)</li>

</ul>


<h3>Controllers</h3>

<ul>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=64277">
      Bug
      64277</a>
    -
  ForEach Controller: Improve UX</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=64280">
      Bug
      64280</a>
    -
  If Controller: Improve UX</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=64282">
      Bug
      64282</a>
    -
  Throughput Controller: Improve UX</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=64287">
      Bug
      64287</a>
    -
  WhileController: Improve UX</li>

</ul>


<h3>Listeners</h3>

<ul>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=64150">
      Bug
      64150</a>
    -
  View Results Tree: Allow editing of response data in testers</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=63822">
      Bug
      63822</a>
    -
  View Results Tree: Keep position of split pane while switching renderer mode</li>

</ul>


<h3>Timers, Assertions, Config, Pre- &amp; Post-Processors</h3>

<ul>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=64091">
      Bug
      64091</a>
    -
  Precise Throughput Timer schedule generation is improved significantly (e.g. 2 seconds for 10M samples)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=64281">
      Bug
      64281</a>
    -
  Counter Config: Improve UX</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=64283">
      Bug
      64283</a>
    -
  XPath2 Extractor: Improve UX</li>

</ul>


<h3>Functions</h3>

<ul>
  
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=64070">
      Bug
      64070</a>
    -
  <span class="code">_timeshift</span> function does not work with offset formatters</li>
  
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=64275">
      Bug
      64275</a>
    -
  Function Helper Dialog: Improve UX</li>

</ul>


<h3>I18N</h3>

<ul>
  
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=64102">
      Bug
      64102</a>
    -
  Add Chinese translation for Tools menu. Contributed by Liu XP (liu_xp2003 at sina.com)</li>

</ul>


<h3>Report / Dashboard</h3>

<ul>
  
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=64380">
      Bug
      64380</a>
    -
  Add a '<span class="code">Median</span>' field to the dashboard and make the response time percentile fields support floating-point numbers. Contributed by Keith Mo(https://github.com/keithmork)</li>
  
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=64378">
      Bug
      64378</a>
    -
  HTML report generation should not fail if a plugin has registered a graph and is not more present in classpath, issue a warning instead</li>

</ul>


<h3>General</h3>

<ul>
  
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=63458">
      Bug
      63458</a>
    -
  <a href="https://github.com/apache/jmeter/pull/551">
      Pull request #551</a>
    -
  Add new template "Functional Testing Test Plan [01]". Contributed by Sebastian Boga (sebastian.boga at endava.com)</li>
  
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=64119">
      Bug
      64119</a>
    -
  Use first renderer from <span class="code">view.results.tree.renderers_order</span> property as default in View Results Tree</li>
  
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=64148">
      Bug
      64148</a>
    -
  Use gray icons for disabled elements in the tree, display subtree as gray</li>
  
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=64198">
      Bug
      64198</a>
    -
  Allow spaces in <span class="code">${...}</span> expressions around functions.</li>
  
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=64276">
      Bug
      64276</a>
    -
  Search popup: Improve UX</li>
  
<li>
<a href="https://github.com/apache/jmeter/pull/573">
      Pull request #573</a>
    -
  Improve the startup time: skip test plan UI initialization</li>
  
<li>
<a href="https://github.com/apache/jmeter/pull/585">
      Pull request #585</a>
    -
  Added JEXL3 as a syntax alias for JSyntaxTextArea. Contributed by drivera-armedia (https://github.com/drivera-armedia)</li>
  
<li>
<a href="https://github.com/apache/jmeter/pull/590">
      Pull request #590</a>
    -
  Update Groovy to 3.0.3.</li>

</ul>


<h2 class="ch_section" id="Non-functional changes">Non-functional changes</h2>

<ul>
    
<li>Build system upgraded from Gradle to 6.3 (from 6.1), Java 14 can be used now for the build</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=63963">
      Bug
      63963</a>
    -
  <a href="https://github.com/apache/jmeter/pull/546">
      Pull request #546</a>
    -
  Updated jackson to 2.10.3 (from 2.9.10)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=64120">
      Bug
      64120</a>
    -
  Updated jsoup to 1.13.1 (from 1.12.1)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=63809">
      Bug
      63809</a>
    -
  Updated commons-dbcp2 to 2.7.0 (from 2.5.0)</li>
    
<li>Updated Apache ActiveMQ to 5.15.11 (from 5.15.8)</li>
    
<li>Updated bouncycastle to 1.64 (from 1.60)</li>
    
<li>Updated asm to 7.3.1 (from 7.1)</li>
    
<li>Updated Apache commons-codec to 1.14 (from 1.13)</li>
    
<li>Updated Apache commons-pool to 2.8.0 (from 2.7.0)</li>
    
<li>Updated equalsverifier to 3.1.9 (from 3.1.12)</li>
    
<li>Updated Apache Groovy to 2.4.18 (from 2.4.16)</li>
    
<li>Updated hsqldb to 2.5.0 (from 2.4.1)</li>
    
<li>Updated hamcrest to 2.2 (from 2.1)</li>
    
<li>Updated Apache httpclient and httpmime to 4.5.12 (from 4.5.10)</li>
    
<li>Updated Apache httpcore and httpcore-nio to 4.4.13 (from 4.4.12)</li>
    
<li>Updated Apache Tika to 1.24.1 (from 1.22)</li>
    
<li>Updated jmespath to 0.5.0 (from 0.3.0)</li>
    
<li>Updated Apache log4j to 2.13.1 (from 2.12.1)</li>
    
<li>Updated junit4 to 4.13 (from 4.12)</li>
    
<li>Updated junit5 to 5.6.0 (from 5.5.1)</li>
    
<li>Updated slf4j to 1.7.30 (from 1.7.28)</li>
    
<li>Updated ph-commons to 9.4.1 (from 9.3.7)</li>
    
<li>Updated ph-css to 6.2.2 (from 6.2.0)</li>
    
<li>Updated rsyntaxtextarea to 3.1.0 (from 3.0.4)</li>
    
<li>Updated rhino to 1.7.12 (from 1.7.11)</li>
    
<li>Updated SaxonHE to 9.9.1-7 (from 9.9.1-5)</li>
    
<li>Updated cglib to 3.2.12 (from 3.2.9)</li>
    
<li>Updated commons-lang3 to 3.10 (from 3.9)</li>
    
<li>Updated freemarker to 2.3.30 (from 2.3.29)</li>
    
<li>Updated hamcrest-date to 2.0.7 (from 2.0.4)</li>
    
<li>Updated equalsverifier to 3.1.13 (from 3.1.12)</li>
    
<li>Updated xstream to 1.4.11.1 (from 1.4.11)</li>
    
<li>
<a href="https://github.com/apache/jmeter/pull/559">
      Pull request #559</a>
    -
  Add a note to the source of TrustAllSSLSocketFactory, that it is not secure to trust everyone. Based on a PR from YYTVicky (yytvicky at github)</li>
    
<li>
<a href="https://github.com/apache/jmeter/pull/588">
      Pull request #588</a>
    -
  Add documentation on usage of InfluxDB v2 for real-time results. Based on PR from Jakub Bedn&aacute;&#345; (jakub.bednar at gmail.com)</li>

</ul>

 


<h2 class="ch_section" id="Bug fixes">Bug fixes</h2>


<h3>HTTP Samplers and Test Script Recorder</h3>

<ul>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=64400">
      Bug
      64400</a>
    -
  Make sorting recorded samples into transaction controllers more predictable</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=64267">
      Bug
      64267</a>
    -
  When preemptive auth is disabled HTTP Sampler does not automatically respond to Basic Auth challenge</li>

</ul>


<h3>Other Samplers</h3>

<ul>

</ul>


<h3>Controllers</h3>

<ul>

</ul>


<h3>Listeners</h3>

<ul>

</ul>


<h3>Timers, Assertions, Config, Pre- &amp; Post-Processors</h3>

<ul>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=64091">
      Bug
      64091</a>
    -
  Precise Throughput Timer might produce less samples when low test duration is used</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=64142">
      Bug
      64142</a>
    -
  Presence of DebugPostProcessor in Test plan breaks ActiveThread Over time in report due to missing information</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=64196">
      Bug
      64196</a>
    -
  Recurse into sub samplers more deeply when checking assertions</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=64196">
      Bug
      64196</a>
    -
  Recurse into sampleResults for <span class="code">AbstractScopedTestElement#getSampleList</span>
</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=64381">
      Bug
      64381</a>
    -
  PreciseThroughputTimer: On termination, log message contains negative value</li>

</ul>


<h3>Functions</h3>

<ul>

</ul>


<h3>I18N</h3>

<ul>

</ul>


<h3>Report / Dashboard</h3>

<ul>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=64059">
      Bug
      64059</a>
    -
  Response Time Percentiles Over Time, unable to change the percentiles</li>

</ul>


<h3>Documentation</h3>

<ul>
  
<li>
<a href="https://github.com/apache/jmeter/pull/547">
      Pull request #547</a>
    -
  Correct Log level documentation. Contributed by jmetertea</li>
  
<li>
<a href="https://github.com/apache/jmeter/pull/548">
      Pull request #548</a>
    -
  Correct typos in documentation. Contributed by jmetertea</li>
  
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=64022">
      Bug
      64022</a>
    -
  Correct Chinese translation for "Ignore Sub-Controller blocks". Provided by yangxiaofei77 (yangxiaofei77 at gmail.com)</li>
  
<li>
<a href="https://github.com/apache/jmeter/pull/552">
      Pull request #552</a>
    -
  Fix <span class="code">client.rmi.localport</span> port allocation description. Contributed by anant-93</li>
  
<li>
<a href="https://github.com/apache/jmeter/pull/543">
      Pull request #543</a>
    -
  Clarify documentation of <span class="code">__StringToFile</span> function regarding default value of <span class="code">Append to file?</span> parameter. Contributed by Ori Marko</li>
  
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=64302">
      Bug
      64302</a>
    -
  Correct links to JMeter API in printable docs and BeanShell best practices and to JavaFX implementation website in all docs.
     Reported by 2477441814 (2477441814 at qq.com)</li>

</ul>


<h3>General</h3>

<ul>
  
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=63945">
      Bug
      63945</a>
    -
  NPE when opening a file after file system change</li>
  
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=64034">
      Bug
      64034</a>
    -
  Shell scripts fail if space in <span class="code">JAVA_HOME</span> path. Contributed by ray7219 (ray7219 at hotmail.com)</li>
  
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=63856">
      Bug
      63856</a>
    -
  Set <span class="code">connectTime</span> on parent samples when using a transaction controller</li>
  
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=64227">
      Bug
      64227</a>
    -
  Error when loading Templates on Windows</li>
  
<li>TestPlan UI: skip adding the entry to the classpath if the user clicks cancel</li>

</ul>

 


<h2 class="ch_section" id="Thanks">Thanks</h2>

<p>We thank all contributors mentioned in bug and improvement sections above:
</p>

<ul>
  
<li>
<a href="https://github.com/weisJ/darklaf">Jannis Weis</a>
</li>
  
<li>Stefan Seide (stefan at trilobyte-se.de)</li>
  
<li>jmetertea</li>
  
<li>ray7219</li>
  
<li>Sebastian Boga (sebastian.boga at endava.com)</li>
  
<li>Liu XP (liu_xp2003 at sina.com)</li>
  
<li>anant-93 (https://github.com/anant-93)</li>
  
<li>Ori Marko (orimarko at gmail.com)</li>
  
<li>Keith Mo(https://github.com/keithmork)</li>
  
<li>drivera-armedia (https://github.com/drivera-armedia)</li>
  
<li>
<a href="https://ubikloadpack.com">Ubik Load Pack</a>
</li>
  
<li>Jakub Bedn&aacute;&#345; (jakub.bednar at gmail.com)</li>

</ul>

<p>We also thank bug reporters who helped us improve JMeter.</p>

<ul>
  
<li>Michael McDermott (mcdermott.michaelj at gmail.com)</li>
  
<li>yangxiaofei77 (yangxiaofei77 at gmail.com)</li>
  
<li>Markus Wolf (wolfm at t-systems.com)</li>
  
<li>Pierre Astruc (pierre.astruc at evertest.com)</li>
  
<li>YYTVicky (yytvicky at github)</li>
  
<li>2477441814 at qq.com</li>

</ul>

<p>
Apologies if we have omitted anyone else.
</p>
 


<h2 class="ch_section" id="Known problems and workarounds">Known problems and workarounds</h2>

<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 <span class="code">0</span> (see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55510">
      Bug
      55510</a>).
</li>


<li>
Note that under some windows systems you may have this WARNING:
<pre class="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.
</pre>
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:
<pre class="source">java.security.cert.CertificateException: Certificates does not conform to algorithm constraints</pre>
 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 <span class="code">md2WithRSAEncryption</span>) or with a SSL certificate with a size lower than 1024 bits.
This error is related to increased security in Java 8+.
<br>
To allow you to perform your HTTPS request, you can downgrade the security of your Java installation by editing
the Java <span class="code">jdk.certpath.disabledAlgorithms</span> property. Remove the MD2 value or the constraint on size, depending on your case.
<br>
This property is in this file:
<pre class="source">JAVA_HOME/jre/lib/security/java.security</pre>
See  <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56357">
      Bug
      56357</a> 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 <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54586">
      Bug
      54586</a>.
This is due to a known Java bug which fails to parse "<span class="code">px</span>" 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 (<span class="keycombo"><span class="keysym">SHIFT</span>&nbsp;+&nbsp;<span class="keysym">up/down</span></span>) 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.
<pre class="source">
Warning: Nashorn engine is planned to be removed from a future JDK release
</pre>
To silence these warnings, add <span class="code">-Dnashorn.args=--no-deprecation-warning</span> to your Java arguments.
That can be achieved by setting the enviroment variable <span class="code">JVM_ARGS</span>

<pre class="source">
export JVM_ARGS="-Dnashorn.args=--no-deprecation-warning"
</pre>

</li>

</ul>




<h1>Version 5.2.1</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>


<h2 class="ch_section" id="New and Noteworthy">New and Noteworthy</h2>

<p>
This release is a minor bugfix release. Please see the <a href="changes_history.html">Changes history page</a>
to view the last release notes of version 5.2.
</p>





<h2 class="ch_section" id="Incompatible changes">Incompatible changes</h2>

<ul>

</ul>



<h2 class="ch_section" id="Improvements">Improvements</h2>


<h3>HTTP Samplers and Test Script Recorder</h3>

<ul>

</ul>


<h3>Other samplers</h3>

<ul>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=63926">
      Bug
      63926</a>
    -
  JDBC Connection Configuration: Add ability to set connection properties</li>

</ul>


<h3>Controllers</h3>

<ul>

</ul>


<h3>Listeners</h3>

<ul>

</ul>


<h3>Timers, Assertions, Config, Pre- &amp; Post-Processors</h3>

<ul>

</ul>


<h3>Functions</h3>

<ul>

</ul>


<h3>I18N</h3>

<ul>

</ul>


<h3>Report / Dashboard</h3>

<ul>

</ul>


<h3>General</h3>

<ul>

</ul>


<h2 class="ch_section" id="Non-functional changes">Non-functional changes</h2>

<ul>

</ul>

 


<h2 class="ch_section" id="Bug fixes">Bug fixes</h2>


<h3>HTTP Samplers and Test Script Recorder</h3>

<ul>

</ul>


<h3>Other Samplers</h3>

<ul>

</ul>


<h3>Controllers</h3>

<ul>

</ul>


<h3>Listeners</h3>

<ul>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=63906">
      Bug
      63906</a>
    -
  NPE for InfluxDB backend listener during failover testing</li>

</ul>


<h3>Timers, Assertions, Config, Pre- &amp; Post-Processors</h3>

<ul>

</ul>


<h3>Functions</h3>

<ul>

</ul>


<h3>I18N</h3>

<ul>

</ul>


<h3>Report / Dashboard</h3>

<ul>

</ul>


<h3>Documentation</h3>

<ul>

</ul>


<h3>General</h3>

<ul>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=63910">
      Bug
      63910</a>
    -
  Broken maven poms in released 5.2 version </li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=63911">
      Bug
      63911</a>
    -
  ApacheJMeter_config.jar content has changed (bin moved to run and missing files)</li>

</ul>

 


<h2 class="ch_section" id="Thanks">Thanks</h2>

<p>We thank all contributors mentioned in bug and improvement sections above:
</p>

<ul>
    
<li>
<a href="https://github.com/vincentclee">Vincent Lee</a>
</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>
 


<h2 class="ch_section" id="Known problems and workarounds">Known problems and workarounds</h2>

<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 <span class="code">0</span> (see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55510">
      Bug
      55510</a>).
</li>


<li>
Note that under some windows systems you may have this WARNING:
<pre class="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.
</pre>
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:
<pre class="source">java.security.cert.CertificateException: Certificates does not conform to algorithm constraints</pre>
 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 <span class="code">md2WithRSAEncryption</span>) or with a SSL certificate with a size lower than 1024 bits.
This error is related to increased security in Java 8+.
<br>
To allow you to perform your HTTPS request, you can downgrade the security of your Java installation by editing
the Java <span class="code">jdk.certpath.disabledAlgorithms</span> property. Remove the MD2 value or the constraint on size, depending on your case.
<br>
This property is in this file:
<pre class="source">JAVA_HOME/jre/lib/security/java.security</pre>
See  <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56357">
      Bug
      56357</a> 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 <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54586">
      Bug
      54586</a>.
This is due to a known Java bug which fails to parse "<span class="code">px</span>" 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 (<span class="keycombo"><span class="keysym">SHIFT</span>&nbsp;+&nbsp;<span class="keysym">up/down</span></span>) 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.
<pre class="source">
Warning: Nashorn engine is planned to be removed from a future JDK release
</pre>
To silence these warnings, add <span class="code">-Dnashorn.args=--no-deprecation-warning</span> to your Java arguments.
That can be achieved by setting the enviroment variable <span class="code">JVM_ARGS</span>

<pre class="source">
export JVM_ARGS="-Dnashorn.args=--no-deprecation-warning"
</pre>

</li>

</ul>




<h1>Version 5.2</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>


<h2 class="ch_section" id="New and Noteworthy">New and Noteworthy</h2>

<p>
This release is a major release. Please see the <a href="changes_history.html">Changes history page</a>
to view the last release notes of version 5.1.1.
</p>





<h2 class="ch_section" id="Incompatible changes">Incompatible changes</h2>

<ul>
    
<li>HTTP(S) Test Script Recorder now appends number at end of names, while previously it added it at beginning. See <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=63450">
      Bug
      63450</a>
</li>
    
<li>When using XPath Assertion with an XPath expression returning a boolean, <span class="code">True if nothing matches</span> had no effect and always returned true, see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=63455">
      Bug
      63455</a>
</li>
    
<li>XML parsing now refuses unsecure XML, this has impacts on the following features:
        <ul>
            
<li>XMLAssertion</li>
            
<li>XMLSchemAssertion</li>
            
<li>XPath function</li>
            
<li>XPath 1 &amp; 2 Extractors</li>
            
<li>XPath 1 &amp; 2 Assertions</li>
        
</ul>

     
</li>

</ul>



<h2 class="ch_section" id="Improvements">Improvements</h2>


<h3>HTTP Samplers and Test Script Recorder</h3>

<ul>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=63450">
      Bug
      63450</a>
    -
  HTTP(S) Test Script Recorder: Put number at end instead of beginning</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=63790">
      Bug
      63790</a>
    -
  Embedded Resources download: Optimize CSS parsing by removing source location</li>

</ul>


<h3>Other samplers</h3>

<ul>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=63406">
      Bug
      63406</a>
    -
  JDBC connection configuration: new option for pre-initialize to initialize the connection pool. Contributed by Franz Schwab (franz.schwab at exasol.com)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=63561">
      Bug
      63561</a>
    -
  JDBC Request: Allow to only fetch a certain number of rows. Contributed by Franz Schwab (franz.schwab at exasol.com)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=63801">
      Bug
      63801</a>
    -
  Add Bolt protocol support for Neo4j database. Contributed by GraphAware (www.graphaware.com)</li>

</ul>


<h3>Controllers</h3>

<ul>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=63565">
      Bug
      63565</a>
    -
  If Controller: GC issue with JMeter during the endurance run when using with "Interpret Condition as Variable Expression?" unchecked =&gt; Improve documentation</li>

</ul>


<h3>Listeners</h3>

<ul>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=63720">
      Bug
      63720</a>
    -
  BackendListener: InfluxDBBackendListenerClient Add support for InfluxDB 2. Contributed by Jakub Bedn&aacute;&#345; (https://github.com/bednar)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=63770">
      Bug
      63770</a>
    -
  View Results Tree: Add JMESPath Tester. Contributed by Ubik Load Pack (support at ubikloadpack.com)</li>

</ul>


<h3>Timers, Assertions, Config, Pre- &amp; Post-Processors</h3>

<ul>
  
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=62863">
      Bug
      62863</a>
    -
  Enable PKCS11 keystores for usage with KeyStore Manager. Based on patch by Clifford Harms (clifford.harms at gmail.com).</li>
  
<li>
<a href="https://github.com/apache/jmeter/pull/457">
      Pull request #457</a>
    -
  Slight performance improvement in PoissonRandomTimer by using ThreadLocalRandom. Based on a patch by Xia Li.</li>
  
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=62787">
      Bug
      62787</a>
    -
  New <span class="code">XPath2 Assertion</span> supporting XPath2 with better performances than <span class="code">XPath Assertion</span>. Contributed by Ubik Load Pack (support at ubikloadpack.com)</li>
  
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=63643">
      Bug
      63643</a>
    -
  Skip BOM on files opened through <span class="code">FileServer</span> and use the BOM to detect the character encoding,
      if none is given explicitly. Reported by Havlicek Honza (havlicek.honza at gmail.com)</li>
  
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=63727">
      Bug
      63727</a>
    -
  New <span class="code">JMESPath Extractor</span> element to ease extraction from JSON using <a href="http://jmespath.org">JMESPath</a> technology. Contributed by Ubik Load Pack (support at ubikloadpack.com)</li>
  
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=63763">
      Bug
      63763</a>
    -
  New <span class="code">JMESPath Assertion</span> element to ease assertion on JSON using <a href="http://jmespath.org">JMESPath</a> technology. Contributed by Ubik Load Pack (support at ubikloadpack.com)</li>
  
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=63775">
      Bug
      63775</a>
    -
  Allow Boundary Extractor to accept empty boundaries</li>

</ul>


<h3>Functions</h3>

<ul>
  
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=63219">
      Bug
      63219</a>
    -
  New function <span class="code">__StringToFile</span> to save/append a string into a file. Contributed by Ubik Load Pack (support at ubikloadpack.com)</li>
  
<li>Use <span class="code">AtomicInteger</span> for <span class="code">__counter</span> instead of synchronization on our own</li>

</ul>


<h3>I18N</h3>

<ul>

</ul>


<h3>Report / Dashboard</h3>

<ul>
  
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=63471">
      Bug
      63471</a>
    -
  <span class="code">StringConverter</span>s used for report generation should ignore white space around numbers.</li>

</ul>


<h3>General</h3>

<ul>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=63396">
      Bug
      63396</a>
    -
  JSR223 Test Elements: Description of Parameters is misleading, same for Script</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=63480">
      Bug
      63480</a>
    -
  XPathAssertion and XPathAssertion2: Improve test coverage for input coming from variable. Contributed by Ubik Load Pack (support at ubikloadpack.com)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=63452">
      Bug
      63452</a>
    -
  Tools / Import from cURL: Complete coverage of all command line options that are valid in JMeter use case. Contributed by Ubik Load Pack (support at ubikloadpack.com)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=63419">
      Bug
      63419</a>
    -
  Tools / Import from cURL: Add ability to import a set of cURL commands from a file. Contributed by Ubik Load Pack (support at ubikloadpack.com)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=63760">
      Bug
      63760</a>
    -
  JOrphanUtils: add random alphanumeric password generator</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=63355">
      Bug
      63355</a>
    -
  View Results Tree: Browser view option is not Available since Java 11, document how to make it available, see <a href="./usermanual/hints_and_tips.html#browser_renderer_view_results_tree">this</a>
</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=62861">
      Bug
      62861</a>
    -
  Thread Group: Provide ability to configure whether a new iteration is a new user or same user (Would be applied on Cookie Manager, Cache Manager and httpclient.reset_state_on_thread_group_iteration). Contributed by Ubik Load Pack (support at ubikloadpack.com)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=63616">
      Bug
      63616</a>
    -
  Fix Javadoc: <pre class="source">JMeterContext#getThreadNum()</pre> starts at 0 and not 1. Contributed by Ori Marko (orimarko at gmail.com)</li>
    
<li>Updated to httpclient/httpmime 4.5.10 (from 4.5.7)</li>
    
<li>Updated to dnsjava 2.1.9 (from 2.1.8)</li>
    
<li>Updated to jsoup 1.12.1 (from 1.11.3)</li>
    
<li>Updated to rsyntaxtextarea 3.0.4 (from 3.0.2)</li>
    
<li>Updated to caffeine 2.8.0 (from 2.6.2)</li>
    
<li>Updated to commons-codec 1.13 (from 1.11)</li>
    
<li>Updated to commons-lang3 3.9 (from 3.8.1)</li>
    
<li>Updated to commons-pool 2.7 (from 2.6)</li>
    
<li>Updated to commons-text 1.8 (from 1.6)</li>
    
<li>Updated to freemarker 2.3.29 (from 2.3.28)</li>
    
<li>Updated to httpcore/httpcore-nio 4.12 (from 4.11)</li>
    
<li>Updated to jodd 5.0.13 (from 5.0.6)</li>
    
<li>Updated to log4j 2.12.1 (from 2.11.1)</li>
    
<li>Updated to ph-commons 9.3.7 (from 9.2.1)</li>
    
<li>Updated to ph-css 6.2.0 (from 6.1.1)</li>
    
<li>Updated to Mozilla Rhino 1.7.11 (from 1.7.10)</li>
    
<li>Updated to Saxon-HE 9.9.1-5 (from 9.9.1-1)</li>
    
<li>Updated to slf4j 1.7.28 (from 1.7.25)</li>
    
<li>Updated to tika-core and tika-parsers 1.22 (from 1.21)</li>
    
<li>Updated jackson-annotations, jackson-core and jackson-databind to 2.9.10 (from 2.9.8)</li>

</ul>


<h2 class="ch_section" id="Non-functional changes">Non-functional changes</h2>

<ul>
    
<li>Migrated from subversion to <a href="https://github.com/apache/jmeter">Git</a>
</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=63630">
      Bug
      63630</a>
    -
  Switch build from Apache Ant to Gradle</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=63529">
      Bug
      63529</a>
    -
  Add more unit tests for org.apache.jorphan.util.JOrphanUtils. Contributed by John Bergqvist(John.Bergqvist at diffblue.com)</li>
    
<li>Updated to latest checkstyle (version 8.22)</li>
    
<li>Clean-up of code in <span class="code">CompareAssertion</span> and other locations. Based on patch by Graham Russell (graham at ham1.co.uk)</li>
    
<li>
<a href="https://github.com/apache/jmeter/pull/491">
      Pull request #491</a>
    -
  Increase Graphite metrics coverage. Contributed by Graham Russell (graham at ham1.co.uk)</li>
    
<li>
<a href="https://github.com/apache/jmeter/pull/520">
      Pull request #520</a>
    -
  Replace anonymous classes with lambda expressions. Contributed by Graham Russell (graham at ham1.co.uk).</li>
    
<li>
<a href="https://github.com/apache/jmeter/pull/524">
      Pull request #524</a>
    -
  Migration from JUnit 4 to JUnit 5. Contributed by Graham Russell (graham at ham1.co.uk).</li>

</ul>

 


<h2 class="ch_section" id="Bug fixes">Bug fixes</h2>


<h3>HTTP Samplers and Test Script Recorder</h3>

<ul>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=63298">
      Bug
      63298</a>
    -
  HTTP Requests with encoded URLs are being sent in decoded format</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=63364">
      Bug
      63364</a>
    -
  When setting <span class="code">subresults.disable_renaming=true</span>, sub results are still renamed using their parent SampleLabel while they shouldn't. Contributed by Ubik Load Pack (support at ubikloadpack.com)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=63129">
      Bug
      63129</a>
    -
  JMeter can not identify encoding during first time page submission. Based partly on analysis and PR made by Naveen Nandwani (naveen.nandwani at india.nec.com)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=62672">
      Bug
      62672</a>
    -
  HTTP Request sends double requests when using proxy with authentication. Based on patch by Artem Fedorov (artem.fedorov at blazemeter.com) and contributed by BlazeMeter.</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=63574">
      Bug
      63574</a>
    -
  HTTP Cache Manager does not cache resource if <span class="code">Cache-Control</span> header is missing.</li>

</ul>


<h3>Other Samplers</h3>

<ul>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=63442">
      Bug
      63442</a>
    -
  Reduce scanning for <span class="code">LogParser</span> implementations in AccessLogSamplerBeanInfo.</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=63563">
      Bug
      63563</a>
    -
  LdapExtSampler: When sampler fails with exception differing from NamingException, no SampleResult is generated</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=63469">
      Bug
      63469</a>
    -
  JMSPublisher: Race condition in jms.client.ClientPool#clearClient</li>

</ul>


<h3>Controllers</h3>

<ul>

</ul>


<h3>Listeners</h3>

<ul>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=63319">
      Bug
      63319</a>
    -
  <span class="code">ArrayIndexOutOfBoundsException</span> in Aggregate Graph when selecting 90&nbsp;% or 95&nbsp;% columns</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=63423">
      Bug
      63423</a>
    -
  Selection of table rows in Aggregate Graph gets lost too often</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=63347">
      Bug
      63347</a>
    -
  View result tree: The search field is so small that even a single character is not visible on Windows 7</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=63433">
      Bug
      63433</a>
    -
  ListenerNotifier: Detected problem in Listener NullPointerException if filename is null. Contributed by Ubik Load Pack (support at ubikloadpack.com)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=63674">
      Bug
      63674</a>
    -
  Strip results with subresults deeper in their hierarchy when DataStripping is enabled</li>

</ul>


<h3>Timers, Assertions, Config, Pre- &amp; Post-Processors</h3>

<ul>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=63455">
      Bug
      63455</a>
    -
  XPath Assertion: <span class="code">True if nothing matches</span> does not work if XPath expression returns a boolean. Contributed by Ubik Load Pack (support at ubikloadpack.com)</li>

</ul>


<h3>Functions</h3>

<ul>

</ul>


<h3>I18N</h3>

<ul>

</ul>


<h3>Report / Dashboard</h3>

<ul>

</ul>


<h3>Documentation</h3>

<ul>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=63513">
      Bug
      63513</a>
    -
  Add MariaDB examples to JDBC documentation. Contributed by Ori Marko (orimarko at gmail.com)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=63484">
      Bug
      63484</a>
    -
  Add notes to use Apache Velocity as JSR223 script language. Based on a patch by Ori Marko (orimarko at gmail.com)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=63519">
      Bug
      63519</a>
    -
  <a href="https://github.com/apache/jmeter/pull/471">
      Pull request #471</a>
    -
  Use correct method <span class="code">getLabelResource()</span> in JMeter tutorial. Contributed by Sun Tao (buzzerrookie at hotmail.com&gt;)</li>

</ul>


<h3>General</h3>

<ul>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=63394">
      Bug
      63394</a>
    -
  JMeter should fail with non-zero when test execution fails (due to missing test plan or other reason). Contributed by Ubik Load Pack (support at ubikloadpack.com)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=63464">
      Bug
      63464</a>
    -
  image/svg+xml is wrongly considered as binary</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=63490">
      Bug
      63490</a>
    -
  At end of scheduler duration lots of Samplers gets executed at the same time</li>
    
<li>
<a href="https://github.com/apache/jmeter/pull/480">
      Pull request #480</a>,
  <a href="https://github.com/apache/jmeter/pull/482">
      Pull request #482</a>
    -
  Fix a few typos in comments and log messages. Based on patch by Anass Benomar (anassbenomar at gmail.com)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=63751">
      Bug
      63751</a>
    -
  Correct a typo in Chinese translations. Reported by Jinliang Wang (wjl31802 at 126.com)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=63723">
      Bug
      63723</a>
    -
  Distributed testing: JMeter controller node ends distributed test though some threads still are active</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=63614">
      Bug
      63614</a>
    -
  Distributed testing: Unable to generate Dashboard report at end of load test</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=63862">
      Bug
      63862</a>
    -
   Search Dialog / Search in View Results Tree: Uncaught exception if regex is checked and regex is invalid</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=63793">
      Bug
      63793</a>
    -
  Fix unsecure XML Parsing</li>

</ul>

 


<h2 class="ch_section" id="Thanks">Thanks</h2>

<p>We thank all contributors mentioned in bug and improvement sections above:
</p>

<ul>
  
<li>Clifford Harms (clifford.harms at gmail.com)</li>
  
<li>
<a href="https://ubikloadpack.com">Ubik Load Pack</a>
</li>
  
<li>Xia Li</li>
  
<li>Naveen Nandwani (naveen.nandwani at india.nec.com)</li>
  
<li>Artem Fedorov (artem.fedorov at blazemeter.com)</li>
  
<li>Ori Marko (orimarko at gmail.com)</li>
  
<li>Sun Tao (buzzerrookie at hotmail.com)</li>
  
<li>John Bergqvist (John.Bergqvist at diffblue.com)</li>
  
<li>Franz Schwab (franz.schwab at exasol.com)</li>
  
<li>Graham Russell (graham at ham1.co.uk)</li>
  
<li>Anass Benomar (anassbenomar at gmail.com)</li>
  
<li>
<a href="https://github.com/bednar">Jakub Bedn&aacute;&#345;</a>
</li>
  
<li>Pascal Schumacher (pascalschumacher at apache.org)</li>
  
<li>
<a href="https://graphaware.com/">GraphAware</a>
</li>

</ul>

<p>We also thank bug reporters who helped us improve JMeter.</p>

<ul>
    
<li>Sergiy Iampol (sergiy.iampol at playtech.com)</li>
    
<li>Brian Tully (brian.tully at acquia.com)</li>
    
<li>Amer Ghazal (amerghazal at gmail.com)</li>
    
<li>Stefan Seide (stefan at trilobyte-se.de)</li>
    
<li>Havlicek Honza (havlicek.honza at gmail.com)</li>
    
<li>Pierre Astruc (pierre.astruc at evertest.com)</li>
    
<li>Jinliang Wang (wjl31802 at 126.com)</li>

</ul>

<p>
Apologies if we have omitted anyone else.
</p>
 


<h2 class="ch_section" id="Known problems and workarounds">Known problems and workarounds</h2>

<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 <span class="code">0</span> (see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55510">
      Bug
      55510</a>).
</li>


<li>
Note that under some windows systems you may have this WARNING:
<pre class="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.
</pre>
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:
<pre class="source">java.security.cert.CertificateException: Certificates does not conform to algorithm constraints</pre>
 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 <span class="code">md2WithRSAEncryption</span>) or with a SSL certificate with a size lower than 1024 bits.
This error is related to increased security in Java 8+.
<br>
To allow you to perform your HTTPS request, you can downgrade the security of your Java installation by editing
the Java <span class="code">jdk.certpath.disabledAlgorithms</span> property. Remove the MD2 value or the constraint on size, depending on your case.
<br>
This property is in this file:
<pre class="source">JAVA_HOME/jre/lib/security/java.security</pre>
See  <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56357">
      Bug
      56357</a> 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 <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54586">
      Bug
      54586</a>.
This is due to a known Java bug which fails to parse "<span class="code">px</span>" 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 (<span class="keycombo"><span class="keysym">SHIFT</span>&nbsp;+&nbsp;<span class="keysym">up/down</span></span>) 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.
<pre class="source">
Warning: Nashorn engine is planned to be removed from a future JDK release
</pre>
To silence these warnings, add <span class="code">-Dnashorn.args=--no-deprecation-warning</span> to your Java arguments.
That can be achieved by setting the enviroment variable <span class="code">JVM_ARGS</span>

<pre class="source">
export JVM_ARGS="-Dnashorn.args=--no-deprecation-warning"
</pre>

</li>

</ul>




<h1>Version 5.1.1</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>


<h2 class="ch_section" id="New and Noteworthy">New and Noteworthy</h2>

<p>
This release is mainly a bugfix release. Please see the <a href="changes_history.html">Changes history page</a>
to view the last major behaviors with the version 5.1.
</p>


<h3 class="ch_title">Live Reporting and Web Report</h3>

<p>A new menu entry has been added to the <b>Tools</b> menu. It's allow to generate
a results report from a previous CSV/JTL file.
<figure>
<a href="./images/screenshots/changes/5.1.1/01_menu_generate_report.png"><img src="./images/screenshots/changes/5.1.1/01_menu_generate_report.png" width="1209" height="341" alt=""></a>
<figcaption></figcaption>
</figure>

<br>

<figure>
<a href="./images/screenshots/changes/5.1.1/02_windows_generate_report.png"><img src="./images/screenshots/changes/5.1.1/02_windows_generate_report.png" width="1624" height="565" alt=""></a>
<figcaption></figcaption>
</figure>

</p>




<h2 class="ch_section" id="Incompatible changes">Incompatible changes</h2>

<ul>

</ul>



<h2 class="ch_section" id="Improvements">Improvements</h2>


<h3>HTTP Samplers and Test Script Recorder</h3>

<ul>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=62977">
      Bug
      62977</a>
    -
  Allow sending HTTP requests without a default User-Agent header</li>

</ul>


<h3>Other samplers</h3>

<ul>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=63185">
      Bug
      63185</a>
    -
  LDAP related elements: Add option to implicitly trust SSL/TLS connections/Disable hostname verification. Based on contribution by Brian Wolfe (wolfebrian2120 at gmail.com)</li>

</ul>


<h3>Controllers</h3>

<ul>

</ul>


<h3>Listeners</h3>

<ul>

</ul>


<h3>Timers, Assertions, Config, Pre- &amp; Post-Processors</h3>

<ul>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=63178">
      Bug
      63178</a>
    -
  CSS Selector Extractor: Improve performance of JODD (JoddExtractor) based implementation</li>

</ul>


<h3>Functions</h3>

<ul>

</ul>


<h3>I18N</h3>

<ul>

</ul>


<h3>Report / Dashboard</h3>

<ul>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=59896">
      Bug
      59896</a>
    -
   Report / Dashboard: Add a menu entry to generate a report on demand from a CSV file. Contributed by Ubik Load Pack (support at ubikloadpack.com)</li>

</ul>


<h3>General</h3>

<ul>
    
<li>
<a href="https://github.com/apache/jmeter/pull/444">
      Pull request #444</a>
    -
  Update to latest Spock v1.2 (was 1.0). Contributed by Graham Russell (graham at ham1.co.uk)</li>
    
<li>
<a href="https://github.com/apache/jmeter/pull/446">
      Pull request #446</a>
    -
  Improve Unit tests readability and use of Spock. Contributed by Graham Russell (graham at ham1.co.uk)</li>

</ul>


<h2 class="ch_section" id="Non-functional changes">Non-functional changes</h2>

<ul>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=63203">
      Bug
      63203</a>
    -
  Unit Tests: Replace use of <span class="code">@Deprecated</span> by <span class="code">@VisibleForTesting</span> for methods/constructors/classes made public for Unit Testing only</li>
    
<li>
<a href="https://github.com/apache/jmeter/pull/449">
      Pull request #449</a>
    -
  Refactor and Test ResponseTimePercentilesOverTimeGraphConsumer. Contributed by Graham Russell (graham at ham1.co.uk)</li>
    
<li>
<a href="https://github.com/apache/jmeter/pull/450">
      Pull request #450</a>
    -
  Abstract graph consumer improvements. Contributed by Graham Russell (graham at ham1.co.uk)</li>
    
<li>
<a href="https://github.com/apache/jmeter/pull/451">
      Pull request #451</a>
    -
  Improve a few unit tests and classes. Contributed by Graham Russell (graham at ham1.co.uk)</li>

</ul>

 


<h2 class="ch_section" id="Bug fixes">Bug fixes</h2>


<h3>HTTP Samplers and Test Script Recorder</h3>

<ul>

</ul>


<h3>Other Samplers</h3>

<ul>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=63202">
      Bug
      63202</a>
    -
  JMS Publisher: ObjectMessageRenderer creates XStream instance with uninitialized security</li>

</ul>


<h3>Controllers</h3>

<ul>

</ul>


<h3>Listeners</h3>

<ul>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=63204">
      Bug
      63204</a>
    -
  <span class="code">RenderAsJSON#prettyJSON</span>: <span class="code">JSONParser#parse</span> cannot return JSONValue</li>

</ul>


<h3>Timers, Assertions, Config, Pre- &amp; Post-Processors</h3>

<ul>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=62446">
      Bug
      62446</a>
    -
  Counter documentation is wrong in required fieds. Contributed by orimarko at gmail.com</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=62327">
      Bug
      62327</a>
    -
  TestPlan: In library table if path is modified and plan saved, the modification is lost on file reload</li>

</ul>


<h3>Functions</h3>

<ul>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=63241">
      Bug
      63241</a>
    -
  <span class="code">__threadGroupName</span> causes a NullPointerException if called from non Test threads</li>

</ul>


<h3>I18N</h3>

<ul>

</ul>


<h3>Report / Dashboard</h3>

<ul>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=63198">
      Bug
      63198</a>
    -
  Response Time Vs Request and Latency Vs Request graphs don't line up with throughput. Contributed by Ubik Load Pack (support at ubikloadpack.com)</li>

</ul>


<h3>Documentation</h3>

<ul>

</ul>


<h3>General</h3>

<ul>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=63201">
      Bug
      63201</a>
    -
  SearchTreeDialog disappears behind master JFrame. Contributed by Benoit Vatan (benoit.vatan at gmail.com)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=63220">
      Bug
      63220</a>
    -
  <span class="code">Function Helper Dialog</span>, <span class="code">Export transactions for report</span> and <span class="code">Import from cURL</span> disappear being master JFrame. Contributed by Ubik Load Pack (support at ubikloadpack.com)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=63207">
      Bug
      63207</a>
    -
  java.lang.NullPointerException: null when run JMeter 5.1 with proxy options</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58183">
      Bug
      58183</a>
    -
  Rampup may not be respected if thread take time to start leading to threads continuing to start post ramp up time</li>

</ul>

 


<h2 class="ch_section" id="Thanks">Thanks</h2>

<p>We thank all contributors mentioned in bug and improvement sections above:
</p>

<ul>
    
<li>
<a href="https://ubikloadpack.com">Ubik Load Pack</a>
</li>
    
<li>Benoit Vatan (benoit.vatan at gmail.com)</li>
    
<li>Graham Russell (graham at ham1.co.uk)</li>
    
<li>Brian Wolfe (wolfebrian2120 at gmail.com)</li>
    
<li>orimarko at gmail.com</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>
 


<h2 class="ch_section" id="Known problems and workarounds">Known problems and workarounds</h2>

<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 <span class="code">0</span> (see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55510">
      Bug
      55510</a>).
</li>


<li>
Note that under some windows systems you may have this WARNING:
<pre class="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.
</pre>
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:
<pre class="source">java.security.cert.CertificateException: Certificates does not conform to algorithm constraints</pre>
 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 <span class="code">md2WithRSAEncryption</span>) or with a SSL certificate with a size lower than 1024 bits.
This error is related to increased security in Java 8+.
<br>
To allow you to perform your HTTPS request, you can downgrade the security of your Java installation by editing
the Java <span class="code">jdk.certpath.disabledAlgorithms</span> property. Remove the MD2 value or the constraint on size, depending on your case.
<br>
This property is in this file:
<pre class="source">JAVA_HOME/jre/lib/security/java.security</pre>
See  <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56357">
      Bug
      56357</a> 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 <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54586">
      Bug
      54586</a>.
This is due to a known Java bug which fails to parse "<span class="code">px</span>" 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 (<span class="keycombo"><span class="keysym">SHIFT</span>&nbsp;+&nbsp;<span class="keysym">up/down</span></span>) 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>

</ul>




<h1>Version 5.1</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>


<h2 class="ch_section" id="New and Noteworthy">New and Noteworthy</h2>

<h3 class="ch_title">Core improvements</h3>

<p>JDBC testing has been improved with ability to set init SQL statements and add
compatibility with JDBC drivers that do not support QueryTimeout
<figure>
<a href="./images/screenshots/changes/5.1/jdbc-connection-config-init-request.png"><img src="./images/screenshots/changes/5.1/jdbc-connection-config-init-request.png" width="1122" height="727" alt=""></a>
<figcaption></figcaption>
</figure>

</p>

<ul>

<li>Various bug fixes have been implemented, like gathering the correct headers when recording requests through the HTTP(S) Test Script Recorder using HTTPS</li>

<li>In version 5.0, JMeter was changed to rename Sub results using a custom Naming Policy (<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=62550">
      Bug
      62550</a>). This change could be annoying for Functional Testing, a new property
<span class="code">subresults.disable_renaming=true</span> has been introduced to revert if needed to previous behaviour. An alternative is to check <span class="code">Functional Test Mode</span> in Test Plan, see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=63055">
      Bug
      63055</a>
</li>

</ul>

<h3 class="ch_title">UX improvements</h3>

<p>Templates can provide parameters that are filled in on test plan generation,
<span class="code">Recording</span> template uses this feature
<figure>
<a href="./images/screenshots/changes/5.1/templates-parametes.png"><img src="./images/screenshots/changes/5.1/templates-parametes.png" width="726" height="453" alt=""></a>
<figcaption></figcaption>
</figure>

</p>

<p>A new <span class="code">Tools</span> menu has been introduced to collect those entries,
that are used for general usage around JMeter, like:
<ul>
    
<li>
<span class="code">Function Helper Dialog</span>
</li>
    
<li>
<span class="code">Export transactions for report</span>
</li>
    
<li>
<span class="code">Generate Schematic View</span> which provides an overview as HTML of the Test plan</li>
    
<li>
<span class="code">Import from cURL</span> which allows you to create or update your test plan by importing a cURL command</li>
    
<li>
<span class="code">Compile JSR223 Test Elements</span>
</li>
    
<li>
<span class="code">Create a heap dump</span>
</li>
    
<li>
<span class="code">Create a thread dump</span>
</li>

</ul>

<figure>
<a href="./images/screenshots/changes/5.1/jmeter-new-menu-tools.png"><img src="./images/screenshots/changes/5.1/jmeter-new-menu-tools.png" width="268" height="237" alt=""></a>
<figcaption></figcaption>
</figure>

</p>

<h3 class="ch_title">Test Plan</h3>

<p>Ability to create a Test plan from a cURL command.
<figure>
<a href="./images/screenshots/changes/5.1/http-request-from-curl-request.png"><img src="./images/screenshots/changes/5.1/http-request-from-curl-request.png" width="1026" height="439" alt=""></a>
<figcaption></figcaption>
</figure>

</p>

<h3 class="ch_title">Scripting / Debugging enhancements</h3>

<ul>

<li>A menu item to compile all JSR223 Elements is now available in <span class="code">Tools</span> menu</li>

</ul>

<h3 class="ch_title">Live Reporting and Web Report</h3>

<ul>

<li>A JSON file containing summary of a load test statistics is now generated when using <span class="code">-e</span> or <span class="code">-g</span> options.</li>

<li>Percentiles computing graphed over time algorithm has been modified to restart for  each time slot</li>

<li>More user-friendly behaviour when reporting folder does not exist or is not empty through <span class="code">-f</span> command line option</li>

</ul>




<h2 class="ch_section" id="Incompatible changes">Incompatible changes</h2>

<ul>

<li>In <span class="code">Response Time Percentiles Over Time (successful responses)</span> graph of the HTML report, before this version, percentile computation of each time slot used the percentile data
of previous time slot as a base. Starting with this version, each time slot is independant. See <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=62883">
      Bug
      62883</a>
</li>

<li>
<span class="code">ClientJMeterEngine#rsetProperties</span> signature has been changed to use <span class="code">HashMap&lt;String,String&gt;</span> instead of Properties, see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=63034">
      Bug
      63034</a>
</li>

<li>A new Menu item <span class="code">Tools</span> has been introduced, some menu items that were in <span class="code">Help</span> menu are now under this new menu item. See <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=63094">
      Bug
      63094</a>

</li>

<li>
<span class="code">slf4j-ext</span> has been removed from libraries (lib folder) and JMeter pom. It was not used by default and due to CVE-2018-8088 and unavailability of a stable version
containing a fix to this issue, we decided to remove it. If you still needed, you can add it in lib folder.</li>

</ul>



<h2 class="ch_section" id="Improvements">Improvements</h2>


<h3>HTTP Samplers and Test Script Recorder</h3>

<ul>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=62840">
      Bug
      62840</a>
    -
  HTTP Request: Add option <span class="code">httpclient4.gzip_relax_mode</span> to avoid error when unzipping what seems to be invalid streams</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=63025">
      Bug
      63025</a>
    -
  Enhance Search &amp; Replace functionality for HTTP Request to include port and protocol field. Initial code fix by Mohamed Ibrahim (rollno748 at gmail.com)</li>

</ul>


<h3>Other samplers</h3>

<ul>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=62934">
      Bug
      62934</a>
    -
  Add compatibility for JDBC drivers that do not support QueryTimeout </li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=62935">
      Bug
      62935</a>
    -
  Pass custom <span class="code">mail.*</span> properties to Mail Reader Sampler. Implemented by Artem Fedorov (artem.fedorov at blazemeter.com) and contributed by BlazeMeter.</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=63055">
      Bug
      63055</a>
    -
  Don't rename SampleResult Label when test is running in Functional mode or property <span class="code">subresults.disable_renaming=true</span>. Implemented by Artem Fedorov (artem.fedorov at blazemeter.com) and contributed by BlazeMeter.</li>

</ul>


<h3>Controllers</h3>

<ul>

</ul>


<h3>Listeners</h3>

<ul>
  
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=62822">
      Bug
      62822</a>
    -
  <a href="https://github.com/apache/jmeter/pull/407">
      Pull request #407</a>
    -
  Render uninitialized min and max values in Summary Report as <span class="code">#N/A</span>
</li>

</ul>


<h3>Timers, Assertions, Config, Pre- &amp; Post-Processors</h3>

<ul>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=62766">
      Bug
      62766</a>
    -
  Keystore Config: We should load all aliases by default. Contributed by Ubik Load Pack (support at ubikloadpack.com)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=62832">
      Bug
      62832</a>
    -
  JDBC Connection Configuration: Be able to set init SQL statements. Contributed by Ubik Load Pack (support at ubikloadpack.com)</li>

</ul>


<h3>Functions</h3>

<ul>
  
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=63037">
      Bug
      63037</a>
    -
  When using <span class="code">CSVRead</span> search the script base path for files, too.</li>

</ul>


<h3>I18N</h3>

<ul>

</ul>


<h3>Report / Dashboard</h3>

<ul>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=62883">
      Bug
      62883</a>
    -
  Report / Dashboard: Change the way percentiles are computed for Response Time Percentiles Over Time (successful responses) graph</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=63060">
      Bug
      63060</a>
    -
  Report Generator: A generator should only check for folder/files it generates and only delete those ones</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=63059">
      Bug
      63059</a>
    -
  Create a new JsonExporter that exports as JSON the content of data computed for HTML Dashboard Statistics table. Contributed by Ubik Load Pack (support at ubikloadpack.com)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=63081">
      Bug
      63081</a>
    -
  Command line Option <span class="code">-f</span> does not delete report folder when using generation only through command line option <span class="code">-g</span>. Contributed by Ubik Load Pack (support at ubikloadpack.com)</li>

</ul>


<h3>General</h3>

<ul>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=62959">
      Bug
      62959</a>
    -
  Ability to create a Test plan from a cURL command. Contributed by Ubik Load Pack (support at ubikloadpack.com)</li>
    
<li>
<a href="https://github.com/apache/jmeter/pull/394">
      Pull request #394</a>
    -
  Allow <span class="code">null</span> values in <span class="code">FieldStringEditor</span>. Based on patch by Mingun (alexander_sergey at mail.ru)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=62826">
      Bug
      62826</a>
    -
  When changing LAF, make JMeter restart if user clicks yes to popup</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=62257">
      Bug
      62257</a>
    -
  <a href="https://github.com/apache/jmeter/pull/401">
      Pull request #401</a>
    -
  Expand/Collapse short key <span class="keysym">-</span> (minus sign) on numpad doesn't work. Contributed by Ori Marko (orimarko at gmail.com)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=62752">
      Bug
      62752</a>
    -
  Add to Documentation: <span class="code">ctx.getThreadNum()</span> is zero-based while <span class="code">${__threadNum}</span> is one-based</li>
    
<li>
<a href="https://github.com/apache/jmeter/pull/411">
      Pull request #411</a>
    -
  Use <span class="code">SHA-1</span> instead of <span class="code">SHA1</span> in <span class="code">org.apache.jmeter.save.SaveService</span>. Contributed by Paco (paco.xu at daocloud.io)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=62914">
      Bug
      62914</a>
    -
  Add a hint in Thread Group UI about duration of test</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=62925">
      Bug
      62925</a>
    -
  Add support for ThreadDump to the JMeter non-GUI</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=62870">
      Bug
      62870</a>
    -
  Templates: Add ability to provide parameters. Contributed by Ubik Load Pack (support at ubikloadpack.com)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=62829">
      Bug
      62829</a>
    -
  Allow specifying Proxy server scheme for HTTP request sampler, Advanced tab and command line option. Contributed by Hitesh Patel (hitesh.h.patel at gmail.com)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=59633">
      Bug
      59633</a>
    -
  Menus <span class="code">Save Test Plan as</span>, <span class="code">Save as Test Fragment</span> and <span class="code">Save Selection as ...</span> should use a new file name in File Dialog</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=61486">
      Bug
      61486</a>
    -
  Make jmeter-server and non GUI mode run headless</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=63093">
      Bug
      63093</a>
    -
  Add <span class="code">Compile JSR223 Test Elements</span> menu item. Contributed by Ubik Load Pack (support at ubikloadpack.com)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=63094">
      Bug
      63094</a>
    -
  Introduce a new Tools menu</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=63101">
      Bug
      63101</a>
    -
  Propose a menu item to generate readable overview of Test Plan</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=63144">
      Bug
      63144</a>
    -
  View listener tree take a long time to open response that has huge text. Contributed by Ubik Load Pack (support at ubikloadpack.com)</li>

</ul>


<h2 class="ch_section" id="Non-functional changes">Non-functional changes</h2>

<ul>
    
<li>
<a href="https://github.com/apache/jmeter/pull/408">
      Pull request #408</a>
    -
  Log an informational message instead of an stack trace, when JavaFX is not found for the <span class="code">RenderInBrowser</span> component.</li>
    
<li>
<a href="https://github.com/apache/jmeter/pull/412">
      Pull request #412</a>
    -
  Update Chinese translation. Contributed by &#21016;&#22763; (liushilive at outlook.com).</li>
    
<li>
<a href="https://github.com/apache/jmeter/pull/406">
      Pull request #406</a>
    -
  Add a short paragraph on how to use a security manager with JMeter.</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=62893">
      Bug
      62893</a>
    -
  Use StringEscapeUtils from commons-text (version 1.6) instead of the deprecated ones from commons-lang3.</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=62972">
      Bug
      62972</a>
    -
  <a href="https://github.com/apache/jmeter/pull/435">
      Pull request #435</a>
    -
  Replace calls to deprecated method <span class="code">Class#newInstance</span>.</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=63034">
      Bug
      63034</a>
    -
  ClientJMeterEngine: Make rsetProperties use <span class="code">HashMap&lt;String,String&gt;</span> instead of Properties</li>
    
<li>Updated to httpclient/httpmime 4.5.7 (from 4.5.6)</li>
    
<li>Updated to httpcore 4.4.11 (from 4.4.10)</li>
    
<li>Updated to httpcore-nio 4.4.11 (from 4.4.10)</li>
    
<li>Updated to tika-core and tika-parsers 1.20 (from 1.18)</li>
    
<li>Updated to commons-dbcp2-2.5.0 (from commons-dbcp2-2.4.0)</li>
    
<li>Updated to commons-lang3-3.8.1 (from commons-lang3-3.8)</li>
    
<li>Updated to groovy-all-2.4.16 (from groovy-all-2.4.15)</li>
    
<li>Updated to httpasyncclient-4.1.4.jar (from 4.1.3)</li>
    
<li>Updated to jsoup-1.11.3 (from 1.11.2)</li>
    
<li>Updated to cglib-nodep-3.2.9 (from cglib-nodep-3.2.7)</li>
    
<li>Updated to ph-commons-9.2.1 (from ph-commons-9.1.2)</li>
    
<li>Updated to log4j-2.11.1 (from log4j-2.11.0)</li>
    
<li>Updated to xmlgraphics-commons 2.3 (from 2.2)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=63033">
      Bug
      63033</a>
    -
  Updated to Saxon-HE 9.9.1-1 (from 9.8.0-12). Thanks at Saxonica</li>
    
<li>Updated to xstream 1.4.11 (from 1.4.10)</li>
    
<li>Updated to jodd 5.0.6 (from 4.1.4)</li>
    
<li>Updated to asm-7.0 (from 6.1)</li>
    
<li>Update to ActiveMQ 5.15.8 (from 5.5.16)</li>
    
<li>Updated to rsyntaxtextarea-3.0.2 (from 2.6.1)</li>
    
<li>Updated to apache-rat-0.13 (from 0.12)</li>
    
<li>Updated to jacocoant-0.8.3 (from 0.8.2)</li>
    
<li>Updated to hsqldb-2.4.1 (from 2.4.0)</li>
    
<li>Updated to mina-core-2.0.19 (from 2.0.16)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=62818">
      Bug
      62818</a>
    -
  Updated to xercesImpl to 2.12.0 (from 2.11.0). Reported by Stefan Seide (stefan at trilobyte-se.de)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=62744">
      Bug
      62744</a>
    -
  Upgrade jquery to version 3.3.1, jquery-ui to 1.12.1, bootstrap to 3.3.7</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=62821">
      Bug
      62821</a>
    -
  <a href="https://github.com/apache/jmeter/pull/405">
      Pull request #405</a>
    -
  Use SHA-512 checksums instead of MD5 to verify jar downloads</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=63053">
      Bug
      63053</a>
    -
  Remove referrals to never implemented internals from user documentation. Reported by U. Poblotzki (u.poblotzki at thalia.de)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=63082">
      Bug
      63082</a>
    -
  <a href="https://github.com/apache/jmeter/pull/437">
      Pull request #437</a>
    -
  Use utf-8 for properties files in source</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=63177">
      Bug
      63177</a>
    -
  Rename NON GUI mode into CLI Mode in documentation</li>

</ul>

 


<h2 class="ch_section" id="Bug fixes">Bug fixes</h2>


<h3>HTTP Samplers and Test Script Recorder</h3>

<ul>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=62785">
      Bug
      62785</a>
    -
  <a href="https://github.com/apache/jmeter/pull/400">
      Pull request #400</a>
    -
  Incomplete search path applied to the filenames used in the upload functionality of the HTTP sampler. Implemented by Artem Fedorov (artem.fedorov at blazemeter.com) and contributed by BlazeMeter.</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=62842">
      Bug
      62842</a>
    -
  HTTP(S) Test Script Recorder: Brotli compression is not supported leading to "<span class="code">Content Encoding Error</span>"</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=60424">
      Bug
      60424</a>
    -
  Hessian Burlap application: JMeter inserts <span class="code">0x0D</span> before <span class="code">0x0A</span> automatically (http binary post data)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=62940">
      Bug
      62940</a>
    -
  Use different <span class="code">cn</span> and type of SAN extension when we are generating certificates based on IP addresses.</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=62916">
      Bug
      62916</a>
    -
  HTTP Test Script Recorder fails with UnsupportedOperationException if recording is started after a distributed test has been run</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=62987">
      Bug
      62987</a>
    -
  A TestBean element under HTTP(S) Test Script recorder does not work. Contributed by Ubik Load Pack (support at ubikloadpack.com)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=63015">
      Bug
      63015</a>
    -
  Abnormal NoHttpResponseException when running request through proxy HTTP(S) Test Script Recorder after a first failing request. Contributed by Ubik Load Pack (support at ubikloadpack.com)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=62852">
      Bug
      62852</a>
    -
  HTTP Request Header missing information when using a proxy. Thanks to Oleg Kalnichevski (olegk at apache.org)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=63048">
      Bug
      63048</a>
    -
  JMeter does not retrieve link resources of type "shortcut icon" or "icon". Contributed by Ubik Load Pack (support at ubikloadpack.com)</li>

</ul>


<h3>Other Samplers</h3>

<ul>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=62775">
      Bug
      62775</a>
    -
  If many jars are in a folder referenced by <span class="code">user.classpath</span>, startup can be extremely slow due to JUnit</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=63031">
      Bug
      63031</a>
    -
  Incorrect JDBC driver class: <span class="code">org.firebirdsql.jdbc.FBDrivery</span>. Contributed by Sonali (arora.sonali99 at gmail.com)</li>

</ul>


<h3>Controllers</h3>

<ul>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=62806">
      Bug
      62806</a>
    -
  ModuleController cloning by Run behaves differently whether in GUI or Non GUI mode. Contributed by Ubik Load Pack (support at ubikloadpack.com)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=62847">
      Bug
      62847</a>
    -
  If Controller cannot use variable for index exposed by LoopController/WhileController/ForEachController</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=63064">
      Bug
      63064</a>
    -
  Ignore spaces at the end and beginning of expressions used in IfController</li>

</ul>


<h3>Listeners</h3>

<ul>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=62770">
      Bug
      62770</a>
    -
  Aggregate Graph throws <span class="code">ArrayIndexOutOfBoundsException</span>
</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=63069">
      Bug
      63069</a>
    -
  ResultCollector does not write end of XML file if user exits while a Recording or a test is running. Contributed by Ubik Load Pack (support at ubikloadpack.com)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=63138">
      Bug
      63138</a>
    -
  InfluxDB BackendListenerClient: In case of error, log is in debug, it should be in error</li>

</ul>


<h3>Timers, Assertions, Config, Pre- &amp; Post-Processors</h3>

<ul>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=62774">
      Bug
      62774</a>
    -
  XPath2Extractor: Scope variable is broken. Contributed by Ubik Load Pack (support at ubikloadpack.com)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=62860">
      Bug
      62860</a>
    -
  JSON Extractor: Avoid NPE and noisy error message "<span class="code">Error processing JSON content in</span>" when variable is not found</li>

</ul>


<h3>Functions</h3>

<ul>

</ul>


<h3>I18N</h3>

<ul>

</ul>


<h3>Report / Dashboard</h3>

<ul>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=62777">
      Bug
      62777</a>
    -
  Web Report / Dashboard: Hide All in <span class="code">Response Time Percentiles Over Time (successful responses)</span> fails.</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=62780">
      Bug
      62780</a>
    -
  Web Report / Dashboard: Display All in <span class="code">Response Time Vs Request</span> fails.</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=62781">
      Bug
      62781</a>
    -
  Web Report / Dashboard: Display All in <span class="code">Response Time Overview</span> fails.</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=62782">
      Bug
      62782</a>
    -
  Web Report / Dashboard: Remove duplicate/unused dependencies</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=62894">
      Bug
      62894</a>
    -
  Report / Dashboard: Throughput is in wrong column which is confusing as unit is millisecond</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=63016">
      Bug
      63016</a>
    -
  Empty HTML report if source csv contains labels with quotes. Contributed by Ubik Load Pack (support at ubikloadpack.com)</li>

</ul>


<h3>Documentation</h3>

<ul>
    
<li>Change <span class="code">Test Action</span> (old name) to <span class="code">Flow Control Action</span> in Component Reference documentation. Contributed by Ori Marko (orimarko at gmail.com)</li>

</ul>


<h3>General</h3>

<ul>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=62745">
      Bug
      62745</a>
    -
  Fix undefined disabled icon. Contributed by Till Neunast (https://github.com/tilln)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=62743">
      Bug
      62743</a>
    -
  Client auth must be enabled on distributed testing</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=62767">
      Bug
      62767</a>
    -
  NPE when searching under certain conditions. Contributed by Ubik Load Pack (support at ubikloadpack.com)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=62790">
      Bug
      62790</a>
    -
  <span class="code">ArrayIndexOutOfBoundsException</span> when calling replace without selecting the first match</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=62795">
      Bug
      62795</a>
    -
  JMeter controller node sometimes ends distributed test even though some of the worker nodes have not finished</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=62336">
      Bug
      62336</a>
    -
  <a href="https://github.com/apache/jmeter/pull/396">
      Pull request #396</a>
    -
  Some shortcuts are not working correctly on windows. Contributed by Michael Pavlov (michael.paulau at gmail.com)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=62889">
      Bug
      62889</a>
    -
  Format JSON Arrays when displayed with JSON Path Tester.</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=62900">
      Bug
      62900</a>
    -
  ObjectProperty#getStringValue() can throw NullPointerException</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=63099">
      Bug
      63099</a>
    -
  Escape commata in function helper dialog only outside of variable replacement structures.</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=63105">
      Bug
      63105</a>
    -
  Export Transactions for Report: fix 2 bugs</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=63106">
      Bug
      63106</a>
    -
  Apply naming policy does not refresh UI</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=63180">
      Bug
      63180</a>
    -
  Apply Naming Policy allows multi selection but only considers first node</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=63090">
      Bug
      63090</a>
    -
  Remove slf4j-ext due to CVE-2018-8088</li>

</ul>

 


<h2 class="ch_section" id="Thanks">Thanks</h2>

<p>We thank all contributors mentioned in bug and improvement sections above:
</p>

<ul>
    
<li>Oleg Kalnichevski (olegk at apache.org)</li>
    
<li>Till Neunast (https://github.com/tilln)</li>
    
<li>Mingun (alexander_sergey at mail.ru)</li>
    
<li>
<a href="https://ubikloadpack.com">Ubik Load Pack</a>
</li>
    
<li>Artem Fedorov (artem.fedorov at blazemeter.com)</li>
    
<li>Stefan Seide (stefan at trilobyte-se.de)</li>
    
<li>&#21016;&#22763; (liushilive at outlook.com)</li>
    
<li>Michael Pavlov (michael.paulau at gmail.com)</li>
    
<li>Ori Marko (orimarko at gmail.com)</li>
    
<li>Paco (paco.xu at daocloud.io)</li>
    
<li>Hitesh Patel (hitesh.h.patel at gmail.com)</li>
    
<li>Sonali (arora.sonali99 at gmail.com)</li>
    
<li>Mohamed Ibrahim (rollno748 at gmail.com)</li>
    
<li>U. Poblotzki (u.poblotzki at thalia.de)</li>
    
<li>
<a href="https://www.saxonica.com">Saxonica</a>
</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>
 


<h2 class="ch_section" id="Known problems and workarounds">Known problems and workarounds</h2>

<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 <span class="code">0</span> (see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55510">
      Bug
      55510</a>).
</li>


<li>
Note that under some windows systems you may have this WARNING:
<pre class="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.
</pre>
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:
<pre class="source">java.security.cert.CertificateException: Certificates does not conform to algorithm constraints</pre>
 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 <span class="code">md2WithRSAEncryption</span>) or with a SSL certificate with a size lower than 1024 bits.
This error is related to increased security in Java 8+.
<br>
To allow you to perform your HTTPS request, you can downgrade the security of your Java installation by editing
the Java <span class="code">jdk.certpath.disabledAlgorithms</span> property. Remove the MD2 value or the constraint on size, depending on your case.
<br>
This property is in this file:
<pre class="source">JAVA_HOME/jre/lib/security/java.security</pre>
See  <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56357">
      Bug
      56357</a> 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 <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54586">
      Bug
      54586</a>.
This is due to a known Java bug which fails to parse "<span class="code">px</span>" 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 (<span class="keycombo"><span class="keysym">SHIFT</span>&nbsp;+&nbsp;<span class="keysym">up/down</span></span>) 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>

</ul>




<h1>Version 5.0</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>


<h2 class="ch_section" id="New and Noteworthy">New and Noteworthy</h2>

<h3 class="ch_title">Core improvements</h3>

<p>Rest support has been improved in many fields
<ul>
    
<li>Multipart/form-data requests now work for <span class="code">PUT</span>, <span class="code">DELETE</span> &hellip;</li>
    
<li>It is now also possible to send a JSON Body with attached file</li>
    
<li>Parameters entered in Parameters Tab are now used in body instead of being ignored</li>

</ul>

<figure>
<a href="./images/screenshots/changes/5.0/jmeter_5_rest1.png"><img src="./images/screenshots/changes/5.0/jmeter_5_rest1.png" width="1216" height="340" alt=""></a>
<figcaption></figcaption>
</figure>

<figure>
<a href="./images/screenshots/changes/5.0/jmeter_5_rest2.png"><img src="./images/screenshots/changes/5.0/jmeter_5_rest2.png" width="1223" height="314" alt=""></a>
<figcaption></figcaption>
</figure>

</p>

<p>In distributed testing, JMeter now automatically prefixes thread names with engine host and port, this makes the counting of threads correct in the HTML report without any other configuration as it was required before
<figure>
<a href="./images/screenshots/changes/5.0/jmeter_5_distributed.png"><img src="./images/screenshots/changes/5.0/jmeter_5_distributed.png" width="1156" height="543" alt=""></a>
<figcaption></figcaption>
</figure>

</p>

<p>XPath 2.0 is supported in a new element called <span class="code">XPath2 extractor</span> providing easier XML namespaces handling, up to date XPath syntax and better performances
<figure>
<a href="./images/screenshots/changes/5.0/jmeter_5_xpath2_extractor.png"><img src="./images/screenshots/changes/5.0/jmeter_5_xpath2_extractor.png" width="879" height="340" alt=""></a>
<figcaption></figcaption>
</figure>

<figure>
<a href="./images/screenshots/changes/5.0/jmeter_5_xpath2_tester.png"><img src="./images/screenshots/changes/5.0/jmeter_5_xpath2_tester.png" width="1213" height="730" alt=""></a>
<figcaption></figcaption>
</figure>

</p>

<p>Upgrade to HTTP Components 4.6 last APIs has been completed and JMeter does not rely anymore on deprecated APIs of this library</p>

<p>It is now possible to control in an easier way Loop breaking and Loop switching to next iteration. This is available in <span class="code">Flow Control Action</span> and <span class="code">Result Status Action Handler</span> elements
<figure>
<a href="./images/screenshots/changes/5.0/jmeter_5_flow_control_action.png"><img src="./images/screenshots/changes/5.0/jmeter_5_flow_control_action.png" width="772" height="270" alt=""></a>
<figcaption></figcaption>
</figure>

<figure>
<a href="./images/screenshots/changes/5.0/jmeter_5_result_status_handler.png"><img src="./images/screenshots/changes/5.0/jmeter_5_result_status_handler.png" width="615" height="212" alt=""></a>
<figcaption></figcaption>
</figure>


</p>

<p>While Controller now exports a variable containing its current index named <span class="code">__jm__&lt;Name of your element&gt;__idx</span>. So for
example, if your While Controller is named WC, then you can access the looping index through <span class="code">${__jm__WC__idx}</span>
</p>


<h3 class="ch_title">Scripting / Debugging enhancements</h3>

<p>Search feature has been improved to allow you to iterate in the tree over search results and do necessary replacements through <span class="code">Next</span>/<span class="code">Previous</span>/<span class="code">Replace</span>/<span class="code">Replace/Find</span> buttons
<figure>
<a href="./images/screenshots/changes/5.0/jmeter_5_search_feature.png"><img src="./images/screenshots/changes/5.0/jmeter_5_search_feature.png" width="829" height="524" alt=""></a>
<figcaption></figcaption>
</figure>

</p>

<p>In View Results Tree, the request and response headers/body are clearly separated to allow you to better inspect requests and responses. You can also search in all those tabs for a particular value
<figure>
<a href="./images/screenshots/changes/5.0/jmeter_5_vrt_request_body.png"><img src="./images/screenshots/changes/5.0/jmeter_5_vrt_request_body.png" width="737" height="366" alt=""></a>
<figcaption></figcaption>
</figure>

<figure>
<a href="./images/screenshots/changes/5.0/jmeter_5_vrt_response_body.png"><img src="./images/screenshots/changes/5.0/jmeter_5_vrt_response_body.png" width="771" height="552" alt=""></a>
<figcaption></figcaption>
</figure>

</p>

<p>Recording feature has been improved to provide a popup that is always on top when you navigate in browser allowing you to name transactions while you navigate in your application.
<figure>
<a href="./images/screenshots/changes/5.0/jmeter_5_recording.png"><img src="./images/screenshots/changes/5.0/jmeter_5_recording.png" width="1425" height="796" alt=""></a>
<figcaption></figcaption>
</figure>

</p>

<p>You can now restart JMeter from menu <span class="menuchoice"><span class="guimenuitem">File</span>&nbsp;&rarr;&nbsp;<span class="guimenuitem">Restart</span></span>

<figure>
<a href="./images/screenshots/changes/5.0/jmeter_5_restart.png"><img src="./images/screenshots/changes/5.0/jmeter_5_restart.png" width="199" height="318" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3 class="ch_title">Live Reporting and Web Report</h3>
Reporting feature has been enhanced
<p>A new Graph Total Transactions per second has been added to the HTML Web Report
<figure>
<a href="./images/screenshots/changes/5.0/jmeter_5_total_trans_per_sec.png"><img src="./images/screenshots/changes/5.0/jmeter_5_total_trans_per_sec.png" width="1156" height="536" alt=""></a>
<figcaption></figcaption>
</figure>

</p>

<p>It is now possible to graph over time custom metrics available as JMeter Variables through <span class="code">sample_variables</span>. Those custom metrics graphs will be
available in the HTML Report in <span class="code">Custom Graphs section</span>

<figure>
<a href="./images/screenshots/changes/5.0/jmeter_5_custom_graphs.png"><img src="./images/screenshots/changes/5.0/jmeter_5_custom_graphs.png" width="1426" height="755" alt=""></a>
<figcaption></figcaption>
</figure>

</p>

<p>Hits per second graph now takes into account the embedded resources
<figure>
<a href="./images/screenshots/changes/5.0/jmeter_5_hits_per_sec.png"><img src="./images/screenshots/changes/5.0/jmeter_5_hits_per_sec.png" width="1153" height="537" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<p>In Live reporting, the sent and received bytes are now sent to Backends (InfluxDB or Graphite)</p>


<h3 class="ch_title">Functions</h3>

<p>A New function <span class="code"><a href="./usermanual/functions.html#__threadGroupName">__threadGroupName</a></span> has been introduced to obtain ThreadGroup name.</p>




<h2 class="ch_section" id="Incompatible changes">Incompatible changes</h2>

<ul>

<li>Since JMeter 5.0, when using default HC4 Implementation, JMeter will reset HTTP state (SSL State + Connections) on each thread group iteration. If you don't want
this behaviour, set <span class="code">httpclient.reset_state_on_thread_group_iteration=false</span>
</li>

<li>Since JMeter 5.0, in relation to above remark, <span class="code">https.use.cached.ssl.context</span> is deprecated and not used anymore.</li>

<li>Since JMeter 5.0, when using CSV output, sub results will now be also output to CSV file. To revert to previous behaviour set <span class="code">jmeter.save.saveservice.subresults=false</span>, see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=62470">
      Bug
      62470</a>, <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=60917">
      Bug
      60917</a>, <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=62550">
      Bug
      62550</a>.</li>

<li>Since JMeter 5.0, <span class="code">CSS/JQuery Extractor</span> has been renamed to <span class="code">CSS Selector Extractor</span>
</li>

<li>Since JMeter 5.0, <span class="code">Test Action</span> has been renamed to <span class="code">Flow Control Action</span>
</li>

<li>Since JMeter 5.0, JMeter renames subResults to <span class="code">parentName-N</span> where N is a number to ensure that Hits Per Second graph includes resources downloads, see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=62550">
      Bug
      62550</a>, <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=62470">
      Bug
      62470</a> and <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=60917">
      Bug
      60917</a>
</li>


</ul>



<h2 class="ch_section" id="Improvements">Improvements</h2>


<h3>HTTP Samplers and Test Script Recorder</h3>

<ul>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=62260">
      Bug
      62260</a>
    -
  Improve Rest support. Contributed by Ubik Load Pack (support at ubikloadpack.com)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58757">
      Bug
      58757</a>
    -
  HTTP Request : Updated deprecated methods of HttpComponents to last APIs of httpclient-4.5.X. Contributed by Ubik Load Pack (support at ubikloadpack.com)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=62212">
      Bug
      62212</a>
    -
  Recorder : Improve UX by providing a popup above all windows to be able to change Transaction names and pauses while using Browser. Contributed by Ubik Load Pack (support at ubikloadpack.com)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=62248">
      Bug
      62248</a>
    -
  HTTP Request : Parameters entered in Parameters Tab should be used in body instead of being ignored. Partly based on a patch by Artem Fedorov contributed by Blazemeter.</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=60015">
      Bug
      60015</a>
    -
  Multipart/form-data works only for <span class="code">POST</span> using HTTPClient4 while it should for <span class="code">PUT</span>, <span class="code">DELETE</span>, &hellip; Contributed by Ubik Load Pack (support at ubikloadpack.com)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=62317">
      Bug
      62317</a>
    -
  HTTP(S) Test Script Recorder: allow to add ResultSaver to created sampler</li>

</ul>


<h3>Other samplers</h3>

<ul>
  
<li>
<a href="https://github.com/apache/jmeter/pull/376">
      Pull request #376</a>
    -
  JUnitSampler logs exceptions except assertion-failures from test cases as warnings. Contributed by Davide Angelocola (davide.angelocola at fisglobal.com)</li>
  
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=62244">
      Bug
      62244</a>
    -
  Rename <span class="code">Test Action</span> to <span class="code">Flow Control Action</span>
</li>
  
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=62302">
      Bug
      62302</a>
    -
  Move JSR223 Sampler up the menu. Contributed by Ori Marko (orimarko at gmail.com)</li>
  
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=62595">
      Bug
      62595</a>
    -
  SMTPSampler does not allow configuring the SSL/TLS protocols to be used on handshake. Contributed by Felipe Cuozzo (felipe.cuozzo at gmail.com)</li>

</ul>


<h3>Controllers</h3>

<ul>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=62237">
      Bug
      62237</a>
    -
  While Controller : Export variable containing current index of iteration. Contributed by Ubik Load Pack (support at ubikloadpack.com)</li>

</ul>


<h3>Listeners</h3>

<ul>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=62195">
      Bug
      62195</a>
    -
  Save Responses to a file : Improve component and UI. Contributed by Ubik Load Pack (support at ubikloadpack.com)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=62209">
      Bug
      62209</a>
    -
  InfluxBackendListenerClient: First Assertion Failure Message must be sent if error code and response code are empty or OK</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=62269">
      Bug
      62269</a>
    -
  Bug 62269 - View Results Tree : Response and Request Tabs should contains Header and Body tabs. Contributed by Ubik Load Pack (support at ubikloadpack.com)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=62270">
      Bug
      62270</a>
    -
  View Results Tree : Allow searching in Request headers, Response Headers, and Request body. Contributed by Ubik Load Pack (support at ubikloadpack.com)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=62276">
      Bug
      62276</a>
    -
  InfluxDBBackendListenerClient / GraphiteBackendListenerClient : Add sent and received bytes to metrics. Contributed by Ubik Load Pack (support at ubikloadpack.com)</li>

</ul>


<h3>Timers, Assertions, Config, Pre- &amp; Post-Processors</h3>

<ul>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=62320">
      Bug
      62320</a>
    -
  Counter : Reference Name property is not clear</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=60991">
      Bug
      60991</a>
    -
  XPath Extractor : Implement XPath 2.0. Contributed by Ubik Load Pack (support at ubikloadpack.com)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=62593">
      Bug
      62593</a>
    -
  Rename CSS/JQuery Extractor to CSS Selector Extractor. Contributed by Ori Marko (orimarko at gmail.com)</li>

</ul>


<h3>Functions</h3>

<ul>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=62178">
      Bug
      62178</a>
    -
  Add default value to <span class="code"><a href="./usermanual/functions.html#__V">__V</a></span> function. Contributed by Ori Marko (orimarko at gmail.com)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=62178">
      Bug
      62178</a>
    -
  Add function <span class="code"><a href="./usermanual/functions.html#__threadGroupName">__threadGroupName</a></span> function to obtain ThreadGroup name. Mainly contributed by Ori Marko (orimarko at gmail.com)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=62533">
      Bug
      62533</a>
    -
  Allow use epoch time as Date String value in function <span class="code"><a href="./usermanual/functions.html#__dateTimeConvert">__dateTimeConvert</a></span> 
</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=62541">
      Bug
      62541</a>
    -
  Allow <span class="code"><a href="./usermanual/functions.html#__jexl3">__jexl3</a></span>, <span class="code"><a href="./usermanual/functions.html#__jexl2">__jexl2</a></span> functions to support new syntax as <span class="code">var x;</span>. Contributed by Ori Marko (orimarko at gmail.com)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=61834">
      Bug
      61834</a>
    -
  Function Helper Dialog : Improve tests by showing variables and keeping them available between evaluations</li>

</ul>

<h3>I18N</h3>

<ul>

</ul>


<h3>Report / Dashboard</h3>

<ul>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=62243">
      Bug
      62243</a>
    -
  Dashboard : make option "<span class="code">--forceDeleteResultFile</span>"/"<span class="code">-f</span>" option delete folder referenced by "<span class="code">-o</span>" option</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=62367">
      Bug
      62367</a>
    -
  HTML Report Generator: Add Graph Total Transactions per Second. Contributed mainly by Martha Laks (laks.martha at gmail.com)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=62166">
      Bug
      62166</a>
    -
  Report/Dashboard: Provide ability to register custom graphs and metrics in the JMeter Dashboard. Contributed by Ubik Load Pack (support at ubikloadpack.com)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=62542">
      Bug
      62542</a>
    -
  Report/Dashboard : Display more information on filters when graph is empty. Contributed by Ubik Load Pack (support at ubikloadpack.com)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=62426">
      Bug
      62426</a>
    -
  Optimize performance of report generation. Based on feedback by Allen (444104595 at qq.com)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=62550">
      Bug
      62550</a>
    -
  Modify SubResult Naming Policy</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=60917">
      Bug
      60917</a>
    -
  Load Test with embedded resources download : Hits per seconds does not take into account the downloaded resources</li>

</ul>


<h3>General</h3>

<ul>
  
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=62684">
      Bug
      62684</a>
    -
  Distributed Testing : Add automatically to thread name a prefix to identify engine. Contributed by Ubik Load Pack (support at ubikloadpack.com)</li>
  
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=62155">
      Bug
      62155</a>
    -
  Search Feature: Make Search text field get focus</li>
  
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=62156">
      Bug
      62156</a>
    -
  Search Feature : Distinguish between node that matches search and node that contains a child that matches search</li>
  
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=62234">
      Bug
      62234</a>
    -
  Search/Replace Feature : Enhance UX and add Replace/Next/Previous/Replace &amp; Find features. Contributed by Ubik Load Pack (support at ubikloadpack.com)</li>
  
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=62238">
      Bug
      62238</a>
    -
  Add ability to Switch to next iteration of Current Loop. Contributed by Ubik Load Pack (support at ubikloadpack.com)</li>
  
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=62239">
      Bug
      62239</a>
    -
  Add ability to Break Current Loop</li>
  
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=61635">
      Bug
      61635</a>
    -
  Add a menu to restart JMeter</li>
  
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=62470">
      Bug
      62470</a>
    -
  CSV Output : Enable logging of sub results when <span class="code">jmeter.save.saveservice.subresults=true</span>. Contributed by Ubik Load Pack (support at ubikloadpack.com)</li>
  
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=62473">
      Bug
      62473</a>
    -
  Setting "<span class="code">saveservice_properties</span>" has counter intuitive behaviour</li>
  
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=62354">
      Bug
      62354</a>
    -
  Correct calculation and usage of units for second per user (reported by jffagot05 at gmail.com)</li>
  
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=62700">
      Bug
      62700</a>
    -
  Introduce <span class="code">jsr223.init.file</span> to allow calling a JSR-223 script on JMeter startup</li>
  
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=62128">
      Bug
      62128</a>
    -
  Try to guess <span class="code">JMETER_HOME</span> correctly, when <span class="code">jmeter.bat</span> is called from a batch file in another directory. Contributed by logox01 (logox01 at gmx.at)</li>
  
<li>
<a href="https://github.com/apache/jmeter/pull/386">
      Pull request #386</a>
    -
  Add parameter support for RMI keystore creation scripts. Contributed by Logan Mauzaize (t524467 at airfrance.fr)</li>
  
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=62065">
      Bug
      62065</a>
    -
  Use Maven artifact for JAF Module instead of embedded module</li>
  
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=61714">
      Bug
      61714</a>
    -
  Update Real-time results documentation</li>
  
<li>
<a href="https://github.com/apache/jmeter/pull/382">
      Pull request #382</a>
    -
  Correct typo in documentation. Reported by Perze Ababa (perze.ababa at gmail.com&gt;)</li>
  
<li>
<a href="https://github.com/apache/jmeter/pull/392">
      Pull request #392</a>
    -
  Correct typo in documentation. Reported by Aaron Levin</li>
  
<li>
<a href="https://github.com/apache/jmeter/pull/379">
      Pull request #379</a>
    -
   Improve chinese translations. Contributed by XmeterNet</li>

</ul>


<h2 class="ch_section" id="Non-functional changes">Non-functional changes</h2>

<ul>
    
<li>
<a href="https://github.com/apache/jmeter/pull/358">
      Pull request #358</a>,
  <a href="https://github.com/apache/jmeter/pull/365">
      Pull request #365</a>,
  <a href="https://github.com/apache/jmeter/pull/366">
      Pull request #366</a>,
  <a href="https://github.com/apache/jmeter/pull/375">
      Pull request #375</a>
    -
  Updated to latest checkstyle (v8.8). Expanded Checkstyle to files
      in <span class="code">src</span> and <span class="code">test</span>; fixed newly checked files. Based on contribution
      by Graham Russell (graham at ham1.co.uk)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=62095">
      Bug
      62095</a>
    -
  Correct description for right boundary parameter in Boundary Extractor. Contributed by Ori Marko (orimarko at gmail.com)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=62113">
      Bug
      62113</a>
    -
  Updated to latest Bouncycastle (v1.60). Based on contribution by Olaf Flebbe (oflebbe at apache.org)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=62171">
      Bug
      62171</a>
    -
  Remove <span class="code">.md5</span> checksums and keep only <span class="code">.sha512</span> checksums for source and binary archives</li>
    
<li>Updated to groovy-all-2.4.15 (from groovy-all-2.4.13)</li>
    
<li>Updated to asm-6.1 (from 6.0)</li>
    
<li>Updated to tika-core and tika-parsers 1.18 (from 1.17)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=62482">
      Bug
      62482</a>
    -
  Sync documentation to the implementation of the ForEachController. Based on contribution by Ori Marko (orimarko at gmail.com)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=62529">
      Bug
      62529</a>
    -
  Updated to httpclient-4.5.6 (from httpclient 4.5.5) and updated to freemarker-2.3.28 (from freemarker-2.3.23). Based on patch by Ori Marko (orimarko at gmail.com)</li>
    
<li>Updated to httpmime-4.5.6 (from httpmime-4.5.5)</li>
    
<li>Updated to caffeine-2.6.2 (from caffeine-2.6.1)</li>
    
<li>Updated to cglib-nodep-3.2.7 (from cglib-nodep-3.2.6)</li>
    
<li>Updated to commons-dbcp2-2.4.0 (from commons-dbcp2-2.2.0)</li>
    
<li>Updated to commons-pool2-2.6.0 (from commons-pool2-2.5.0)</li>
    
<li>Updated to httpcore-4.4.10 (from httpcore-4.4.9)</li>
    
<li>Updated to httpcore-nio-4.4.10 (from httpcore-nio-4.4.9)</li>
    
<li>Updated to log4j-2.11.0 (from log4j-2.10.0)</li>
    
<li>Updated to ph-css-6.1.1 (from ph-css-6.0.0)</li>
    
<li>Updated to ph-commons-9.1.2 (from ph-commons-9.0.0)</li>
    
<li>Updated to rhino-1.7.10 (from +rhino-1.7.7.2)</li>
    
<li>Updated to commons-lang3-3.8 (from commons-lang3-3.7)</li>

</ul>

 


<h2 class="ch_section" id="Bug fixes">Bug fixes</h2>


<h3>HTTP Samplers and Test Script Recorder</h3>

<ul>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=62114">
      Bug
      62114</a>
    -
  HTTP(S) Test Script Recorder : Client certificate authentication uses the first SSLManager created. Contributed by Ubik Load Pack (support at ubikloadpack.com)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=61058">
      Bug
      61058</a>
    -
  HTTP Request : Add option <span class="code">httpclient4.deflate_relax_mode</span> to avoid "Unexpected end of ZLIB input stream" when deflating what seems to be invalid streams. Contributed by Ubik Load Pack (support at ubikloadpack.com)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=43612">
      Bug
      43612</a>
    -
  HTTP PUT does not honor request parameters. Implemented by Artem Fedorov (artem.fedorov at blazemeter.com) and contributed by BlazeMeter Ltd.</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=60190">
      Bug
      60190</a>
    -
  Content-Type is added for <span class="code">POST</span> unconditionally. Contributed by Ubik Load Pack (support at ubikloadpack.com)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=62462">
      Bug
      62462</a>
    -
  <a href="https://github.com/apache/jmeter/pull/387">
      Pull request #387</a>
    -
  Make delegation of credentials in SPNEGO possible again.</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58807">
      Bug
      58807</a>
    -
  <span class="code">Reset SSL State on Thread Group iteration only (was https.use.cached.ssl.context=false</span> is broken)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=62716">
      Bug
      62716</a>
    -
  When Recording, JMeter removes Authorization from generated Header Manager when using Bearer Token</li>

</ul>


<h3>Other Samplers</h3>

<ul>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=62235">
      Bug
      62235</a>
    -
  Java 9 - illegal reflective access by org.apache.jmeter.util.HostNameSetter</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=62464">
      Bug
      62464</a>
    -
  Set start- and end-time on JMS publisher sampler, even if initialization fails.</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=62616">
      Bug
      62616</a>
    -
  FTPSampler: Upload file-size is not counted in sentBytes</li>

</ul>


<h3>Controllers</h3>

<ul>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=62265">
      Bug
      62265</a>
    -
  ModuleController behaves strangely</li>

</ul>


<h3>Listeners</h3>

<ul>
  
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=62097">
      Bug
      62097</a>
    -
  Update JTable in Aggregate Report only when new data has arrived. That way selections of rows will be kept longer around.</li>
  
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=62203">
      Bug
      62203</a>
    -
  Influxdb BackendListener client: store user tags to annotation and internal transaction. Contributed by Sergey Batalin (sergey_batalin at mail.ru)</li>
  
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=62251">
      Bug
      62251</a>
    -
  TextGraphiteMetricsSender does not invalidate lost connections in case of network errors </li>
  
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=60705">
      Bug
      60705</a>
    -
  Fix headers of Aggregate Reports and friends when columns are moved around.</li>
  
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=62463">
      Bug
      62463</a>
    -
  Distributed client/server setup: use different RMI ports for the remote objects when using SSL</li>

</ul>


<h3>Timers, Assertions, Config, Pre- &amp; Post-Processors</h3>

<ul>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=61664">
      Bug
      61664</a>
    -
  HTTP Authorization Manager : Digest works only with legacy <a href="https://tools.ietf.org/html/2069">RFC 2069</a>, <a href="https://tools.ietf.org/html/2617">RFC 2617</a> is not implemented. Contributed by Ubik Load Pack (support at ubikloadpack.com)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=62252">
      Bug
      62252</a>
    -
  HTTP header merging logic does not correspond to the documentation</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=62554">
      Bug
      62554</a>
    -
  BoundaryExtractor : Field to check is not reset</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=62553">
      Bug
      62553</a>
    -
  Random element might return same value even if property "Per thread user (User)" is set to TRUE</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=62637">
      Bug
      62637</a>
    -
  Take scheduler into account when calcuting delay for Synchronizing Timer</li>

</ul>


<h3>Functions</h3>

<ul>

</ul>


<h3>I18N</h3>

<ul>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=62310">
      Bug
      62310</a>
    -
  French translation of Precise Throughput Timer label</li>

</ul>


<h3>Report / Dashboard</h3>

<ul>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=62333">
      Bug
      62333</a>
    -
  Report Dashboard - When one series contains no value, the graph colors logic is wrong. Contributed by Ubik Load Pack (support at ubikloadpack.com)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=62283">
      Bug
      62283</a>
    -
  Report Dashboard - Date is not correctly displayed on chart when granularity is &le;&nbsp;1 day</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=62520">
      Bug
      62520</a>
    -
  The tool-tip text when we hover on the point in 'Latency Vs Request' graph should be 'Median Latency'</li>

</ul>


<h3>Documentation</h3>

<ul>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=62211">
      Bug
      62211</a>
    -
  Fix HTTP Request Server Documentation. Contributed by Ori Marko (orimarko at gmail.com)</li>
    
<li>
<a href="https://github.com/apache/jmeter/pull/388">
      Pull request #388</a>
    -
  Fix a typo. Contributed by Giancarlo Romeo (giancarloromeo at gmail.com)</li>

</ul>


<h3>General</h3>

<ul>
  
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=62107">
      Bug
      62107</a>
    -
  JMeter fails to start under Windows when <span class="code">JM_LAUNCH</span> contains spaces</li>
  
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=62110">
      Bug
      62110</a>
    -
  A broken JUnit class (due to missing dependency) breaks JMeter menus. Contributed by Ubik Load Pack (support at ubikloadpack.com)</li>
  
<li>
<a href="https://github.com/apache/jmeter/pull/377">
      Pull request #377</a>
    -
  Small fix of the docs. Contributed by Peter Doornbosch (peter.doornbosch at luminis.eu)</li>
  
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=62124">
      Bug
      62124</a>
    -
  Recording templates : Add more exclusions and use Transaction Name by default</li>
  
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=62127">
      Bug
      62127</a>
    -
  Store filename as String instead of File in FileEditor. This will prevent conversion of filenames from Unix style path separators to Windows style when used for example in CSV Data Set Config.</li>
  
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56150">
      Bug
      56150</a>
    -
  Keep the index right, when scrolling through the menu items.</li>
  
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=62240">
      Bug
      62240</a>
    -
  If SampleMonitor implementation is a TestBean if will not be initialized correctly</li>
  
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=62295">
      Bug
      62295</a>
    -
  Correct order of elements when duplicating a selection of multiple elements.</li>
  
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=62397">
      Bug
      62397</a>
    -
  Don't break lines at commata when using JSON Path Tester</li>
  
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=62281">
      Bug
      62281</a>
    -
  Prevent NPE in MapProperty. Patch by belugabehr (dam6923 at gmail.com)</li>
  
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=62457">
      Bug
      62457</a>
    -
  In usermanual, the UUID Function's example is wrong. Contributed by helppass (onegaicimasu at hotmail.com)</li>
  
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=62478">
      Bug
      62478</a>
    -
  Escape commata in parameters when constructing function strings in the GUI function helper. Reported by blue414 (blue414 at 163.com)</li>
  
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=62463">
      Bug
      62463</a>
    -
  Fix usage of ports, when <span class="code">client.rmi.localport</span> is set for distributed runs.</li>
  
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=62545">
      Bug
      62545</a>
    -
  Don't use a colon as part of the "tab" string when indenting JSON in RenderAsJSON.</li>
  
<li>Part of <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=62637">
      Bug
      62637</a>
    -
   Avoid Integer overrun when dealing with very large values in <span class="code">TimerService#adjustDelay</span>
</li>
  
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=62683">
      Bug
      62683</a>
    -
  Error dialog has no text when user opens completely invalid test plan.</li>

</ul>

 


<h2 class="ch_section" id="Thanks">Thanks</h2>

<p>We thank all contributors mentioned in bug and improvement sections above:
</p>

<ul>
    
<li>Graham Russell (graham at ham1.co.uk)</li>
    
<li>Ori Marko (orimarko at gmail.com)</li>
    
<li>Davide Angelocola (davide.angelocola at fisglobal.com)</li>
    
<li>
<a href="https://ubikloadpack.com">Ubik Load Pack</a>
</li>
    
<li>Olaf Flebbe (oflebbe at apache.org)</li>
    
<li>Peter Doornbosch (peter.doornbosch at luminis.eu)</li>
    
<li>logox01 (logox01 at gmx.at)</li>
    
<li>Sergey Batalin (sergey_batalin at mail.ru)</li>
    
<li>
<a href="https://www.xmeter.net">XMeter</a>
</li>
    
<li>Imane Ankhila (iankhila at ahlane.net)</li>
    
<li>jffagot05 (jffagot05 at gmail.com)</li>
    
<li>Perze Ababa (perze.ababa at gmail.com)</li>
    
<li>Martha Laks (laks.martha at gmail.com)</li>
    
<li>Logan Mauzaize (t524467 at airfrance.fr)</li>
    
<li>belugabehr (dam6923 at gmail.com)</li>
    
<li>Giancarlo Romeo (giancarloromeo at gmail.com)</li>
    
<li>helppass (onegaicimasu at hotmail.com)</li>
    
<li>blue414 (blue414 at 163.com)</li>
    
<li>Aaron Levin</li>
    
<li>Allen (444104595 at qq.com)</li>
    
<li>Felipe Cuozzo (felipe.cuozzo at gmail.com)</li>
    
<li>bangnab (ambrosetti.nicola at gmail.com)</li>

</ul>

<p>We also thank bug reporters who helped us improve JMeter.</p>

<p>
Apologies if we have omitted anyone else.
</p>
 


<h2 class="ch_section" id="Known problems and workarounds">Known problems and workarounds</h2>

<ul>

<li>View Results Tree may freeze rendering large response particularly if this response has no spaces, see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=60816">
      Bug
      60816</a>.
This is due to an identified Java Bug <a href="https://bugs.openjdk.java.net/browse/JDK-8172336">UI stuck when calling <span class="code">JEditorPane.setText()</span> or <span class="code">JTextArea.setText()</span> with long text without space</a>.
</li>

</ul>

<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 <span class="code">0</span> (see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55510">
      Bug
      55510</a>).
</li>


<li>
Note that under some windows systems you may have this WARNING:
<pre class="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.
</pre>
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:
<pre class="source">java.security.cert.CertificateException: Certificates does not conform to algorithm constraints</pre>
 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 <span class="code">md2WithRSAEncryption</span>) or with a SSL certificate with a size lower than 1024 bits.
This error is related to increased security in Java 8+.
<br>
To allow you to perform your HTTPS request, you can downgrade the security of your Java installation by editing
the Java <span class="code">jdk.certpath.disabledAlgorithms</span> property. Remove the MD2 value or the constraint on size, depending on your case.
<br>
This property is in this file:
<pre class="source">JAVA_HOME/jre/lib/security/java.security</pre>
See  <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56357">
      Bug
      56357</a> 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 <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54586">
      Bug
      54586</a>.
This is due to a known Java bug which fails to parse "<span class="code">px</span>" 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 (<span class="keycombo"><span class="keysym">SHIFT</span>&nbsp;+&nbsp;<span class="keysym">up/down</span></span>) 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>

</ul>




<h1>Version 4.0</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>


<h2 class="ch_section" id="New and Noteworthy">New and Noteworthy</h2>




<h3 class="ch_title">Core improvements</h3>

<p>JMeter now supports JAVA 9.</p>

<p>New <a href="usermanual/component_reference.html#Boundary_Extractor"><span class="code">Boundary Extractor</span></a> element available which provides easy extraction with better performances
<figure>
<a href="./images/screenshots/changes/4.0/boundary_extractor.png"><img src="./images/screenshots/changes/4.0/boundary_extractor.png" width="1078" height="315" alt=""></a>
<figcaption></figcaption>
</figure>

</p>

<p>New <a href="usermanual/component_reference.html#JSON_Assertion"><span class="code">JSON Assertion</span></a> element available to assert on JSON responses.
<figure>
<a href="./images/screenshots/changes/4.0/json_assertion.png"><img src="./images/screenshots/changes/4.0/json_assertion.png" width="1095" height="307" alt=""></a>
<figcaption></figcaption>
</figure>
</p>

<p>New <a href="usermanual/component_reference.html#Precise_Throughput_Timer"><span class="code">Precise Throughput Timer</span></a> element available which produces Poisson arrivals with given constant throughput.
<figure>
<a href="./images/screenshots/changes/4.0/precise_throughput_timer.png"><img src="./images/screenshots/changes/4.0/precise_throughput_timer.png" width="1080" height="381" alt=""></a>
<figcaption></figcaption>
</figure>
</p>

<p>JMS Point-to-Point sampler has been enhanced with <span class="code">read</span>, <span class="code">browse</span>, <span class="code">clear</span> options.
<figure>
<a href="./images/screenshots/changes/4.0/jmsptp_communication_styles.png"><img src="./images/screenshots/changes/4.0/jmsptp_communication_styles.png" width="1080" height="489" alt=""></a>
<figcaption></figcaption>
</figure>
</p>

<p>Best property values are now selected on many Test Elements to ensure best practices are the defaults:
    <ul>
        
<li>Newly added <span class="code">If Controller</span> now uses by default Expression which is the most performing option.
        <figure>
<a href="./images/screenshots/changes/4.0/if_controller_condition.png"><img src="./images/screenshots/changes/4.0/if_controller_condition.png" width="716" height="248" alt=""></a>
<figcaption></figcaption>
</figure>
        
<figure>
<a href="./images/screenshots/changes/4.0/if_controller_expression.png"><img src="./images/screenshots/changes/4.0/if_controller_expression.png" width="717" height="251" alt=""></a>
<figcaption></figcaption>
</figure>
</li>
        
<li>Newly added JSR223 Test Element now cache compiled script by default if language used provides this feature.
        <figure>
<a href="./images/screenshots/changes/4.0/jsr223_cache_compilation.png"><img src="./images/screenshots/changes/4.0/jsr223_cache_compilation.png" width="346" height="49" alt=""></a>
<figcaption></figcaption>
</figure>
</li>
    
</ul>

</p>

<p>
<a href="usermanual/component_reference.html#Loop_Controller"><span class="code">Loop controller</span></a> and
 <a href="usermanual/component_reference.html#ForEach_Controller"><span class="code">ForEach Controller</span></a>
 now expose their current iteration as a variable named <span class="code">__jm__&lt;Name of your element&gt;__idx</span> that
 you can use like this for example for a Loop Controller named <span class="code">MyLoopController</span>:
 <pre class="source">${__jm__MyLoopController__idx}</pre>.
 See <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=61802">
      Bug
      61802</a>
</p>

<p>Cookies are now shown in View Results Tree during recording. They were previously always shown as empty.</p>

<p>
<a href="usermanual/component_reference.html#Response_Assertion"><span class="code">Response Assertion</span></a> now allows you to customize assertion message and assert on Request Data.
<figure>
<a href="./images/screenshots/changes/4.0/response_assertion_enhancements.png"><img src="./images/screenshots/changes/4.0/response_assertion_enhancements.png" width="909" height="617" alt=""></a>
<figcaption></figcaption>
</figure>
</p>

<h3 class="ch_title">UX improvements</h3>

<p>JMeter now uses <a href="https://github.com/bulenkov/Darcula">Darcula LAF</a> by default</p>

<p>Workbench has been dropped from UI, you can now use Non Test Elements as immediate children of Test Plan.
<figure>
<a href="./images/screenshots/changes/4.0/goodbye_workbench.png"><img src="./images/screenshots/changes/4.0/goodbye_workbench.png" width="282" height="144" alt=""></a>
<figcaption></figcaption>
</figure>
</p>

<p>Menu UX have been improved to make most used elements available more rapidly.
<figure>
<a href="./images/screenshots/changes/4.0/menu_organization.png"><img src="./images/screenshots/changes/4.0/menu_organization.png" width="711" height="322" alt=""></a>
<figcaption></figcaption>
</figure>
</p>

<p>HTTP(S) Test Script Recorder now allows you to name your transactions while recording in a more human readable way.
<figure>
<a href="./images/screenshots/changes/4.0/recorder_naming_samplers.png"><img src="./images/screenshots/changes/4.0/recorder_naming_samplers.png" width="1011" height="502" alt=""></a>
<figcaption></figcaption>
</figure>
</p>

<p></p>

<p>UX improvements made on, among the most notable :</p>

<ul>
    
<li>Module Controller informs user at least one Controller is required</li>
    
<li>Function Helper Dialog (The wizard that helps using and testing functions) has been improved in many fields.
    <figure>
<a href="./images/screenshots/changes/4.0/function_helper_dialog_enhancements.png"><img src="./images/screenshots/changes/4.0/function_helper_dialog_enhancements.png" width="772" height="315" alt=""></a>
<figcaption></figcaption>
</figure>
</li>
    
<li>Switch Controller trims text to avoid issues when a space is introduced before/after name</li>
    
<li>Test Plan is now saved before running the test plan</li>

</ul>


<h3 class="ch_title">Functions</h3>

<p>New Function <a href="usermanual/functions.html#__digest"><span class="code">__digest</span></a> provides easy computing of SHA-XXX, MDX hashes:
<pre class="source">${__digest(MD5,Apache JMeter 4.0 rocks !,,,)}</pre> will return <span class="code">0e16c3ce9b6c9971c69ad685fd875d2b</span>
</p>

<p>New Function <a href="usermanual/functions.html#__dateTimeConvert"><span class="code">__dateTimeConvert</span></a> provides easy conversion between date formats:
<pre class="source">${__dateTimeConvert(01 Jan 2017,dd MMM yyyy,dd/MM/yyyy,)}</pre> will return <span class="code">01/01/2017</span>
</p>

<p>New Function <a href="usermanual/functions.html#__changeCase"><span class="code">__changeCase</span></a> provides ability to switch to Upper / Lower / Capitalized cases
<pre class="source">${__changeCase(Avaro omnia desunt\, inopi pauca\, sapienti nihil,UPPER,)}</pre> will return <span class="code">AVARO OMNIA DESUNT, INOPI PAUCA, SAPIENTI NIHIL</span>
</p>

<p>New Functions <a href="usermanual/functions.html#__isVarDefined"><span class="code">__isVarDefined</span></a>
and <a href="usermanual/functions.html#__isPropDefined"><span class="code">__isPropDefined</span></a> provide testing of properties and variables availability
<pre class="source">${__isPropDefined(START.HMS)}</pre> will return <span class="code">true</span>

<pre class="source">${__isVarDefined(JMeterThread.last_sample_ok)}</pre> will return <span class="code">true</span>

</p>


<h3 class="ch_title">Scripting and Plugin Development</h3>

<p>You can now call <span class="code">SampleResult#setIgnore()</span> if you don't want your sampler to be visible in results</p>

<p>
<span class="code">JavaSamplerContext</span> used by <span class="code">AbstractJavaSamplerClient</span> has been enhanced with new methods to easy plugin development.</p>

<p>JMeter now distributes additional Maven sources and javadoc artifacts into <a href="https://repo1.maven.org/maven2/org/apache/jmeter/ApacheJMeter_core/4.0/">Maven repository</a>
</p>

<p>Plugins can now register listeners to be notified when a Test Plan is opened/closed</p>


<h3 class="ch_title">Live Reporting and Web Report</h3>

<p>InfluxDB backend listener now allows you to add custom tags by adding them with prefix <span class="code">TAG_</span>, see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=61794">
      Bug
      61794</a>
</p>

<p>In Web Report responseTime distribution graph is more precise</p>

<p>Some bugfixes have been made on report generation, see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=61900">
      Bug
      61900</a>, <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=61900">
      Bug
      61900</a>61956, <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=61899">
      Bug
      61899</a>.
Graphs <i>Latency Vs Request</i> and <i>Response Time Vs Request</i> did not exceed 1000 RPS due to <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=61962">
      Bug
      61962</a>
</p>


<h3 class="ch_title">Configuration of JMeter environment</h3>

<p>JVM settings for the JMeter start scripts can be placed in a separate file (<span class="code">bin/setenv.sh</span> on Unix
and <span class="code">bin\setenv.bat</span> on Windows), that gets called on startup. The startup script
itself does not have to be edited anymore.</p>





<h2 class="ch_section" id="Incompatible changes">Incompatible changes</h2>

<ul>
    
<li>
<span class="code">Start time</span> and <span class="code">End date</span> of Thread Group have been removed, see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=61549">
      Bug
      61549</a>
</li>
    
<li>In distributed testing, mode <span class="code">Hold</span> has been removed. Use alternative and more efficient modes</li>
    
<li>For 3<sup>rd</sup> party plugins, the following method in <span class="code">org.apache.jmeter.gui.tree.JMeterTreeNode</span> has been dropped for migration to Java 9 (<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=61529">
      Bug
      61529</a>)
    <pre class="source">public Enumeration&lt;JMeterTreeNode&gt; children()</pre>
    
</li>
    
<li>
<span class="code">tearDown Thread Group</span> will now run on stop and shutdown of a test by default. If you don't want this behaviour,
    uncheck <span class="code">Run tearDown Thread Groups after shutdown of main threads</span> on <span class="code">Test Plan</span> element, see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=61656">
      Bug
      61656</a>
</li>
    
<li>Properties <span class="code">sampleresult.getbytes.headers_size</span> and <span class="code">sampleresult.getbytes.body_real_size</span> have been dropped, see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=61587">
      Bug
      61587</a>
</li>
    
<li>JMeter will now save your test plan whenever you run it. This behaviour can be controlled by property <span class="code">save_automatically_before_run</span>, see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=61731">
      Bug
      61731</a>
</li>
    
<li>Workbench element has been dropped, you now directly add <span class="code">Non Test Element</span> as children of Test Plan. When loading a Test Plan that contains the element
    JMeter will move the <span class="code">Mirror Server</span>, <span class="code">Property Display</span> and HTTP(s) <span class="code">Test Script Recorder</span> elements as direct children of Test Plan. For
    any other element, it will create a <span class="code">Test Fragment</span> element called <span class="code">Workbench Test Fragment and move the elements in it</span>.</li>
    
<li>Following classes have been dropped (<span class="code">org.apache.jmeter.functions.util.ArgumentEncoder</span>, <span class="code">org.apache.jmeter.functions.util.ArgumentDecoder</span>), see <a href="https://github.com/apache/jmeter/pull/335">
      Pull request #335</a>
</li>
    
<li>In JMS Point-to-Point sampler, setting timeout to 0 will now mean infinite timeout while previously it would be switched to 2000 ms, see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=61829">
      Bug
      61829</a>
</li>
    
<li>When Assertions are at different scopes, they are executed starting with the most OUTER one to the most INNER one. See <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=61846">
      Bug
      61846</a>
</li>
    
<li>JMeter now starts by default using English locale. This change is due to missing translations in many supported languages.
        You can change locale by modifying in jmeter and jmeter.bat (or preferably setenv.sh/setenv.bat) the <span class="code">JVM_ARGS</span> system property values.
        We'd also be very grateful if you can contribute translations in supported languages.
    </li>
    
<li>SwitchController now trims by default the content of switch to avoid issue related to unwanted spaces. See <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=61771">
      Bug
      61771</a>
</li>
    
<li>JMeter JVM heap settings have changed from <span class="code">-Xms512m -Xmx512m</span> to <span class="code">-Xms1g -Xmx1g</span>
</li>
    
<li>Beanshell version has been upgraded to bsh-2.0b6 which introduces breaking changes and more strict parsing rules</li>

</ul>



<h2 class="ch_section" id="Improvements">Improvements</h2>


<h3>HTTP Samplers and Test Script Recorder</h3>

<ul>
    
<li>
<a href="https://github.com/apache/jmeter/pull/316">
      Pull request #316</a>
    -
  Warn about empty truststore loading. Contributed by Vincent Herilier (https://github.com/vherilier)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=61639">
      Bug
      61639</a>
    -
  HTTP(S) Test Script Recorder: In request filtering tab, uncheck by default "Notify Child Listeners of filtered samplers"</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=61672">
      Bug
      61672</a>
    -
  HTTP(S) Test Script Recorder: Have the ability to choose the sampler name while keeping the ability to just add a prefix</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53957">
      Bug
      53957</a>
    -
  HTTP Request: In Parameters tab, allow pasting of content coming from Firefox and Chrome (unparsed)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=61587">
      Bug
      61587</a>
    -
  Drop properties <span class="code">sampleresult.getbytes.headers_size</span> and <span class="code">sampleresult.getbytes.body_real_size</span>
</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=61843">
      Bug
      61843</a>
    -
  HTTP(S) Test Script Recorder: Add SAN to JMeter generated CA Certificate. Contributed by Matthew Buckett</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=61901">
      Bug
      61901</a>
    -
  Support for <span class="code">https.cipherSuites</span> System property. Contributed by Jeremy Arnold (jeremy at arnoldzoo.org)</li>

</ul>


<h3>Other samplers</h3>

<ul>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=61544">
      Bug
      61544</a>
    -
  JMS Point-to-Point Sampler: Enhance communication styles with read, browse, clear. Based on a contribution by Benny van Wijngaarden (benny at smaragd-it.nl)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=61829">
      Bug
      61829</a>
    -
  JMS Point-to-Point: If Receive Queue is empty and a timeout is set, it is not taken into account. Contributed by Ubik Load Pack (support at ubikloadpack.com)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=61739">
      Bug
      61739</a>
    -
  Java Request / JavaSamplerClient: Improve <span class="code">org.apache.jmeter.protocol.java.sampler.JavaSamplerContext</span>
</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=61762">
      Bug
      61762</a>
    -
  Start Next Thread Loop should be used everywhere</li>

</ul>


<h3>Controllers</h3>

<ul>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=61675">
      Bug
      61675</a>
    -
  If Controller: Use expression by default and add a warning when the other mode is used. Contributed by Ubik Load Pack (support at ubikloadpack.com)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=61770">
      Bug
      61770</a>
    -
  Module Controller: Inform user in UI that he needs to have at least one Controller in his plan. Contributed by Ubik Load Pack (support at ubikloadpack.com)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=61771">
      Bug
      61771</a>
    -
  SwitchController: Switch field should be trimmed by safety</li>

</ul>


<h3>Listeners</h3>

<ul>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57760">
      Bug
      57760</a>
    -
  View Results Tree: Cookie Header is wrongly shown as empty (no cookies) when viewing a recorder Sample Result. Contributed by Ubik Load Pack (support at ubikloadpack.com)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=61769">
      Bug
      61769</a>
    -
  View Results Tree: Use syntax highlighter in XPath Tester, JSON Path Tester and CSS/JQuery Tester. Contributed by Ubik Load Pack (support at ubikloadpack.com)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=61776">
      Bug
      61776</a>
    -
  View Results Tree: Expansion of <span class="code">Add expand/collapse all</span> menu in render XML view. Contributed by Maxime Chassagneux and Graham Russell</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=61852">
      Bug
      61852</a>
    -
  View Results Tree: Add a Boundary Extractor Tester</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=61794">
      Bug
      61794</a>
    -
  Influxdb backend: Add as many custom tags as wanted by just create new lines and prefix theirs name by "<span class="code">TAG_</span>" on the GUI backend listener</li>

</ul>


<h3>Timers, Assertions, Config, Pre- &amp; Post-Processors</h3>

<ul>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=60213">
      Bug
      60213</a>
    -
  New component: Boundary based extractor</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=61845">
      Bug
      61845</a>
    -
  New Component JSON Assertion based on AtlanBH JSON Path Assertion donated to JMeter-Plugins and migrated into JMeter core by Artem Fedorov (artem at blazemeter.com)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=61931">
      Bug
      61931</a>
    -
  New Component: Precise Throughput Timer, timer that produces Poisson arrivals with given constant throughput. Contributed by Vladimir Sitnikov (sitnikov.vladimir at gmail.com)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=61644">
      Bug
      61644</a>
    -
  HTTP Cache Manager: "Use Cache-Control/Expires header when processing GET requests" should be checked by default</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=61645">
      Bug
      61645</a>
    -
  Response Assertion: Add ability to assert on Request Data</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51140">
      Bug
      51140</a>
    -
  Response Assertion: add ability to set a specific error/failure message that is later shown in the Assertion Result. Contributed by Ubik Load Pack (support at ubikloadpack.com)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=61534">
      Bug
      61534</a>
    -
  Convert AssertionError to a failed assertion, allowing users to use assert in their code. Fixing a regression introduced in 3.2</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=61756">
      Bug
      61756</a>
    -
  Extractors: Improve label name "Reference name" to make it clear what it makes</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=61758">
      Bug
      61758</a>
    -
  <span class="code">Apply to:</span> field in Extractors, Assertions: When entering a value in <span class="code">JMeter Variable Name</span>, the radio box <span class="code">JMeter Variable Name</span> should be selected by default. Contributed by Ubik Load Pack (support at ubikloadpack.com)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=61846">
      Bug
      61846</a>
    -
  Scoped Assertion should follow same order of evaluation as Post Processors</li>


</ul>


<h3>Functions</h3>

<ul>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=61724">
      Bug
      61724</a>
    -
  Add <span class="code">__digest</span> function to provide computing of Hashes (SHA-XXX, MDX). Based on a contribution by orimarko at gmail.com</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=61735">
      Bug
      61735</a>
    -
  Add <span class="code">__dateTimeConvert</span> function to provide date formats conversions. Based on a contribution by orimarko at gmail.com</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=61760">
      Bug
      61760</a>
    -
  Add <span class="code">__isPropDefined</span> and <span class="code">__isVarDefined</span> functions to know if property or variable exist. Contributed by orimarko at gmail.com</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=61759">
      Bug
      61759</a>
    -
  Add <span class="code">__changeCase</span> function to change different cases of a string. Based on a contribution by orimarko at gmail.com</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=61561">
      Bug
      61561</a>
    -
  Function helper dialog should display exception in result</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=61738">
      Bug
      61738</a>
    -
  Function Helper Dialog: Add Copy in Generate and clarify labels. Contributed by Ubik Load Pack (support at ubikloadpack.com)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=62027">
      Bug
      62027</a>
    -
  Help: Introduce property <span class="code">help.local</span> to allow choosing between local (offline) documentation and online documentation</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=61593">
      Bug
      61593</a>
    -
  Remove Detail, Add, Add from Clipboard, Delete buttons in Function Helper GUI</li>

</ul>


<h3>I18N</h3>

<ul>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=61606">
      Bug
      61606</a>
    -
  Translate button <span class="code">Browse&hellip;</span> in some elements (which use FileEditor class)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=61747">
      Bug
      61747</a>
    -
  HTTP(S) Test Script Recorder: add the missing doc to "Create transaction after request (ms)"</li>

</ul>


<h3>Report / Dashboard</h3>

<ul>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=61871">
      Bug
      61871</a>
    -
  Reduce jmeter.reportgenerator.graph.responseTimeDistribution.property.set_granularity default value from 500ms to 100ms</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=61879">
      Bug
      61879</a>
    -
  Remove useless files in HTML report template</li>

</ul>


<h3>General</h3>

<ul>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=61591">
      Bug
      61591</a>
    -
  Drop Workbench from test tree. Implemented by Artem Fedorov (artem at blazemeter.com) and contributed by BlazeMeter Ltd.</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=61549">
      Bug
      61549</a>
    -
  Thread Group: Remove start and end date</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=61529">
      Bug
      61529</a>
    -
  Migration to Java 9. Partly contributed by Ubik Load Pack (support at ubikloadpack.com)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=61709">
      Bug
      61709</a>
    -
  SampleResult: Add a method <span class="code">setIgnore()</span> to make JMeter ignore the SampleResult and not send it to listeners</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=61806">
      Bug
      61806</a>
    -
  Allow to use <span class="code">SampleResult#setIgnore()</span> in post-processors and assertions script (JSR223 elements)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=61607">
      Bug
      61607</a>
    -
  Add browse button in all BeanShell elements to select BeanShell script</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=61627">
      Bug
      61627</a>
    -
  Don't clear LogView anymore when clicking on Warning/Errors Indicator</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=61629">
      Bug
      61629</a>
    -
  Add Think Times to Children menu should not consider disabled elements</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=61655">
      Bug
      61655</a>
    -
  SampleSender: Drop HoldSampleSender implementation</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=61656">
      Bug
      61656</a>
    -
  <span class="code">tearDown Thread Group</span> should run by default at stop or shutdown of test</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=61659">
      Bug
      61659</a>
    -
  <span class="code">JMeterVariables#get()</span> should apply <span class="code">toString()</span> on non string objects</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=61555">
      Bug
      61555</a>
    -
  Metaspace should be restricted as default</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=61693">
      Bug
      61693</a>
    -
  JMeter aware of Docker (<span class="code">-XX:+UnlockExperimentalVMOptions</span> <span class="code">-XX:+UseCGroupMemoryLimitForHeap</span>)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=61694">
      Bug
      61694</a>
    -
  Add <span class="code">-server</span> option in <span class="code">jmeter.bat</span>
</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=61697">
      Bug
      61697</a>
    -
  Introduce Darcula Look And Feel to make JMeter UI more attractive</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=61704">
      Bug
      61704</a>
    -
  Toolbar: Improve a bit the right part</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=61731">
      Bug
      61731</a>
    -
  Enhance Test plan Backup with option to save before run. Based on a contribution by orimarko at gmail.com</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=61640">
      Bug
      61640</a>
    -
  JSR223 Test Elements: Enable by default caching. Contributed by Ubik Load Pack (support at ubikloadpack.com)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=61785">
      Bug
      61785</a>
    -
  Add <span class="menuchoice"><span class="guimenuitem">Help</span>&nbsp;&rarr;&nbsp;<span class="guimenuitem">Useful links</span></span> to create issues and download nightly build</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=61808">
      Bug
      61808</a>
    -
  Fix main frame position. Implemented by Artem Fedorov (artem at blazemeter.com) and contributed by BlazeMeter Ltd.</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=61802">
      Bug
      61802</a>
    -
  Loop / ForEach Controller should expose a variable for current iteration. Contributed by Ubik Load Pack (support at ubikloadpack.com)</li>
    
<li>
<a href="https://github.com/apache/jmeter/pull/349">
      Pull request #349</a>
    -
  Add i18n resources(zh_CN). Contributed by Helly Guo (https://github.com/hellyguo)</li>
    
<li>
<a href="https://github.com/apache/jmeter/pull/351">
      Pull request #351</a>
    -
  Fixed about dialog position on first view. Contributed by Graham Russell (graham at ham1.co.uk)</li>
    
<li>
<a href="https://github.com/apache/jmeter/pull/352">
      Pull request #352</a>
    -
  Menu bar - added mnemonics to more menu items. Contributed by Graham Russell (graham at ham1.co.uk)</li>
    
<li>
<a href="https://github.com/apache/jmeter/pull/353">
      Pull request #353</a>
    -
  Re-wrote some existing tests in Spock. Contributed by Graham Russell (graham at ham1.co.uk)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=61919">
      Bug
      61919</a>
    -
  UX: Reorder Menus. Contributed by Graham Russell (graham at ham1.co.uk)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=61920">
      Bug
      61920</a>
    -
  Plugins: Add ability to listen to Test Plan loading/closing. Contributed by Peter Doornbosch (https://bitbucket.org/pjtr/)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=61935">
      Bug
      61935</a>
    -
  Plugins: Let GUI component (dynamically) decide whether it can be added via the menu or not. Contributed by Peter Doornbosch (https://bitbucket.org/pjtr/)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=61969">
      Bug
      61969</a>
    -
  When changing LAF through GUI, user should be informed that it is better to restart</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=61970">
      Bug
      61970</a>
    -
  JMeter now uses English as default locale to avoid missing translations in some locales make UI look weird</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56368">
      Bug
      56368</a>
    -
  Create and Deploy source artifacts to Maven central</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=61973">
      Bug
      61973</a>
    -
  Create and Deploy javadoc artifacts to Maven central</li>
    
<li>
<a href="https://github.com/apache/jmeter/pull/371">
      Pull request #371</a>
    -
  Fix example in documentation for <a href="./usermanual/component_reference.html#XPath_Assertion">XPath Assertion</a>. Contributed by Konstantin Kalinin (kkalinin at hotmail.com)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=62039">
      Bug
      62039</a>
    -
  Distributed testing: Provide ability to use SSL</li>

</ul>


<h2 class="ch_section" id="Non-functional changes">Non-functional changes</h2>

<ul>
    
<li>Updated to bsh-2.0b6 (from bsh-2.0b5)</li>
    
<li>Updated to groovy-all-2.4.13 (from groovy-all-2.4.12)</li>
    
<li>Updated to rhino-1.7.7.2 (from rhino-1.7.7.1)</li>
    
<li>Updated to tika-core and tika-parsers 1.17 (from 1.16)</li>
    
<li>Updated to commons-dbcp2-2.2.0 (from 2.1.1)</li>
    
<li>Updated to caffeine 2.6.1 (from 2.5.5)</li>
    
<li>Updated to commons-codec-1.11 (from 1.10)</li>
    
<li>Updated to commons-io-2.6 (from 2.5)</li>
    
<li>Updated to commons-lang3-3.7 (from 3.6)</li>
    
<li>Updated to commons-pool2-2.5.0 (from 2.4.2)</li>
    
<li>Updated to asm-6.0 (from 5.2)</li>
    
<li>Updated to jsoup-1.11.2 (from 1.10.3)</li>
    
<li>Updated to cglib-nodep-3.2.6 (from 3.2.5)</li>
    
<li>Updated to ph-css 6.0.0 (from 5.0.4)</li>
    
<li>Updated to ph-commons 9.0.0 (from 8.6.6)</li>
    
<li>Updated to log4j2 2.10.0 (from 2.8.2)</li>
    
<li>Updated to httpcore 4.4.9 (from 4.4.7)</li>
    
<li>Updated to httpclient 4.5.5 (from 4.5.3)</li>
    
<li>Updated to jodd 4.1.4 (from 3.8.6)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=61642">
      Bug
      61642</a>
    -
  Improve FTP test coverage</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=61641">
      Bug
      61641</a>
    -
  Improve JMS test coverage</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=61651">
      Bug
      61651</a>
    -
  Improve TCP test coverage</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=61651">
      Bug
      61651</a>
    -
  Improve OS test coverage. Partly contributed by Aleksei Balan (abalanonline at gmail.com)</li>
    
<li>
<a href="https://github.com/apache/jmeter/pull/319">
      Pull request #319</a>
    -
  Removed commented out code. Contributed by Graham Russell (graham at ham1.co.uk)</li>
    
<li>
<a href="https://github.com/apache/jmeter/pull/322">
      Pull request #322</a>
    -
  General JavaDoc cleanup. Contributed by Graham Russell (graham at ham1.co.uk)</li>
    
<li>
<a href="https://github.com/apache/jmeter/pull/323">
      Pull request #323</a>
    -
  Extracted method and used streams to improve readability. Contributed by Graham Russell (graham at ham1.co.uk)</li>
    
<li>
<a href="https://github.com/apache/jmeter/pull/324">
      Pull request #324</a>
    -
  Save backup refactor. Contributed by Graham Russell (graham at ham1.co.uk)</li>
    
<li>
<a href="https://github.com/apache/jmeter/pull/327">
      Pull request #327</a>
    -
  Utilising more modern Java, simplifying code and formatting code and comments. Contributed by Graham Russell (graham at ham1.co.uk)</li>
    
<li>
<a href="https://github.com/apache/jmeter/pull/332">
      Pull request #332</a>
    -
  Add the spock framework for groovy unit tests. Contributed by Graham Russell (graham at ham1.co.uk)</li>
    
<li>
<a href="https://github.com/apache/jmeter/pull/334">
      Pull request #334</a>
    -
  Enable running of JUnit tests from within IntelliJ with default config. Contributed by Graham Russell (graham at ham1.co.uk)</li>
    
<li>
<a href="https://github.com/apache/jmeter/pull/335">
      Pull request #335</a>
    -
  Removed <span class="code">functions.util.*</span> as they don't seem to be used (for many years). Contributed by Graham Russell (graham at ham1.co.uk)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=61867">
      Bug
      61867</a>
    -
  <a href="https://github.com/apache/jmeter/pull/345">
      Pull request #345</a>
    -
  Updated to latest checkstyle (v8.5), Added many more rules to checkstyle, Included checking of test files and more file types. Contributed by Graham Russell (graham at ham1.co.uk)</li>
    
<li>
<a href="https://github.com/apache/jmeter/pull/350">
      Pull request #350</a>
    -
  Parallelised unit tests. Contributed by Graham Russell (graham at ham1.co.uk)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=61966">
      Bug
      61966</a>
    -
  Setup Test Results Analyzer in jenkins</li>
    
<li>
<a href="https://github.com/apache/jmeter/pull/343">
      Pull request #343</a>
    -
  Reduce the size of some images in the documentation. Contributed by Graham Russell (graham at ham1.co.uk)</li>

</ul>

 


<h2 class="ch_section" id="Bug fixes">Bug fixes</h2>


<h3>HTTP Samplers and Test Script Recorder</h3>

<ul>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=61569">
      Bug
      61569</a>
    -
  JMS Point-to-Point Test Plan: Synchronization issue when putting reply. Contributed by Igor Panainte (panainte.i at gmail.com)</li>

</ul>


<h3>Other Samplers</h3>

<ul>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=61698">
      Bug
      61698</a>
    -
  Test Action: It stop is selected, samplers following Test Action can run</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=61707">
      Bug
      61707</a>
    -
  Test Action: Target is ignored when pause is selected, so it should be disabled</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=61827">
      Bug
      61827</a>
    -
  JMSPublisher: Don't add new line at the end of the file. Contributed by Graham Russell (graham at ham1.co.uk)</li>

</ul>


<h3>Controllers</h3>

<ul>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=61556">
      Bug
      61556</a>
    -
  Clarify in documentation performance impacts of <span class="code">${}</span> var usage in IfController and groovy. Contributed by Justin McCartney (be_strew at yahoo.co.uk)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=61713">
      Bug
      61713</a>
    -
  Test Fragment has option to Change Controller and Insert Parent. Contributed by Ubik Load Pack (support at ubikloadpack.com)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=61965">
      Bug
      61965</a>
    -
  Module and Include Controller should not allow to add meaningless elements in their context.</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=62062">
      Bug
      62062</a>
    -
  ThroughputController: StackOverFlowError triggered when throughput=0 (Total Executions or Percentage Executions) Partly implemented by Artem Fedorov (artem.fedorov at blazemeter.com) and contributed by BlazeMeter Ltd.</li>

</ul>


<h3>Listeners</h3>

<ul>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=61742">
      Bug
      61742</a>
    -
  BackendListener: fix default value for <span class="code">backend_graphite.send_interval</span>
</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=61878">
      Bug
      61878</a>
    -
  BackendListener: NPE if BackendListenerClient#getDefaultParameters returns null</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=61950">
      Bug
      61950</a>
    -
  View Results Tree: Content-Type <span class="code">audio/mpegurl</span> is wrongly considered as binary</li>

</ul>


<h3>Timers, Assertions, Config, Pre- &amp; Post-Processors</h3>

<ul>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=61716">
      Bug
      61716</a>
    -
  Header Manager: When pasting Headers from Firefox or Chrome spaces are introduced as first character of value</li>

</ul>


<h3>Functions</h3>

<ul>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=61588">
      Bug
      61588</a>
    -
  Better log message for <a href="./usermanual/functions.html#__RandomDate">__RandomDate()</a> function</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=61619">
      Bug
      61619</a>
    -
  In Function Helper Dialog, the 1<sup>st</sup> function doesn't display default parameters</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=61628">
      Bug
      61628</a>
    -
  If split string has empty separator default separator is not used</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=61752">
      Bug
      61752</a>
    -
  <span class="code">__RandomDate</span>: Function does not allow missing last parameter used for variable name</li>

</ul>


<h3>I18N</h3>

<ul>

</ul>


<h3>Report / Dashboard</h3>

<ul>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=61807">
      Bug
      61807</a>
    -
  Web Report: fix error in <span class="code">getTop5ErrorMetrics</span>. Contributed by Graham Russell (graham at ham1.co.uk)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=61900">
      Bug
      61900</a>
    -
  Report Generator: Report generation fails if separator is a regex reserved char like <span class="code">|</span>
</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=61925">
      Bug
      61925</a>
    -
  CsvSampleReader does not increment row in nextSample(). Contributed by Graham Russell (graham at ham1.co.uk)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=61956">
      Bug
      61956</a>
    -
  Report Generation: <span class="code">-f</span> of <span class="code">-forceDeleteResultFile</span> option does not work. Contributed by Ubik Load Pack (support at ubikloadpack.com)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=61899">
      Bug
      61899</a>
    -
  Report Generation: When <span class="code">jmeter.save.saveservice.print_field_names</span> is false and <span class="code">sample_variables</span> are set report generation fails. Contributed by Ubik Load Pack (support at ubikloadpack.com)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=61962">
      Bug
      61962</a>
    -
  Latency Vs Request and Response Time Vs Request graphs do not exceed 1000 RPS. Contributed by Ubik Load Pack (support at ubikloadpack.com)</li>

</ul>


<h3>General</h3>

<ul>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=61661">
      Bug
      61661</a>
    -
  Avoid startup/shutdown problems due to 3<sup>rd</sup> party Thread Listener plugins throwing RuntimeException</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=61625">
      Bug
      61625</a>
    -
  File Editor used in BeanInfo behaves strangely under all LAFs with impact on CSVDataSet, JSR223, BSF, Beanshell Element</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=61844">
      Bug
      61844</a>
    -
  Maven pom.xml: Libraries used in testing should have scope test</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=61842">
      Bug
      61842</a>
    -
  Saving with no changes causes a save and duplicate, identical backup file</li>

</ul>

 


<h2 class="ch_section" id="Thanks">Thanks</h2>

<p>We thank all contributors mentioned in bug and improvement sections above:
</p>

<ul>
    
<li>Igor Panainte (panainte.i at gmail.com)</li>
    
<li>Emilian Bold (emi at apache.org)</li>
    
<li>
<a href="https://ubikloadpack.com">Ubik Load Pack</a>
</li>
    
<li>Justin McCartney (be_strew at yahoo.co.uk)</li>
    
<li>Vincent Herilier (https://github.com/vherilier)</li>
    
<li>Aleksei Balan (abalanonline at gmail.com)</li>
    
<li>Graham Russell (graham at ham1.co.uk)</li>
    
<li>orimarko at gmail.com</li>
    
<li>Artem Fedorov (artem at blazemeter.com)</li>
    
<li>
<a href="https://www.blazemeter.com">BlazeMeter Ltd</a>
</li>
    
<li>Benny van Wijngaarden (benny at smaragd-it.nl)</li>
    
<li>Matthew Buckett (https://github.com/buckett)</li>
    
<li>Helly Guo (https://github.com/hellyguo)</li>
    
<li>Peter Doornbosch (https://bitbucket.org/pjtr/)</li>
    
<li>Jeremy Arnold (jeremy at arnoldzoo.org)</li>
    
<li>Vladimir Sitnikov (sitnikov.vladimir at gmail.com)</li>
    
<li>Konstantin Kalinin (kkalinin at hotmail.com)</li>

</ul>

<p>We also thank bug reporters who helped us improve JMeter. <br>
For this release we want to give special thanks to the following reporters for the clear reports and tests made after our fixes:</p>

<ul>
    
<li>user7294900 on Stackoverflow (orimarko at gmail.com)</li>

</ul>

<p>
Apologies if we have omitted anyone else.
 </p>
 


<h2 class="ch_section" id="Known problems and workarounds">Known problems and workarounds</h2>

<ul>

<li>View Results Tree may freeze rendering large response particularly if this response has no spaces, see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=60816">
      Bug
      60816</a>.
This is due to an identified Java Bug <a href="https://bugs.openjdk.java.net/browse/JDK-8172336">UI stuck when calling <span class="code">JEditorPane.setText()</span> or <span class="code">JTextArea.setText()</span> with long text without space</a>.
</li>

</ul>

<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 <span class="code">0</span> (see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55510">
      Bug
      55510</a>).
</li>


<li>
Note that under some windows systems you may have this WARNING:
<pre class="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.
</pre>
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:
<pre class="source">java.security.cert.CertificateException: Certificates does not conform to algorithm constraints</pre>
 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 <span class="code">md2WithRSAEncryption</span>) or with a SSL certificate with a size lower than 1024 bits.
This error is related to increased security in Java 8+.
<br>
To allow you to perform your HTTPS request, you can downgrade the security of your Java installation by editing
the Java <span class="code">jdk.certpath.disabledAlgorithms</span> property. Remove the MD2 value or the constraint on size, depending on your case.
<br>
This property is in this file:
<pre class="source">JAVA_HOME/jre/lib/security/java.security</pre>
See  <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56357">
      Bug
      56357</a> 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 <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54586">
      Bug
      54586</a>.
This is due to a known Java bug which fails to parse "<span class="code">px</span>" 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 (<span class="keycombo"><span class="keysym">SHIFT</span>&nbsp;+&nbsp;<span class="keysym">up/down</span></span>) 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>

</ul>




<h1>Version 3.3</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>


<h2 class="ch_section" id="New and Noteworthy">New and Noteworthy</h2>

<div class="clear"></div>
<div class="note">JMeter does not yet support JAVA 9, next JMeter version will support it, you can help and follow progress on this item in <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=61529">
      Bug
      61529</a>.</div>
<div class="clear"></div>

<div class="clear"></div>
<div class="note">Using last minor version of JAVA 8 is advised to avoid facing any JDK bug.</div>
<div class="clear"></div>




<h3 class="ch_title">Core improvements</h3>

<p>HTTP Sampler now supports Brotli decompression.</p>

<p>CacheManager now completely supports Vary header.</p>

<p>InfluxDB BackendListener now supports sending results to InfluxDB through UDP protocol.
<figure>
<a href="./images/screenshots/changes/3.3/influxdb_udp.png"><img src="./images/screenshots/changes/3.3/influxdb_udp.png" width="825" height="328" alt=""></a>
<figcaption></figcaption>
</figure>
It has also been enhanced to send number of errors by response code and message for each transaction</p>

<p>TCP Sampler now computes latency, see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=60156">
      Bug
      60156</a>
</p>

<p>Upgraded dependencies to last available versions bringing performance improvements and bug fixes</p>

<p>Continued to improve the quality of our code and tests coverage. See <a href="https://builds.apache.org/analysis/overview?id=12927">Quality report</a>
</p>

<h3 class="ch_title">UX improvements</h3>

<p>More work has been done to better support HiDPI.</p>

<p>Some bugs, that crept in with the work on lowering the memory usage of View Results Tree, were fixed.</p>

<p>The constant <span class="code">DEFAULT_IMPLEMENTATION</span> was removed from CookieManager,
as it lost it purpose with the removal of the alternate HTTP Client implementation in the last release</p>

<p>JDBC Sampler UX has been improved by adding select boxes for drivers and validation queries.
<figure>
<a href="./images/screenshots/changes/3.3/jdbc_config_validation_driver_url.png"><img src="./images/screenshots/changes/3.3/jdbc_config_validation_driver_url.png" width="821" height="543" alt=""></a>
<figcaption></figcaption>
</figure>

<figure>
<a href="./images/screenshots/changes/3.3/jdbc_config_validation_query.png"><img src="./images/screenshots/changes/3.3/jdbc_config_validation_query.png" width="820" height="451" alt=""></a>
<figcaption></figcaption>
</figure>

</p>

<p>If Controller and While Controller UX have been improved
<figure>
<a href="./images/screenshots/changes/3.3/jmeter_if_controller.png"><img src="./images/screenshots/changes/3.3/jmeter_if_controller.png" width="821" height="348" alt=""></a>
<figcaption></figcaption>
</figure>

</p>

<h3 class="ch_title">Report/Dashboard improvements</h3>
A new Help menu item has been added to simplify configuration of report generation.
<figure>
<a href="./images/screenshots/changes/3.3/jmeter_export_transactions_menu.png"><img src="./images/screenshots/changes/3.3/jmeter_export_transactions_menu.png" width="491" height="455" alt=""></a>
<figcaption></figcaption>
</figure>

<figure>
<a href="./images/screenshots/changes/3.3/jmeter_export_transactions_result.png"><img src="./images/screenshots/changes/3.3/jmeter_export_transactions_result.png" width="609" height="188" alt=""></a>
<figcaption></figcaption>
</figure>

<h3 class="ch_title">Documentation improvements</h3>
Incorporated feedback about unclear documentation.

<h3 class="ch_title">Functions</h3>

<p>Function Helper Dialog: a new field that shows execution result has been added.
<figure>
<a href="./images/screenshots/changes/3.3/jmeter_function_result.png"><img src="./images/screenshots/changes/3.3/jmeter_function_result.png" width="693" height="344" alt=""></a>
<figcaption></figcaption>
</figure>

</p>

<p>New functions:</p>

<ul>

<li>
<span class="code"><a href="./usermanual/functions.html#__timeShift">__timeShift</a></span> - return a date in various formats with the specified amount of seconds/minutes/hours/days added.
<figure>
<a href="./images/screenshots/changes/3.3/jmeter_function_add_time.png"><img src="./images/screenshots/changes/3.3/jmeter_function_add_time.png" width="757" height="376" alt=""></a>
<figcaption></figcaption>
</figure>

</li>

<li>
<span class="code"><a href="./usermanual/functions.html#__RandomDate">__RandomDate</a></span> - generate random date within a specific date range.
<figure>
<a href="./images/screenshots/changes/3.3/jmeter_function_random_date.png"><img src="./images/screenshots/changes/3.3/jmeter_function_random_date.png" width="700" height="369" alt=""></a>
<figcaption></figcaption>
</figure>

</li>

</ul>




<h2 class="ch_section" id="Incompatible changes">Incompatible changes</h2>

<ul>

<li>In InfluxDbBackendListenerClient, <span class="code">statut</span> property has been renamed to <span class="code">status</span>
</li>

<li>In CookieManager, <span class="code">DEFAULT_POLICY</span> and <span class="code">DEFAULT_IMPLEMENTATION</span> constants are now private.
<div class="clear"></div>
<div class="note">If you're using <span class="code">ignorecookies</span> with HC3CookieHandler (&lt; JMeter 3.1)  configuration will be reset, ensure you put it back.</div>
<div class="clear"></div>
</li>

<li>JMeter will not truncate anymore by default responses exceeding 10 MB. If you want to enable this truncation, see property <span class="code">httpsampler.max_bytes_to_store_per_request</span>
</li>

<li>
<span class="code">org.apache.jmeter.protocol.tcp.sampler.TCPClient.read(InputStream)</span> has been deprecated in favor or org.apache.jmeter.protocol.tcp.sampler.TCPClient.read(InputStream, SampleResult),
ensure you update your implementation to be able to compute latency, see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=60156">
      Bug
      60156</a>
</li>

</ul>

<h3>Removed elements or functions</h3>

<ul>
    
<li>
<span class="code">_StringFromFile</span> function has been dropped, use <span class="code"><a href="./usermanual/functions.html#__StringFromFile">__StringFromFile</a></span> instead</li>

</ul>




<h2 class="ch_section" id="Improvements">Improvements</h2>


<h3>HTTP Samplers and Test Script Recorder</h3>

<ul>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=61056">
      Bug
      61056</a>
    -
  HTTP : Support brotli decoding</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=61135">
      Bug
      61135</a>
    -
  CookieManager : Drop Implementation select box and cleanup class</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=61492">
      Bug
      61492</a>
    -
  HTTP(S) Test Script Recorder : Add the possibility to change the value of proxy.pause in the GUI</li>

</ul>


<h3>Other samplers</h3>

<ul>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=61320">
      Bug
      61320</a>
    -
  Test Action : Set duration to <span class="code">0</span> by default</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=61504">
      Bug
      61504</a>
    -
  JDBC Connection Configuration : Set Max Number of Connections to <span class="code">0</span> by default</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=61505">
      Bug
      61505</a>
    -
  JDBC Connection Configuration : Set "Validation Query" to <span class="code">empty</span> by default to use <span class="code">isValid</span> method of JDBC driver</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=61506">
      Bug
      61506</a>
    -
  JDBC Connection Configuration : Add a list for main databases validation queries for "Validation Query" attribute</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=61507">
      Bug
      61507</a>
    -
  JDBC Connection Configuration : Add a list for main databases JDBC driver class name for "JDBC Driver class" attribute</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=61525">
      Bug
      61525</a>
    -
  OS Process Sampler : Add browser button to Command and Working directory fields</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=60156">
      Bug
      60156</a>
    -
  TCPSampler : Latency is not measured for TCP Sampler. Contributed by Ubik Load Pack (support at ubikloadpack.com)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=61039">
      Bug
      61039</a>
    -
  CSV data set config : Add browser button to Filename field</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=61527">
      Bug
      61527</a>
    -
  CSV data set config : Add a list for main file encoding values for File encoding attribute</li>

</ul>


<h3>Controllers</h3>

<ul>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=61131">
      Bug
      61131</a>
    -
  IfController and WhileController : Improve UX</li>

</ul>


<h3>Listeners</h3>

<ul>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=61167">
      Bug
      61167</a>
    -
  InfluxdbBackendListener : add number of errors by response code and message for each transaction</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=61068">
      Bug
      61068</a>
    -
  Introduce property <span class="code">resultcollector.action_if_file_exists</span> to control the popup "File already exists" when starting a test</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=61457">
      Bug
      61457</a>
    -
  InfluxDB backend listener client : Support sending result to InfluxDB through UDP protocol. Partly based on <a href="https://github.com/apache/jmeter/pull/302">
      Pull request #302</a>
    -
   by Junlong Wu (github id mybreeze77)</li>

</ul>


<h3>Timers, Assertions, Config, Pre- &amp; Post-Processors</h3>

<ul>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=61176">
      Bug
      61176</a>
    -
  <a href="https://github.com/apache/jmeter/pull/298">
      Pull request #298</a>
    -
   Cache responses that have <span class="code">vary</span> header in the <span class="code">CacheManager</span>.</li>

</ul>


<h3>Functions</h3>

<ul>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=61040">
      Bug
      61040</a>
    -
  Add a time shifting function</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=61126">
      Bug
      61126</a>
    -
  Function Helper Dialog : Add a field that shows execution result</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=61508">
      Bug
      61508</a>
    -
  Add a random date within a specific date range function</li>

</ul>


<h3>I18N</h3>

<ul>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=61509">
      Bug
      61509</a>
    -
  Better label/translation/documentation for labels start and max for Counter element</li>

</ul>


<h3>Report / Dashboard</h3>

<ul>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=61481">
      Bug
      61481</a>
    -
  Help Menu Item to export transaction for Web report</li>

</ul>


<h3>General</h3>

<ul>
    
<li>When looking for classes in <span class="code">ActionRouter</span>, fall back to location of the jar,
       where <span class="code">ActionRouter</span> is loaded from. Provided by Emilian Bold (emi at apache.org)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=61510">
      Bug
      61510</a>
    -
  Set 'Max Number of Connections' to <span class="code">0</span> into 'JDBC Connection Configuration' for the 'JDBC Load Test template'</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=61399">
      Bug
      61399</a>
    -
  Make some bin and extras scripts Shellcheck compatible. Contributed by Wolfgang Wagner (internetwolf2000 at hotmail.com)</li>

</ul>


<h2 class="ch_section" id="Non-functional changes">Non-functional changes</h2>

<ul>
    
<li>Updated to groovy 2.4.12 (from 2.4.10)</li>
    
<li>Updated to caffeine 2.5.5 (from 2.4.0)</li>
    
<li>Updated to commons-jexl3 3.1 (from 3.0)</li>
    
<li>Updated to ph-css 5.0.4 (from 5.0.3)</li>
    
<li>Updated to ph-commons 8.6.6 (from 8.6.0)</li>
    
<li>Updated to log4j2 2.8.2 (from 2.8.1)</li>
    
<li>Updated to xmlgraphics-commons 2.2 (from 2.1)</li>
    
<li>Updated to jodd 3.8.6 (from 3.8.1)</li>
    
<li>Updated to xstream 1.4.10 (from 1.4.9)</li>
    
<li>Updated to Apache Tika 1.16 (from 1.14)</li>
    
<li>Updated to jsoup-1.10.3 (from 1.10.2)</li>
    
<li>Updated to commons-lang3 3.6 (from 3.5)</li>
    
<li>Updated to json-path 2.4.0 (from 2.2.0)</li>
    
<li>Updated to httpcore 4.4.7 (from 4.4.6)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=61438">
      Bug
      61438</a>
    -
  Change the cryptographic signature of packages from sha-1 to sha-512</li>

</ul>

 


<h2 class="ch_section" id="Bug fixes">Bug fixes</h2>


<h3>HTTP Samplers and Test Script Recorder</h3>

<ul>
  
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=61384">
      Bug
      61384</a>
    -
  Don't set the charset on enclosing <span class="code">multipart/form-data</span> header. It irritates some servers.<br>
     The charset was added sometime back while refactoring to use a newer API of http client.
     See <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56141">
      Bug
      56141</a>
    -
   for more info.</li>
  
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=61456">
      Bug
      61456</a>
    -
  <span class="code">java.lang.ArrayIndexOutOfBoundsException</span> when recording with JMeter and weird Basic Auth Authorization header</li>
  
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=61395">
      Bug
      61395</a>
    -
  Large server response truncation can impact recording</li>

</ul>


<h3>Other Samplers</h3>

<ul>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=60889">
      Bug
      60889</a>
    -
  JMeter JDBC sample calls <span class="code">SELECT USER()</span> when testing with MySQL JDBC due to <span class="code">Connection#toString</span> call for response headers.</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=61259">
      Bug
      61259</a>
    -
  JDBC Request : since JMeter 3.0, when JDBC auto-commit is <span class="code">false</span>, a rollback statement happens each time a Request is executed. Partly contributed by Liu XP (liu_xp2003 at sina.com)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=61319">
      Bug
      61319</a>
    -
  Fix regression: SMTP Sampler could not send mails, when no attachments were specified.</li>

</ul>


<h3>Controllers</h3>

<ul>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=61375">
      Bug
      61375</a>
    -
  Use system DNS resolver as last resort, when resolving entries in the static host table.</li>

</ul>


<h3>Listeners</h3>

<ul>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=61005">
      Bug
      61005</a>
    -
  View Results Tree - Browser Response Data is not clearing</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=61121">
      Bug
      61121</a>
    -
  InfluxdbBackendListenerClient: Only all percentiles are sent, not <span class="code">KO</span> and <span class="code">OK</span>
</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=60961">
      Bug
      60961</a>
    -
  Try to keep status of selected and expanded elements in View Results Tree when new elements are added.</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=61198">
      Bug
      61198</a>
    -
  Backend Listener does not work properly in main script when included scripts also contain Backend Listener</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=61493">
      Bug
      61493</a>
    -
  Max/Min threads are interchanged in Graphite and InfluxDB backend listener</li>

</ul>


<h3>Timers, Assertions, Config, Pre- &amp; Post-Processors</h3>

<ul>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58743">
      Bug
      58743</a>
    -
  <a href="https://github.com/apache/jmeter/pull/293">
      Pull request #293</a>
    -
   TableEditor can't be saved, when using two or more instances. Bugfix provided by Emilian Bold (emi at apache.org)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=61314">
      Bug
      61314</a>
    -
  HTTP URL Re-writing Modifier doesn't replace existing <span class="code">jsessionid</span> in http sampler, but adds it to the end</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=61336">
      Bug
      61336</a>
    -
  BeanShell Assertion : mistake in Chinese translation</li>

</ul>


<h3>Functions</h3>

<ul>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=61258">
      Bug
      61258</a>
    -
  StringFromFile function is mentioned twice in the Function helper dialog</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=61260">
      Bug
      61260</a>
    -
  <span class="code"><a href="./usermanual/functions.html#__XPath">__XPath</a></span> function returns null despite XPath checker founds matches</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58876">
      Bug
      58876</a>
    -
  TestPlanName function returns <span class="code">null</span> for a newly saved Test Plan and uses previously opened one for a new one</li>

</ul>


<h3>I18N</h3>

<ul>

</ul>


<h3>Report / Dashboard</h3>

<ul>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=61129">
      Bug
      61129</a>
    -
  Report/Dashboard : If response code is empty but a <span class="code">failureMessage</span> is present, Errors and Top 5 Errors are not accurate. Contributed by Ubik Load Pack (support at ubikloadpack.com)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=61151">
      Bug
      61151</a>
    -
  Report/Dashboard : Top 5 Errors by Sampler and Errors : If assertion contains html code, the html part is hidden</li>

</ul>


<h3>General</h3>

<ul>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=60743">
      Bug
      60743</a>
    -
  Stopping / Shutting down Test might create a deadlock due to HTTPCORE-446, fixed by HttpCore upgrade to 4.4.7</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=60994">
      Bug
      60994</a>
    -
  Fix some typo in comments or log messages. <a href="https://github.com/apache/jmeter/pull/289">
      Pull request #289</a>,
   and <a href="https://github.com/apache/jmeter/pull/290">
      Pull request #290</a>
    -
  </li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=61011">
      Bug
      61011</a>
    -
  Replace occurrences count is not correct (Path and Host replacement are counted twice)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=61026">
      Bug
      61026</a>
    -
  Cannot run program "keytool": CreateProcess error=2 when starting JMeter 3.2 in GUI mode</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=61054">
      Bug
      61054</a>
    -
  Endless loop in <span class="code">JOrphanUtils#replaceAllWithRegex</span> when regex is contained in replacement</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=60995">
      Bug
      60995</a>
    -
  HTTP Test Script Recorder: Port field is very small under some L&amp;F</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=61073">
      Bug
      61073</a>
    -
  HTTP(S) Test Script Recorder panel have some fields with bad size on HiDPI screen or GTK+ L&amp;F on Linux/XWayland</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57958">
      Bug
      57958</a>
    -
  Fix transaction sample not generated if thread stops/restarts. Implemented by Artem Fedorov (artem at blazemeter.com) and contributed by BlazeMeter Ltd.</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=61050">
      Bug
      61050</a>
    -
  Handle uninitialized RessourceBundle more gracefully, when calling <span class="code">JMeterUtils#getResString</span>.</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=61100">
      Bug
      61100</a>
    -
  Invalid GC Log Filename on Windows</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57962">
      Bug
      57962</a>
    -
  Allow to use variables (from User Defined Variables only) in all listeners in worker node mode</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=61270">
      Bug
      61270</a>
    -
  Fixed width fonts too small in text areas to read under HiDPI (user manual bug)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=61292">
      Bug
      61292</a>
    -
  Make processing of samples in reporter more robust.</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=61359">
      Bug
      61359</a>
    -
  When cutting an element from Tree, Test plan is not marked as dirty</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=61380">
      Bug
      61380</a>
    -
  JMeter shutdown using timers releases thundering herd of interrupted samplers</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57055">
      Bug
      57055</a>
    -
  CheckDirty.doAction should clear previousGuiItems for <span class="code">SUB_TREE_SAVED</span>
</li>

</ul>

 


<h2 class="ch_section" id="Thanks">Thanks</h2>

<p>We thank all contributors mentioned in bug and improvement sections above:
</p>

<ul>

<li>Anass Benomar (abenomar at umanis.com, Mithrandir0407 at github)</li>

<li>Anthony Kearns (anthony.kearns atrightside.co)</li>

<li>Emilian Bold (emi at apache.org)</li>

<li>Liu XP (liu_xp2003 at sina.com)</li>

<li>
<a href="http://ubikloadpack.com">Ubik Load Pack</a>
</li>

<li>Wolfgang Wagner (internetwolf2000 at hotmail.com)</li>

<li>Junlong Wu (github id mybreeze77)</li>

</ul>

<p>We also thank bug reporters who helped us improve JMeter. <br>
For this release we want to give special thanks to the following reporters for the clear reports and tests made after our fixes:</p>

<ul>

<li>Liu XP (liu_xp2003 at sina.com)</li>

<li>Alexander Podelko (apodelko at yahoo.com)</li>

</ul>

<p>
Apologies if we have omitted anyone else.
 </p>
 


<h2 class="ch_section" id="Known problems and workarounds">Known problems and workarounds</h2>

<ul>

<li>View Results Tree may freeze rendering large response particularly if this response has no spaces, see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=60816">
      Bug
      60816</a>.
This is due to an identified Java Bug <a href="https://bugs.openjdk.java.net/browse/JDK-8172336">UI stuck when calling <span class="code">JEditorPane.setText()</span> or <span class="code">JTextArea.setText()</span> with long text without space</a>.
</li>

</ul>

<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 <span class="code">0</span> (see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55510">
      Bug
      55510</a>).
</li>


<li>
Note that under some windows systems you may have this WARNING:
<pre class="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.
</pre>
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:
<pre class="source">java.security.cert.CertificateException: Certificates does not conform to algorithm constraints</pre>
 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 <span class="code">md2WithRSAEncryption</span>) or with a SSL certificate with a size lower than 1024 bits.
This error is related to increased security in Java 8+.
<br>
To allow you to perform your HTTPS request, you can downgrade the security of your Java installation by editing
the Java <span class="code">jdk.certpath.disabledAlgorithms</span> property. Remove the MD2 value or the constraint on size, depending on your case.
<br>
This property is in this file:
<pre class="source">JAVA_HOME/jre/lib/security/java.security</pre>
See  <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56357">
      Bug
      56357</a> 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 <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54586">
      Bug
      54586</a>.
This is due to a known Java bug which fails to parse "<span class="code">px</span>" 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 (<span class="keycombo"><span class="keysym">SHIFT</span>&nbsp;+&nbsp;<span class="keysym">up/down</span></span>) 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>

</ul>




<h1>Version 3.2</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>


<h2 class="ch_section" id="New and Noteworthy">New and Noteworthy</h2>






<h2 class="ch_section" id="IMPORTANT CHANGES">IMPORTANT CHANGES</h2>

<p>
JMeter now requires Java 8. Ensure you use the most up to date version.
</p>

<p>
JMeter logging has been migrated to SLF4J and Log4j 2.
This affects configuration and 3<sup>rd</sup> party plugins, see below <b>"Logging changes"</b>.
</p>

<p>
Starting with JMeter version 3.2 the number of results in View Results Tree is
limited by default to 500 entries. If you want more entries, you have to set
the property <span class="code">view.results.tree.max_results</span> to a higher value, or to <span class="code">0</span>, if
you don't want to impose any limit.
You can set the property in bin/user.properties.
More info might be found <a href="usermanual/component_reference.html#View_Results_Tree">here</a>.
</p>

<h3 class="ch_title">Core improvements</h3>

<ul>

<li>JMeter now provides a new BackendListener implementation that interfaces InfluxDB.
<figure>
<a href="./images/screenshots/changes/3.2/backend_influxdb.png"><img src="./images/screenshots/changes/3.2/backend_influxdb.png" width="813" height="407" alt=""></a>
<figcaption></figcaption>
</figure>
This implementation sends data using Asynchronous HTTP calls to InfluxDB through its <a href="https://docs.influxdata.com/influxdb/v1.2/guides/writing_data/">HTTP API</a>
and give you the following graphs with annotations:
<figure>
<a href="./images/screenshots/backend_listener_influxdb_graph.png"><img src="./images/screenshots/backend_listener_influxdb_graph.png" width="934" height="399" alt=""></a>
<figcaption></figcaption>
</figure>

</li>

<li>DNS Cache Manager now has a table to allow static host resolution.
<figure>
<a href="./images/screenshots/changes/3.2/dns_cache_manager_static_hosts.png"><img src="./images/screenshots/changes/3.2/dns_cache_manager_static_hosts.png" width="803" height="561" alt=""></a>
<figcaption></figcaption>
</figure>

</li>

<li>JMS Publisher and Subscriber now allow reconnection on error with pause.
<figure>
<a href="./images/screenshots/changes/3.2/jms_publisher_reconnect.png"><img src="./images/screenshots/changes/3.2/jms_publisher_reconnect.png" width="852" height="738" alt=""></a>
<figcaption></figcaption>
</figure>

<figure>
<a href="./images/screenshots/changes/3.2/jms_subscriber_reconnect_pause.png"><img src="./images/screenshots/changes/3.2/jms_subscriber_reconnect_pause.png" width="716" height="538" alt=""></a>
<figcaption></figcaption>
</figure>

</li>

<li>Variables in JMS Publisher are now supported for all types of messages. Add the encoding type of the file to parse its content</li>

<figure>
<a href="./images/screenshots/changes/3.2/jms_subscriber_content_encoding.png"><img src="./images/screenshots/changes/3.2/jms_subscriber_content_encoding.png" width="750" height="743" alt=""></a>
<figcaption></figcaption>
</figure>

<li>XPath Extractor now allows extraction randomly, by index or for all matches.
<figure>
<a href="./images/screenshots/changes/3.2/xpath_extractor_matchno.png"><img src="./images/screenshots/changes/3.2/xpath_extractor_matchno.png" width="823" height="348" alt=""></a>
<figcaption></figcaption>
</figure>

</li>

<li>Response Assertion now allows to work on Request Header, provides a "OR" combination and has a better cell renderer
<figure>
<a href="./images/screenshots/changes/3.2/response_assertion.png"><img src="./images/screenshots/changes/3.2/response_assertion.png" width="1053" height="329" alt=""></a>
<figcaption></figcaption>
</figure>

</li>

<li>JMeter now uses Oracle Nashorn Javascript engine instead of Rhino. This provides a faster execution of Javascript.</li>

<li>HTTP HC4 Implementation now provides preemptive Basic Auth enabled by default</li>

<li>Embedded resources download in CSS has been improved to avoid useless repetitive parsing to find the resources</li>

<li>An important work on code quality and code coverage with tests has been done since Sonar has been setup on the project.
You can see Sonar report <a href="https://builds.apache.org/analysis/overview?id=12927">here</a>.
</li>

</ul>


<h3 class="ch_title">UX improvements</h3>

<ul>

<li>When running a Test, GUI is now more responsive and less impacting on memory usage thanks to a limitation on the number of Sample Results
listeners hold and a rework of the way GUI is updated</li>

<li>HTTP Request GUI has been simplified and provides more place for parameters and body.
<figure>
<a href="./images/screenshots/changes/3.2/http_request.png"><img src="./images/screenshots/changes/3.2/http_request.png" width="848" height="475" alt=""></a>
<figcaption></figcaption>
</figure>

</li>

<li>HTTP(S) Test Script Recorder has been simplified and clarified.
<figure>
<a href="./images/screenshots/changes/3.2/http_recorder_1.png"><img src="./images/screenshots/changes/3.2/http_recorder_1.png" width="1023" height="494" alt=""></a>
<figcaption></figcaption>
</figure>

<figure>
<a href="./images/screenshots/changes/3.2/http_recorder_2.png"><img src="./images/screenshots/changes/3.2/http_recorder_2.png" width="1021" height="711" alt=""></a>
<figcaption></figcaption>
</figure>

</li>

<li>A <span class="code">replace</span> feature has been added to Search feature to allow replacement in some elements.
<figure>
<a href="./images/screenshots/changes/3.2/search_replace.png"><img src="./images/screenshots/changes/3.2/search_replace.png" width="459" height="196" alt=""></a>
<figcaption></figcaption>
</figure>

<div class="clear"></div>
<div class="note">
ReplaceAll does not do replacement on all elements, it does it on:<br>
- HeaderManager: Replacement in values <br>
- Http Request: Replacement in Arguments, Path and Host<br>

</div>
<div class="clear"></div>

</li>

<li>View Results Tree now provides a more up to date Browser renderer which requires JavaFX.</li>

<li>You can now add through a contextual menu think times, this will add think times between samplers and Transaction Controllers
 of selected node.
 <figure>
<a href="./images/screenshots/changes/3.2/menu_add_think_times.png"><img src="./images/screenshots/changes/3.2/menu_add_think_times.png" width="326" height="430" alt=""></a>
<figcaption></figcaption>
</figure>
 
</li>

<li>You can now apply a naming policy to children of a Transaction Controller. A default policy exists but you can implement your own
    through <span class="code"><a href="./api/org/apache/jmeter/gui/action/TreeNodeNamingPolicy.html">org.apache.jmeter.gui.action.TreeNodeNamingPolicy</a></span>
    and configuring property <span class="code">naming_policy.impl</span>

<figure>
<a href="./images/screenshots/changes/3.2/menu_apply_naming_policy.png"><img src="./images/screenshots/changes/3.2/menu_apply_naming_policy.png" width="327" height="518" alt=""></a>
<figcaption></figcaption>
</figure>

</li>

<li>Sorting per column has been added to View Results in Table, Summary Report, Aggregate Report and Aggregate Graph elements.
<figure>
<a href="./images/screenshots/changes/3.2/sorting.png"><img src="./images/screenshots/changes/3.2/sorting.png" width="1065" height="369" alt=""></a>
<figcaption></figcaption>
</figure>

</li>

</ul>


<h3 class="ch_title">Report/Dashboard improvements</h3>

<ul>

<li>
Statistics have been reorganized to clarify report:
<figure>
<a href="./images/screenshots/dashboard/report_statistics.png"><img src="./images/screenshots/dashboard/report_statistics.png" width="1548" height="366" alt=""></a>
<figcaption></figcaption>
</figure>

</li>

<li>
It is now possible to customize APDEX thresholds per transaction based on regular expression or sample name.
The below example will apply different thresholds for samples sample(\\d+), sampleA and scenarioB
than default ones (500 and 1500 for satisfied and tolerated thresholds) declared:
<pre class="source">
jmeter.reportgenerator.apdex_satisfied_threshold=500
jmeter.reportgenerator.apdex_tolerated_threshold=1500
jmeter.reportgenerator.apdex_per_transaction=sample(\\d+):1000|2000;\
    sampleA:3000|4000;\
    scenarioB:5000|6000
</pre>

</li>

</ul>


<h3 class="ch_title">Documentation improvements</h3>

<ul>

<li>PDF Documentations have been migrated and updated to HTML user manual</li>

</ul>




<h2 class="ch_section" id="Incompatible changes">Incompatible changes</h2>


<ul>
    
<li>JMeter requires now at least a Java 8 version to run.</li>
    
<li>JMeter logging has been migrated to SLF4J and Log4j 2, this involves changes in the way configuration is done. JMeter now relies on standard
    <a href="https://logging.apache.org/log4j/2.x/manual/configuration.html">Log4j 2 configuration</a> in file <span class="code">log4j2.xml</span>
    See <span class="code">Logging changes</span> section below for further details.
    </li>
    
<li>The following jars have been removed after migration from LogKit to SLF4J (see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=60589">
      Bug
      60589</a>):
        <ul>
            
<li>ApacheJMeter_slf4j_logkit.jar</li>
            
<li>avalon-framework-4.1.4.jar</li>
            
<li>commons-logging-1.2.jar</li>
            
<li>excalibur-logger-1.1.jar</li>
            
<li>logkit-2.0.jar</li>
        
</ul>
    
</li>
    
<li>The <span class="code">commons-httpclient-3.1.jar</span> has been removed after drop of HC3.1 support(see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=60727">
      Bug
      60727</a>)</li>
    
<li>JMeter now sets through <span class="code">-Djava.security.egd=file:/dev/urandom</span> the algorithm for secure random</li>
    
<li>Process Sampler now returns error code 500 when an error occurs. It previously returned an empty value.</li>
    
<li>In <span class="code">org.apache.jmeter.protocol.http.sampler.HTTPHCAbstractImpl</span> two protected static fields (<span class="code">localhost</span> and <span class="code">nonProxyHostSuffixSize</span>) have been renamed to (<span class="code">LOCALHOST</span> and <span class="code">NON_PROXY_HOST_SUFFIX_SIZE</span>)
        to follow static fields naming convention</li>
    
<li>JMeter now uses by default Oracle Nashorn engine instead of Mozilla Rhino for better performances. This should not have an impact unless
    you use some advanced features. You can revert back to Rhino by settings property <span class="code">javascript.use_rhino=true</span>.
    You can read this <a href="https://wiki.openjdk.java.net/display/Nashorn/Rhino+Migration+Guide">migration guide</a> for more details on Nashorn. See <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=60672">
      Bug
      60672</a>
</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=60729">
      Bug
      60729</a>
    -
  The Random Variable Config Element now allows minimum==maximum. Previous versions logged an error when minimum==maximum and did not set the configured variable.</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=60730">
      Bug
      60730</a>
    -
  The JSON PostProcessor now sets the <span class="code">_ALL</span> variable (assuming <span class="code">Compute concatenation var</span> was checked)
    even if the JSON path matches only once. Previous versions did not set the <span class="code">_ALL</span> variable in this case.</li>

</ul>


<h3>Removed elements or functions</h3>

<ul>
    
<li>SOAP/XML-RPC Request has been removed as part of <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=60727">
      Bug
      60727</a>. Use HTTP Request element as a replacement.
    See <a href="./usermanual/build-ws-test-plan.html">Building a WebService Test Plan</a>
</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=60423">
      Bug
      60423</a>
    -
  Drop Monitor Results listener </li>
    
<li>Drop deprecated class <span class="code">org.apache.jmeter.protocol.system.NativeCommand</span>
</li>
    
<li>Drop deprecated class <span class="code">org.apache.jmeter.protocol.http.config.gui.MultipartUrlConfigGui</span>
</li>
    
<li>Drop deprecated class <span class="code">org.apache.jmeter.testelement.TestListener</span>
</li>
    
<li>Drop deprecated class <span class="code">org.apache.jmeter.reporters.FileReporter</span>
</li>
    
<li>Drop deprecated class <span class="code">org.apache.jmeter.protocol.http.modifier.UserSequence</span>
</li>
    
<li>Drop deprecated class <span class="code">org.apache.jmeter.protocol.http.parser.HTMLParseError</span>
</li>
    
<li>Drop unused methods <span class="code">org.apache.jmeter.protocol.http.control.HeaderManager#getSOAPHeader</span>
    and <span class="code">org.apache.jmeter.protocol.http.control.HeaderManager#setSOAPHeader(Object)</span>
    
</li>
    
<li>
<span class="code">org.apache.jmeter.protocol.http.util.Base64Encode</span> has been deprecated, you can use <span class="code">java.util.Base64</span> as a replacement</li>

</ul>


<h3>Logging changes</h3>

<p>
    JMeter logging has been migrated to SLF4J and Log4j 2.
    This affects logging configuration and 3<sup>rd</sup> party plugins (if they use JMeter logging).
    The following sections describe what changes need to be made.
</p>


<h4>Setting the logging level and log file</h4>

<p>
    The default logging level can be changed on the command-line using the <span class="code">-L</span> parameter.
    Likewise the <span class="code">-l</span> parameter can be used to change the name of the log file.
    However the <span class="code">log_level</span> properties no longer work.
</p>

<p>
    The default logging levels and file name are defined in the <span class="code">log4j2.xml</span> configuration file
    in the launch directory (usually <span class="code">JMETER_HOME/bin</span>)
</p>

<p>
    
<div class="clear"></div>
<div class="note">If you need to change the level programmatically from Groovy code or Beanshell, you need to do the following:
    <pre class="source">
    import org.apache.logging.log4j.core.config.Configurator;
    &#8942;
    final String loggerName = te.getClass().getName(); // te being a JMeter class
    Configurator.setAllLevels(loggerName, Level.DEBUG);
    </pre>
    
</div>
<div class="clear"></div>

</p>


<h4>Changes to 3<sup>rd</sup> party plugin logging</h4>

<p>
    
<div class="clear"></div>
<div class="note">3rd party plugins should migrate their logging code from logkit to slf4j. This is fairly easy and can be done by replacing:
    <pre class="source">
        import org.apache.jorphan.logging.LoggingManager;
        import org.apache.log.Logger;
        &#8942;
        private static final Logger log = LoggingManager.getLoggerForClass();
    </pre>
    By:
    <pre class="source">
        import org.slf4j.Logger;
        import org.slf4j.LoggerFactory;
        &#8942;
        private static final Logger log = LoggerFactory.getLogger(YourClassName.class);
    </pre>
    
</div>
<div class="clear"></div>

</p>



<h2 class="ch_section" id="Improvements">Improvements</h2>


<h3>HTTP Samplers and Test Script Recorder</h3>

<ul>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=59934">
      Bug
      59934</a>
    -
  Fix race-conditions in CssParser. Based on a patch by Jerome Loisel (loisel.jerome at gmail.com)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=60543">
      Bug
      60543</a>
    -
  HTTP Request / Http Request Defaults UX: Move to advanced panel Timeouts, Implementation, Proxy. Implemented by Philippe Mouawad (p.mouawad at ubik-ingenierie.com) and contributed by Ubik Load Pack (support at ubikloadpack.com)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=60548">
      Bug
      60548</a>
    -
  HTTP Request : Allow Upper Panel to be collapsed</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57242">
      Bug
      57242</a>
    -
  HTTP Authorization is not pre-emptively set with HttpClient4</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=60727">
      Bug
      60727</a>
    -
  Drop commons-httpclient-3.1 and related elements. Contributed by Ubik Load Pack (support at ubikloadpack.com)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=60790">
      Bug
      60790</a>
    -
  HTTP(S) Test Script Recorder : Improve information on certificate expiration and have better UX for Start/Stop</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=60888">
      Bug
      60888</a>
    -
  HttpRequest : Add option to allow retrial of all requests including NON Idempotent HTTP methods</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=60896">
      Bug
      60896</a>
    -
  HTTP(S) Test Script Recorder : Improve UX by reducing number of properties on screen</li>

</ul>


<h3>Other samplers</h3>

<ul>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=60740">
      Bug
      60740</a>
    -
  Support variable for all JMS messages (bytes, object, &hellip;) and sources (file, folder), based on <a href="https://github.com/apache/jmeter/pull/241">
      Pull request #241</a>
    -
  . Contributed by Maxime Chassagneux (maxime.chassagneux at gmail.com).</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=60585">
      Bug
      60585</a>
    -
  JMS Publisher and JMS Subscriber : Allow reconnection on error and pause between errors. Based on <a href="https://github.com/apache/jmeter/pull/240">
      Pull request #240</a>
    -
   from by Logan Mauzaize (logan.mauzaize at gmail.com) and Maxime Chassagneux (maxime.chassagneux at gmail.com).</li>
    
<li>
<a href="https://github.com/apache/jmeter/pull/259">
      Pull request #259</a>
    -
   - Refactored and reformatted SmtpSampler. Contributed by Graham Russell (graham at ham1.co.uk)</li>

</ul>


<h3>Controllers</h3>

<ul>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=60672">
      Bug
      60672</a>
    -
  JavaScript function / IfController : use Nashorn engine by default</li>

</ul>


<h3>Listeners</h3>

<ul>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=60144">
      Bug
      60144</a>
    -
  View Results Tree : Add a more up to date Browser Renderer to replace old Render</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=60542">
      Bug
      60542</a>
    -
  View Results Tree : Allow Upper Panel to be collapsed. Contributed by Ubik Load Pack (support at ubikloadpack.com)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52962">
      Bug
      52962</a>
    -
  Allow sorting by columns for View Results in Table, Summary Report, Aggregate Report and Aggregate Graph. Based on a <a href="https://github.com/apache/jmeter/pull/245">
      Pull request #245</a>
    -
   by Logan Mauzaize (logan.mauzaize at gmail.com) and Maxime Chassagneux (maxime.chassagneux at gmail.com).</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=60590">
      Bug
      60590</a>
    -
  BackendListener : Add Influxdb BackendListenerClient implementation to JMeter. Partly based on <a href="https://github.com/apache/jmeter/pull/246">
      Pull request #246</a>
    -
   by Logan Mauzaize (logan.mauzaize at gmail.com) and Maxime Chassagneux (maxime.chassagneux at gmail.com).</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=60591">
      Bug
      60591</a>
    -
  BackendListener : Add a time boxed sampling. Based on a <a href="https://github.com/apache/jmeter/pull/237">
      Pull request #237</a>
    -
   by Logan Mauzaize (logan.mauzaize at gmail.com) and Maxime Chassagneux (maxime.chassagneux at gmail.com).</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=60678">
      Bug
      60678</a>
    -
  View Results Tree : Text renderer, search should not popup "Text Not Found"</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=60691">
      Bug
      60691</a>
    -
  View Results Tree : In Renderers (XPath, JSON Path Tester, RegExp Tester and CSS/JQuery Tester) lower panel is sometimes not visible as upper panel is too big and cannot be resized</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=60687">
      Bug
      60687</a>
    -
  Make GUI more responsive when it gets a lot of events.</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=60791">
      Bug
      60791</a>
    -
  View Results Tree: Trigger search on Enter key in Search Feature and display red background if no match</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=60822">
      Bug
      60822</a>
    -
  ResultCollector does not ensure unique file name entries in files HashMap</li>

</ul>


<h3>Timers, Assertions, Config, Pre- &amp; Post-Processors</h3>

<ul>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=60154">
      Bug
      60154</a>
    -
  User Parameters GUI: allow rows to be moved up &amp; down in the list. Contributed by Murdecai777 (https://github.com/Murdecai777).</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=60507">
      Bug
      60507</a>
    -
  Added '<span class="code">Or</span>' Function into ResponseAssertion. Based on a contribution from &#24571;&#38534; (298015902 at qq.com)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58943">
      Bug
      58943</a>
    -
  Create a Better Think Time experience. Contributed by Ubik Load Pack (support at ubikloadpack.com)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=60602">
      Bug
      60602</a>
    -
  XPath Extractor : Add Match No. to allow extraction randomly, by index or all matches</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=60710">
      Bug
      60710</a>
    -
  XPath Extractor : When content on which assertion applies is not XML, in View Results Tree the extractor is marked in Red and named SAXParseException. Contributed by Ubik Load Pack (support at ubikloadpack.com)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=60712">
      Bug
      60712</a>
    -
  Response Assertion : Improve Renderer of Patterns</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=59174">
      Bug
      59174</a>
    -
  Add a table with static hosts to the DNS Cache Manager. This enables better virtual hosts testing with HttpClient4.</li>

</ul>


<h3>Functions</h3>

<ul>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=60883">
      Bug
      60883</a>
    -
  <a href="https://github.com/apache/jmeter/pull/288">
      Pull request #288</a>
    -
   - Add <span class="code">${__escapeXml()}</span> function. Contributed by Michael Osipov (michaelo at apache.org)</li>

</ul>


<h3>I18N</h3>

<ul>
    
<li>Improve translation "<span class="code">save_as</span>" in French. Based on a <a href="https://github.com/apache/jmeter/pull/252">
      Pull request #252</a> by Maxime Chassagneux (maxime.chassagneux at gmail.com).</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=60785">
      Bug
      60785</a>
    -
  Improvement of Japanese translation. Patch by Kimono (kimono.outfit.am at gmail.com).</li>

</ul>


<h3>Report / Dashboard</h3>

<ul>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=60637">
      Bug
      60637</a>
    -
  Improve Statistics table design <figure>
<a href="./images/screenshots/dashboard/report_statistics.png"><img src="./images/screenshots/dashboard/report_statistics.png" width="" height="" alt=""></a>
<figcaption></figcaption>
</figure>
</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=60112">
      Bug
      60112</a>
    -
  Report / Dashboard : Add ability to customize APDEX thresholds per Transaction name. Contributed by Stephane Leplus (s.leplus at ubik-ingenierie.com)</li>

</ul>


<h3>General</h3>

<ul>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58164">
      Bug
      58164</a>
    -
  Check if file already exists on ResultCollector listener before starting the loadtest</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54525">
      Bug
      54525</a>
    -
  Search Feature : Enhance it with ability to replace</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=60530">
      Bug
      60530</a>
    -
  Add API to create JMeter threads while test is running. Based on a contribution by Logan Mauzaize (logan.mauzaize at gmail.com) and Maxime Chassagneux (maxime.chassagneux at gmail.com).</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=60514">
      Bug
      60514</a>
    -
  Ability to apply a naming convention on Children of a Transaction Controller. Contributed by Ubik Load Pack (support at ubikloadpack.com)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=60711">
      Bug
      60711</a>
    -
  Improve Delete button behaviour for Assertions / Header Manager / User Parameters GUIs / Exclude, Include in HTTP(S) Test Script Recorder</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=60593">
      Bug
      60593</a>
    -
  Switch to G1 GC algorithm</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=60595">
      Bug
      60595</a>
    -
  Add a SplashScreen at the start of JMeter GUI. Contributed by Maxime Chassagneux (maxime.chassagneux at gmail.com).</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55258">
      Bug
      55258</a>
    -
  Drop "Close" icon from toolbar and add "New" to menu. Partly based on contribution from Sanduni Kanishka (https://github.com/SanduniKanishka)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=59995">
      Bug
      59995</a>
    -
  Allow user to change font size with two new menu items and use <span class="code">jmeter.hidpi.scale.factor</span> for scaling fonts. Contributed by Ubik Load Pack (support at ubikloadpack.com)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=60654">
      Bug
      60654</a>
    -
  Validation Feature : Be able to ignore BackendListener. Contributed by Maxime Chassagneux (maxime.chassagneux at gmail.com).</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=60646">
      Bug
      60646</a>
    -
  Workbench : Save it by default</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=60684">
      Bug
      60684</a>
    -
  Thread Group: Validate ended prematurely by Scheduler with 0 or very short duration. Contributed by Andrew Burton (andrewburtonatwh at gmail.com).</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=60589">
      Bug
      60589</a>
    -
  Migrate LogKit to SLF4J - Drop Avalon, LogKit and Excalibur with backward compatibility for 3<sup>rd</sup> party modules. Contributed by Woonsan Ko (woonsan at apache.org)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=60565">
      Bug
      60565</a>
    -
  Migrate LogKit to SLF4J - Optimize logging statements. e.g, message format args, throwable args, unnecessary if-enabled-logging in simple ones, etc. Contributed by Woonsan Ko (woonsan at apache.org)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=60564">
      Bug
      60564</a>
    -
  Migrate LogKit to SLF4J - Replace LogKit loggers with SLF4J ones and keep the current LogKit binding solution for backward compatibility with plugins. Contributed by Woonsan Ko (woonsan at apache.org)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=60664">
      Bug
      60664</a>
    -
  Add a UI menu to set log level. Contributed by Woonsan Ko (woonsan at apache.org)</li>
    
<li>
<a href="https://github.com/apache/jmeter/pull/276">
      Pull request #276</a>
    -
   - Added some translations for polish locale. Contributed by Bartosz Siewniak (barteksiewniak at gmail.com)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=60792">
      Bug
      60792</a>
    -
  Create a new Help menu item to create a thread dump</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=60813">
      Bug
      60813</a>
    -
  JSR223 Test element : Take into account JMeterStopTestNowException, JMeterStopTestException and JMeterStopThreadException</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=60814">
      Bug
      60814</a>
    -
  Menu : Add <span class="code">Open Recent</span> menu item to make recent files loading more obvious</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=60815">
      Bug
      60815</a>
    -
  Drop "Reset GUI" from menu</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=60886">
      Bug
      60886</a>
    -
  Build improvements to better enable builds in environments that are behind a proxy. Partly contributed by Michael Osipov (michaelo at apache.org)</li>

</ul>


<h2 class="ch_section" id="Non-functional changes">Non-functional changes</h2>

<ul>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=60415">
      Bug
      60415</a>
    -
  Drop support for Java 7.</li>
    
<li>Updated to dnsjava-2.1.8.jar (from 2.1.7)</li>
    
<li>Updated to groovy 2.4.10 (from 2.4.7)</li>
    
<li>Updated to httpcore 4.4.6 (from 4.4.5)</li>
    
<li>Updated to httpclient 4.5.3 (from 4.5.2)</li>
    
<li>Updated to jodd 3.8.1 (from 3.7.1.jar)</li>
    
<li>Updated to jsoup-1.10.2 (from 1.10.1)</li>
    
<li>Updated to ph-css 5.0.3 (from 4.1.6)</li>
    
<li>Updated to ph-commons 8.6.0 (from 6.2.4)</li>
    
<li>Updated to slf4j-api 1.7.25 (from 1.7.21)</li>
    
<li>Updated to asm 5.2 (from 5.1)</li>
    
<li>Updated to rsyntaxtextarea-2.6.1 (from 2.6.0)</li>
    
<li>Updated to commons-net-3.6 (from 3.5)</li>
    
<li>Updated to json-smart-2.3 (from 2.2.1)</li>
    
<li>Updated to accessors-smart-1.2 (from 1.1)</li>
    
<li>Converted the old pdf tutorials to xml.</li>
    
<li>
<a href="https://github.com/apache/jmeter/pull/255">
      Pull request #255</a>
    -
   - Utilised Java 8 (and 7) features to tidy up code. Contributed by Graham Russell (graham at ham1.co.uk)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=59435">
      Bug
      59435</a>
    -
  JMeterTestCase no longer supports JUnit3</li>

</ul>

 


<h2 class="ch_section" id="Bug fixes">Bug fixes</h2>


<h3>HTTP Samplers and Test Script Recorder</h3>

<ul>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=60531">
      Bug
      60531</a>
    -
  HTTP Cookie Manager : changing Implementation does not update Cookie Policy</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=60575">
      Bug
      60575</a>
    -
  HTTP GET Requests could have a content-type header without a body.</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=60682">
      Bug
      60682</a>
    -
  HTTP Request : Get method may fail on redirect due to Content-Length header being set</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=60643">
      Bug
      60643</a>
    -
  HTTP(S) Test Script Recorder doesn't correctly handle restart or start after stop. Contributed by Ubik Load Pack (support at ubikloadpack.com)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=60652">
      Bug
      60652</a>
    -
  HTTP PUT Requests might leak file descriptors.</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=60689">
      Bug
      60689</a>
    -
  <span class="code">httpclient4.validate_after_inactivity</span> has no impact leading to usage of potentially stale/closed connections</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=60690">
      Bug
      60690</a>
    -
  Default values for "httpclient4.validate_after_inactivity" and "httpclient4.time_to_live" which are equal to each other makes validation useless</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=60758">
      Bug
      60758</a>
    -
  HTTP(s) Test Script Recorder : Number request may generate duplicate numbers. Contributed by Ubik Load Pack (support at ubikloadpack.com)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56939">
      Bug
      56939</a>
    -
  Parameters are not passed with OPTIONS HTTP Request</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=60778">
      Bug
      60778</a>
    -
  Http Java Impl does not show Authorization header in SampleResult even if it is sent</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=60837">
      Bug
      60837</a>
    -
  GET with body, PUT are not retried even if <span class="code">httpclient4.retrycount</span> is higher than 0</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=60842">
      Bug
      60842</a>
    -
  Trim extracted URLs when loading embedded resources using the Lagarto based HTML Parser.</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=60928">
      Bug
      60928</a>
    -
  Http Request : Connection Leak when keepalive is used with Embedded Resources</li>

</ul>


<h3>Other Samplers</h3>

<ul>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=603982">
      Bug
      603982</a>
    -
  Guard Exception handler of the <span class="code">JDBCSampler</span> against null messages</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55652">
      Bug
      55652</a>
    -
  JavaSampler silently resets classname if class can not be found</li>

</ul>


<h3>Controllers</h3>

<ul>

</ul>


<h3>Listeners</h3>

<ul>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=60648">
      Bug
      60648</a>
    -
  GraphiteBackendListener can lose some metrics at end of test if test is very short</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=60650">
      Bug
      60650</a>
    -
  AbstractBackendListenerClient does not reset UserMetric between runs</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=60759">
      Bug
      60759</a>
    -
  View Results Tree : Search feature does not search in URL. Contributed by Ubik Load Pack (support at ubikloadpack.com)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=60859">
      Bug
      60859</a>
    -
  Save Responses to a file : 2 elements with different configuration will overlap</li>

</ul>


<h3>Timers, Assertions, Config, Pre- &amp; Post-Processors</h3>

<ul>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=60438">
      Bug
      60438</a>
    -
  <a href="https://github.com/apache/jmeter/pull/235">
      Pull request #235</a>
    -
   - Clear old variables before extracting new ones in JSON Extractor.
    Based on a patch by Qi Chen (qi.chensh at ele.me)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=60607">
      Bug
      60607</a>
    -
  DNS Cache Manager configuration is ignored</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=60729">
      Bug
      60729</a>
    -
  The Random Variable Config Element should allow minimum==maximum</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=60730">
      Bug
      60730</a>
    -
  The JSON PostProcessor should set the <span class="code">_ALL</span> variable even if the JSON path matches only once.</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=60747">
      Bug
      60747</a>
    -
  Response Assertion : Add Request Headers to <span class="code">Field to Test</span>
</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=60763">
      Bug
      60763</a>
    -
  XMLAssertion should not leak errors to console</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=60797">
      Bug
      60797</a>
    -
  TestAction in pause mode can last beyond configured duration of test</li>

</ul>


<h3>Functions</h3>

<ul>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=60819">
      Bug
      60819</a>
    -
  Function __fileToString does not honor the documentation contract when file is not found</li>

</ul>


<h3>I18N</h3>

<ul>

</ul>


<h3>Report / Dashboard</h3>

<ul>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=60726">
      Bug
      60726</a>
    -
  Report / Dashboard : Top 5 errors by samplers must not take into account the series filtering</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=60919">
      Bug
      60919</a>
    -
  Report / Dashboard : Latency Vs Request and Response Time Vs Request are wrong if granularity is different from 1000 (1 second)</li>

</ul>


<h3>General</h3>

<ul>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=60775">
      Bug
      60775</a>
    -
  NamePanel ctor calls overrideable method</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=60428">
      Bug
      60428</a>
    -
  JMeter Graphite Backend Listener throws exception when test ends
    and <span class="code">useRegexpForSamplersList</span> is set to <span class="code">true</span>.
    Based on patch by Liu XP (liu_xp2003 at sina.com)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=60442">
      Bug
      60442</a>
    -
  Fix a typo in <span class="code">build.xml</span> (gavin at 16degrees.com.au)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=60449">
      Bug
      60449</a>
    -
  JMeter Tree : Annoying behaviour when node name is empty</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=60494">
      Bug
      60494</a>
    -
  Add sonar analysis task to build</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=60501">
      Bug
      60501</a>
    -
  Search Feature : Performance issue when regexp is checked</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=60444">
      Bug
      60444</a>
    -
  Intermittent failure of <span class="code">TestHTTPMirrorThread#testSleep()</span>. Contributed by Thomas Schapitz (ts-nospam12 at online.de)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=60621">
      Bug
      60621</a>
    -
  The "<span class="code">report-template</span>" folder is missing from <span class="code">ApacheJMeter_config-3.1.jar</span> in maven central</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=60744">
      Bug
      60744</a>
    -
  GUI elements are not cleaned up when reused during load of Test Plan which can lead them to be partially initialized with a previous state for a new Test Element</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=60812">
      Bug
      60812</a>
    -
  JMeterThread does not honor contract of JMeterStopTestNowException</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=60857">
      Bug
      60857</a>
    -
  SaveService omits XML header if _file_encoding is not defined in saveservice.properties</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=60830">
      Bug
      60830</a>
    -
  Timestamps in CSV file could be corrupted due to sharing a SimpleDateFormatter across threads</li>

</ul>

 


<h2 class="ch_section" id="Thanks">Thanks</h2>

<p>We thank all contributors mentioned in bug and improvement sections above:
</p>

<ul>

<li>Jerome Loisel (loisel.jerome at gmail.com)</li>

<li>Liu XP (liu_xp2003 at sina.com)</li>

<li>Qi Chen (qi.chensh at ele.me)</li>

<li>(gavin at 16degrees.com.au)</li>

<li>Thomas Schapitz (ts-nospam12 at online.de)</li>

<li>Murdecai777 (https://github.com/Murdecai777)</li>

<li>Logan Mauzaize (logan.mauzaize at gmail.com)</li>

<li>Maxime Chassagneux (maxime.chassagneux at gmail.com)</li>

<li>&#24571;&#38534; (298015902 at qq.com)</li>

<li>
<a href="http://ubikloadpack.com">Ubik Load Pack</a>
</li>

<li>Graham Russell (graham at ham1.co.uk)</li>

<li>Sanduni Kanishka (https://github.com/SanduniKanishka)</li>

<li>Andrew Burton (andrewburtonatwh at gmail.com)</li>

<li>Woonsan Ko (woonsan at apache.org)</li>

<li>Bartosz Siewniak (barteksiewniak at gmail.com)</li>

<li>Kimono (kimono.outfit.am at gmail.com)</li>

<li>Michael Osipov (michaelo at apache.org)</li>

<li>Stephane Leplus (s.leplus at ubik-ingenierie.com)</li>

</ul>

<p>We also thank bug reporters who helped us improve JMeter. <br>
For this release we want to give special thanks to the following reporters for the clear reports and tests made after our fixes:</p>

<ul>

<li>Tuukka Mustonen (tuukka.mustonen at gmail.com) who gave us a lot of useful feedback which helped resolve <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=60689">
      Bug
      60689</a> and <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=60690">
      Bug
      60690</a>
</li>

<li>Amar Darisa (amar.darisa at gmail.com) who helped us with his feedback on <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=60682">
      Bug
      60682</a>
</li>

</ul>

<p>
Apologies if we have omitted anyone else.
 </p>
 


<h2 class="ch_section" id="Known problems and workarounds">Known problems and workarounds</h2>

<ul>

<li>View Results Tree may freeze rendering large response particularly if this response has no spaces, see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=60816">
      Bug
      60816</a>.
This is due to an identified Java Bug <a href="https://bugs.openjdk.java.net/browse/JDK-8172336">UI stuck when calling JEditorPane.setText() or JTextArea.setText() with long text without space</a>.
</li>

</ul>

<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 <span class="code">0</span> (see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55510">
      Bug
      55510</a>).
</li>


<li>
Note that under some windows systems you may have this WARNING:
<pre class="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.
</pre>
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:
<pre class="source">java.security.cert.CertificateException: Certificates does not conform to algorithm constraints</pre>
 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+.
<br>
To allow you to perform your HTTPS request, you can downgrade the security of your Java installation by editing
the Java <span class="code">jdk.certpath.disabledAlgorithms</span> property. Remove the MD2 value or the constraint on size, depending on your case.
<br>
This property is in this file:
<pre class="source">JAVA_HOME/jre/lib/security/java.security</pre>
See  <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56357">
      Bug
      56357</a> 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 <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54586">
      Bug
      54586</a>.
This is due to a known Java bug which fails to parse "<span class="code">px</span>" 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 (but be aware that Java 9 is not certified yet for JMeter).
</li>


<li>
JTable selection with keyboard (<span class="keycombo"><span class="keysym">SHIFT</span>&nbsp;+&nbsp;<span class="keysym">up/down</span></span>) 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>

</ul>




<h1>Version 3.1</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>


<h2 class="ch_section" id="New and Noteworthy">New and Noteworthy</h2>


<h2 class="ch_section" id="Improve Report/Dashboard">Improve Report/Dashboard</h2>

<p>
The Dashboard has been improved with 3 new graphs and 1 summary table:
</p>

<ul>
    
<li>Connect Time over Time graph : <figure>
<a href="./images/screenshots/dashboard/report_connect_time_over_time.png"><img src="./images/screenshots/dashboard/report_connect_time_over_time.png" width="1635" height="520" alt=""></a>
<figcaption></figcaption>
</figure>
</li>
    
<li>Response Time Percentiles Over Time (successful responses) graph : <figure>
<a href="./images/screenshots/dashboard/response_time_percentiles_over_time.png"><img src="./images/screenshots/dashboard/response_time_percentiles_over_time.png" width="1640" height="539" alt=""></a>
<figcaption></figcaption>
</figure>
</li>
    
<li>Response Time Overview graph : <figure>
<a href="./images/screenshots/dashboard/response_time_overview.png"><img src="./images/screenshots/dashboard/response_time_overview.png" width="1645" height="562" alt=""></a>
<figcaption></figcaption>
</figure>
</li>
    
<li>Top 5 errors by Sampler table : <figure>
<a href="./images/screenshots/dashboard/top_5_errors_by_sampler.png"><img src="./images/screenshots/dashboard/top_5_errors_by_sampler.png" width="1609" height="508" alt=""></a>
<figcaption></figcaption>
</figure>
</li>
    
<li>More details on errors in Errors table</li>
    
<li>Average response time added to Statistics table : <figure>
<a href="./images/screenshots/dashboard/report_statistics.png"><img src="./images/screenshots/dashboard/report_statistics.png" width="1639" height="467" alt=""></a>
<figcaption></figcaption>
</figure>
</li>
    
<li>Active Threads table now stacks threads : <figure>
<a href="./images/screenshots/dashboard/report_active_threads_over_time.png"><img src="./images/screenshots/dashboard/report_active_threads_over_time.png" width="1638" height="544" alt=""></a>
<figcaption></figcaption>
</figure>
</li>

</ul>


<h2 class="ch_section" id="New Metrics">New Metrics</h2>

<p>
A new <span class="code">sent_bytes</span> metric has been introduced which reports the bytes sent to server.<br>
Another metric <span class="code">connect_time</span> has been enabled by default in this version
</p>


<h2 class="ch_section" id="Handling Big responses">Handling Big responses</h2>

<p>
JMeter is now able to handle in terms of metrics responses bigger than 2GB, limit has been increased to 9223372 TB.<br>
To handle such big responses, it can also now truncate part of the response to avoid overflooding memory. See <span class="code">httpsampler.max_bytes_to_store_per_request</span> property.
</p>


<h2 class="ch_section" id="New __groovy function">New <span class="code">__groovy</span> function</h2>

<p>
Introduce a new function <span class="code">__groovy</span> that enables Groovy functions. This can be handy, as JavaScript can be quite slow (same for BeanShell), when used in highly concurrent test plans.
</p>


<h2 class="ch_section" id="Use Groovy as default for JSR-223 elements">Use Groovy as default for JSR-223 elements</h2>

<p>
Groovy is now set as the default language for JSR-223 elements. If you want to use another of the supported language, you have to make an explicit choice.
</p>

<div class="clear"></div>
<div class="note">By default <span class="code">Cache compiled script if available</span> is not checked by default although we advise you to check it and ensure you don't use <span class="code">${varName}</span> syntax to access JMeter variables but <span class="code">vars.get("varName")</span> instead.</div>
<div class="clear"></div>


<h2 class="ch_section" id="Formatted HTML source view in Results Tree View">Formatted HTML source view in Results Tree View</h2>

<p>
The HTML source code in the Results Tree View can now be viewed formatted. This is extremely useful, if the code of the webpage has been stripped of all superfluous whitespace.
</p>

<figure>
<a href="./images/screenshots/html-formatted-tree-view.png"><img src="./images/screenshots/html-formatted-tree-view.png" width="635" height="271" alt="New formatted HTML source view"></a>
<figcaption>New formatted HTML source view</figcaption>
</figure>


<h2 class="ch_section" id="Ability to update all timers in Test plan with a new property">Ability to update all timers in Test plan with a new property</h2>

<p>
A new property <span class="code">timer.factor=1.0f</span> has been introduced which allows you to multiply pause times computed by Gaussian, Uniform and Poisson Timers by it.
This allows you to update Think Times from one place and let you gain productivity.
</p>


<h3 class="ch_title">Core improvements</h3>

<ul>

<li>Various GUI and UX fixes</li>

<li>Memory usage improvements</li>

<li>JDBC Request is now able to return Blob/Clob and computes latency and connect time</li>

<li>CSS Parsing introduced in 3.0 has been optimized by introduction of a parsing cache</li>

<li>HTTP Request is now able to handle body in GET request, this is useful for Elastic Search requests for example.</li>

</ul>


<h3 class="ch_title">Documentation improvements</h3>

<ul>

<li>Documentation review and improvements for easier startup</li>

<li>New <a href="usermanual/properties_reference.html">properties reference</a> documentation section</li>

</ul>







<h2 class="ch_section" id="Incompatible changes">Incompatible changes</h2>


<ul>
    
<li>A cache for CSS Parsing of URLs has been introduced in this version, it is enabled by default. It is controlled by property <span class="code">css.parser.cache.size</span>. It can be disabled by setting its value to <span class="code">0</span>. See <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=59885">
      Bug
      59885</a>
</li>
    
<li>ThroughputController defaults have changed. Now defaults are Percent Executions which is global and no more per user. See <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=60023">
      Bug
      60023</a>
</li>
    
<li>Since version 3.1, HTML report ignores empty <span class="code">Transaction Controller</span> (possibly generated by <span class="code">If Controller</span> or <span class="code">Throughput Controller</span>) when computing metrics. This provides more accurate metrics</li>
    
<li>Since version 3.1, Summariser ignores SampleResults generated by <span class="code">Transaction Controller</span> when computing the live statistics, see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=60109">
      Bug
      60109</a>
</li>
    
<li>Since version 3.1, when using Stripped modes (by default <span class="code">StrippedBatch</span> is used), response will be stripped also for failing SampleResults, you can revert this to previous behaviour by setting <span class="code">sample_sender_strip_also_on_error=false</span> in <span class="code">user.properties</span>, see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=60137">
      Bug
      60137</a>
</li>
    
<li>Since version 3.1, <span class="code">jmeter.save.saveservice.connect_time</span> property value is <span class="code">true</span>, meaning CSV file for results will contain an additional column containing connection time, see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=60106">
      Bug
      60106</a>
</li>
    
<li>Since version 3.1, Random Timer subclasses (Gaussian Random Timer, Uniform Random Timer and Poisson Random Timer) implement interface <span class="code"><a href="./api/org/apache/jmeter/timers/ModifiableTimer.html">org.apache.jmeter.timers.ModifiableTimer</a></span>
</li>
    
<li>Since version 3.1, if you don't select any language in JSR223 Test Elements, Apache Groovy language will be used. See <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=59945">
      Bug
      59945</a>
</li>
    
<li>Since version 3.1, CSV DataSet now trims variable names to avoid issues due to spaces between variables names when configuring CSV DataSet. This should not have any impact for you unless you use space at the beginning or end of your variable names. See <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=60221">
      Bug
      60221</a>
</li>
    
<li>Since version 3.1, HTTP Request is able when using HttpClient4 (default) implementation to handle responses bigger than <span class="code">2147483647</span> Bytes, that is 2GB. To allow this two properties have been introduced:
    <ul>
        
<li>
<span class="code">httpsampler.max_bytes_to_store_per_request</span> (defaults to 10MB) will control what is held in memory. By default JMeter will only keep in memory the first 10MB of a response. If you have responses larger than this value and use assertions that are after the first 10MB, then you must increase this value</li>
        
<li>
<span class="code">httpsampler.max_buffer_size</span> will control the buffer used to read the data. Previously JMeter used a buffer equal to Content-Length header which could lead to failures and make JMeter less resistant to faulty applications, but note this may impact response times and give slightly different results
         than previous versions if your application returned a Content-Length header higher than current default value (65KB) </li>
    
</ul>
    See <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53039">
      Bug
      53039</a>
</li>

</ul>


<h3>Deprecated and removed elements or functions</h3>

<p>
<div class="clear"></div>
<div class="note">These elements do not appear anymore in the menu, if you need them modify <span class="code">not_in_menu</span> property. The JMeter team advises not to use them anymore and migrate to their replacement.</div>
<div class="clear"></div>
</p>

<ul>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=60222">
      Bug
      60222</a>
    -
  Remove deprecated elements Distribution Graph, Spline Visualizer</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=60224">
      Bug
      60224</a>
    -
  Deprecate <span class="code"><a href="./usermanual/component_reference.html#Monitor_Results_(DEPRECATED)">Monitor Results</a></span> listener. It will be dropped in next version.</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=60323">
      Bug
      60323</a>
    -
  Deprecate BSF Elements (Use JSR223 Elements instead). They will probably be dropped in N+2 version. The following elements are deprecated:
        <ul>
            
<li>
<span class="code"><a href="./usermanual/component_reference.html#BSF_Sampler_(DEPRECATED)">BSF Sampler</a></span>
</li>
            
<li>
<span class="code"><a href="./usermanual/component_reference.html#BSF_Listener_(DEPRECATED)">BSF Listener</a></span>
</li>
            
<li>
<span class="code"><a href="./usermanual/component_reference.html#BSF_Assertion_(DEPRECATED)">BSF Assertion</a></span>
</li>
            
<li>
<span class="code"><a href="./usermanual/component_reference.html#BSF_Timer_(DEPRECATED)">BSF Timer</a></span>
</li>
            
<li>
<span class="code"><a href="./usermanual/component_reference.html#BSF_PreProcessor_(DEPRECATED)">BSF PreProcessor</a></span>
</li>
            
<li>
<span class="code"><a href="./usermanual/component_reference.html#BSF_PostProcessor_(DEPRECATED)">BSF PostProcessor</a></span>
</li>
        
</ul>
    
</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=60225">
      Bug
      60225</a>
    -
  Drop deprecated <span class="code">__jexl</span> function, jexl support in BSF and dependency on <span class="code">commons-jexl-1.1.jar</span>. This function can be easily replaced with <span class="code"><a href="./usermanual/functions.html#__jexl3">__jexl3</a></span> function</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=60268">
      Bug
      60268</a>
    -
  Drop org.apache.jmeter.gui.action.Analyze and deprecate org.apache.jmeter.reporters.FileReporter (will be removed in next version)</li>

</ul>




<h2 class="ch_section" id="Improvements">Improvements</h2>


<h3>HTTP Samplers and Test Script Recorder</h3>

<ul>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=59882">
      Bug
      59882</a>
    -
  Reduce memory allocations for better throughput. Contributed by Benoit Wiart (b.wiart at ubik-ingenierie.com) through <a href="https://github.com/apache/jmeter/pull/217">
      Pull request #217</a>,
   and <a href="https://github.com/apache/jmeter/pull/228">
      Pull request #228</a>
    -
  </li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=59885">
      Bug
      59885</a>
    -
  Optimize css parsing for embedded resources download by introducing a cache. Contributed by Benoit Wiart (b.wiart at ubik-ingenierie.com) through <a href="https://github.com/apache/jmeter/pull/219">
      Pull request #219</a>
    -
  </li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=60092">
      Bug
      60092</a>
    -
  View Result Tree: Add shortened version of the PUT body to sampler result.</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=60229">
      Bug
      60229</a>
    -
  Add a new metric : sent_bytes. Implemented by Philippe Mouawad (p.mouawad at ubik-ingenierie.com) and contributed by Ubik Load Pack (support at ubikloadpack.com)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53039">
      Bug
      53039</a>
    -
  HTTP Request : Be able to handle responses which size exceeds <span class="code">2147483647</span> bytes (that is 2GB)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=60265">
      Bug
      60265</a>
    -
  HTTP Request : In Files Upload Tab you cannot resize columns</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=60318">
      Bug
      60318</a>
    -
  Ignore CSS warnings when parsing with ph-css library.</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=60358">
      Bug
      60358</a>
    -
  Http Request : Allow sending Body Data for HTTP GET request</li>

</ul>


<h3>Other samplers</h3>

<ul>
    
<li>
<a href="https://github.com/apache/jmeter/pull/211">
      Pull request #211</a>
    -
  Differentiate the timing for JDBC Sampler. Use latency and connect time. Contributed by Thomas Peyrard (thomas.peyrard at murex.com)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=59620">
      Bug
      59620</a>
    -
  Fix button action in "JMS Publisher &rarr; Random File from folder specified below" to allow to select a directory</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=60066">
      Bug
      60066</a>
    -
  Handle CLOBs and BLOBs and limit them if necessary when storing them in result sampler.</li>

</ul>


<h3>Controllers</h3>

<ul>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=59351">
      Bug
      59351</a>
    -
  Improve log/error/message for IncludeController. Partly contributed by Antonio Gomes Rodrigues (ra0077 at gmail.com)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=60023">
      Bug
      60023</a>
    -
  ThroughputController : Make "Percent Executions" and global the default values. Contributed by Ubik Load Pack (support at ubikloadpack.com)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=60082">
      Bug
      60082</a>
    -
  Validation mode : Be able to force Throughput Controller to run as if it was set to 100%</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=59349">
      Bug
      59349</a>
    -
  Trim spaces in input filename in IncludeController.</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=60081">
      Bug
      60081</a>
    -
  Interleave Controller : Add an option to alternate across threads</li>

</ul>


<h3>Listeners</h3>

<ul>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=59953">
      Bug
      59953</a>
    -
  GraphiteBackendListener : Add Average metric. Partly contributed by Maxime Chassagneux (maxime.chassagneux at gmail.com)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=59975">
      Bug
      59975</a>
    -
  View Results Tree : Text renderer annoyingly scrolls down when content is bulky. Contributed by Ubik Load Pack (support at ubikloadpack.com)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=60109">
      Bug
      60109</a>
    -
  Summariser : Make it ignore TC generated SampleResult in its summary computations</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=59948">
      Bug
      59948</a>
    -
  Add a formatted and sane HTML source code render to View Results Tree</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=60252">
      Bug
      60252</a>
    -
  Add sent kbytes/s to Aggregate Report and Summary report</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=60267">
      Bug
      60267</a>
    -
  UX : In View Results Tree it should be possible to close the Configure popup by typing escape. Contributed by Ubik Load Pack (support at ubikloadpack.com)</li>

</ul>


<h3>Timers, Assertions, Config, Pre- &amp; Post-Processors</h3>

<ul>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=59845">
      Bug
      59845</a>
    -
  Log messages about JSON Path mismatches at <span class="code">debug</span> level instead of <span class="code">error</span>.</li>
    
<li>
<a href="https://github.com/apache/jmeter/pull/212">
      Pull request #212</a>
    -
  Allow multiple selection and delete in HTTP Authorization Manager. Based on a patch by Benoit Wiart (b.wiart at ubik-ingenierie.com)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=59816">
      Bug
      59816</a>
    -
  <a href="https://github.com/apache/jmeter/pull/213">
      Pull request #213</a>
    -
  Allow multiple selection and delete in HTTP Header Manager. Based on a patch by Benoit Wiart (b.wiart at ubik-ingenierie.com)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=59967">
      Bug
      59967</a>
    -
  CSS/JQuery Extractor : Allow empty default value. Contributed by Ubik Load Pack (support at ubikloadpack.com)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=59974">
      Bug
      59974</a>
    -
  Response Assertion : Add button "<span class="code">Add from clipboard</span>". Contributed by Ubik Load Pack (support at ubikloadpack.com)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=60050">
      Bug
      60050</a>
    -
  CSV Data Set : Make it clear in the logs when a thread will exit due to this configuration</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=59962">
      Bug
      59962</a>
    -
  Cache Manager does not update expires date when response code is <span class="code">304</span>.</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=60018">
      Bug
      60018</a>
    -
  Timer : Add a factor to apply on pauses. Partly based on a patch by Ubik Load Pack (support at ubikloadpack.com)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=60203">
      Bug
      60203</a>
    -
  Use more available space for textarea in XPath Assertion.</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=60220">
      Bug
      60220</a>
    -
  Rename JSON Path Post Processor to JSON Extractor</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=60221">
      Bug
      60221</a>
    -
  CSV DataSet : trim variable names</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=59329">
      Bug
      59329</a>
    -
  Trim spaces in input filename in CSVDataSet.</li>

</ul>


<h3>Functions</h3>

<ul>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=59963">
      Bug
      59963</a>
    -
  New function <span class="code">__RandomFromMultipleVars</span>: Ability to compute a random value from values of one or more variables. Contributed by Ubik Load Pack (support at ubikloadpack.com)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=59991">
      Bug
      59991</a>
    -
  New function <span class="code">__groovy</span> to evaluate Groovy Script. Contributed by Ubik Load Pack (support at ubikloadpack.com)</li>

</ul>


<h3>I18N</h3>

<ul>
    
<li>
<a href="https://github.com/apache/jmeter/pull/214">
      Pull request #214</a>
    -
  Add spanish translation for delayed starting of threads. Contributed by Asier Lostal&eacute; (asier.lostale at openbravo.com).</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=60348">
      Bug
      60348</a>
    -
  Change chinese translation for <span class="code">Save as</span>. Contributed by XMeter (support at xmeter.net).</li>

</ul>


<h3>Report / Dashboard</h3>

<ul>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=59954">
      Bug
      59954</a>
    -
  Web Report/Dashboard : Add average metric</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=59956">
      Bug
      59956</a>
    -
  Web Report / Dashboard : Add ability to generate a graph for a range of data</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=60065">
      Bug
      60065</a>
    -
  Report / Dashboard : Improve Dashboard Error Summary by adding response message to "Type of error". Contributed by Ubik Load Pack (support at ubikloadpack.com)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=60079">
      Bug
      60079</a>
    -
  Report / Dashboard : Add a new "Response Time Overview" graph</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=60080">
      Bug
      60080</a>
    -
  Report / Dashboard : Add a new "Connect Time Over Time " graph. Contributed by Ubik Load Pack (support at ubikloadpack.com)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=60091">
      Bug
      60091</a>
    -
  Report / Dashboard : Have a new report containing min/max and percentiles graphs.</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=60108">
      Bug
      60108</a>
    -
  Report / Dashboard : In Requests Summary rounding is too aggressive</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=60098">
      Bug
      60098</a>
    -
  Report / Dashboard : Reduce default value for "<span class="code">jmeter.reportgenerator.statistic_window</span>" to reduce memory impact</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=60115">
      Bug
      60115</a>
    -
  Add date format property for start/end date filter into Report generator</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=60171">
      Bug
      60171</a>
    -
  Report / Dashboard : Active Threads Over Time should stack lines to give the total amount of threads running</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=60250">
      Bug
      60250</a>
    -
  Report / Dashboard : Need to Add Sent KB/s in Statistics Report of HTML Dashboard</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=60287">
      Bug
      60287</a>
    -
  Report / Dashboard : Have a new Top5 Errors by sampler table in Dashboard. Implemented by Philippe Mouawad (p.mouawad at ubik-ingenierie.com) and contributed by Ubik Load Pack (support at ubikloadpack.com)</li>

</ul>

<h3>General</h3>

<ul>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=59803">
      Bug
      59803</a>
    -
  Use <span class="code">isValid()</span> method from JDBC driver, if no <span class="code">validationQuery</span>
    is given in JDBC Connection Configuration.</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57493">
      Bug
      57493</a>
    -
  Create a documentation page for properties</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=59924">
      Bug
      59924</a>
    -
  The log level of <em>XXX</em> package is set to <span class="code">DEBUG</span> if <span class="code">log_level.<em>XXXX</em></span> property value contains spaces, same for <span class="code">__log</span> function</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=59777">
      Bug
      59777</a>
    -
  Extract SLF4J binding into its own jar and make it a JMeter lib.
    <div class="clear"></div>
<div class="note">If you get a warning about multiple SLF4J bindings on startup. Remove either the Apache JMeter provided binding
          <span class="code">lib/ApacheJMeter_slf4j_logkit.jar</span>, or all of the other reported bindings.
          For more information you can have a look at <a href="http://www.slf4j.org/codes.html#multiple_bindings">SLF4Js own info page.</a>
</div>
<div class="clear"></div>
    
</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=60085">
      Bug
      60085</a>
    -
  Remove cache for prepared statements, as it didn't work with the current JDBC pool implementation and current JDBC drivers should support caching of prepared statements themselves.</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=60137">
      Bug
      60137</a>
    -
  In Distributed testing when using StrippedXXXX modes strip response also on error</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=60106">
      Bug
      60106</a>
    -
  Settings defaults : Switch "<span class="code">jmeter.save.saveservice.connect_time</span>" to true (after 3.0)</li>
    
<li>
<a href="https://github.com/apache/jmeter/pull/229">
      Pull request #229</a>
    -
   tiny memory allocation improvements. Contributed by Benoit Wiart (b.wiart at ubik-ingenierie.com)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=59945">
      Bug
      59945</a>
    -
  For all JSR223 elements, if script language has not been chosen on the UI, the script will be interpreted as a groovy script.</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=60266">
      Bug
      60266</a>
    -
  Usability/ UX : It should not be possible to close/exit/Revert/Load/Load a recent project or create from template a JMeter plan or open a new one if a test is running</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57305">
      Bug
      57305</a>
    -
  Remove dependency of <span class="code">ProxyControl</span> on <span class="code">GuiPackage</span>. Based on patches by jarek102 (jarek102 at gmail.com) and Wyatt Epp (wyatt.epp at gmail.com)</li>

</ul>


<h2 class="ch_section" id="Non-functional changes">Non-functional changes</h2>

<ul>
    
<li>Updated to jsoup-1.10.1 (from 1.8.3)</li>
    
<li>Updated to ph-css 4.1.6 (from 4.1.4)</li>
    
<li>Updated to tika-core and tika-parsers 1.14 (from 1.12)</li>
    
<li>Updated to commons-io 2.5 (from 2.4)</li>
    
<li>Updated to commons-lang3 3.5 (from 3.4)</li>
    
<li>Updated to commons-net 3.5 (from 3.4)</li>
    
<li>Updated to groovy 2.4.7 (from 2.4.6)</li>
    
<li>Updated to httpcore 4.4.5 (from 4.4.4)</li>
    
<li>Updated to slf4j-api 1.7.21 (from 1.7.13)</li>
    
<li>Updated to rsyntaxtextarea-2.6.0 (from 2.5.8)</li>
    
<li>Updated to xstream 1.4.9 (from 1.4.8)</li>
    
<li>Updated to jodd 3.7.1 (from 3.6.7.jar)</li>
    
<li>Updated to xmlgraphics-commons 2.1 (from 2.0.1)</li>
    
<li>
<a href="https://github.com/apache/jmeter/pull/215">
      Pull request #215</a>
    -
  Reduce duplicated code by using the newly added method <span class="code">GuiUtils#cancelEditing</span>.
    Contributed by Benoit Wiart (b.wiart at ubik-ingenierie.com)</li>
    
<li>
<a href="https://github.com/apache/jmeter/pull/218">
      Pull request #218</a>
    -
  Misc cleanup. Contributed by Benoit Wiart (b.wiart at ubik-ingenierie.com)</li>
    
<li>
<a href="https://github.com/apache/jmeter/pull/216">
      Pull request #216</a>
    -
  Re-use pattern when possible. Contributed by Benoit Wiart (b.wiart at ubik-ingenierie.com)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=60364">
      Bug
      60364</a>
    -
  Document Test Coverage. Contributed by Thomas Schapitz (ts-nospam12 at online.de)</li>

</ul>

 


<h2 class="ch_section" id="Bug fixes">Bug fixes</h2>


<h3>HTTP Samplers and Test Script Recorder</h3>

<ul>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58888">
      Bug
      58888</a>
    -
  HTTP(S) Test Script Recorder (ProxyControl) does not add TestElement's returned by <span class="code">SamplerCreator#createChildren()</span>
</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=59902">
      Bug
      59902</a>
    -
  Https handshake failure when setting <span class="code">httpclient.socket.https.cps</span> property</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=60084">
      Bug
      60084</a>
    -
  JMeter 3.0 embedded resource URL is silently encoded</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=60376">
      Bug
      60376</a>
    -
  Http Test Script Recorder : If deflate is used by server then recording may break application</li>
 
</ul>


<h3>Other Samplers</h3>

<ul>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=59113">
      Bug
      59113</a>
    -
  JDBC Connection Configuration : Transaction Isolation level not correctly set if constant used instead of numerical</li>

</ul>


<h3>Controllers</h3>

<ul>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=60361">
      Bug
      60361</a>
    -
  ModuleController : If a Test plan contains a Module Controller which references an unexistant Controller, JMeter in GUI mode will not stop</li>

</ul>


<h3>Listeners</h3>

<ul>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=59712">
      Bug
      59712</a>
    -
  Display original query in RequestView when decoding fails. Based on a patch by
         Teemu Vesala (teemu.vesala at qentinel.com)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=60278">
      Bug
      60278</a>
    -
  Since 2.13 (and <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57514">
      Bug
      57514</a>), Aggregate Graph, Summary Report and Aggregate Report lost precision in the Error, Rate and Bandwidth values saved in the saved file csv</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=60360">
      Bug
      60360</a>
    -
  View Result Tree : Request Tab does not show body of a DELETE request</li>

</ul>


<h3>Timers, Assertions, Config, Pre- &amp; Post-Processors</h3>

<ul>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=59964">
      Bug
      59964</a>
    -
  JSR223 Test Element : Cache compiled script if available is not correctly reset. Contributed by Ubik Load Pack (support at ubikloadpack.com)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=59609">
      Bug
      59609</a>
    -
  Format extracted JSON Objects in JSON Post Processor correctly as JSON.</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=60332">
      Bug
      60332</a>
    -
  View Results Tree : With Windows LAF, JSON Extractor does not show JSON Path Expression and Result panel</li>

</ul>


<h3>Functions</h3>

<ul>

</ul>


<h3>I18N</h3>

<ul>

</ul>


<h3>General</h3>

<ul>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=59400">
      Bug
      59400</a>
    -
  Get rid of UnmarshalException on stopping when <span class="code">-X</span> option is used.</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=59607">
      Bug
      59607</a>
    -
  JMeter crashes when reading large test plan (greater than 2GB). Based on fix by Felix Draxler (felix.draxler at sap.com)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=59621">
      Bug
      59621</a>
    -
  Error count in report dashboard is one off.</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=59657">
      Bug
      59657</a>
    -
  Only set font in JSyntaxTextArea, when property <span class="code">jsyntaxtextarea.font.family</span> is set.</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=59720">
      Bug
      59720</a>
    -
  Batch test file comparisons fail on Windows as XML files are generated as EOL=LF</li>
    
<li>Code cleanups. Patches by Graham Russell (graham at ham1.co.uk)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=59722">
      Bug
      59722</a>
    -
  Use StandardCharsets to reduce the possibility of misspelling Charset names.</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=59723">
      Bug
      59723</a>
    -
  Use <span class="code">jmeter.properties</span> for testing whenever possible</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=59726">
      Bug
      59726</a>
    -
  Unit test to check that CSV header text and sample format don't change unexpectedly</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=59889">
      Bug
      59889</a>
    -
  Change encoding to UTF-8 in reports for dashboard.</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=60053">
      Bug
      60053</a>
    -
  In Non GUI mode, a Stacktrace is shown at end of test while report is being generated</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=60049">
      Bug
      60049</a>
    -
  When using Timers with high delays or Constant Throughput Timer with low throughput, Scheduler may take a lot of time to exit, same for Shutdown test </li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=60089">
      Bug
      60089</a>
    -
  Report / Dashboard : Bytes throughput Over Time has reversed Sent and Received bytes. Contributed by Ubik Load Pack (support at ubikloadpack.com)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=60090">
      Bug
      60090</a>
    -
  Report / Dashboard : Empty Transaction Controller should not count in metrics</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=60103">
      Bug
      60103</a>
    -
  Report / Dashboard : Requests summary includes Transaction Controller leading to wrong percentage</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=60105">
      Bug
      60105</a>
    -
  Report / Dashboard : Report requires Transaction Controller "<span class="code">generate parent sample</span>" option to be checked, fix related issues</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=60107">
      Bug
      60107</a>
    -
  Report / Dashboard : In StatisticSummary, TransactionController SampleResult makes Total line wrong</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=60110">
      Bug
      60110</a>
    -
  Report / Dashboard : In Response Time Percentiles, slider is useless</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=60135">
      Bug
      60135</a>
    -
  Report / Dashboard : Active Threads Over Time should be in OverTime section</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=60125">
      Bug
      60125</a>
    -
  Report / Dashboard : Dashboard cannot be generated if the default delimiter is <span class="code">\t</span>. Based on a report from Tamas Szabadi (tamas.szabadi at rightside.co)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=59439">
      Bug
      59439</a>
    -
  Report / Dashboard : AbstractOverTimeGraphConsumer.createGroupInfos() should be abstract</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=59918">
      Bug
      59918</a>
    -
  Ant generated HTML report is broken (extras folder)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=60295">
      Bug
      60295</a>
    -
  JSON Extractor doesn't index array elements when only one element is found. Based on a patch by Roberto Braga (roberto.braga at sociale.it)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=60299">
      Bug
      60299</a>
    -
  Thread Group with Scheduler : Weird behaviour when End-Time is in the past</li>

</ul>

 


<h2 class="ch_section" id="Thanks">Thanks</h2>

<p>We thank all contributors mentioned in bug and improvement sections above:
</p>

<ul>

<li>Felix Draxler (felix.draxler at sap.com)</li>

<li>Antonio Gomes Rodrigues (ra0077 at gmail.com)</li>

<li>Graham Russell (graham at ham1.co.uk)</li>

<li>Teemu Vesala (teemu.vesala at qentinel.com)</li>

<li>Asier Lostal&eacute; (asier.lostale at openbravo.com)</li>

<li>Thomas Peyrard (thomas.peyrard at murex.com)</li>

<li>Benoit Wiart (b.wiart at ubik-ingenierie.com)</li>

<li>Maxime Chassagneux (maxime.chassagneux at gmail.com)</li>

<li>
<a href="http://ubikloadpack.com">Ubik Load Pack</a>
</li>

<li>Tamas Szabadi (tamas.szabadi at rightside.co)</li>

<li>Roberto Braga (roberto.braga at soziale.it)</li>

<li>jarek102 at gmail.com</li>

<li>Wyatt Epp (wyatt.epp at gmail.com)</li>

<li>Thomas Schapitz (ts-nospam12 at online.de)</li>

</ul>

<p>We also thank bug reporters who helped us improve JMeter. <br>
For this release we want to give special thanks to the following reporters for the clear reports and tests made after our fixes:</p>

<ul>

</ul>

<p>
Apologies if we have omitted anyone else.
 </p>
 


<h2 class="ch_section" id="Known problems and workarounds">Known problems and workarounds</h2>


<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 <span class="code">0</span> (see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55510">
      Bug
      55510</a>).
</li>


<li>
Note that there is a <a href="http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6396599 ">bug in Java</a>
on some Linux systems that manifests itself as the following error when running the test cases or JMeter itself:
<pre class="source">
 [java] WARNING: Couldn't flush user prefs:
 java.util.prefs.BackingStoreException:
 java.lang.IllegalArgumentException: Not supported: indent-number
</pre>
This does not affect JMeter operation. This issue is fixed since Java 7b05.
</li>


<li>
Note that under some windows systems you may have this WARNING:
<pre class="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.
</pre>
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>
With Oracle Java 7 and Mac Book Pro Retina Display, the JMeter GUI may look blurry.
This is a known Java bug, see Bug <a href="http://bugs.java.com/bugdatabase/view_bug.do?bug_id=8000629">JDK-8000629</a>.
A workaround is to use a Java 7 update 40 runtime which fixes this issue.
</li>


<li>
You may encounter the following error:
<pre class="source">java.security.cert.CertificateException: Certificates does not conform to algorithm constraints</pre>
 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 7 version u16 (MD2) and version u40 (Certificate size lower than 1024 bits), and Java 8 too.
<br>
To allow you to perform your HTTPS request, you can downgrade the security of your Java installation by editing
the Java <span class="code">jdk.certpath.disabledAlgorithms</span> property. Remove the MD2 value or the constraint on size, depending on your case.
<br>
This property is in this file:
<pre class="source">JAVA_HOME/jre/lib/security/java.security</pre>
See  <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56357">
      Bug
      56357</a> 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 JDK7_u79, JDK8_u45 or later.
</li>


<li>
View Results Tree may fail to display some HTML code under HTML renderer, see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54586">
      Bug
      54586</a>.
This is due to a known Java bug which fails to parse "<span class="code">px</span>" 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 (<span class="keycombo"><span class="keysym">SHIFT</span>&nbsp;+&nbsp;<span class="keysym">up/down</span></span>) 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>

</ul>




<h1>Version 3.0</h1>

<p>
Summary
</p>

<ul>

<li>
<a href="#New and Noteworthy">New and Noteworthy</a>
</li>

<li>
<a href="#Known bugs">Known bugs</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="#Thanks">Thanks</a>
</li>


</ul>


<h2 class="ch_section" id="New and Noteworthy">New and Noteworthy</h2>


<h2 class="ch_category">Test plan creation and debugging improvements</h2>

<h3 class="ch_title">New Search Feature in View Results Tree to allow searching for text / regexp in Request/Responses/Headers/Cookies/&hellip; This will ease correlation and Test plans creation</h3>

<figure>
<a href="./images/screenshots/changes/3.0/view_results_tree_search_feature.png"><img src="./images/screenshots/changes/3.0/view_results_tree_search_feature.png" width="846" height="613" alt=""></a>
<figcaption></figcaption>
</figure>

<h3 class="ch_title">New JSON Post Processor to better extract data from JSON content using user friendly JSON-PATH syntax</h3>

<p>JSON is now a first class citizen in JMeter with the introduction of a new <a href="http://goessner.net/articles/JsonPath/" target="_blank">JSONPath</a> post processor.
This post processor is very similar to Regular Expression Post Processor but is well suited for JSON code.
It is based on <a href="https://github.com/jayway/JsonPath" target="_blank">Jayway JSON Path library</a> 
</p>

<figure>
<a href="./images/screenshots/changes/3.0/json_path_extractor.png"><img src="./images/screenshots/changes/3.0/json_path_extractor.png" width="829" height="223" alt=""></a>
<figcaption></figcaption>
</figure>

<h3 class="ch_title">New validation feature, in one click run a selection of Thread Groups with <span class="code">1</span> user, no pause and <span class="code">1</span> iteration</h3>

<figure>
<a href="./images/screenshots/changes/3.0/thread_group_validate.png"><img src="./images/screenshots/changes/3.0/thread_group_validate.png" width="295" height="629" alt=""></a>
<figcaption></figcaption>
</figure>

<h3 class="ch_title">JSR223 Test Elements do not require a Cache Compilation Key anymore</h3>

<p>Just check <span class="code">Cache compiled script if available</span> checkbox and the elements (Pre-Processor, Post-Processor, Assertions, Listeners, &hellip;)
will pre-compile the script and cache the compiled code if the underlying language supports it</p>

<figure>
<a href="./images/screenshots/changes/3.0/jsr223_cache_compiled.png"><img src="./images/screenshots/changes/3.0/jsr223_cache_compiled.png" width="991" height="606" alt=""></a>
<figcaption></figcaption>
</figure>

<h3 class="ch_title">Nashorn can now be used as Javascript engine providing better performance and easier usage</h3>

<p>
To enable <a target="_blank" href="http://www.oracle.com/technetwork/articles/java/jf14-nashorn-2126515.html">Nashorn</a>, you need to set in <span class="code">user.properties</span>:
</p>

<pre class="source">javascript.use_rhino=false</pre>

<p>Nashorn can be used with Java 8 in the following elements:
</p>

<ul>

<li>IfController</li>

<li>JSR223 Test elements with <span class="code">javascript</span> language selected</li>

<li>
<span class="code">__javaScript</span> function</li>

</ul>

<h3 class="ch_title">Jexl3 has been integrated. It provides new scripting features and much better documentation</h3>

<p>

<a href="http://commons.apache.org/proper/commons-jexl/" target="_blank">JEXL3</a> can now be used thanks to a new function <span class="code">__jexl3</span>.
JEXL is a language very similar to JSTL.
</p>

<h3 class="ch_title">Simplified HTTP Request UI</h3>

<p>A new "<span class="code">Advanced</span>" tab has been added to HTTP Request to simplify configuration. The file upload feature has been moved into a dedicated tab.
This increases the space available for parameters in UI and simplifies the UX.</p>

<figure>
<a href="./images/screenshots/changes/3.0/http_request_basic.png"><img src="./images/screenshots/changes/3.0/http_request_basic.png" width="895" height="674" alt=""></a>
<figcaption></figcaption>
</figure>

<figure>
<a href="./images/screenshots/changes/3.0/http_request_advanced.png"><img src="./images/screenshots/changes/3.0/http_request_advanced.png" width="880" height="299" alt=""></a>
<figcaption></figcaption>
</figure>


<h3 class="ch_title">HTTP Request Defaults improvements</h3>

<p>You can now configure Source Address (IP Spoofing like feature) and "<span class="code">Save response as MD5 hash</span>" in Advanced Tab
</p>

<figure>
<a href="./images/screenshots/changes/3.0/http_request_defaults_advanced.png"><img src="./images/screenshots/changes/3.0/http_request_defaults_advanced.png" width="893" height="259" alt=""></a>
<figcaption></figcaption>
</figure>


<h2 class="ch_category">Reporting improvements</h2>


<h3 class="ch_title">New Reporting Feature generating dynamic Graphs in HTML pages (APDEX, Summary report and Graphs)</h3>

<p>A dynamic HTML report can now be generated either at the end of a load test or from a result file whenever you want.
See <a href="./usermanual/generating-dashboard.html" target="_blank">Generating dashboard</a> for more details.
This report provides the following metrics:
</p>

<ul>
    
<li>
<a href="https://en.wikipedia.org/wiki/Apdex" target="_blank">APDEX</a> (Application Performance Index) table that computes the APDEX based on configurable values for tolerated and satisfied thresholds</li>
    
<li>A request summary graph showing the Success and failed transaction percentage: <figure>
<a href="./images/screenshots/changes/3.0/report_apdex_and_summary.png"><img src="./images/screenshots/changes/3.0/report_apdex_and_summary.png" width="1658" height="650" alt=""></a>
<figcaption></figcaption>
</figure>
</li>
    
<li>A Statistics table providing in one table a summary of all metrics per transaction including 3 configurable percentiles : <figure>
<a href="./images/screenshots/changes/3.0/report_statistics.png"><img src="./images/screenshots/changes/3.0/report_statistics.png" width="1376" height="433" alt=""></a>
<figcaption></figcaption>
</figure>
</li>
    
<li>An error table providing a summary of all errors and their proportion in the total requests : <figure>
<a href="./images/screenshots/changes/3.0/report_errors.png"><img src="./images/screenshots/changes/3.0/report_errors.png" width="1344" height="455" alt=""></a>
<figcaption></figcaption>
</figure>
</li>
    
<li>Zoomable chart where you can check/uncheck every transaction to show/hide it for:
        <ul>
            
<li>Response times Over Time : <figure>
<a href="./images/screenshots/changes/3.0/report_response_times_over_time.png"><img src="./images/screenshots/changes/3.0/report_response_times_over_time.png" width="1398" height="566" alt=""></a>
<figcaption></figcaption>
</figure>
</li>
            
<li>Bytes throughput Over Time : <figure>
<a href="./images/screenshots/changes/3.0/report_bytes_throughput_over_time.png"><img src="./images/screenshots/changes/3.0/report_bytes_throughput_over_time.png" width="1373" height="543" alt=""></a>
<figcaption></figcaption>
</figure>
</li>
            
<li>Latencies Over Time : <figure>
<a href="./images/screenshots/changes/3.0/report_latencies_over_time.png"><img src="./images/screenshots/changes/3.0/report_latencies_over_time.png" width="1373" height="547" alt=""></a>
<figcaption></figcaption>
</figure>
</li>
            
<li>Hits per second : <figure>
<a href="./images/screenshots/changes/3.0/report_hits_per_second.png"><img src="./images/screenshots/changes/3.0/report_hits_per_second.png" width="1375" height="552" alt=""></a>
<figcaption></figcaption>
</figure>
</li>
            
<li>Response codes per second : <figure>
<a href="./images/screenshots/changes/3.0/report_codes_per_second.png"><img src="./images/screenshots/changes/3.0/report_codes_per_second.png" width="1380" height="558" alt=""></a>
<figcaption></figcaption>
</figure>
</li>
            
<li>Transactions per second : <figure>
<a href="./images/screenshots/changes/3.0/report_transactions_per_second.png"><img src="./images/screenshots/changes/3.0/report_transactions_per_second.png" width="1372" height="577" alt=""></a>
<figcaption></figcaption>
</figure>
</li>
            
<li>Response Time vs Request per second : <figure>
<a href="./images/screenshots/changes/3.0/report_response_time_vs_request.png"><img src="./images/screenshots/changes/3.0/report_response_time_vs_request.png" width="1380" height="545" alt=""></a>
<figcaption></figcaption>
</figure>
</li>
            
<li>Latency vs Request per second : <figure>
<a href="./images/screenshots/changes/3.0/report_latencies_vs_request.png"><img src="./images/screenshots/changes/3.0/report_latencies_vs_request.png" width="1373" height="543" alt=""></a>
<figcaption></figcaption>
</figure>
</li>
            
<li>Response times percentiles : <figure>
<a href="./images/screenshots/changes/3.0/report_response_time_percentiles.png"><img src="./images/screenshots/changes/3.0/report_response_time_percentiles.png" width="1374" height="551" alt=""></a>
<figcaption></figcaption>
</figure>
</li>
            
<li>Active Threads Over Time : <figure>
<a href="./images/screenshots/changes/3.0/report_active_threads_over_time.png"><img src="./images/screenshots/changes/3.0/report_active_threads_over_time.png" width="1370" height="542" alt=""></a>
<figcaption></figcaption>
</figure>
</li>
            
<li>Times vs Threads : <figure>
<a href="./images/screenshots/changes/3.0/report_time_vs_threads.png"><img src="./images/screenshots/changes/3.0/report_time_vs_threads.png" width="1373" height="567" alt=""></a>
<figcaption></figcaption>
</figure>
</li>
            
<li>Response Time Distribution : <figure>
<a href="./images/screenshots/changes/3.0/report_response_time_distribution.png"><img src="./images/screenshots/changes/3.0/report_response_time_distribution.png" width="1373" height="549" alt=""></a>
<figcaption></figcaption>
</figure>
</li>
        
</ul>
    
</li>

</ul>



<h3 class="ch_title">GraphiteBackendListener has a new Server Hits metric</h3>

<h3 class="ch_title">Summariser displays a more readable duration</h3>

<p>
Now duration are display in the format <span class="code">hours:minutes:seconds</span>

</p>

<pre class="source">
Generate Summary Results +      1 in 00:00:01 =    1.7/s Avg:     1 Min:     1 Max:     1 Err:     0 (0.00%) Active: 1 Started: 1 Finished: 0
Generate Summary Results +    138 in 00:00:09 =   16.2/s Avg:     0 Min:     0 Max:     1 Err:     0 (0.00%) Active: 9 Started: 9 Finished: 0
Generate Summary Results =    139 in 00:00:09 =   15.3/s Avg:     0 Min:     0 Max:     1 Err:     0 (0.00%)
Generate Summary Results +    467 in 00:00:10 =   47.0/s Avg:     0 Min:     0 Max:     1 Err:     0 (0.00%) Active: 19 Started: 19 Finished: 0
Generate Summary Results =    606 in 00:00:19 =   31.9/s Avg:     0 Min:     0 Max:     1 Err:     0 (0.00%)
&#8942;
Generate Summary Results +   1662 in 00:00:10 =  166.1/s Avg:     0 Min:     0 Max:     1 Err:     0 (0.00%) Active: 50 Started: 50 Finished: 0
Generate Summary Results =  28932 in 00:03:19 =  145.4/s Avg:     0 Min:     0 Max:     1 Err:     0 (0.00%)
Generate Summary Results +   1664 in 00:00:10 =  166.4/s Avg:     0 Min:     0 Max:     1 Err:     0 (0.00%) Active: 50 Started: 50 Finished: 0
Generate Summary Results =  30596 in 00:03:29 =  146.4/s Avg:     0 Min:     0 Max:     1 Err:     0 (0.00%)
Generate Summary Results +   1661 in 00:00:10 =  166.1/s Avg:     0 Min:     0 Max:     1 Err:     0 (0.00%) Active: 50 Started: 50 Finished: 0
Generate Summary Results =  32257 in 00:03:39 =  147.3/s Avg:     0 Min:     0 Max:     1 Err:     0 (0.00%)
</pre>

<h3 class="ch_title">BackendListener now allows you to define sampler list as a regular expression</h3>

<p>You can now use a regular expression to select the samplers you want to filter.
Use parameter: <span class="code">useRegexpForSamplersList=true</span> and put a regex in parameter <span class="code">samplersList</span>

</p>

<figure>
<a href="./images/screenshots/changes/3.0/graphite_backend_listener_regex.png"><img src="./images/screenshots/changes/3.0/graphite_backend_listener_regex.png" width="806" height="380" alt=""></a>
<figcaption></figcaption>
</figure>

<h2 class="ch_category">Protocols and Load Testing improvements</h2>

<h3 class="ch_title">Migration to HttpClient 4.5.2 has been started. Although not completely finished, it improves many areas in JMeter</h3>

<p>Migration to HttpClient 4.5.2 improves the following fields of JMeter:
</p>

<ul>

<li>Support of recent RFC like <a href="https://tools.ietf.org/html/rfc6265" target="_blank">HTTP State Management Mechanism RFC-6265 for Cookies</a>, you should use now <span class="code">HC4CookieHandler</span> in HTTP Cookie Manager component and select <span class="code">standard</span> Cookie policy</li>

<li>
<a href="https://en.wikipedia.org/wiki/Server_Name_Indication" target="_blank">Server Name Indication (SNI)</a> support for HttpClient4 implementation</li>

<li>Improved and better performing validation mechanism for Stale connections and Keep-Alive management, see properties <span class="code">httpclient4.validate_after_inactivity</span> and <span class="code">httpclient4.time_to_live</span>
</li>

<li>Many bug fixes since previous version 4.2.6 used in JMeter 2.13, see <a href="http://www.apache.org/dist/httpcomponents/httpclient/RELEASE_NOTES-4.5.x.txt" target="_blank">HttpClient 4.5.X release notes</a>
</li>

<li>Better support of HTTP RFC 2616 / RFC 7230 and fixes to issues with <span class="code">deflate</span> compression management</li>

</ul>

<h3 class="ch_title">Parallel Downloads is now realistic and scales much better:</h3>

<ul>

<li>Parsing of CSS imported files (through <span class="code">@import</span>) or embedded resources (background, images, &hellip;)</li>

<li>Lazy initialization of SSL context: For 15 Threads 138% more sampling in 5 minutes for HTTP only tests. Gain increases as number of threads increases</li>

<li>Rework of Connection management for Parallel Download: This better simulates current browser behaviour and improves throughput. For 15 Threads 135% extra samples in 5 minutes.</li>

<li>Reuse of Threads used for Parallel downloads through a ThreadPool: This improves throughput and increases JMeter scalability for such tests</li>

<li>Total of 750% more throughput found on test with 15 threads, the more threads you have the more the gain</li>

<li>You can now compute and store just the MD5 of embedded resources instead of storing the entire response, this can be done by setting the property <span class="code">httpsampler.embedded_resources_use_md5=true</span>
</li>

</ul>

<h3 class="ch_title">Introduction of Sample Timeout feature</h3>

<p>This new <a href="./usermanual/component_reference.html#Sample_Timeout">Sample Timeout</a> Pre-Processor allows you to apply a Timeout on the elements that are in its scope.
In the screenshot below the 10 second timeout applies to the <span class="code">Debug Sampler</span> and <span class="code">HTTP Request</span> elements.
</p>

<figure>
<a href="./images/screenshots/changes/3.0/sample_timeout.png"><img src="./images/screenshots/changes/3.0/sample_timeout.png" width="828" height="161" alt=""></a>
<figcaption></figcaption>
</figure>


<h3 class="ch_title">JDBC request now uses DBCP2 pool</h3>

<p>JDBC Request and JDBC Connection Configuration have been updated to replace old Excalibur Pool by Apache Commons DBCP2 pool. As a consequence properties have been migrated to equivalent
when available and UI has been updated.
Note that unlike Excalibur, Commons DBCP uses the validation query when creating the pool.
So make sure the query is valid.
The default query suits many databases, but not all - for example Oracle requires '<span class="code">SELECT 1 FROM DUAL</span>' or similar.
</p>

<figure>
<a href="./images/screenshots/changes/3.0/jdbc_connection_configuration.png"><img src="./images/screenshots/changes/3.0/jdbc_connection_configuration.png" width="582" height="434" alt=""></a>
<figcaption></figcaption>
</figure>

<h2 class="ch_category">UX Improvements:</h2>


<h3 class="ch_title">Better display in HiDPI screens</h3>

<p>See <a href="usermanual/hints_and_tips.html#hidpi">JMeter with a HiDPI screen on Linux or Windows</a> in Hints and Tips section in user manual</p>

<h3 class="ch_title">New Icon look and Logo</h3>

<p>JMeter has a new Logo created by Felix Schumacher. <br>Icons have also been refreshed to give a more modern style and make them more meaningful</p>

<h3 class="ch_title">Lots of fixes of annoying little bugs</h3>

<p>Around 40 UI fixes have been made to either fix buggy, confusing behaviour or simplify usage by not allowing incompatible options to be selected</p>

<h3 class="ch_title">Improved Thread Group UI and related actions (<span class="code">Start</span>, <span class="code">Start No Timers</span>, <span class="code">Validate</span>)</h3>

<p>
Creating and testing a Test Plan before Load Test has been much simplified by allowing you to only start a selection of Thread Group, start them without applying Timers (thus gaining time)
or start them using a new Validation mode. This validation mode allows you to start a Thread Group (without modifying it) with 1 thread, 1 iteration and without applying timers.
This validation mode can be customized.
</p>

<figure>
<a href="./images/screenshots/changes/3.0/thread_group_starters.png"><img src="./images/screenshots/changes/3.0/thread_group_starters.png" width="302" height="235" alt=""></a>
<figcaption></figcaption>
</figure>

<h3 class="ch_title">New shortcuts</h3>

<ul>

<li>Add most used elements
    (<span class="keycombo"><span class="keysym">Ctrl</span>&nbsp;+&nbsp;<span class="keysym">0</span></span>
    &hellip;
    <span class="keycombo"><span class="keysym">Ctrl</span>&nbsp;+&nbsp;<span class="keysym">9</span></span>),
    configurable through <span class="code">gui.quick_<em>XXX</em></span> properties</li>

<li>Shortcuts to expand nodes</li>

</ul>

<h2 class="ch_category">Core improvements</h2>


<h3 class="ch_title">Configuration simplification with better defaults</h3>

<p>Default values for many properties have been modified to make JMeter configuration optimal Out of the box. Read "Incompatible changes" section for more details.</p>

<h3 class="ch_title">Apache Groovy bundled with JMeter</h3>

<p>
<a href="http://www.groovy-lang.org/" target="_blank">Apache Groovy</a>, the well-known JVM scripting language, is now bundled with Apache JMeter in lib folder.
This allows you to use it immediately through JSR223 Elements by selecting the Groovy language.</p>

<h3 class="ch_title">Superfluous and old properties removed</h3>

<p>Old properties that existed to maintain backward compatibility or to offer some superfluous customization have been removed.
Read "Incompatible changes" section to see which properties have been removed.</p>

<h3 class="ch_title">Code and documentation improvements</h3>

<ul>

<li>Migration to Java7 source code and use of its syntactic sugar</li>

<li>Major code cleanups</li>

<li>Full review of documentation and improvement both in content and presentation</li>

</ul>

<h3 class="ch_title">Improvements to unit tests</h3>

<ul>

<li>Migration of many tests to JUnit 4</li>

<li>Better management of Headless tests</li>

<li>More Unit Tests</li>

</ul>

<h3 class="ch_title">Dependencies refresh</h3>

<p>
Deprecated Libraries dropped or replaced by up to date ones:
</p>

<ul>

<li>Excalibur replaced by commons-dbcp</li>

<li>htmllexer, htmlparser removed</li>

<li>soap removed</li>

<li>jdom removed</li>

</ul>

<h3 class="ch_title">Slf4j can now be used within Plugins and core code</h3>

<p>You can now use <a href="http://www.slf4j.org/" target="_blank">SLF4J</a> logging wrapper in your custom plugins or <span class="code">org.apache.jmeter.protocol.java.sampler.AbstractJavaSamplerClient</span> subclasses.</p>



<h2 class="ch_section" id="Incompatible changes">Incompatible changes</h2>


<ul>
    
<li>Since version 3.0, Groovy-2.4.6 is bundled with JMeter (<span class="code">lib</span> folder), ensure you remove old version or referenced versions through properties <span class="code">search_paths</span> or <span class="code">user.classpath</span>
</li>
    
<li>Since version 3.0, <span class="code">jmeter.save.saveservice.assertion_results_failure_message</span> property value is true, meaning CSV file for results will contain an additional column containing assertion result response message, see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58978">
      Bug
      58978</a>
</li>
    
<li>Since version 3.0, <span class="code">jmeter.save.saveservice.print_field_names</span> property value is true, meaning CSV file for results will contain field names as first line in CSV, see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58991">
      Bug
      58991</a>
</li>
    
<li>Since version 3.0, <span class="code">jmeter.save.saveservice.idle_time</span> property value is true, meaning CSV/XML result files will contain an additional column containing idle time between samplers, see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57182">
      Bug
      57182</a>
</li>
    
<li>In RandomTimer class, protected instance <span class="code">timer</span> field has been replaced by <span class="code">getTimer()</span> protected method, this is related to <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58100">
      Bug
      58100</a>. This may impact 3<sup>rd</sup> party plugins.</li>
    
<li>Since version 3.0, you can use Nashorn Engine (default javascript engine is Rhino) under Java8 for Elements that use Javascript Engine (<span class="code">__javaScript</span>, <span class="code">IfController</span>). If you want to use it, use property <span class="code">javascript.use_rhino=false</span>, see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58406">
      Bug
      58406</a>.
    <div class="clear"></div>
<div class="note">Note: in a future version, we will switch to Nashorn by default. Users are encouraged to report any issue related to using Nashorn instead of Rhino.</div>
<div class="clear"></div>
    
</li>
    
<li>Since version 3.0, JMS Publisher will reload contents of file if Message source is "<span class="code">From File</span>" and the "<span class="code">Filename</span>" field changes (e.g. if it uses a variable that has changed)</li>
    
<li>
<span class="code">org.apache.jmeter.gui.util.ButtonPanel</span> has been removed, if you use it in your 3<sup>rd</sup> party plugin or custom development ensure you update your code. See <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58687">
      Bug
      58687</a>
</li>
    
<li>Property <span class="code">jmeterthread.startearlier</span> has been removed. See <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58726">
      Bug
      58726</a>
</li>
    
<li>Property <span class="code">jmeterengine.startlistenerslater</span> has been removed. See <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58728">
      Bug
      58728</a>
</li>
    
<li>Property <span class="code">jmeterthread.reversePostProcessors</span> has been removed. See <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58728">
      Bug
      58728</a>
</li>
    
<li>Property <span class="code">jmeter.toolbar.display</span> has been removed, the toolbar is now always displayed. See <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=59236">
      Bug
      59236</a>
</li>
    
<li>Property <span class="code">jmeter.errorscounter.display</span> has been removed, the errors/warnings counter is now always displayed. See <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=59236">
      Bug
      59236</a>
</li>
    
<li>Property <span class="code">xml.parser</span> has been removed, it is not used anymore as <span class="code">org.apache.jmeter.util.JMeterUtils#getXMLParser</span> has been deprecated and is not used either. See <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=59236">
      Bug
      59236</a>
</li>
    
<li>Summariser listener now shows the duration in the format <span class="code">HH:mm:ss</span> (Hour:Minute:Second), it previously showed the duration in seconds. See <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58776">
      Bug
      58776</a>
</li>
    
<li>
<span class="code">org.apache.jmeter.protocol.http.visualizers.RequestViewHTTP.getQueryMap</span> signature has changed, if you use it ensure you update your code. See <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58845">
      Bug
      58845</a>
</li>
    
<li>JMS Subscriber will consider a sample to be an error if the number of received messages is not equal to expected number of messages. It previously considered a sample OK if at least 1 message was received. See <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58980">
      Bug
      58980</a>
</li>
    
<li>Since version 3.0, HTTP(S) Test Script recorder defaults to using port <span class="code">8888</span> (as configured when using Recording Template). See <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=59006">
      Bug
      59006</a>
</li>
    
<li>Since version 3.0, the parser for embedded resources (replaced since 2.10 by Lagarto based implementation) which relied on the htmlparser library (HtmlParserHTMLParser) has been dropped along with its dependencies.</li>
    
<li>Since version 3.0, support for reading old Avalon format JTL (result) files has been removed, see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=59064">
      Bug
      59064</a>
</li>
    
<li>Since version 3.0, the default property value for <span class="code">http.java.sampler.retries</span> has been changed to <span class="code">0</span> (no retry by default) to align it with the behaviour of HttpClient4.
    <div class="clear"></div>
<div class="note">Note also that its meaning has changed: before 3.0, <span class="code">http.java.sampler.retries=1</span> meant <span class="code">No Retry</span> (i.e. total tries = 1), since 3.0 <span class="code">http.java.sampler.retries=1</span> means <span class="code">1</span> retry.
    (Note: this only applies to the Java HTTP Sampler)</div>
<div class="clear"></div>
    See <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=59103">
      Bug
      59103</a>
</li>
    
<li>Since 3.0, the following deprecated classes have been dropped
    <ul>
        
<li>org.apache.jmeter.protocol.http.modifier.UserParameterXMLContentHandler</li>
        
<li>org.apache.jmeter.protocol.http.modifier.UserParameterXMLErrorHandler</li>
        
<li>org.apache.jmeter.protocol.http.modifier.UserParameterXMLParser</li>
    
</ul>
    
</li>
    
<li>
<span class="code">httpsampler.await_termination_timeout</span> has been replaced by <span class="code">httpsampler.parallel_download_thread_keepalive_inseconds</span> which is now the keep alive time for the parallel download threads (in seconds).</li>
    
<li>JDBC Request has been updated to use commons-dbcp2, since then the behaviour is slightly different, ensure you have a correct "Validation Query" for your database. See <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58786">
      Bug
      58786</a>
</li>
    
<li>The following jars have been removed:
    <ul>
        
<li>excalibur-datasource-2.1.jar (see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=59156">
      Bug
      59156</a>)</li>
        
<li>excalibur-instrument-1.0.jar (see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58786">
      Bug
      58786</a>)</li>
        
<li>excalibur-pool-api-2.1.jar (see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58786">
      Bug
      58786</a>)</li>
        
<li>excalibur-pool-impl-2.1.jar (see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58786">
      Bug
      58786</a>)</li>
        
<li>excalibur-pool-instrumented-2.1.jar (see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58786">
      Bug
      58786</a>)</li>
        
<li>htmllexer-2.1.jar (see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=59037">
      Bug
      59037</a>)</li>
        
<li>htmlparser-2.1.jar (see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=59037">
      Bug
      59037</a>)</li>
        
<li>soap-2.3.1.jar</li>
        
<li>jdom-1.1.3.jar (see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=59156">
      Bug
      59156</a>)</li>
    
</ul>
    
</li>
    
<li>Maximum number of redirects allowed by JMeter is now 20, it was previously 5. This can be changed with the property <span class="code">httpsampler.max_redirects</span>. See <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=59382">
      Bug
      59382</a>
</li>

</ul>

<h3>Deprecated and removed elements</h3>

<ul>
    
<li>MongoDB elements (MongoDB Source Config, MongoDB Script) have been deprecated and will be removed in the next version of JMeter. They do not appear anymore in the menu, if you need them modify <span class="code">not_in_menu</span> property. The JMeter team advises not to use them anymore. See <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58772">
      Bug
      58772</a>
</li>
    
<li>WebService(SOAP) Request and HTML Parameter Mask which were deprecated in 2.13 version, have now been removed following our <a href="./usermanual/best-practices.html#deprecation">deprecation strategy</a>.
    Classes and properties which were only used by those elements have been dropped:
    <ul>
        
<li>
<span class="code">org.apache.jmeter.protocol.http.util.DOMPool</span>
</li>
        
<li>
<span class="code">org.apache.jmeter.protocol.http.util.WSDLException</span>
</li>
        
<li>
<span class="code">org.apache.jmeter.protocol.http.util.WSDLHelper</span>
</li>
        
<li>Property <span class="code">soap.document_cache</span>
</li>
        
<li>JAR soap-2.3.1 has been also removed</li>
    
</ul>
    
</li>
    
<li>
<span class="code">__jexl</span> function (i.e. JEXL 1) has been deprecated and will be removed in next version. See <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58903">
      Bug
      58903</a>
</li>
    
<li>Spline Visualizer listener and Distribution Graph listener have been deprecated and will be removed in the next version of JMeter. They do not appear anymore in the menu, if you need them modify <span class="code">not_in_menu</span> property. JMeter team advises not to use them anymore. See <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58791">
      Bug
      58791</a>
</li>

</ul>




<h2 class="ch_section" id="Improvements">Improvements</h2>


<h3>HTTP Samplers and Test Script Recorder</h3>

<ul>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57696">
      Bug
      57696</a>
    -
  HTTP Request : Improve responseMessage when resource download fails. Contributed by Ubik Load Pack (support at ubikloadpack.com)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57995">
      Bug
      57995</a>
    -
  Use FileServer for HTTP Request files. Implemented by Andrey Pokhilko (andrey at blazemeter.com) and contributed by BlazeMeter Ltd.</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58843">
      Bug
      58843</a>
    -
  Improve the usable space in the HTTP sampler GUI. Contributed by Benoit Wiart (benoit dot wiart at gmail.com)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58852">
      Bug
      58852</a>
    -
  Use less memory for <span class="code">PUT</span> requests. The uploaded data will no longer be stored in the Sampler.
        This is the same behaviour as with <span class="code">POST</span> requests.</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58860">
      Bug
      58860</a>
    -
  HTTP Request : Add automatic variable generation in HTTP parameters table by right click. Contributed by Benoit Wiart (benoit dot wiart at gmail.com)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58923">
      Bug
      58923</a>
    -
  normalize URIs when downloading embedded resources.</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=59005">
      Bug
      59005</a>
    -
  HTTP Sampler : Added WebDAV verb (<span class="code">SEARCH</span>).</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=59006">
      Bug
      59006</a>
    -
  Change Default proxy recording port to <span class="code">8888</span> to align it with Recording Template. Contributed by Antonio Gomes Rodrigues (ra0077 at gmail.com)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58099">
      Bug
      58099</a>
    -
  Performance : Lazily initialize HttpClient SSL Context to avoid its initialization even for HTTP only scenarios</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57577">
      Bug
      57577</a>
    -
  HttpSampler : Retrieve All Embedded Resources, add property "<span class="code">httpsampler.embedded_resources_use_md5</span>" to only compute md5 and not keep response data. Contributed by Benoit Wiart (benoit dot wiart at gmail.com)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=59023">
      Bug
      59023</a>
    -
  HttpSampler UI : rework the embedded resources labels and change default number of parallel downloads to <span class="code">6</span>. Contributed by Benoit Wiart (benoit dot wiart at gmail.com)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=59028">
      Bug
      59028</a>
    -
  Use <span class="code">SystemDefaultDnsResolver</span> singleton. Contributed by Benoit Wiart (benoit dot wiart at gmail.com)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=59036">
      Bug
      59036</a>
    -
  FormCharSetFinder : Use JSoup instead of deprecated HTMLParser</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=59034">
      Bug
      59034</a>
    -
  Parallel downloads connection management is not realistic. Contributed by Benoit Wiart (benoit dot wiart at gmail.com) and Philippe Mouawad</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=59060">
      Bug
      59060</a>
    -
  HTTP Request GUI : Move File Upload to a new Tab to have more space for parameters and prevent incompatible configuration. Contributed by Benoit Wiart (benoit dot wiart at gmail.com)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=59103">
      Bug
      59103</a>
    -
  HTTP Request Java Implementation: Change default "<span class="code">http.java.sampler.retries</span>" to align it on HttpClient behaviour and make the name meaningful</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=59083">
      Bug
      59083</a>
    -
  HTTP Request : Make Method field editable so that additional methods (WebDAV) can be added easily</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=59118">
      Bug
      59118</a>
    -
  Add comment in recorded think time by proxy recorder. Contributed by Antonio Gomes Rodrigues (ra0077 at gmail.com)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=59116">
      Bug
      59116</a>
    -
  Add the possibility to setup a prefix to sampler name recorded by proxy. Partly based on a patch by Antonio Gomes Rodrigues (ra0077 at gmail.com)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=59129">
      Bug
      59129</a>
    -
  HTTP Request : Simplify GUI with simple/advanced Tabs</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=59033">
      Bug
      59033</a>
    -
  Parallel Download : Rework Parser classes hierarchy to allow plug-in parsers for different mime types</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52073">
      Bug
      52073</a>
    -
  Embedded Resources Parallel download : Improve performances by avoiding shutdown of ThreadPoolExecutor at each sample. Contributed by Benoit Wiart (benoit dot wiart at gmail.com)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=59190">
      Bug
      59190</a>
    -
  HTTP(S) Test Script Recorder : Suggested excludes should ignore case. Contributed by Antonio Gomes Rodrigues (ra0077 at gmail.com)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=59140">
      Bug
      59140</a>
    -
  Parallel Download : Add CSS Parsing to extract links from CSS files</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=59249">
      Bug
      59249</a>
    -
  Http Request Defaults : Add "<span class="code">Source address</span>" and "<span class="code">Save responses as MD5</span>"</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=59382">
      Bug
      59382</a>
    -
  More realistic default value for <span class="code">httpsampler.max_redirects</span>
</li>

</ul>


<h3>Other samplers</h3>

<ul>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57928">
      Bug
      57928</a>
    -
  Add ability to define protocol (http/https) to AccessLogSampler GUI. Contributed by J&eacute;r&eacute;mie Lesage (jeremie.lesage at jeci.fr)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58300">
      Bug
      58300</a>
    -
  Make existing Java Samplers implement Interruptible</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58160">
      Bug
      58160</a>
    -
  JMS Publisher : reload file content if file name changes. Based partly on a patch contributed by Maxime Chassagneux (maxime.chassagneux at gmail.com)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58786">
      Bug
      58786</a>
    -
  JDBC Sampler : Replace Excalibur DataSource by more up to date library commons-dbcp2</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=59205">
      Bug
      59205</a>
    -
  TCP Sampler: Set connect time in sampler when connection is established.</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=59381">
      Bug
      59381</a>
    -
  JMSPublisher : FileChooserDialog filter does not work for browser buttons. Based partly on a patch contributed by Antonio Gomes Rodrigues (ra0077 at gmail.com)</li>

</ul>


<h3>Controllers</h3>

<ul>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58406">
      Bug
      58406</a>
    -
  IfController : Allow use of Nashorn Engine if available for JavaScript evaluation</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58281">
      Bug
      58281</a>
    -
  RandomOrderController : Improve randomization algorithm performance. Contributed by Graham Russell (jmeter at ham1.co.uk)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58675">
      Bug
      58675</a>
    -
  Module controller : error message can easily be missed. Contributed by Benoit Wiart (benoit dot wiart at gmail.com)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58673">
      Bug
      58673</a>
    -
  Module controller : when the target element is disabled the default jtree icons are displayed. Contributed by Benoit Wiart (benoit dot wiart at gmail.com)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58674">
      Bug
      58674</a>
    -
  Module controller : it should not be possible to select more than one node in the tree. Contributed by Benoit Wiart (benoit dot wiart at gmail.com)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58680">
      Bug
      58680</a>
    -
  Module Controller : ui enhancement. Contributed by Benoit Wiart (benoit dot wiart at gmail.com)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58989">
      Bug
      58989</a>
    -
  Record controller gui : add a button to clear all the recorded samples. Contributed by Benoit Wiart (benoit dot wiart at gmail.com)</li>

</ul>


<h3>Listeners</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58041">
      Bug
      58041</a>
    -
  Tree View Listener should show sample data type</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58122">
      Bug
      58122</a>
    -
  GraphiteBackendListener : Add Server Hits metric. Partly based on a patch from Amol Moye (amol.moye at thomsonreuters.com)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58681">
      Bug
      58681</a>
    -
  GraphiteBackendListener : Don't send data if no sampling occurred</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58776">
      Bug
      58776</a>
    -
  Summariser should display a more readable duration</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58791">
      Bug
      58791</a>
    -
  Deprecate listeners: Distribution Graph (alpha) and Spline Visualizer</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58849">
      Bug
      58849</a>
    -
  View Results Tree : Add a search panel to the request http view to be able to search in the parameters table. Contributed by Benoit Wiart (benoit dot wiart at gmail.com)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58857">
      Bug
      58857</a>
    -
  View Results Tree : the request view http does not allow to resize the parameters table first column. Contributed by Benoit Wiart (benoit dot wiart at gmail.com)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58955">
      Bug
      58955</a>
    -
  Request view http does not correctly display http parameters in multipart/form-data. Contributed by Benoit Wiart (benoit dot wiart at gmail.com)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55597">
      Bug
      55597</a>
    -
  View Results Tree: Add a search feature to search in recorded samplers</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=59102">
      Bug
      59102</a>
    -
  View Results Tree: Better default value for "<span class="code">view.results.tree.max_size</span>"</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=59099">
      Bug
      59099</a>
    -
  Backend listener : Add the possibility to consider samplersList as a Regular Expression. Contributed by Antonio Gomes Rodrigues (ra0077 at gmail.com)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=59424">
      Bug
      59424</a>
    -
  Visualizer : Add "Clear" in popup menu</li>

</ul>


<h3>Timers, Assertions, Config, Pre- &amp; Post-Processors</h3>

<ul>
  
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58303">
      Bug
      58303</a>
    -
  Change usage of bouncycastle api in SMIMEAssertion to get rid of deprecation warnings.</li>
  
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58515">
      Bug
      58515</a>
    -
  New JSON related components : JSON-PATH Extractor and JSON-PATH Renderer in View Results Tree. Donated by Ubik Load Pack (support at ubikloadpack.com).</li>
  
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58698">
      Bug
      58698</a>
    -
  Correct parsing of auth-files in HTTP Authorization Manager.</li>
  
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58756">
      Bug
      58756</a>
    -
  CookieManager : Cookie Policy select box content must depend on Cookie implementation.</li>
  
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56358">
      Bug
      56358</a>
    -
  Cookie manager supports cross port cookies and RFC6265. Thanks to Oleg Kalnichevski (olegk at apache.org)</li>
  
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58773">
      Bug
      58773</a>
    -
  TestCacheManager : Add tests for CacheManager that use HttpClient 4</li>
  
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58742">
      Bug
      58742</a>
    -
  CompareAssertion : Reset data in TableEditor when switching between different CompareAssertions in gui.
      Based on a patch by Vincent Herilier (vherilier at gmail.com)</li>
  
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=59108">
      Bug
      59108</a>
    -
  TableEditor: Allow rows to be moved up and down. Contributed by Vincent Herilier (vherilier at gmail.com)</li>
  
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58848">
      Bug
      58848</a>
    -
  Argument Panel : when adding an argument (add button or from clipboard) scroll the table to the new line. Contributed by Benoit Wiart (benoit dot wiart at gmail.com)</li>
  
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58865">
      Bug
      58865</a>
    -
  Allow empty default value in the Regular Expression Extractor. Contributed by Benoit Wiart (benoit dot wiart at gmail.com)</li>
  
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=59156">
      Bug
      59156</a>
    -
  XMLAssertion : drop jdom dependency by using XMLReader</li>
  
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=59328">
      Bug
      59328</a>
    -
  Better tooltip for Variable Names in CSVDataSet. Contributed by Antonio Gomes Rodrigues (ra0077 at gmail.com)</li>

</ul>


<h3>Functions</h3>

<ul>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58477">
      Bug
      58477</a>
    -
   __javaScript function : Allow use of Nashorn engine for Java8 and later versions</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58903">
      Bug
      58903</a>
    -
  Provide __jexl3 function that uses commons-jexl3 and deprecated __jexl (1.1) function</li>

</ul>


<h3>I18N</h3>

<ul>

</ul>


<h3>General</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58736">
      Bug
      58736</a>
    -
  Add Sample Timeout support</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57913">
      Bug
      57913</a>
    -
  Automated backups of last saved JMX files. Contributed by Benoit Vatan (benoit.vatan at gmail.com)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57988">
      Bug
      57988</a>
    -
  Shortcuts (<span class="keycombo"><span class="keysym">Ctrl</span>&nbsp;+&nbsp;<span class="keysym">1</span></span> &hellip;
    <span class="keycombo"><span class="keysym">Ctrl</span>&nbsp;+&nbsp;<span class="keysym">9</span></span>) to quickly add elements into test plan.
    Implemented by Andrey Pokhilko (andrey at blazemeter.com) and contributed by BlazeMeter Ltd.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58100">
      Bug
      58100</a>
    -
  Performance enhancements : Replace Random by ThreadLocalRandom.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58677">
      Bug
      58677</a>
    -
  <span class="code">TestSaveService#testLoadAndSave</span> use the wrong set of files. Contributed by Benoit Wiart (benoit dot wiart at gmail.com)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58689">
      Bug
      58689</a>
    -
  Add shortcuts to expand / collapse a part of the tree. Contributed by Benoit Wiart (benoit dot wiart at gmail.com)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58696">
      Bug
      58696</a>
    -
  Create Ant task to setup Eclipse project</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58653">
      Bug
      58653</a>
    -
  New JMeter Dashboard/Report with Dynamic Graphs, Tables to help analyzing load test results. Developed by Ubik-Ingenierie and contributed by Decathlon S.A. and Ubik-Ingenierie / UbikLoadPack</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58699">
      Bug
      58699</a>
    -
  Workbench changes neither saved nor prompted for saving upon close. Contributed by Benoit Wiart (benoit dot wiart at gmail.com)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58728">
      Bug
      58728</a>
    -
  Drop old behavioural properties</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57319">
      Bug
      57319</a>
    -
  Upgrade to HttpClient 4.5.2. With the big help from Oleg Kalnichevski (olegk at apache.org) and Gary Gregory (ggregory at apache.org).</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58772">
      Bug
      58772</a>
    -
  Deprecate MongoDB related elements</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58782">
      Bug
      58782</a>
    -
  ThreadGroup : Improve ergonomy</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58165">
      Bug
      58165</a>
    -
  Show the time elapsed since the start of the load test in GUI mode. Partly based on a contribution from Maxime Chassagneux (maxime.chassagneux at gmail.com)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58814">
      Bug
      58814</a>
    -
  JVM no longer recognizes option <span class="code">MaxLiveObjectEvacuationRatio</span>; remove from comments</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58810">
      Bug
      58810</a>
    -
  Config Element Counter (and others): Check Boxes Toggle Area Too Big</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56554">
      Bug
      56554</a>
    -
  JSR223 Test Element : Generate compilation cache key automatically. Contributed by Benoit Wiart (benoit dot wiart at gmail.com)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58911">
      Bug
      58911</a>
    -
  Header Manager : it should be possible to copy/paste between Header Managers. Contributed by Benoit Wiart (benoit dot wiart at gmail.com)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58864">
      Bug
      58864</a>
    -
  Arguments Panel : when moving parameter with up / down, ensure that the selection remains visible. Based on a contribution by Benoit Wiart (benoit dot wiart at gmail.com)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58968">
      Bug
      58968</a>
    -
  Add a new template to allow to record script with think time included. Contributed by Antonio Gomes Rodrigues (ra0077 at gmail.com)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58978">
      Bug
      58978</a>
    -
  Settings defaults : Switch "<span class="code">jmeter.save.saveservice.assertion_results_failure_message</span>" to true (after 2.13)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58991">
      Bug
      58991</a>
    -
  Settings defaults : Switch "<span class="code">jmeter.save.saveservice.print_field_names</span>" to true (after 2.13)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57182">
      Bug
      57182</a>
    -
  Settings defaults : Switch "<span class="code">jmeter.save.saveservice.idle_time</span>" to true (after 2.13)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58870">
      Bug
      58870</a>
    -
  TableEditor: minimum size is too small. Contributed by Vincent Herilier (vherilier at gmail.com)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58933">
      Bug
      58933</a>
    -
  JSyntaxTextArea : Ability to set font.  Contributed by Denis Kirpichenkov (denis.kirpichenkov at gmail.com)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58793">
      Bug
      58793</a>
    -
  Create developers page explaining how to build and contribute</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=59046">
      Bug
      59046</a>
    -
  JMeter Gui Replace controller should keep the name and the selection. Contributed by Benoit Wiart (benoit dot wiart at gmail.com)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=59038">
      Bug
      59038</a>
    -
  Deprecate HTTPClient 3.1 related elements</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=59094">
      Bug
      59094</a>
    -
  Drop support of old JMX file format</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=59082">
      Bug
      59082</a>
    -
  Remove the "<span class="code">TestCompiler.useStaticSet</span>" parameter. Contributed by Benoit Wiart (benoit dot wiart at gmail.com)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=59093">
      Bug
      59093</a>
    -
  Option parsing error message can be '<em>lost</em>'</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58715">
      Bug
      58715</a>
    -
  Feature request: Bundle <span class="code">groovy-all</span> with JMeter</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58426">
      Bug
      58426</a>
    -
  Improve display of JMeter on high resolution devices (HiDPI) (part 1 of enhancement)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=59105">
      Bug
      59105</a>
    -
  TableEditor : Add ability to paste rows from clipboard and delete multiple selection. Contributed by Vincent Herilier (vherilier at gmail.com)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=59197">
      Bug
      59197</a>
    -
  Thread Group : it should be possible to only run a single threadgroup or a selection of threadgroups with a popup menu. Contributed by Benoit Wiart (benoit dot wiart at gmail.com)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=59207">
      Bug
      59207</a>
    -
  Change the font color of <span class="code">errorsOrFatalsLabel</span> to red when an error occurs. Contributed by Antonio Gomes Rodrigues (ra0077 at gmail.com)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58941">
      Bug
      58941</a>
    -
  Create a new Starter that runs thread groups in validation mode (<span class="code">1</span> thread only, <span class="code">1</span> iteration, no pause all customizable)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=59236">
      Bug
      59236</a>
    -
  JMeter Properties : Make some cleanup</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=59240">
      Bug
      59240</a>
    -
  Introduce a slf4j adapter for Logkit (this allows using slf4j within plugins and core code)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=59153">
      Bug
      59153</a>
    -
  Stop test if CSVDataSet is accessing non-existing file. Contributed by Antonio Gomes Rodrigues (ra0077 at gmail.com)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=59320">
      Bug
      59320</a>
    -
  Better tooltip in GUI with GenericTestBeanCustomizer (CSV Data Set Config, JDBC Connection Configuration, Keystore Configuration, &hellip;) . Based on a patch by Antonio Gomes Rodrigues (ra0077 at gmail.com)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=59171">
      Bug
      59171</a>
    -
  Sample Result SaveConfig Dialog is generated in random order</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=59425">
      Bug
      59425</a>
    -
  Display error about missing help page inside the help pane</li>

</ul>

<h2 class="ch_section" id="Non-functional changes">Non-functional changes</h2>

<ul>

<li>Updated to httpclient, httpmime 4.5.2 (from 4.2.6)</li>

<li>Updated to tika-core and tika-parsers 1.12 (from 1.7)</li>

<li>Updated to commons-math3 3.6.1 (from 3.4.1)</li>

<li>Updated to commons-pool2 2.4.2 (from 2.3)</li>

<li>Updated to commons-lang 3.4 (from 3.3.2)</li>

<li>Updated to rhino-1.7.7.1 (from 1.7R5)</li>

<li>Updated to jodd-3.6.7.jar (from 3.6.4)</li>

<li>Updated to jsoup-1.8.3 (from 1.8.1)</li>

<li>Updated to rsyntaxtextarea-2.5.8 (from 2.5.6)</li>

<li>Updated to slf4j-1.7.12 (from 1.7.10)</li>

<li>Updated to xmlgraphics-commons-2.0.1 (from 1.5)</li>

<li>Updated to commons-collections-3.2.2 (from 3.2.1)</li>

<li>Updated to commons-net 3.4 (from 3.3)</li>

<li>Updated to slf4j 1.7.13 (from 1.7.12)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57981">
      Bug
      57981</a>
    -
  Require a minimum of Java 7. Partly contributed by Graham Russell (jmeter at ham1.co.uk)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58684">
      Bug
      58684</a>
    -
  JMeterColor does not need to extend <span class="code">java.awt.Color</span>. Contributed by Benoit Wiart (benoit dot wiart at gmail.com)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58687">
      Bug
      58687</a>
    -
  ButtonPanel should die. Contributed by Benoit Wiart (benoit dot wiart at gmail.com)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58705">
      Bug
      58705</a>
    -
  Make <span class="code">org.apache.jmeter.testelement.property.MultiProperty</span> iterable. Contributed by Benoit Wiart (benoit dot wiart at gmail.com)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58729">
      Bug
      58729</a>
    -
  Cleanup extras folder for maintainability</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57110">
      Bug
      57110</a>
    -
  Fixed spelling+grammar, formatting, removed commented out code etc. Contributed by Graham Russell (jmeter at ham1.co.uk)</li>

<li>Correct instructions on running JMeter in <span class="code">help.txt</span>. Contributed by Pascal Schumacher (pascalschumacher at gmx.net)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58704">
      Bug
      58704</a>
    -
  Non regression testing : Ant task batchtest fails if tests and run in a non <span class="code">en_EN</span> locale and use a JMX file that uses a CSV DataSet</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58897">
      Bug
      58897</a>
    -
  Improve JUnit Test code. Contributed by Benoit Wiart (benoit dot wiart at gmail.com)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58949">
      Bug
      58949</a>
    -
  Cleanup of LDAP code. Based on a patch by Benoit Wiart (benoit dot wiart at gmail.com)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58897">
      Bug
      58897</a>
    -
  Improve JUnit Test code. Contributed by Benoit Wiart (benoit dot wiart at gmail.com)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58967">
      Bug
      58967</a>
    -
  Use JUnit categories to exclude tests that need a gui. Contributed by Benoit Wiart (benoit dot wiart at gmail.com)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=59003">
      Bug
      59003</a>
    -
  <span class="code">ClutilTestCase</span> <span class="code">testSingleArg8</span> and <span class="code">testSingleArg9</span> are identical</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=59064">
      Bug
      59064</a>
    -
  Remove OldSaveService which supported very old Avalon format JTL (result) files</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=59165">
      Bug
      59165</a>
    -
  RSyntaxTextArea not compatible with headless testing</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=59021">
      Bug
      59021</a>
    -
  Use <span class="code">Double#compare</span> instead of reimplementing it in <span class="code">NumberProperty#compareTo</span>
</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=59037">
      Bug
      59037</a>
    -
  Drop HtmlParserHTMLParser and dependencies on htmlparser and htmllexer</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58465">
      Bug
      58465</a>
    -
  JMS Read response field is badly named and documented</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58601">
      Bug
      58601</a>
    -
  Change check for modification of <span class="code">saveservice.properties</span> from <span class="code">SVN Revision ID</span> to sha1 sum of the file itself.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58726">
      Bug
      58726</a>
    -
  Remove the <span class="code">jmeterthread.startearlier</span> parameter. Contributed by Benoit Wiart (benoit dot wiart at gmail.com)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58784">
      Bug
      58784</a>
    -
  Make <span class="code">JMeterUtils#runSafe</span> sync/async awt invocation configurable and change the visualizers to use the async version.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58790">
      Bug
      58790</a>
    -
  Issue in CheckDirty and its relation to ActionRouter</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=59095">
      Bug
      59095</a>
    -
  Remove UserParameterXMLParser that was deprecated eight years ago. Contributed by Benoit Wiart (benoit dot wiart at gmail.com)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=59262">
      Bug
      59262</a>
    -
  Add list of binary jars to LICENSE; use that for unit tests</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=59353">
      Bug
      59353</a>
    -
  Add "Deprecated and removed elements" in "Incompatible changes" part in changes.xml. Contributed by Antonio Gomes Rodrigues (ra0077 at gmail.com)</li>

</ul>

 


<h2 class="ch_section" id="Bug fixes">Bug fixes</h2>


<h3>HTTP Samplers and Test Script Recorder</h3>

<ul>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57806">
      Bug
      57806</a>
    -
  "<span class="code">audio/x-mpegurl</span>" mime type is erroneously considered as binary by ViewResultsTree. Contributed by Ubik Load Pack (support at ubikloadpack.com).</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57858">
      Bug
      57858</a>
    -
  Don't call <span class="code">sampleEnd</span> twice in HTTPHC4Impl when a <span class="code">RuntimeException</span> or an <span class="code">IOException</span> occurs in the sample method.</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57921">
      Bug
      57921</a>
    -
  HTTP/1.1 without keep-alive "<span class="code">Connection</span>" response header no longer uses infinite keep-alive.</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57956">
      Bug
      57956</a>
    -
  The <span class="code">hc.parameters</span> reference in <span class="code">jmeter.properties</span> doesn't work when JMeter is not started in <span class="code">bin</span>.</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58137">
      Bug
      58137</a>
    -
  JMeter fails to download embedded URLs that contain illegal characters in URL (it does not escape them).</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58201">
      Bug
      58201</a>
    -
  Make usage of port in the host header more consistent across the different http samplers.</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58453">
      Bug
      58453</a>
    -
  HTTP Test Script Recorder : <span class="code">NullPointerException</span> when disabling Capture HTTP Headers </li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57804">
      Bug
      57804</a>
    -
  HTTP Request doesn't reuse cached SSL context when using Client Certificates in HTTPS (only fixed for HttpClient4 implementation)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58800">
      Bug
      58800</a>
    -
  <span class="code">proxy.pause</span> default value: fix documentation</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58844">
      Bug
      58844</a>
    -
  Buttons enable / disable is broken in the arguments panel. Contributed by Benoit Wiart (benoit dot wiart at gmail.com)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58861">
      Bug
      58861</a>
    -
  When clicking on up, down or detail while in a cell of the argument panel, newly added content is lost. Contributed by Benoit Wiart (benoit dot wiart at gmail.com)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57935">
      Bug
      57935</a>
    -
  SSL SNI extension not supported by HttpClient 4.2.6</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=59044">
      Bug
      59044</a>
    -
  Http Sampler : It should not be possible to select the multipart encoding if the method is not <span class="code">POST</span>. Contributed by Benoit Wiart (benoit dot wiart at gmail.com)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=59008">
      Bug
      59008</a>
    -
  Http Sampler: Infinite recursion SampleResult on frame depth limit reached</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58881">
      Bug
      58881</a>
    -
  HTTP Request : HTTPHC4Impl shows exception when server uses "<span class="code">deflate</span>" compression</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58583">
      Bug
      58583</a>
    -
  HTTP client fails to close connection if server misbehaves by not sending "<span class="code">connection: close</span>", violating HTTP RFC 2616 / RFC 7230</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58950">
      Bug
      58950</a>
    -
  <span class="code">NoHttpResponseException</span> when Pause between samplers exceeds keepalive sent by server</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=59085">
      Bug
      59085</a>
    -
  Http file panel : data lost on browse cancellation. Contributed by Benoit Wiart (benoit dot wiart at gmail.com)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56141">
      Bug
      56141</a>
    -
  Application does not behave correctly when using HTTP Recorder. With the help of Dan (java.junkee at yahoo.com)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=59079">
      Bug
      59079</a>
    -
  "<span class="code">httpsampler.max_redirects</span>" property is not enforced when "<span class="code">Redirect Automatically</span>" is used</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58811">
      Bug
      58811</a>
    -
  When pasting arguments between http samplers the column "Encode" and "Include Equals" are lost. Contributed by Benoit Wiart (benoit dot wiart at gmail.com)</li>

</ul>


<h3>Other Samplers</h3>

<ul>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58013">
      Bug
      58013</a>
    -
  Enable all protocols that are enabled on the default SSLContext for usage with the SMTP Sampler.</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58209">
      Bug
      58209</a>
    -
  JMeter hang when testing javasampler because <span class="code">HashMap.put()</span> is called from multiple threads without sync.</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58301">
      Bug
      58301</a>
    -
  Use typed methods such as <span class="code">setInt</span>, <span class="code">setDouble</span>, <span class="code">setDate</span>, &hellip; for prepared statement #27</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58851">
      Bug
      58851</a>
    -
  Add a dependency on hamcrest-core to allow JUnit tests with annotations to work</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58947">
      Bug
      58947</a>
    -
  Connect metric is wrong when <span class="code">ConnectException</span> occurs</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58980">
      Bug
      58980</a>
    -
  JMS Subscriber will return successful as long as 1 message is received. Contributed by Harrison Termotto (harrison dot termotto at stonybrook.edu)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=59075">
      Bug
      59075</a>
    -
  JMS Publisher: <span class="code">NumberFormatException</span> is thrown if priority or expiration field is empty</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=59345">
      Bug
      59345</a>
    -
  SMTPSampler connection leak. Based on a patch by Luca Maragnani (luca dot maragnani at gmail dot com)</li>

</ul>


<h3>Controllers</h3>

<ul>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58600">
      Bug
      58600</a>
    -
  Display correct filenames, when they are searched by IncludeController</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58678">
      Bug
      58678</a>
    -
  Module Controller : limit target element selection. Contributed by Benoit Wiart (benoit dot wiart at gmail.com)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58714">
      Bug
      58714</a>
    -
  Module controller : it should not be possible to add a timer as child. Contributed by Benoit Wiart (benoit dot wiart at gmail.com)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=59067">
      Bug
      59067</a>
    -
  JMeter fails to iterate over Controllers that are children of a TransactionController having "<span class="code">Generate parent sample</span>" checked after an assertion error occurs on a Thread Group with "<span class="code">Start Next Thread Loop</span>". Contributed by Benoit Wiart(benoit dot wiart at gmail.com)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=59076">
      Bug
      59076</a>
    -
  Test should fail if a module controller cannot find its replacement subtree</li>

</ul>


<h3>Listeners</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58033">
      Bug
      58033</a>
    -
  SampleResultConverter should note that it cannot record non-TEXT data</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58845">
      Bug
      58845</a>
    -
  Request http view doesn't display all the parameters. Contributed by Benoit Wiart (benoit dot wiart at gmail.com)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58413">
      Bug
      58413</a>
    -
  ViewResultsTree : Request HTTP Renderer does not show correctly parameters that contain ampersand (&amp;). Contributed by Benoit Wiart (benoit dot wiart at gmail.com)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=59172">
      Bug
      59172</a>
    -
  SampleResult SaveConfig does not allow some fields to be disabled</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58329">
      Bug
      58329</a>
    -
  Response Time Graph and Aggregate Graph : Save graph to file does not take into account the settings changed since last click on Graph. Contributed by David Coppens (d.l.coppens at gmail.com)</li>

</ul>


<h3>Timers, Assertions, Config, Pre- &amp; Post-Processors</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58079">
      Bug
      58079</a>
    -
  Do not cache HTTP samples that have a <span class="code">Vary</span> header when using a HTTP CacheManager.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58912">
      Bug
      58912</a>
    -
  Response assertion gui : Deleting more than 1 selected row deletes only one row. Contributed by Benoit Wiart (benoit dot wiart at gmail.com)</li>

</ul>


<h3>Functions</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57825">
      Bug
      57825</a>
    -
  __Random function fails if <span class="code">min</span> value is equal to <span class="code">max</span> value (regression related to <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54453">
      Bug
      54453</a>)</li>

</ul>


<h3>I18N</h3>

<ul>

</ul>


<h3>General</h3>

<ul>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54826">
      Bug
      54826</a>
    -
  Don't fail on long strings in JSON responses when displaying them as JSON in View Results Tree.</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57734">
      Bug
      57734</a>
    -
  Maven transient dependencies are incorrect for 2.13 (Fixed group ids for Commons Pool and Math)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57731">
      Bug
      57731</a>
    -
  <span class="code">TESTSTART.MS</span> has always the value of the first Test started in Server mode in NON GUI Distributed testing</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58016">
      Bug
      58016</a>
    -
   Error type casting using external SSL Provider. Contributed by Kirill Yankov (myworkpostbox at gmail.com)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58293">
      Bug
      58293</a>
    -
  SOAP/XML-RPC Sampler file browser generates NullPointerException</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58685">
      Bug
      58685</a>
    -
  JDatefield : Make the modification of the date with up/down arrow work. Contributed by Benoit Wiart (benoit dot wiart at gmail.com)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58693">
      Bug
      58693</a>
    -
  Fix "Cannot nest output folder 'jmeter/build/components' inside output folder 'jmeter/build'" when setting up eclipse</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58781">
      Bug
      58781</a>
    -
  Command line option "<span class="code">-?</span>" shows Unknown option</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57821">
      Bug
      57821</a>
    -
  Command-line option "<span class="code">-X --remoteexit</span>" doesn't work since 2.13 (regression related to <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57500">
      Bug
      57500</a>)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58795">
      Bug
      58795</a>
    -
  NPE may occur in <span class="code">GuiPackage#getTestElementCheckSum</span> with some 3<sup>rd</sup> party plugins</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58913">
      Bug
      58913</a>
    -
  When closing JMeter should not interpret cancel as "<em>destroy my test plan</em>". Contributed by Benoit Wiart (benoit dot wiart at gmail.com)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=59096">
      Bug
      59096</a>
    -
  Search Feature : Case insensitive search is not really case insensitive</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=59193">
      Bug
      59193</a>
    -
  <span class="code">ant run_gui</span> fails with  <span class="code">ClassNotFoundException</span> or <span class="code">IllegalAccessError</span> when accessing classes from dependencies not loaded through <span class="code">Thread.currentThread().getContextClassLoader()</span>
</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=59225">
      Bug
      59225</a>
    -
  Bad display of running indicator icon. Contributed by Antonio Gomes Rodrigues (ra0077 at gmail.com)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56927">
      Bug
      56927</a>
    -
  Disable language change during a test</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=59391">
      Bug
      59391</a>
    -
  In Distributed mode, the client exits abnormally at the end of test</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=59397">
      Bug
      59397</a>
    -
  <span class="code">build.xml</span> does not make dist.executables executable on Unix systems</li>

</ul>

 


<h2 class="ch_section" id="Thanks">Thanks</h2>

<p>We thank all contributors mentioned in bug and improvement sections above:
</p>

<ul>

<li>
<a href="http://ubikloadpack.com">Ubik Load Pack</a>
</li>

<li>Benoit Vatan (benoit.vatan at gmail.com)</li>

<li>J&eacute;r&eacute;mie Lesage (jeremie.lesage at jeci.fr)</li>

<li>Kirill Yankov (myworkpostbox at gmail.com)</li>

<li>Amol Moye (amol.moye at thomsonreuters.com)</li>

<li>Samoht-fr (https://github.com/Samoht-fr)</li>

<li>Graham Russell (jmeter at ham1.co.uk)</li>

<li>Maxime Chassagneux (maxime.chassagneux at gmail.com)</li>

<li>Benoit Wiart (benoit.wiart at gmail.com)</li>

<li>
<a href="http://www.decathlon.com">Decathlon S.A.</a>
</li>

<li>
<a href="http://www.ubik-ingenierie.com">Ubik-Ingenierie S.A.S.</a>
</li>

<li>Oleg Kalnichevski (olegk at apache.org)</li>

<li>Pascal Schumacher (pascalschumacher at gmx.net)</li>

<li>Vincent Herilier (vherilier at gmail.com)</li>

<li>Florent Sabbe (f dot sabbe at ubik-ingenierie.com)</li>

<li>Antonio Gomes Rodrigues (ra0077 at gmail.com)</li>

<li>Harrison Termotto (harrison dot termotto at stonybrook.edu</li>

<li>Denis Kirpichenkov (denis.kirpichenkov at gmail.com)</li>

<li>Gary Gregory (ggregory at apache.org)</li>

<li>David Coppens (d.l.coppens at gmail.com)</li>

<li>Luca Maragnani (luca dot maragnani at gmail dot com)</li>

<li>Philip Helger (http://www.helger.com) for his <a href="https://github.com/phax" target="_blank">CSS Parser</a> and for taking into account our bug reports very rapidly</li>

<li>Irek Pastusiak (the.automatic.tester at gmail.com)</li>

</ul>

<p>We also thank bug reporters who helped us improve JMeter. <br>
For this release we want to give special thanks to the following reporters for the clear reports and tests made after our fixes:</p>

<ul>

<li>purnasatyap at gmail dot com  for the tests and reports on nightly build</li>

<li>Sergey Batalin (sergey_batalin at mail dot ru) for the tests and reports on nightly build</li>

<li>Vincent Daburon (vdaburon at gmail dot com) for the tests and reports on nightly build</li>

</ul>

<p>
Apologies if we have omitted anyone else.
 </p>
 


<h2 class="ch_section" id="Known problems and workarounds">Known problems and workarounds</h2>


<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 <span class="code">0</span> (see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55510">
      Bug
      55510</a>).
</li>


<li>
Note that there is a <a href="http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6396599 ">bug in Java</a>
on some Linux systems that manifests itself as the following error when running the test cases or JMeter itself:
<pre class="source">
 [java] WARNING: Couldn't flush user prefs:
 java.util.prefs.BackingStoreException:
 java.lang.IllegalArgumentException: Not supported: indent-number
</pre>
This does not affect JMeter operation. This issue is fixed since Java 7b05.
</li>


<li>
Note that under some windows systems you may have this WARNING:
<pre class="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.
</pre>
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>
With Oracle Java 7 and Mac Book Pro Retina Display, the JMeter GUI may look blurry.
This is a known Java bug, see Bug <a href="http://bugs.java.com/bugdatabase/view_bug.do?bug_id=8000629">JDK-8000629</a>.
A workaround is to use a Java 7 update 40 runtime which fixes this issue.
</li>


<li>
You may encounter the following error:
<pre class="source">java.security.cert.CertificateException: Certificates does not conform to algorithm constraints</pre>
 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 7 version u16 (MD2) and version u40 (Certificate size lower than 1024 bits), and Java 8 too.
<br>
To allow you to perform your HTTPS request, you can downgrade the security of your Java installation by editing
the Java <span class="code">jdk.certpath.disabledAlgorithms</span> property. Remove the MD2 value or the constraint on size, depending on your case.
<br>
This property is in this file:
<pre class="source">JAVA_HOME/jre/lib/security/java.security</pre>
See  <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56357">
      Bug
      56357</a> 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 JDK7_u79, JDK8_u45 or later.
</li>


<li>
View Results Tree may fail to display some HTML code under HTML renderer, see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54586">
      Bug
      54586</a>.
This is due to a known Java bug which fails to parse "<span class="code">px</span>" 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 (<span class="keycombo"><span class="keysym">SHIFT</span>&nbsp;+&nbsp;<span class="keysym">up/down</span></span>) 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>

</ul>




<h1>Version 2.13</h1>

<p>
Summary
</p>

<ul>

<li>
<a href="#New and Noteworthy">New and Noteworthy</a>
</li>

<li>
<a href="#Known bugs">Known bugs</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="#Thanks">Thanks</a>
</li>


</ul>


<h2 class="ch_section" id="New and Noteworthy">New and Noteworthy</h2>





<h2 class="ch_category">New Elements</h2>


<h3 class="ch_title">New Async BackendListener with Graphite implementation</h3>

<p>A new Async BackendListener has been added to allow sending result data to a backend listener.
JMeter ships with a GraphiteBackendListenerClient that allows sending results to a <a href="http://graphite.wikidot.com/" target="_blank">Graphite</a> server using Pickle or Plaintext protocols.
You can implement your own backend by extending <a href="./api/org/apache/jmeter/visualizers/backend/AbstractBackendListenerClient.html">AbstractBackendListenerClient</a>. This backend could be
a database (JDBC), a Message Oriented Middleware (JMS), a Webservice or anything you want.
 </p>

<figure>
<a href="./images/screenshots/changes/2.13/backend_listener_graphite.png"><img src="./images/screenshots/changes/2.13/backend_listener_graphite.png" width="902" height="293" alt=""></a>
<figcaption></figcaption>
</figure>

<p>This is the kind of Live Dashboard you can obtain using <a href="http://grafana.org/" target="_blank">Grafana</a> and <a href="http://influxdb.com/" target="_blank">InfluxDB</a>
<br>
Read <a href="./usermanual/realtime-results.html">this</a> for more details.</p>

<figure>
<a href="./images/screenshots/grafana_dashboard.png"><img src="./images/screenshots/grafana_dashboard.png" width="1265" height="581" alt="Grafana dashboard"></a>
<figcaption>Grafana dashboard</figcaption>
</figure>


<h2 class="ch_category">Core Improvements</h2>


<h3 class="ch_title">New connect time metric</h3>

<p>Starting with this version a new metric called connectTime has been added. It represents the time to establish connection.
By default it is not saved to CSV or XML, to have it saved add to user.properties:<br>

<span class="code">
jmeter.save.saveservice.connect_time=true
</span>

</p>

<figure>
<a href="./images/screenshots/changes/2.13/connect_time_table.png"><img src="./images/screenshots/changes/2.13/connect_time_table.png" width="1058" height="193" alt=""></a>
<figcaption></figcaption>
</figure>

<figure>
<a href="./images/screenshots/changes/2.13/connect_time_tree.png"><img src="./images/screenshots/changes/2.13/connect_time_tree.png" width="665" height="651" alt=""></a>
<figcaption></figcaption>
</figure>


<h3 class="ch_title">Aggregate Graph and Report</h3>

<p>The listeners Aggregate Graph and Aggregate Report previously showed only the 90 percentile (historical behavior), the 95 percentile and the 99 percentile have been added and are customizable.
To setup the percentiles value you want, add to user.properties:<br>

<span class="code">
aggregate_rpt_pct1=90<br>
aggregate_rpt_pct2=95<br>
aggregate_rpt_pct3=99
</span>

<figure>
<a href="./images/screenshots/changes/2.13/aggregate_graph_new_percentile.png"><img src="./images/screenshots/changes/2.13/aggregate_graph_new_percentile.png" width="801" height="681" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3 class="ch_title">HTTP(S) Test Script Recorder</h3>

<p>Now component is able to detect authentication schemes and automatically adds a pre-configured HTTP Authorization Manager with the correct Mechanism.
</p>


<h3 class="ch_title">HTTP Request</h3>

<p>The CalDAV verbs (Calendar extensions to WebDAV) REPORT and MKCALENDAR have been added in the HTTP Request sampler.
<figure>
<a href="./images/screenshots/changes/2.13/new_methods_caldav.png"><img src="./images/screenshots/changes/2.13/new_methods_caldav.png" width="716" height="324" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3 class="ch_title">JDBC Request</h3>

<p>The ResultSet can be get as a object, this allows to handle more easily the results after in BeanShell, JSR223 scripts, &hellip;
<figure>
<a href="./images/screenshots/changes/2.13/jdbc_resultset_handler.png"><img src="./images/screenshots/changes/2.13/jdbc_resultset_handler.png" width="683" height="628" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3 class="ch_title">Distributed Testing</h3>

<p>To allow better usage of Distributed Testing in the cloud, retry behaviour has been added when starting test on servers.
Read <a href="./usermanual/remote-test.html#retries">this</a> for more details.
<figure>
<a href="./images/screenshots/changes/2.13/distributed_retry.png"><img src="./images/screenshots/changes/2.13/distributed_retry.png" width="669" height="202" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3 class="ch_title">Distributed Testing performance</h3>

<p>Since JMeter 2.13, Stripping modes (StrippingBatch being the default mode) now also strip responses from SubResults improving consumed network bandwidth.
</p>


<h3 class="ch_title">Documentation refresh</h3>

<p>A new style for website (responsive and more up to date) has been created by Felix Schumacher.
Documentations have been refreshed particularly:
<ul>
    
<li>
<a href="./usermanual/build-ws-test-plan.html">Building a Webservice Test Plan</a>
</li>
    
<li>
<a href="./usermanual/best-practices.html">Best Practices</a>
</li>
    
<li>
<a href="./usermanual/boss.html">Help! My boss wants me to load test our application!</a>
</li>

</ul>

</p>


<h2 class="ch_category">GUI Improvements</h2>


<h3 class="ch_title">Module Controller</h3>

<p>The Module Controller now shows the target controller in a tree view (instead of combo list).
<figure>
<a href="./images/screenshots/changes/2.13/module_controller_tree_view.png"><img src="./images/screenshots/changes/2.13/module_controller_tree_view.png" width="306" height="372" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3 class="ch_title">Toolbar</h3>

<p>JMeter's toolbar has been refreshed for some icons (start, toggle, etc.). Three sizes are now available for the icons: 22x22, 32x32 and 48x48.<br>
The property to define your preferred size is:
<pre>jmeter.toolbar.icons.size=value</pre>
with the value 22x22 (default size), 32x32 or 48x48.</br>
</p>

<p>The toolbar with 22x22 pixels icons
<figure>
<a href="./images/screenshots/changes/2.13/toolbar_22x22.png"><img src="./images/screenshots/changes/2.13/toolbar_22x22.png" width="417" height="116" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<p>The toolbar with 32x32 pixels icons
<figure>
<a href="./images/screenshots/changes/2.13/toolbar_32x32.png"><img src="./images/screenshots/changes/2.13/toolbar_32x32.png" width="533" height="130" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<p>The toolbar with 48x48 pixels icons
<figure>
<a href="./images/screenshots/changes/2.13/toolbar_48x48.png"><img src="./images/screenshots/changes/2.13/toolbar_48x48.png" width="716" height="143" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3 class="ch_title">HTTP(S) Test Script Recorder</h3>

<p>If your Test Plan does not contains a Recording Controller, a new warning message will appear if the
 HTTP(S) Test Script Recorder is configured to send the samples into a Recording Controller.
<figure>
<a href="./images/screenshots/changes/2.13/warning_message_proxy.png"><img src="./images/screenshots/changes/2.13/warning_message_proxy.png" width="858" height="386" alt=""></a>
<figcaption></figcaption>
</figure>

</p>




<h2 class="ch_section" id="Incompatible changes">Incompatible changes</h2>


<ul>
    
<li>Since 2.13, Aggregate Graph, Summary Report and Aggregate Report now export percentages to %, before they exported the decimal value which differed from what was shown in GUI</li>
    
<li>Third party plugins may be impacted by fix of <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57586">
      Bug
      57586</a>, ensure that your subclass of HttpTestSampleGui implements ItemListener if you relied on parent class doing so.</li>
    
<li>Report package has been removed, <span class="code">ApacheJMeter_report.jar</span> is not generated anymore as a consequence, see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57269">
      Bug
      57269</a>
</li>

</ul>




<h2 class="ch_section" id="Improvements">Improvements</h2>


<h3>HTTP Samplers and Test Script Recorder</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=25430">
      Bug
      25430</a>
    -
  HTTP(S) Test Script Recorder : Make it populate HTTP Authorization Manager. Partly based on a patch from Dzmitry Kashlach (dzmitrykashlach at gmail.com)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57381">
      Bug
      57381</a>
    -
  HTTP(S) Test Script Recorder should display an error if Target Controller references a Recording Controller and no Recording Controller exists. Contributed by Ubik Load Pack (support at ubikloadpack.com)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57488">
      Bug
      57488</a>
    -
  Performance : Improve SSLContext reset for Two-way SSL Authentication</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57565">
      Bug
      57565</a>
    -
  SamplerCreator : Add method to allow implementations to add children to created sampler</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57606">
      Bug
      57606</a>
    -
  HTTPSamplerBase#errorResult changes the sample label on exception </li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57613">
      Bug
      57613</a>
    -
  HTTP Sampler : Added CalDAV verbs (REPORT, MKCALENDAR). Contributed by Richard Brigham (richard.brigham at teamaol.com)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=48799">
      Bug
      48799</a>
    -
  Add time to establish connection to available sample metrics. Implemented by Andrey Pokhilko (andrey at blazemeter.com) and contributed by BlazeMeter Ltd. and Pieter Ennes (apache.org at spam.ennes.nl)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57500">
      Bug
      57500</a>
    -
  Introduce retry behavior for distributed testing. Implemented by Andrey Pokhilko and Dzimitry Kashlach and contributed by BlazeMeter Ltd.</li>

</ul>


<h3>Other samplers</h3>

<ul>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57322">
      Bug
      57322</a>
    -
  JDBC Test elements: add ResultHandler to deal with ResultSets(cursors) returned by callable statements. Contributed by Yngvi &THORN;&oacute;r Sigurj&oacute;nsson (blitzkopf at gmail.com)</li>

</ul>


<h3>Controllers</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57561">
      Bug
      57561</a>
    -
  Module controller UI : Replace combobox by tree. Contributed by Maciej Franek (maciej.franek at gmail.com)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57648">
      Bug
      57648</a>
    -
  TestFragment should be disabled when created. Contributed by Ubik Load Pack (support at ubikloadpack.com)</li>

</ul>


<h3>Listeners</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55932">
      Bug
      55932</a>
    -
  Create a Async BackendListener to allow easy plug of new listener (Graphite, JDBC, Console, &hellip;)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57246">
      Bug
      57246</a>
    -
  BackendListener : Create a Graphite implementation</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57217">
      Bug
      57217</a>
    -
  Aggregate graph and Aggregate report improvements (3 configurable percentiles, same data in both, factor out code). Contributed by Ubik Load Pack (support at ubikloadpack.com)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57537">
      Bug
      57537</a>
    -
  BackendListener : Allow implementations to drop samples</li>

</ul>


<h3>Timers, Assertions, Config, Pre- &amp; Post-Processors</h3>

<ul>

</ul>


<h3>Functions</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54453">
      Bug
      54453</a>
    -
  Performance enhancements : Replace Random by ThreadLocalRandom in __Random function</li>

</ul>


<h3>I18N</h3>

<ul>

</ul>


<h3>General</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57518">
      Bug
      57518</a>
    -
  Icons for toolbar with several sizes</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57605">
      Bug
      57605</a>
    -
  When there is an error loading Test Plan, <span class="code">SaveService.loadTree</span> returns <span class="code">null</span> leading to NPE in callers</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57269">
      Bug
      57269</a>
    -
  Drop <span class="code">org.apache.jmeter.reports</span> package</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53764">
      Bug
      53764</a>
    -
  Website : Create a new style for website</li>

</ul>

<h2 class="ch_section" id="Non-functional changes">Non-functional changes</h2>

<ul>

<li>Updated to jsoup-1.8.1.jar (from 1.7.3)</li>

<li>Updated to tika-core and tika-parsers 1.7 (from 1.6)</li>

<li>Updated to commons-codec-1.10.jar (from 1.9)</li>

<li>Updated to dnsjava-2.1.7.jar (from 2.1.6)</li>

<li>Updated to jodd-3.6.4.jar (from 3.6.1)</li>

<li>Updated to junit-4.12.jar (from 4.11)</li>

<li>Updated to rhino-1.7R5 (from 1.7R4)</li>

<li>Updated to rsyntaxtextarea-2.5.6 (from 2.5.3)</li>

<li>Updated to slf4j-1.7.10 (from 1.7.5)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57276">
      Bug
      57276</a>
    -
  RMIC no longer needed since Java 5</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57310">
      Bug
      57310</a>
    -
  Replace <span class="code">System.getProperty("file.separator")</span> with <span class="code">File.separator</span> throughout (Also "<span class="code">path.separator"</span> with <span class="code">File.pathSeparator</span>)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57389">
      Bug
      57389</a>
    -
  Fix potential NPE in converters</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57417">
      Bug
      57417</a>
    -
  Remove unused method <span class="code">isTemporary</span> from <span class="code">NullProperty</span>. This was a leftover from a refactoring done in 2003.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57418">
      Bug
      57418</a>
    -
  Remove unused constructor from Workbench</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57419">
      Bug
      57419</a>
    -
  Remove unused interface ModelListener.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57466">
      Bug
      57466</a>
    -
  IncludeController : Remove an unneeded set creation. Contributed by Benoit Wiart (benoit.wiart at gmail.com)</li>

<li>Added property <span class="code">loggerpanel.usejsyntaxtext</span> to disable the use of JSyntaxTextArea for the Console Logger (in case of memory or other issues)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57586">
      Bug
      57586</a>
    -
  HttpTestSampleGui: Remove interface ItemListener implementation</li>

</ul>

 


<h2 class="ch_section" id="Bug fixes">Bug fixes</h2>


<h3>HTTP Samplers and Test Script Recorder</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57385">
      Bug
      57385</a>
    -
  Getting empty thread name in xml result for HTTP requests with "Follow Redirects" set. Contributed by Ubik Load Pack (support at ubikloadpack.com)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57579">
      Bug
      57579</a>
    -
  NullPointerException error is raised on main sample if "RETURN_NO_SAMPLE" is used (default) and "Use Cache-Control / Expires header&hellip;" is checked in HTTP Cache Manager</li>

</ul>


<h3>Other Samplers</h3>

<ul>

</ul>


<h3>Controllers</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57447">
      Bug
      57447</a>
    -
  Use only the user listed DNS Servers, when "use custom DNS resolver" option is enabled.</li>

</ul>


<h3>Listeners</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57262">
      Bug
      57262</a>
    -
  Aggregate Report, Aggregate Graph and Summary Report export : headers use keys instead of labels</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57346">
      Bug
      57346</a>
    -
  Summariser : The + (difference) reports show wrong elapsed time and throughput</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57449">
      Bug
      57449</a>
    -
  Distributed Testing: Stripped modes do not strip responses from SubResults (affects load tests that use Download of embedded resources). Contributed by Ubik Load Pack (support at ubikloadpack.com)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57562">
      Bug
      57562</a>
    -
  View Results Tree CSS/JQuery Tester : Nothing happens when there is an error in syntax and an exception occurs in jmeter.log</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57514">
      Bug
      57514</a>
    -
  Aggregate Graph, Summary Report and Aggregate Report show wrong percentage reporting in saved file</li>

</ul>


<h3>Timers, Assertions, Config, Pre- &amp; Post-Processors</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57607">
      Bug
      57607</a>
    -
  Constant Throughput Timer : Wrong throughput computed in shared modes due to rounding error </li>

</ul>


<h3>General</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57365">
      Bug
      57365</a>
    -
  Selected LAF is not correctly setup due to call of <span class="code">UIManager.setLookAndFeel</span> too late. Contributed by Ubik Load Pack (support at ubikloadpack.com)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57364">
      Bug
      57364</a>
    -
  Options &lt; Look And Feel does not update all windows LAF. Contributed by Ubik Load Pack (support at ubikloadpack.com)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57394">
      Bug
      57394</a>
    -
  When constructing an instance with ClassTools#construct(String, int) the integer was ignored and the default constructor was used instead.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57440">
      Bug
      57440</a>
    -
  OutOfMemoryError after introduction of JSyntaxTextArea in LoggerPanel due to disableUndo not being taken into account.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57569">
      Bug
      57569</a>
    -
  FileServer.reserveFile - inconsistent behaviour when hasHeader is true</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57555">
      Bug
      57555</a>
    -
  Cannot use JMeter 2.12 as a maven dependency. Contributed by Pascal Schumacher (pascal.schumacher at t-systems.com)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57608">
      Bug
      57608</a>
    -
  Fix start script compatibility with old Unix shells, e.g. on Solaris</li>

</ul>

 


<h2 class="ch_section" id="Thanks">Thanks</h2>

<p>We thank all contributors mentioned in bug and improvement sections above:
<ul>

<li>
<a href="http://ubikloadpack.com">Ubik Load Pack</a>
</li>

<li>Yngvi &THORN;&oacute;r Sigurj&oacute;nsson (blitzkopf at gmail.com)</li>

<li>Dzmitry Kashlach (dzmitrykashlach at gmail.com)</li>

<li>
<a href="http://blazemeter.com">BlazeMeter Ltd.</a>
</li>

<li>Benoit Wiart (benoit.wiart at gmail.com)</li>

<li>Pascal Schumacher (pascal.schumacher at t-systems.com)</li>

<li>Maciej Franek (maciej.franek at gmail.com)</li>

<li>Richard Brigham (richard.brigham at teamaol.com)</li>

<li>Pieter Ennes (apache.org at spam.ennes.nl)</li>

</ul>


<br>
We also thank bug reporters who helped us improve JMeter. <br>
For this release we want to give special thanks to the following reporters for the clear reports and tests made after our fixes:
<ul>

<li>Chaitanya Bhatt (bhatt.chaitanya at gmail.com) for his thorough testing of new BackendListener and Graphite Client implementation.</li>

<li>Marcelo Jara (marcelojara at hotmail.com) for his clear report on <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57607">
      Bug
      57607</a>.</li>

</ul>

Apologies if we have omitted anyone else.
 </p>
 


<h2 class="ch_section" id="Known bugs">Known bugs</h2>


<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 0 (see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55510">
      Bug
      55510</a>).
</li>


<li>
Note that there is a <a href="http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6396599 ">bug in Java</a>
on some Linux systems that manifests itself as the following error when running the test cases or JMeter itself:
<pre>
 [java] WARNING: Couldn't flush user prefs:
 java.util.prefs.BackingStoreException:
 java.lang.IllegalArgumentException: Not supported: indent-number
</pre>
This does not affect JMeter operation. This issue is fixed since Java 7b05.
</li>


<li>
Note that under some windows systems you may have this WARNING:
<pre class="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.
</pre>
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>
With Java 1.6 and Gnome 3 on Linux systems, the JMeter menu may not work correctly (shift between mouse's click and the menu).
This is a known Java bug (see  <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54477">
      Bug
      54477</a>).
A workaround is to use a Java 7 runtime (OpenJDK or Oracle JDK).
</li>


<li>
With Oracle Java 7 and Mac Book Pro Retina Display, the JMeter GUI may look blurry.
This is a known Java bug, see Bug <a href="http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=8000629">JDK-8000629</a>.
A workaround is to use a Java 7 update 40 runtime which fixes this issue.
</li>


<li>
You may encounter the following error: <i>java.security.cert.CertificateException: Certificates does not conform to algorithm constraints</i>
 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 7 version u16 (MD2) and version u40 (Certificate size lower than 1024 bits), and Java 8 too.
<br>
To allow you to perform your HTTPS request, you can downgrade the security of your Java installation by editing
the Java <b>jdk.certpath.disabledAlgorithms</b> property. Remove the MD2 value or the constraint on size, depending on your case.
<br>
This property is in this file:
<pre>JAVA_HOME/jre/lib/security/java.security</pre>
See  <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56357">
      Bug
      56357</a> for details.
</li>


</ul>




<h1>Version 2.12</h1>

<p>
Summary
</p>

<ul>

<li>
<a href="#New and Noteworthy">New and Noteworthy</a>
</li>

<li>
<a href="#Known bugs">Known bugs</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="#Thanks">Thanks</a>
</li>


</ul>


<h2 class="ch_section" id="New and Noteworthy">New and Noteworthy</h2>





<h3 class="ch_title">Java 8 support</h3>

<p>Now, JMeter 2.12 is compliant with Java 8.</p>


<h2 class="ch_category">New Elements</h2>

<h3 class="ch_title">Critical Section Controller</h3>

<p>The Critical Section Controller allow to serialize the execution of a section in your tree.
Only one instance of the section will be executed at the same time during the test.</p>

<figure>
<a href="./images/screenshots/changes/2.12/01_critical_section_controller.png"><img src="./images/screenshots/changes/2.12/01_critical_section_controller.png" width="683" height="240" alt=""></a>
<figcaption></figcaption>
</figure>


<h3 class="ch_title">DNS Cache Manager</h3>

<p>The new configuration element <b>DNS Cache Manager</b>(see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56841">
      Bug
      56841</a>) improves the testing of:
<ul>

<li>CDN (Content Delivery Network)</li>

<li>DNS load balancing.</li>

<li>Load Balancers like Amazon Elastic Load Balancer</li>

</ul>

</p>

<figure>
<a href="./images/screenshots/changes/2.12/02_dns_cache_manager.png"><img src="./images/screenshots/changes/2.12/02_dns_cache_manager.png" width="573" height="359" alt=""></a>
<figcaption></figcaption>
</figure>

<h2 class="ch_category">Core Improvements</h2>


<h3 class="ch_title">Smarter Recording of Http Test Plans</h3>

<p>Test Script Recorder has been improved in many ways</p>

<ul>
    
<li>Better matching of Variables in Requests, making Test Script Recorder variabilize your sampler during recording more versatile</li>
    
<li>Ability to filter from View Results Tree the Samples that are excluded from recording, this lets you concentrate on recorded Samplers analysis and not bother with useless Sample Results
    <figure>
<a href="./images/screenshots/changes/2.12/14_recorder_filter.png"><img src="./images/screenshots/changes/2.12/14_recorder_filter.png" width="1094" height="647" alt=""></a>
<figcaption></figcaption>
</figure>
    
</li>
    
<li>Better defaults for recording, since this version Recorder will number created Samplers letting you find them much easily in View Results Tree.
    Grouping of Samplers under Transaction Controller will be smarter making all requests emitted by a web page be children as new Transaction Controller</li>

</ul>


<h3 class="ch_title">Support of Webdav requests</h3>

<p>You can now test against WebDav server using HttpClient4 Implementation of Http Request</p>

<figure>
<a href="./images/screenshots/changes/2.12/13_webdav.png"><img src="./images/screenshots/changes/2.12/13_webdav.png" width="989" height="406" alt=""></a>
<figcaption></figcaption>
</figure>


<h3 class="ch_title">Better handling of embedded resources</h3>

<p>When download embedded resources is checked, JMeter now uses User Agent header to download or not resources embedded within conditional comments as per <a href="http://msdn.microsoft.com/en-us/library/ms537512%28v=vs.85%29.aspx" target="_blank">About conditional comments</a>.</p>


<h3 class="ch_title">Ability to customize Cache Manager (Browser cache simulation) handling of cached resources</h3>

<p>You can now configure the behaviour of JMeter when a resource is found in Cache, this can be controlled with <i>cache_manager.cached_resource_mode</i> property</p>

<figure>
<a href="./images/screenshots/changes/2.12/12_cache_resource_mode.png"><img src="./images/screenshots/changes/2.12/12_cache_resource_mode.png" width="1024" height="314" alt=""></a>
<figcaption></figcaption>
</figure>



<h3 class="ch_title">JMS Publisher / JMS Point-to-Point</h3>

<p> Add JMSPriority and JMSExpiration fields for these samplers.</p>

<figure>
<a href="./images/screenshots/changes/2.12/04_jms_publisher.png"><img src="./images/screenshots/changes/2.12/04_jms_publisher.png" width="877" height="314" alt=""></a>
<figcaption></figcaption>
</figure>


<figure>
<a href="./images/screenshots/changes/2.12/05_jms_point_to_point.png"><img src="./images/screenshots/changes/2.12/05_jms_point_to_point.png" width="877" height="293" alt=""></a>
<figcaption></figcaption>
</figure>


<h3 class="ch_title">Mail Reader Sampler</h3>

<p>You can now specify the number of messages that want you retrieve (before all messages were retrieved).
In addition, you can fetch only the message header now.</p>

<figure>
<a href="./images/screenshots/changes/2.12/03_mail_reader_sampler.png"><img src="./images/screenshots/changes/2.12/03_mail_reader_sampler.png" width="814" height="416" alt=""></a>
<figcaption></figcaption>
</figure>


<h3 class="ch_title">SMTP Sampler</h3>

<p>Adding the Connection timeout and the Read timeout to the <b>SMTP Sampler.</b>
</p>

<figure>
<a href="./images/screenshots/changes/2.12/06_smtp_sampler.png"><img src="./images/screenshots/changes/2.12/06_smtp_sampler.png" width="796" height="192" alt=""></a>
<figcaption></figcaption>
</figure>


<h3 class="ch_title">Synchronizing Timer </h3>

<p>Adding a timeout to define the maximum time to waiting of the group of virtual users.</p>

<figure>
<a href="./images/screenshots/changes/2.12/09_synchronizing_timer.png"><img src="./images/screenshots/changes/2.12/09_synchronizing_timer.png" width="546" height="144" alt=""></a>
<figcaption></figcaption>
</figure>


<h3 class="ch_title">Performance improvements</h3>

<p>A big improvement in performances of Functions has been made by lifting useless synchronization. It concerns all functions except __StringFromFile, __XPath and __BeanShell, see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57114">
      Bug
      57114</a>
</p>

<p>__jexl2 performances have been improved to avoid contention point, see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56708">
      Bug
      56708</a>
</p>


<h2 class="ch_category">GUI Improvements</h2>


<h3 class="ch_title">Undo/Redo support</h3>

<p>Undo / Redo has been introduced and allows user to undo/redo changes made on Test Plan Tree. This feature (ALPHA MODE) is disabled by default, to enable it set property <b>undo.history.size=25</b> 
</p>

<figure>
<a href="./images/screenshots/changes/2.12/10_undo_redo.png"><img src="./images/screenshots/changes/2.12/10_undo_redo.png" width="1024" height="56" alt=""></a>
<figcaption></figcaption>
</figure>


<h3 class="ch_title">View Results Tree</h3>

<p>Improve the ergonomics of View Results Tree by changing placement of Renderers and allowing custom ordering
(with the property <i>view.results.tree.renderers_order</i>).</p>

<figure>
<a href="./images/screenshots/changes/2.12/07_view_results_tree.png"><img src="./images/screenshots/changes/2.12/07_view_results_tree.png" width="900" height="329" alt=""></a>
<figcaption></figcaption>
</figure>


<h3 class="ch_title">Response Time Graph</h3>

<p>Adding the ability for the <b>Response Time Graph</b> listener to save/restore format its settings in/from the jmx file.</p>

<figure>
<a href="./images/screenshots/changes/2.12/08_response_time_graph.png"><img src="./images/screenshots/changes/2.12/08_response_time_graph.png" width="997" height="574" alt=""></a>
<figcaption></figcaption>
</figure>


<h3 class="ch_title">Log Viewer</h3>

<p>Starting with this version, the last lines of JMeter's log file (jmeter.log) can be viewed directly in GUI by clicking on Warning icon in the upper right corner.
This will unfold the Log Viewer panel and show logs.</p>

<figure>
<a href="./images/screenshots/changes/2.12/11_log_viewer.png"><img src="./images/screenshots/changes/2.12/11_log_viewer.png" width="1024" height="437" alt=""></a>
<figcaption></figcaption>
</figure>


<h3 class="ch_title">File Opening</h3>

<p>Now, "Open File dialog" uses last opened file folder as start folder, see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52707">
      Bug
      52707</a>
</p>




<h2 class="ch_section" id="Known bugs">Known bugs</h2>


<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 0 (see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55510">
      Bug
      55510</a>).
</li>


<li>
Note that there is a <a href="http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6396599 ">bug in Java</a>
on some Linux systems that manifests itself as the following error when running the test cases or JMeter itself:
<pre>
 [java] WARNING: Couldn't flush user prefs:
 java.util.prefs.BackingStoreException:
 java.lang.IllegalArgumentException: Not supported: indent-number
</pre>
This does not affect JMeter operation. This issue is fixed since Java 7b05.
</li>


<li>
Note that under some windows systems you may have this WARNING:
<pre class="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.
</pre>
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>
With Java 1.6 and Gnome 3 on Linux systems, the JMeter menu may not work correctly (shift between mouse's click and the menu).
This is a known Java bug (see  <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54477 ">
      Bug
      54477 </a>).
A workaround is to use a Java 7 runtime (OpenJDK or Oracle JDK).
</li>


<li>
With Oracle Java 7 and Mac Book Pro Retina Display, the JMeter GUI may look blurry.
This is a known Java bug, see Bug <a href="http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=8000629">JDK-8000629</a>.
A workaround is to use a Java 7 update 40 runtime which fixes this issue.
</li>


<li>
You may encounter the following error: <i>java.security.cert.CertificateException: Certificates does not conform to algorithm constraints</i>
 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 7 version u16 (MD2) and version u40 (Certificate size lower than 1024 bits), and Java 8 too.
<br>
To allow you to perform your HTTPS request, you can downgrade the security of your Java installation by editing
the Java <b>jdk.certpath.disabledAlgorithms</b> property. Remove the MD2 value or the constraint on size, depending on your case.
<br>
This property is in this file:
<pre>JAVA_HOME/jre/lib/security/java.security</pre>
See  <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56357">
      Bug
      56357</a> for details.
</li>


</ul>




<h2 class="ch_section" id="Incompatible changes">Incompatible changes</h2>


<ul>

<li>Since JMeter 2.12, active threads in all thread groups and active threads in current thread group are saved by default to CSV or XML results, see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57025">
      Bug
      57025</a>.
This is usually the expected behaviour as you want to have the number of running threads during the test. But if you want to revert to previous behaviour, set property <b>jmeter.save.saveservice.thread_counts=false</b>
</li>

<li>Since JMeter 2.12, Mail Reader Sampler will show 1 for number of samples instead of number of messages retrieved, see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56539">
      Bug
      56539</a>
</li>

<li>Since JMeter 2.12, when using Cache Manager, if resource is found in cache no SampleResult will be created, in previous version a SampleResult with empty content and 204 return code was returned, see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54778">
      Bug
      54778</a>.
You can choose between different ways to handle this case, see <span class="code">cache_manager.cached_resource_mode</span> in <span class="code">jmeter.properties</span>.</li>

<li>Since JMeter 2.12, Log Viewer will no more clear logs when closed and will have logs available even if closed. See <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56920">
      Bug
      56920</a>. Read <a href="./usermanual/hints_and_tips.html#debug_logging">Hints and Tips &gt; Enabling Debug logging</a>
for details on configuring this component.</li>

</ul>




<h2 class="ch_section" id="Bug fixes">Bug fixes</h2>


<h3>HTTP Samplers and Test Script Recorder</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55998">
      Bug
      55998</a> - HTTP recording &ndash; Replacing port value by user defined variable does not work</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56178">
      Bug
      56178</a> - keytool error: Invalid escaped character in AVA: - some characters must be escaped</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56222">
      Bug
      56222</a> - NPE if jmeter.httpclient.strict_rfc2616=true and location is not absolute</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56263">
      Bug
      56263</a> - DefaultSamplerCreator should set BrowserCompatible Multipart true</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56231">
      Bug
      56231</a> - Move redirect location processing from HC3/HC4 samplers to HTTPSamplerBase#followRedirects()</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56207">
      Bug
      56207</a> - URLs get encoded on redirects in HC3.1 &amp; HC4 samplers</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56303">
      Bug
      56303</a> - The width of target controller's combo list should be set to the current panel size, not on label size of the controllers</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54778">
      Bug
      54778</a> - HTTP Sampler should not return 204 when resource is found in Cache, make it configurable with new property cache_manager.cached_resource_mode</li>

</ul>


<h3>Other Samplers</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55977">
      Bug
      55977</a> - JDBC pool keepalive flooding</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55999">
      Bug
      55999</a> - Scroll bar on jms point-to-point sampler does not work when content exceeds display</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56198">
      Bug
      56198</a> - JMSSampler : NullPointerException is thrown when JNDI underlying implementation of JMS provider does not comply with <span class="code">Context.getEnvironment</span> contract</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56428">
      Bug
      56428</a> - MailReaderSampler - should it use mail.pop3s.* properties?</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=46932">
      Bug
      46932</a> - Alias given in select statement is not used as column header in response data for a JDBC request. Based on report and analysis of Nicola Ambrosetti</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56539">
      Bug
      56539</a> - Mail reader sampler: When Number of messages to retrieve is superior to 1, Number of samples should only show 1 not the number of messages retrieved</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56809">
      Bug
      56809</a> - JMSSampler closes InitialContext too early. Contributed by Bradford Hovinen (hovinen at gmail.com)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56761">
      Bug
      56761</a> - JMeter tries to stop already stopped JMS connection and displays "The connection is closed"</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57068">
      Bug
      57068</a> - No error thrown when negative duration is entered in Test Action</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57078">
      Bug
      57078</a> - LagartoBasedHTMLParser fails to parse page that contains input with no type</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57183">
      Bug
      57183</a> - JMSSampler: For input string: "" java.lang.NumberFormatException (for Expiration or Priority fields)</li>

</ul>


<h3>Controllers</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56243">
      Bug
      56243</a> - Foreach works incorrectly with indexes on subsequent iterations </li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56276">
      Bug
      56276</a> - Loop controller becomes broken once loop count evaluates to zero </li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56160">
      Bug
      56160</a> - StackOverflowError when using WhileController within IfController</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56811">
      Bug
      56811</a> - "Start Next Thread Loop" in Result Status Action Handler or on Thread Group and "Go to next Loop iteration" in Test Action behave incorrectly with TransactionController that has "Generate Parent Sampler" checked</li>

</ul>


<h3>Listeners</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56706">
      Bug
      56706</a> - SampleResult#getResponseDataAsString() does not use encoding in response body impacting PostProcessors and ViewResultsTree. Contributed by Ubik Load Pack (support at ubikloadpack.com)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57052">
      Bug
      57052</a> - ArithmeticException: / by zero when sampleCount is equal to 0</li>

</ul>


<h3>Timers, Assertions, Config, Pre- &amp; Post-Processors</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56162">
      Bug
      56162</a> -  HTTP Cache Manager should not cache PUT/POST etc.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56227">
      Bug
      56227</a> - AssertionGUI : NPE in assertion on mouse selection</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=41319">
      Bug
      41319</a> - URLRewritingModifier : Allow Parameter value to be url encoded</li>

</ul>


<h3>Functions</h3>

<ul>

</ul>


<h3>I18N</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56111">
      Bug
      56111</a> - "comments" in german translation is not correct</li>

</ul>


<h3>General</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56059">
      Bug
      56059</a> - Older TestBeans incompatible with 2.11 when using TextAreaEditor</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56080">
      Bug
      56080</a> - Conversion error com.thoughtworks.xstream.converters.ConversionException with Java 8 Early Access Build</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56182">
      Bug
      56182</a> - Can't trigger bsh script using bshclient.jar; socket is closed unexpectedly </li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56360">
      Bug
      56360</a> - HashTree and ListedHashTree fail to compile with Java 8</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56419">
      Bug
      56419</a> - JMeter silently fails to save results</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56662">
      Bug
      56662</a> - Save as xml in a listener is not remembered</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56367">
      Bug
      56367</a> - JMeter 2.11 on maven central triggers a not existing dependency rsyntaxtextarea 2.5.1, upgrade to 2.5.3</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56743">
      Bug
      56743</a> - Wrong mailing list archives on mail2.xml. Contributed by Felix Schumacher (felix.schumacher at internetallee.de)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56763">
      Bug
      56763</a> - Removing the Oracle icons, not used by JMeter (and missing license)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54100">
      Bug
      54100</a> - Switching languages fails to preserve toolbar button states (enabled/disabled)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54648">
      Bug
      54648</a> - JMeter GUI on OS X crashes when using CMD+C (keyboard shortcut or UI menu entry) on an element from the tree</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56962">
      Bug
      56962</a> - JMS GUIs should disable all fields affected by jndi.properties checkbox</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57061">
      Bug
      57061</a> - Save as Test Fragment fails to clone deeply selected node. Contributed by Ubik Load Pack (support at ubikloadpack.com)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57075">
      Bug
      57075</a> - BeanInfoSupport.MULTILINE attribute is not processed</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57076">
      Bug
      57076</a> - BooleanPropertyEditor#getAsText() must return a value that is in getTags()</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57088">
      Bug
      57088</a> - NPE in ResultCollector.testEnded</li>

</ul>




<h2 class="ch_section" id="Improvements">Improvements</h2>


<h3>HTTP Samplers and Test Script Recorder</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55959">
      Bug
      55959</a> - Improve error message when Test Script Recorder fails due to I/O problem</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52013">
      Bug
      52013</a> - Test Script Recorder's Child View Results Tree does not take into account Test Script Recorder excluded/included URLs. Based on report and analysis of James Liang</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56119">
      Bug
      56119</a> - File uploads fail every other attempt using timers. Enable idle timeouts for servers that don't send Keep-Alive headers.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56272">
      Bug
      56272</a> - MirrorServer should support query parameters for status and redirects</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56772">
      Bug
      56772</a> - Handle IE Conditional comments when parsing embedded resources</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57026">
      Bug
      57026</a> - HTTP(S) Test Script Recorder : Better default settings. Contributed by Ubik Load Pack (support at ubikloadpack.com)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57107">
      Bug
      57107</a> - Patch proposal: Add DAV verbs to HTTP Sampler. Contributed by Philippe Jung (apache at famille-jung.fr)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56357">
      Bug
      56357</a> - Certificates does not conform to algorithm constraints: Adding a note to indicate how to remove of the Java installation these new security constraints</li>

</ul>


<h3>Other samplers</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56033">
      Bug
      56033</a> - Add Connection timeout and Read timeout to SMTP Sampler</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56429">
      Bug
      56429</a> - MailReaderSampler - no need to fetch all Messages if not all wanted</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56427">
      Bug
      56427</a> - MailReaderSampler enhancement: read message header only</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56510">
      Bug
      56510</a> - JMS Publisher/Point to Point: Add JMSPriority and JMSExpiration</li>

</ul>


<h3>Controllers</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56728">
      Bug
      56728</a> - New Critical Section Controller to serialize blocks of a Test. Based partly on a patch contributed by Mikhail Epikhin(epihin-m at yandex.ru)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57145">
      Bug
      57145</a> - RandomController : Use ThreadLocalRandom instead of Random for better performances</li>

</ul>


<h3>Listeners</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56228">
      Bug
      56228</a> - View Results Tree : Improve ergonomy by changing placement of Renderers and allowing custom ordering</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56349">
      Bug
      56349</a> - "summary" is a bad name for a Generate Summary Results component, documentation clarified</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56769">
      Bug
      56769</a> - Adds the ability for the Response Time Graph listener to save/restore format settings in/from the jmx file</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57025">
      Bug
      57025</a> - SaveService : Better defaults, save thread counts by default</li>

</ul>


<h3>Timers, Assertions, Config, Pre- &amp; Post-Processors</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56691">
      Bug
      56691</a> - Synchronizing Timer : Add timeout on waiting</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56701">
      Bug
      56701</a> - HTTP Authorization Manager/ Kerberos Authentication: add port to SPN when server port is neither 80 nor 443. Based on patches from Dan Haughey (dan.haughey at swinton.co.uk) and Felix Schumacher (felix.schumacher at internetallee.de)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56841">
      Bug
      56841</a> - New configuration element: DNS Cache Manager to improve the testing of CDN. Based on patch from Dzmitry Kashlach (dzmitrykashlach at gmail.com), and contributed by BlazeMeter Ltd.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52061">
      Bug
      52061</a> - Allow access to Request Headers in Regex Extractor. Based on patch from Dzmitry Kashlach (dzmitrykashlach at gmail.com), and contributed by BlazeMeter Ltd.</li>

</ul>


<h3>Functions</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56708">
      Bug
      56708</a> - __jexl2 doesn't scale with multiple CPU cores. Based on analysis and patch contributed by Mikhail Epikhin(epihin-m at yandex.ru)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57114">
      Bug
      57114</a> - Performance : Functions that only have values as instance variable should not synchronize execute. Based on analysis by Ubik Load Pack support and Vladimir Sitnikov, patch contributed by Vladimir Sitnikov (sitnikov.vladimir at gmail.com)</li>

</ul>


<h3>I18N</h3>

<ul>

</ul>


<h3>General</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=21695">
      Bug
      21695</a> - Unix jmeter start script assumes it is on PATH, not a link</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56292">
      Bug
      56292</a> - Add the check of the Java's version in startup files and disable some options when is Java v8 engine</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56298">
      Bug
      56298</a> - JSR223 language display does not show which engine will be used</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56455">
      Bug
      56455</a> - Batch files: drop support for non-NT Windows shell scripts</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52707">
      Bug
      52707</a> - Make Open File dialog use last opened file folder as start folder. Based on patch from Dzmitry Kashlach (dzmitrykashlach at gmail.com), and contributed by BlazeMeter Ltd.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56807">
      Bug
      56807</a> - Ability to force flush of ResultCollector file. Contributed by Andrey Pohilko (apc4 at ya.ru)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56921">
      Bug
      56921</a> - Templates : Improve Recording template to ignore embedded resources case and URL parameters. Contributed by Ubik Load Pack (support at ubikloadpack.com)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=42248">
      Bug
      42248</a> - Undo-redo support on Test Plan tree modification. Developed by Andrey Pohilko (apc4 at ya.ru) and contributed by BlazeMeter Ltd. Additional contribution by Ubik Load Pack (support at ubikloadpack.com)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56920">
      Bug
      56920</a> - LogViewer : Make it receive all log events even when it is closed. Contributed by Ubik Load Pack (support at ubikloadpack.com)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57083">
      Bug
      57083</a> - simplified the CachedResourceMode enum. Contributed by Graham Russel (graham at ham1.co.uk)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57082">
      Bug
      57082</a> - ComboStringEditor : Added hashCode to an inner class which overwrote equals. Contributed by Graham Russel (graham at ham1.co.uk)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57081">
      Bug
      57081</a> - Updating checkstyle to only check for tabs in java, xml, xsd, dtd, htm, html and txt files (not images!). Contributed by Graham Russell (graham at ham1.co.uk)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56178">
      Bug
      56178</a> - Really replace backslashes in user name before generating proxy certificate. Contributed by Graham Russel (graham at ham1.co.uk)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57084">
      Bug
      57084</a> - Close socket after usage in BeanShellClient. Contributed by Graham Russel (graham at ham1.co.uk)</li>

</ul>

<h2 class="ch_section" id="Non-functional changes">Non-functional changes</h2>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57117">
      Bug
      57117</a> - Increase the default cipher for HTTPS Test Script Recorder from SSLv3 to TLS</li>

<li>Updated to commons-lang3 3.3.2 (from 3.1)</li>

<li>Updated to commons-codec 1.9 (from 1.8)</li>

<li>Updated to commons-logging 1.2 (from 1.1.3)</li>

<li>Updated to tika 1.6 (from 1.4)</li>

<li>Updated to xercesImpl 2.11.0 (from 2.9.1)</li>

<li>Updated to xml-apis 1.4.01 (from 1.3.04)</li>

<li>Updated to xstream 1.4.8 (from 1.4.4)</li>

<li>Updated to jodd 3.6.1 (from 3.4.10)</li>

<li>Updated to rsyntaxtextarea 2.5.3 (from 2.5.1)</li>

<li>Updated xalan and serializer to 2.7.2 (from 2.7.1)</li>

<li>Updated to jsoup-1.8.1.jar (from 1.7.3)</li>

</ul>


<h2 class="ch_section" id="Thanks">Thanks</h2>

<p>We thank all contributors mentioned in bug and improvement sections above:
<ul>

<li>James Liang (jliang at andera.com)</li>

<li>Emmanuel Bourg (ebourg at apache.org)</li>

<li>Nicola Ambrosetti (ambrosetti.nicola at gmail.com)</li>

<li>
<a href="http://ubikloadpack.com">Ubik Load Pack</a>
</li>

<li>Mikhail Epikhin (epihin-m at yandex.ru)</li>

<li>Dan Haughey (dan.haughey at swinton.co.uk)</li>

<li>Felix Schumacher (felix.schumacher at internetallee.de)</li>

<li>Dzmitry Kashlach (dzmitrykashlach at gmail.com)</li>

<li>Andrey Pohilko (apc4 at ya.ru)</li>

<li>Bradford Hovinen (hovinen at gmail.com)</li>

<li>
<a href="http://blazemeter.com">BlazeMeter Ltd.</a>
</li>

<li>Graham Russell (graham at ham1.co.uk)</li>

<li>Philippe Jung (apache at famille-jung.fr)</li>

<li>Vladimir Sitnikov (sitnikov.vladimir at gmail.com)</li>

</ul>


<br>
We also thank bug reporters who helped us improve JMeter. <br>
For this release we want to give special thanks to the following reporters for the clear reports and tests made after our fixes:
<ul>

<li>Oliver LLoyd (email at oliverlloyd.com) for his help on <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56119">
      Bug
      56119</a>
</li>

<li>Vladimir Ryabtsev (greatvovan at gmail.com) for his help on <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56243">
      Bug
      56243</a> and <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56276">
      Bug
      56276</a>
</li>

<li>Adrian Speteanu (asp.adieu at gmail.com) and Matt Kilbride (matt.kilbride at gmail.com) for their feedback and tests on <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54648">
      Bug
      54648</a>
</li>

<li>Shmuel Krakower (shmulikk at gmail.com) for his tests and reports on Undo/Redo feature</li>

</ul>

Apologies if we have omitted anyone else.
 </p>




<h1>Version 2.11</h1>

<p>
Summary
</p>

<ul>

<li>
<a href="#New and Noteworthy">New and Noteworthy</a>
</li>

<li>
<a href="#Known bugs">Known bugs</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="#Thanks">Thanks</a>
</li>


</ul>


<h2 class="ch_section" id="New and Noteworthy">New and Noteworthy</h2>



<h3 class="ch_title">HTTP(S) Test Script Recorder improvements</h3>

<p>
Following improvements have been made since major changes introduced in JMeter 2.10 on HTTP(S) Test Script Recorder:
<ul>

<li>Better detection of missing or invalid configuration of keytool utility</li>

<li>New system property <span class="code">keytool.directory</span> (see <span class="code">system.properties</span>) lets you configure directory containing keytool in case on non-standard installation</li>

</ul>

</p>


<h3 class="ch_title">JMS Publisher/Point to Point : Add ability to set typed values in JMS header properties</h3>

<p>In the samplers JMS Publisher and JMS Point-to-Point, you can now set up the class of values for the JMS header properties. Previously only String was possible.</p>

<p>

<figure>
<a href="./images/screenshots/changes/2.11/01_jms_properties_typed_values.png"><img src="./images/screenshots/changes/2.11/01_jms_properties_typed_values.png" width="928" height="796" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3 class="ch_title">View Results Tree : Add an XPath Tester </h3>

<p>In View Results Tree listener, a new XPath tester can be used to test XPATH expressions.</p>

<p>

<figure>
<a href="./images/screenshots/changes/2.11/03_xpath_tester.png"><img src="./images/screenshots/changes/2.11/03_xpath_tester.png" width="990" height="765" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3 class="ch_title">Ability to choose the client alias for the cert key in JsseSslManager such that Mutual SSL auth testing can be made more flexible</h3>

<p>When testing client based certificate authentications you have now better control on certificate you use through a new field "Variable name holding certificate alias", this
field lets you select the certificate you want to send to server to authenticate. You can use a CSV Data Set as a holder for the variable value.</p>

<p>

<figure>
<a href="./images/screenshots/changes/2.11/07_keystore_config.png"><img src="./images/screenshots/changes/2.11/07_keystore_config.png" width="471" height="189" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3 class="ch_title">Add a "Save as Test Fragment" option </h3>

<p>In the file menu, a new option allow to save a group of elements as a Test fragment.</p>

<p>

<figure>
<a href="./images/screenshots/changes/2.11/05_save_as_fragement.png"><img src="./images/screenshots/changes/2.11/05_save_as_fragement.png" width="295" height="242" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3 class="ch_title">Summariser is be enabled by default in Non GUI mode</h3>

<p>When you run JMeter from command line, now JMeter displays some statistics from the Summariser mode.</p>

<p>

<figure>
<a href="./images/screenshots/changes/2.11/06_summariser.png"><img src="./images/screenshots/changes/2.11/06_summariser.png" width="1287" height="386" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3 class="ch_title">Transaction Controller:Change default property "Include duration of timer&hellip;" for newly created element</h3>

<p>Starting from 2.11, Transaction Controller is configured by default to exclude processing time of pre/post processors as long as timers pause.</p>

<p>

<figure>
<a href="./images/screenshots/changes/2.11/02_transaction_controller.png"><img src="./images/screenshots/changes/2.11/02_transaction_controller.png" width="628" height="140" alt=""></a>
<figcaption></figcaption>
</figure>

</p>








<h2 class="ch_section" id="Known bugs">Known bugs</h2>


<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>Listeners don't show iteration counts when a If Controller has a condition which is always false from the first iteration (see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52496">
      Bug
      52496</a>).
A workaround is to add a sampler at the same level as (or superior to) the If Controller.
For example a Test Action sampler with 0 wait time (which doesn't generate a sample),
or a Debug Sampler with all fields set to False (to reduce the sample size).
</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 0 (see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55510">
      Bug
      55510</a>).
</li>


<li>
Note that there is a <a href="http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6396599 ">bug in Java</a>
on some Linux systems that manifests itself as the following error when running the test cases or JMeter itself:
<pre>
 [java] WARNING: Couldn't flush user prefs:
 java.util.prefs.BackingStoreException:
 java.lang.IllegalArgumentException: Not supported: indent-number
</pre>
This does not affect JMeter operation. This issue is fixed since Java 7b05.
</li>


<li>
With Java 1.6 and Gnome 3 on Linux systems, the JMeter menu may not work correctly (shift between mouse's click and the menu).
This is a known Java bug (see  <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54477 ">
      Bug
      54477 </a>).
A workaround is to use a Java 7 runtime (OpenJDK or Oracle JDK).
</li>


<li>
With Oracle Java 7 and Mac Book Pro Retina Display, the JMeter GUI may look blurry.
This is a known Java bug, see Bug <a href="http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=8000629">JDK-8000629</a>.
A workaround is to use a Java 7 update 40 runtime which fixes this issue.
</li>

</ul>




<h2 class="ch_section" id="Incompatible changes">Incompatible changes</h2>


<ul>

<li>When creating a new Transaction Controller, property "Include duration of timer and pre-post processors in generated sample" will be unchecked starting from version 2.11</li>

<li>In Non GUI mode, since 2.11 summariser is enabled with a 30 seconds frequency</li>

<li>JMeter is more lenient with redirect handling and relaxes on RFC2616 by allowing relative locations. See property "<span class="code">jmeter.httpclient.strict_rfc2616</span>" in <span class="code">jmeter.properties</span> to change this behaviour, see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55717">
      Bug
      55717</a>
</li>

<li>When creating a new Response Assertion, property "Pattern Matching Rules" now defaults to Substring starting from version 2.11</li>

</ul>




<h2 class="ch_section" id="Bug fixes">Bug fixes</h2>


<h3>HTTP Samplers and Test Script Recorder</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55815">
      Bug
      55815</a> - Proxy#getDomainMatch does not handle wildcards correctly</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55717">
      Bug
      55717</a> - Bad handling of Redirect when URLs are in relative format by HttpClient4 and HttpClient3.1</li>

</ul>


<h3>Other Samplers</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55685">
      Bug
      55685</a> - OS Sampler: timeout option don't save and restore correctly value and don't init correctly timeout</li>

</ul>


<h3>Controllers</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55816">
      Bug
      55816</a> - Transaction Controller with "Include duration of timer&hellip;" unchecked does not ignore processing time of last child sampler</li>

</ul>


<h3>Listeners</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55826">
      Bug
      55826</a> - Unsynchronised concurrent accesses to list in field RespTimeGraphVisualizer.internalList </li>

</ul>


<h3>Timers, Assertions, Config, Pre- &amp; Post-Processors</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55694">
      Bug
      55694</a> - Assertions and Extractors : Avoid NullPointerException when scope is variable and variable is missing</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55721">
      Bug
      55721</a> - HTTP Cache Manager - no-store directive is wrongly interpreted</li>

</ul>


<h3>Functions</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55871">
      Bug
      55871</a> - Wrong result with intSum() function when a space character is present before/after the number. Contributed by Milamber based on a proposal by James Liang.</li>

</ul>


<h3>I18N</h3>

<ul>

</ul>


<h3>General</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55739">
      Bug
      55739</a> - Remote Test : Total threads in GUI mode shows invalid total number of threads</li>

</ul>




<h2 class="ch_section" id="Improvements">Improvements</h2>


<h3>HTTP Samplers and Proxy</h3>

<ul>

</ul>


<h3>Other samplers</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55589">
      Bug
      55589</a> - JMS Publisher/Point to Point : Add ability to set typed values in JMS header properties.</li>

</ul>


<h3>Controllers</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55854">
      Bug
      55854</a> - Transaction Controller:Change default property "Include duration of timer&hellip;" for newly created element</li>

</ul>


<h3>Listeners</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55610">
      Bug
      55610</a> - View Results Tree : Add an XPath Tester</li>

</ul>


<h3>Timers, Assertions, Config, Pre- &amp; Post-Processors</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55908">
      Bug
      55908</a> - Response assertion : Change Pattern Matching Rules default to Substring on creation for better performances</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54977">
      Bug
      54977</a> - Ability to choose the client alias for the cert key in JsseSslManager such that Mutual SSL auth testing can be made more flexible. Contributed by UBIK Load Pack (support at ubikloadpack.com)</li>

</ul>


<h3>Functions</h3>

<ul>

</ul>


<h3>I18N</h3>

<ul>

</ul>


<h3>General</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55693">
      Bug
      55693</a> - Add a "Save as Test Fragment" option</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55753">
      Bug
      55753</a> - Improve FilePanel behaviour to start from the value set in Filename field if any. Contributed by UBIK Load Pack (support at ubikloadpack.com)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55756">
      Bug
      55756</a> - HTTP Mirror Server : Add ability to set Headers</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55852">
      Bug
      55852</a> - Be more lenient in parsing when charset value is surrounded with single quotes</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55857">
      Bug
      55857</a> - Performance : AbstractProperty should test for emptiness to avoid Exception throwing</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55858">
      Bug
      55858</a> - Startup Performance : On Startup, BeanInfoSupport should test for key availability instead of throwing</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55865">
      Bug
      55865</a> - Performance :Disable stale check by default in HttpClient 4 and 3.1</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55512">
      Bug
      55512</a> - Summariser should be enabled by default in Non GUI mode</li>

</ul>


<h2 class="ch_section" id="Non-functional changes">Non-functional changes</h2>

<ul>

<li>Updated to rsyntaxtextarea-2.5.1.jar (from 2.5.0)</li>

<li>Updated to jodd-core-3.4.9.jar from (3.4.8) and jodd-lagarto-3.4.9.jar (from 3.4.9)</li>

<li>Updated to jsoup-1.7.3.jar (from 1.7.2)</li>

<li>Updated to mail-1.5.0-b01 (from 1.4.4)</li>

<li>Updated to mongo-java-driver-2.11.3 (from 2.11.2)</li>

</ul>


<h2 class="ch_section" id="Thanks">Thanks</h2>

<p>We thank all contributors mentioned in bug and improvement sections above:
<ul>

<li>James Liang (jliang at andera.com)</li>

<li>UBIK Load Pack (support at ubikloadpack.com)</li>

</ul>

<br>
We also thank bug reporters who helped us improve JMeter. <br>
For this release we want to give special thanks to the following reporters for the clear reports and tests made after our fixes:
<ul>

<li>John Natsioulas (john_natsioulas at yahoo.com.au)</li>

<li>Antonio Gomes Rodrigues (ra0077 at gmail.com)</li>

</ul>

Apologies if we have omitted anyone else.
 </p>





<h1>Version 2.10</h1>

<p>
Summary
</p>

<ul>

<li>
<a href="#New and Noteworthy">New and Noteworthy</a>
</li>

<li>
<a href="#Known bugs">Known bugs</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="#Thanks">Thanks</a>
</li>


</ul>


<h2 class="ch_section" id="New and Noteworthy">New and Noteworthy</h2>


<h2 class="ch_category">Core Improvements</h2>


<h3 class="ch_title">New Performance improvements</h3>

<p>

<ul>

<li>A Huge performance improvement has been made on High Throughput Tests (no pause), see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54777">
      Bug
      54777</a>
</li>

<li>An issue with unnecessary SSL Context reset has been fixed which improves performances of pure HTTP tests, see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55023">
      Bug
      55023</a>
</li>

<li>Important performance improvement in parsing of Embedded resource in HTML pages thanks to a switch to JODD/Lagarto HTML Parser, see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55632">
      Bug
      55632</a>
</li>

</ul>

</p>


<h3 class="ch_title">New CSS/JQuery Tester in View Tree Results</h3>

<p>A new CSS/JQuery Tester in View Tree Results that makes CSS/JQuery Extractor a first class
citizen in JMeter, you can now test your expressions very easily</p>

<p>

<figure>
<a href="./images/screenshots/changes/2.10/01_css_jquery_tester.png"><img src="./images/screenshots/changes/2.10/01_css_jquery_tester.png" width="1144" height="638" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3 class="ch_title">Many improvements in HTTP(S) Recording have been made</h3>

<p>

<figure>
<a href="./images/screenshots/changes/2.10/18_https_test_script_recorder.png"><img src="./images/screenshots/changes/2.10/18_https_test_script_recorder.png" width="691" height="215" alt=""></a>
<figcaption></figcaption>
</figure>

<div class="clear"></div>
<div class="note">
The "HTTP Proxy Server" test element has been renamed as "HTTP(S) Test Script Recorder".
</div>
<div class="clear"></div>

<ul>

<li>Better recording of HTTPS sites, embedded resources using subdomains will more easily be recorded when using JDK 7. See <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55507">
      Bug
      55507</a>.
See updated documentation: <a href="./usermanual/component_reference.html#HTTP(S)_Test_Script_Recorder">HTTP(S) Test Script Recorder</a>

</li>

<li>Redirection are now more smartly detected by HTTP Proxy Server, see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55531">
      Bug
      55531</a>
</li>

<li>Many fixes on edge cases with HTTPS have been made, see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55502">
      Bug
      55502</a>, <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55504">
      Bug
      55504</a>, <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55506">
      Bug
      55506</a>
</li>

<li>Many encoding fixes have been made, see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54482">
      Bug
      54482</a>, <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54142">
      Bug
      54142</a>, <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54293">
      Bug
      54293</a>
</li>

</ul>

</p>


<h3 class="ch_title">You can now load test MongoDB through new MongoDB Source Config</h3>

<p>

<figure>
<a href="./images/screenshots/changes/2.10/02_mongodb_source_config.png"><img src="./images/screenshots/changes/2.10/02_mongodb_source_config.png" width="912" height="486" alt=""></a>
<figcaption></figcaption>
</figure>

</p>

<p>

<figure>
<a href="./images/screenshots/changes/2.10/14_mongodb_jsr223.png"><img src="./images/screenshots/changes/2.10/14_mongodb_jsr223.png" width="850" height="687" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3 class="ch_title">Kerberos authentication has been added to Auth Manager</h3>

<p>

<figure>
<a href="./images/screenshots/changes/2.10/15_kerberos.png"><img src="./images/screenshots/changes/2.10/15_kerberos.png" width="1005" height="364" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3 class="ch_title">Device can now be used in addition to source IP address</h3>


<p>

<figure>
<a href="./images/screenshots/changes/2.10/16_device.png"><img src="./images/screenshots/changes/2.10/16_device.png" width="1087" height="699" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3 class="ch_title">You can now do functional testing of MongoDB scripts through new MongoDB Script</h3>

<p>

<figure>
<a href="./images/screenshots/changes/2.10/03_mongodb_script_alpha.png"><img src="./images/screenshots/changes/2.10/03_mongodb_script_alpha.png" width="906" height="313" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3 class="ch_title">Timeout has been added to OS Process Sampler</h3>

<p>

<figure>
<a href="./images/screenshots/changes/2.10/17_os_process_timeout.png"><img src="./images/screenshots/changes/2.10/17_os_process_timeout.png" width="684" height="586" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3 class="ch_title">Query timeout has been added to JDBC Request</h3>

<p>

<figure>
<a href="./images/screenshots/changes/2.10/04_jdbc_request_timeout.png"><img src="./images/screenshots/changes/2.10/04_jdbc_request_timeout.png" width="540" height="600" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3 class="ch_title">New functions (__urlencode and __urldecode) are now available to encode/decode URL encoded chars</h3>

<p>

<figure>
<a href="./images/screenshots/changes/2.10/05_urlencode_function.png"><img src="./images/screenshots/changes/2.10/05_urlencode_function.png" width="512" height="240" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3 class="ch_title">Continuous Integration is now eased by addition of a new flag that forces NON-GUI JVM to exit after test end</h3>

<p>See jmeter property:</p>

<span class="code">jmeterengine.force.system.exit</span>

<p></p>


<h3 class="ch_title">HttpSampler now allows DELETE Http Method to have a body (works for HC4 and HC31 implementations). This allows for example to test Elastic Search APIs</h3>

<p>

<figure>
<a href="./images/screenshots/changes/2.10/06_http_request_delete_method.png"><img src="./images/screenshots/changes/2.10/06_http_request_delete_method.png" width="573" height="444" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3 class="ch_title">2 implementations of HtmlParser have been added to improve Embedded resources parsing</h3>

<p>
You can choose the implementation to use for parsing Embedded resources in HTML pages:
See jmeter.properties and look at property "htmlParser.className".
<ul>

<li>org.apache.jmeter.protocol.http.parser.LagartoBasedHtmlParser for optimal performances</li>

<li>org.apache.jmeter.protocol.http.parser.JSoupBasedHtmlParser for most accurate parsing and functional testing</li>

</ul>

</p>


<h3 class="ch_title">Distributed testing has been improved</h3>

<p>

<ul>

<li>
Number of threads on each node are now reported to controller.
<p>

<figure>
<a href="./images/screenshots/changes/2.10/17_threads_summariser.png"><img src="./images/screenshots/changes/2.10/17_threads_summariser.png" width="988" height="355" alt=""></a>
<figcaption></figcaption>
</figure>

</p>

<p>

<figure>
<a href="./images/screenshots/changes/2.10/17_threads_gui.png"><img src="./images/screenshots/changes/2.10/17_threads_gui.png" width="125" height="33" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


</li>

<li>Performance improvement on BatchSampleSender(<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55423">
      Bug
      55423</a>)</li>

<li>Addition of 2 SampleSender modes (StrippedAsynch and StrippedDiskStore), see jmeter.properties</li>

</ul>

</p>


<h3 class="ch_title">ModuleController has been improved to better handle changes to referenced controllers</h3>


<h3 class="ch_title">Improved class loader configuration, see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55503">
      Bug
      55503</a>
</h3>

<p>

<ul>

<li>New property "plugin_dependency_paths" for plugin dependencies</li>

<li>Properties "search_paths", "user.classpath" and "plugin_dependency_paths"
    now automatically add all jars from configured directories</li>

</ul>

</p>


<h3 class="ch_title">Best-practices section has been improved, ensure you read it to get the most out of JMeter</h3>

<p>See <a href="usermanual/best-practices.html">Best Practices</a>

</p>

<h2 class="ch_category">GUI and ergonomy Improvements</h2>



<h3 class="ch_title">New Templates feature that allows you to create test plan from existing template or merge
template into your Test Plan</h3>

<p>

<figure>
<a href="./images/screenshots/changes/2.10/07_jmeter_templates_icon.png"><img src="./images/screenshots/changes/2.10/07_jmeter_templates_icon.png" width="428" height="130" alt=""></a>
<figcaption></figcaption>
</figure>

</p>

<p>

<figure>
<a href="./images/screenshots/changes/2.10/08_jmeter_templates_box.png"><img src="./images/screenshots/changes/2.10/08_jmeter_templates_box.png" width="781" height="472" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3 class="ch_title">Workbench can now be saved</h3>

<p>

<figure>
<a href="./images/screenshots/changes/2.10/09_save_workbench.png"><img src="./images/screenshots/changes/2.10/09_save_workbench.png" width="489" height="198" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3 class="ch_title">Syntax color has been added to scripts elements (BeanShell, BSF, and JSR223), MongoDB and JDBC elements making code much more readable and allowing UNDO/REDO through CTRL+Z/CTRL+Y</h3>

<p>BSF Sampler with syntax color
<figure>
<a href="./images/screenshots/changes/2.10/10_color_syntax_bsf_sampler.png"><img src="./images/screenshots/changes/2.10/10_color_syntax_bsf_sampler.png" width="915" height="620" alt=""></a>
<figcaption></figcaption>
</figure>

</p>

<p>JSR223 Pre Processor with syntax color
<figure>
<a href="./images/screenshots/changes/2.10/11_color_syntax_jsr223_preprocessor.png"><img src="./images/screenshots/changes/2.10/11_color_syntax_jsr223_preprocessor.png" width="911" height="614" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3 class="ch_title">Better editors are now available for Test Elements with large text content, like HTTP Sampler, and JMS related Test Element providing line numbering and allowing UNDO/REDO through CTRL+Z/CTRL+Y</h3>


<h3 class="ch_title">JMeter GUI can now be fully Internationalized, all remaining issues have been fixed</h3>

<h5>Currently French has all its labels translated. Other languages are partly translated, feel free to
contribute translations by reading <a href="localising/index.html">Localisation (Translator's Guide)</a>
</h5>


<h3 class="ch_title">Moving elements in Test plan has been improved in many ways</h3>

<h5>Drag and drop of elements in Test Plan tree is now much easier and possible on multiple nodes</h5>

<p>

<figure>
<a href="./images/screenshots/changes/2.10/12_drap_n-drop_multiple.png"><img src="./images/screenshots/changes/2.10/12_drap_n-drop_multiple.png" width="894" height="236" alt=""></a>
<figcaption></figcaption>
</figure>

</p>

<p>

<b>Note that due to this <a href="http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6560955">bug in Java</a>,
you cannot drop a node after last node. The workaround is to drop it before this last node and then Drag and Drop the last node
before the one you just dropped.</b>

</p>

<h5>New shortcuts have been added to move elements in the tree. </h5>

<p>(alt + Arrow Up) and (alt + Arrow Down) move the element within the parent node<br>
(alt + Arrow Left) and (alt + Arrow Right) move the element up and down in the tree depth</p>


<h3 class="ch_title">Response Time Graph Y axis can now be scaled</h3>

<p>

<figure>
<a href="./images/screenshots/changes/2.10/13_response_time_graph_y_scale.png"><img src="./images/screenshots/changes/2.10/13_response_time_graph_y_scale.png" width="947" height="596" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3 class="ch_title">JUnit Sampler gives now more details on configuration errors</h3>





<h2 class="ch_section" id="Known bugs">Known bugs</h2>


<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>Listeners don't show iteration counts when a If Controller has a condition which is always false from the first iteration (see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52496">
      Bug
      52496</a>).
A workaround is to add a sampler at the same level as (or superior to) the If Controller.
For example a Test Action sampler with 0 wait time (which doesn't generate a sample),
or a Debug Sampler with all fields set to False (to reduce the sample size).
</li>


<li>Webservice sampler does not consider the HTTP response status to compute the status of a response, thus a response 500 containing a non empty body will be considered as successful, see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54006">
      Bug
      54006</a>.
To workaround this issue, ensure you always read the response and add a Response Assertion checking text inside the response.
</li>


<li>
The numbers that appear to the left of the green box are the number of active threads / total number of threads,
these only apply to a locally run test; they do not include any threads started on remote systems when using client-server mode, (see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54152">
      Bug
      54152</a>).
</li>


<li>
Note that there is a <a href="http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6396599 ">bug in Java</a>
on some Linux systems that manifests itself as the following error when running the test cases or JMeter itself:
<pre>
 [java] WARNING: Couldn't flush user prefs:
 java.util.prefs.BackingStoreException:
 java.lang.IllegalArgumentException: Not supported: indent-number
</pre>
This does not affect JMeter operation. This issue is fixed since Java 7b05.
</li>


<li>
With Java 1.6 and Gnome 3 on Linux systems, the JMeter menu may not work correctly (shift between mouse's click and the menu).
This is a known Java bug (see  <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54477 ">
      Bug
      54477 </a>).
A workaround is to use a Java 7 runtime (OpenJDK or Oracle JDK).
</li>


<li>
With Oracle Java 7 and Mac Book Pro Retina Display, the JMeter GUI may look blurry.
This is a known Java bug, see Bug <a href="http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=8000629">JDK-8000629</a>.
A workaround is to use a Java 7 update 40 runtime which fixes this issue.
</li>

</ul>




<h2 class="ch_section" id="Incompatible changes">Incompatible changes</h2>


<ul>

<li>
<b>SMTP Sampler</b> now uses eml file subject if subject field is empty</li>


<li>With this version autoFlush has been turned off on PrintWriter in charge of writing test results.
This results in improved throughput for intensive tests but can result in more test data loss in case
of JMeter crash (extremely rare). To revert to previous behaviour set <span class="code">jmeter.save.saveservice.autoflush</span> property to <span class="code">true</span>.</li>


<li>
Shortcut for <b>Function Helper Dialog</b> is now <i>CTRL+SHIFT+F1 (CMD + SHIFT + F1 for Mac OS)</i>.
The original key sequence <i>(Ctrl+F1)</i> did not work in some locations (it is consumed by the Java Swing ToolTipManager).
It was therefore necessary to change the shortcut.
</li>


<li>

<b>Webservice (SOAP) Request</b> has been removed by default from GUI as Element is deprecated. (Use <b>HTTP Request</b>
with <i>Body Data</i>, see also the Template <i>Building a SOAP Webservice Test Plan</i>), if you need to show it, see property <span class="code">not_in_menu</span> in <i>jmeter.properties</i>

</li>


<li>

<b>Transaction Controller</b> now sets <i>Response Code</i> of <i>Generated Parent Sampler</i>
(if <i>Generated Parent Sampler</i> is checked) to response code of first failing child in case of failure of one of the children, in previous versions <i>Response Code</i> was empty.
</li>


<li>
In previous versions, <b>IncludeController</b> could run Test Elements located inside a <b>Thread Group</b>, this behaviour (<i>which was not documented</i>)
could result in weird behaviour, it has been removed in this version (see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55464">
      Bug
      55464</a>).
The correct way to include Test Elements is to use <b>Test Fragment</b> as stated in documentation of <b>Include Controller</b>.
</li>


<li>
The retry count for the HttpClient 3.1 and HttpClient 4.x samplers has been changed to <b>0</b>.
Previously the default was 1, which could cause unexpected additional traffic.
</li>


<li>Starting with this version, the <b>HTTP(S) Test Script Recorder</b> tries to detect when a sample is the result of a previous
redirect. If the current response is a redirect, JMeter will save the redirect URL. When the next request is received,
it is compared with the saved redirect URL and if there is a match, JMeter will disable the generated sample.
To revert to previous behaviour, set the property <span class="code">proxy.redirect.disabling=false</span>

</li>


<li>Starting with this version, in <b>HTTP(S) Test Script Recorder</b> if Grouping is set to <i>Put each group in a new Transaction Controller</i>,
the Recorder will create <b>Transaction Controller</b> instances with <i>Include duration of timer and pre-post processors in generated sample</i> set
to false. This default value reflect more accurately response time.
</li>


<li>
<span class="code">__escapeOroRegexpChars</span> function (which escapes ORO reserved characters) no longer trims the value (see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55328">
      Bug
      55328</a>)
</li>


<li>The <i>commons-lang-2.6.jar</i> has been removed from embedded libraries in <span class="code">jmeter/lib</span> folder as it is not needed by JMeter at run-time
(it is only used by Apache Velocity for generating documentation).
If you use any plugin or third-party code that depends on it, you need to add it in <span class="code">jmeter/lib</span> folder
</li>

</ul>




<h2 class="ch_section" id="Bug fixes">Bug fixes</h2>


<h3>HTTP Samplers and Proxy</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54627">
      Bug
      54627</a> - JMeter Proxy GUI: Type of sampler setting takes the whole screen when there are samplers with long names.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54629">
      Bug
      54629</a> - HTMLParser does not extract &lt;object&gt; tag urls.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55023">
      Bug
      55023</a> - SSL Context reuse feature (51380) adversely affects non-ssl request performance/throughput. based on analysis by Brent Cromarty (brent.cromarty at yahoo.ca)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55092">
      Bug
      55092</a> - Log message "WARN - jmeter.protocol.http.sampler.HTTPSamplerBase: Null URL detected (should not happen)" displayed when embedded resource URL is malformed.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55161">
      Bug
      55161</a> - Useless processing in SoapSampler.setPostHeaders. Contributed by Adrian Nistor (nistor1 at illinois.edu)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54482">
      Bug
      54482</a> - HC fails to follow redirects with non-encoded chars.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54142">
      Bug
      54142</a> - HTTP Proxy Server throws an exception when path contains "|" character.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55388">
      Bug
      55388</a> - HC3 does not allow IP Source field to override httpclient.localaddress.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55450">
      Bug
      55450</a> - HEAD redirects should remain as HEAD</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55455">
      Bug
      55455</a> - HTTPS with HTTPClient4 ignores cps setting</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55502">
      Bug
      55502</a> - Proxy generates empty http:/ entries when recording</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55504">
      Bug
      55504</a> - Proxy incorrectly issues CONNECT requests when browser prompts for certificate override</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55506">
      Bug
      55506</a> - Proxy should deliver failed requests to any configured Listeners</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55545">
      Bug
      55545</a> - HTTP Proxy Server GUI should not allow both Follow and Auto redirect to be selected</li>

</ul>


<h3>Other Samplers</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54913">
      Bug
      54913</a> - JMSPublisherGui incorrectly restores its state. Contributed by Benoit Wiart (benoit.wiart at gmail.com)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55027">
      Bug
      55027</a> - Test Action regression, duration value is not recorded (nightly build).</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55163">
      Bug
      55163</a> - BeanShellTestElement fails to quote string when calling testStarted(String)/testEnded(String).</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55349">
      Bug
      55349</a> - NativeCommand hangs if no input file is specified and the application requests input.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55462">
      Bug
      55462</a> - System Sampler should not change the sampler label if a sample fails</li>

</ul>


<h3>Controllers</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54467">
      Bug
      54467</a> - Loop Controller: compute loop value only once per parent iteration.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54985">
      Bug
      54985</a> - Make Transaction Controller set Response Code of Generated Parent Sampler to response code of first failing child in case of failure of one of its children. Contributed by Mikhail Epikhin (epihin-m at yandex.ru)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54950">
      Bug
      54950</a> - ModuleController : Changes to referenced Module are not taken into account if changes occur after first run and referenced node is disabled.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55201">
      Bug
      55201</a> - ForEach controller excludes start index and includes end index (clarified documentation).</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55334">
      Bug
      55334</a> - Adding Include Controller to test plan (made of Include Controllers) without saving TestPlan leads to included code not being taken into account until save.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55375">
      Bug
      55375</a> -  StackOverflowError with ModuleController in Non-GUI mode if its name is the same as the target node.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55464">
      Bug
      55464</a> - Include Controller running included thread group</li>

</ul>


<h3>Listeners</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54589">
      Bug
      54589</a> - View Results Tree have a lot of Garbage characters if html page uses double-byte charset.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54753">
      Bug
      54753</a> - StringIndexOutOfBoundsException at SampleResult.getSampleLabel() if key_on_threadname=false when using Statistical mode.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54685">
      Bug
      54685</a> - ArrayIndexOutOfBoundsException if "sample_variable" is set in client but not server.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55111">
      Bug
      55111</a> - ViewResultsTree: text not refitted if vertical scrollbar is required. Contributed by Milamber</li>

</ul>


<h3>Timers, Assertions, Config, Pre- &amp; Post-Processors</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54540">
      Bug
      54540</a> - "HTML Parameter Mask" are not marked deprecated in the IHM.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54575">
      Bug
      54575</a> - CSS/JQuery Extractor : Choosing JODD Implementation always uses JSOUP.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54901">
      Bug
      54901</a> - Response Assertion GUI behaves weirdly.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54924">
      Bug
      54924</a> - XMLAssertion uses JMeter JVM file.encoding instead of response encoding and does not clean threadlocal variable.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53679">
      Bug
      53679</a> -  Constant Throughput Timer bug with localization. Reported by Ludovic Garcia</li>

</ul>


<h3>Functions</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55328">
      Bug
      55328</a> - __escapeOroRegexpChars trims spaces.</li>

</ul>


<h3>I18N</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55437">
      Bug
      55437</a> - ComboStringEditor does not translate EDIT and UNDEFINED strings on language change</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55501">
      Bug
      55501</a> - Incorrect encoding for French description of __char function. Contributed by Antonio Gomes Rodrigues (ra0077 at gmail.com)</li>

</ul>


<h3>General</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54504">
      Bug
      54504</a> - Resource string not found: [clipboard_node_read_error].</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54538">
      Bug
      54538</a> - GUI: context menu is too big.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54847">
      Bug
      54847</a> - Cut &amp; Paste is broken with tree multi-selection. Contributed by Benoit Wiart (benoit.wiart at gmail.com)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54870">
      Bug
      54870</a> - Tree drag and drop may lose leaf nodes (affected nightly build). Contributed by Benoit Wiart (benoit.wiart at gmail.com)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55056">
      Bug
      55056</a> - wasted work in Data.append(). Contributed by Adrian Nistor (nistor1 at illinois.edu)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55129">
      Bug
      55129</a> -  Change Javadoc generation per CVE-2013-1571, VU#225657.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55187">
      Bug
      55187</a> - Integer overflow when computing ONE_YEAR_MS in HTTP CacheManager.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55208">
      Bug
      55208</a> - JSR223 language entries are duplicated; fold to lower case.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55203">
      Bug
      55203</a> - TestBeanGUI - wrong language settings found.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55065">
      Bug
      55065</a> - Useless processing in Spline3.converge(). Contributed by Adrian Nistor (nistor1 at illinois.edu)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55064">
      Bug
      55064</a> - Useless processing in ReportTreeListener.isValidDragAction(). Contributed by Adrian Nistor (nistor1 at illinois.edu)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55242">
      Bug
      55242</a> - BeanShell Client jar throws exceptions after upgrading to 2.8.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55288">
      Bug
      55288</a> - JMeter should default to 0 retries for HTTP requests.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55405">
      Bug
      55405</a> - ant download_jars task fails if lib/api or lib/doc are missing. Contributed by Antonio Gomes Rodrigues.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55427">
      Bug
      55427</a> - TestBeanHelper should ignore properties not supported by GenericTestBeanCustomizer</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55459">
      Bug
      55459</a> - Elements using ComboStringEditor lose the input value if user selects another Test Element</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54152">
      Bug
      54152</a> - In distributed testing : activeThreads always show 0 in GUI and Summariser</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55509">
      Bug
      55509</a> - Allow Plugins to be notified of remote thread number progression</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55572">
      Bug
      55572</a> - Detail popup of parameter does not show a Scrollbar when content exceeds display</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55580">
      Bug
      55580</a> -  Help pane does not scroll to start for &lt;a href="#"&gt; links</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55600">
      Bug
      55600</a> - JSyntaxTextArea : Strange behaviour on first undo</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55655">
      Bug
      55655</a> - NullPointerException when Remote stopping /shutdown all if one engine did not start correctly. Contributed by UBIK Load Pack (support at ubikloadpack.com)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55657">
      Bug
      55657</a> - Remote and Local Stop/Shutdown buttons state does not take into account local / remote status </li>

</ul>




<h2 class="ch_section" id="Improvements">Improvements</h2>


<h3>HTTP Samplers and Proxy</h3>

<ul>

<li>HTTP Request: Small user interaction improvements in Row parameter Detail Box. Contributed by Milamber</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55255">
      Bug
      55255</a> - Allow Body in HTTP DELETE method to support API that use it (like ElasticSearch).</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53480">
      Bug
      53480</a> - Add Kerberos support to Http Sampler (HttpClient4). Based on patch by Felix Schumacher (felix.schumacher at internetallee.de)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54874">
      Bug
      54874</a> - Support device in addition to source IP address. Based on patch by Dan Fruehauf (malkodan at gmail.com)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55488">
      Bug
      55488</a> - Add .ico and .woff file extension to default suggested exclusions in proxy recorder. Contributed by Antonio Gomes Rodrigues</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55525">
      Bug
      55525</a> - Proxy should support alias for keyserver entry</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55531">
      Bug
      55531</a> - Proxy recording and redirects. Added code to disable redirected samples.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55507">
      Bug
      55507</a> - Proxy SSL recording does not handle external embedded resources well</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55632">
      Bug
      55632</a> - Have a new implementation of htmlParser for embedded resources parsing with better performances</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55653">
      Bug
      55653</a> - HTTP(S) Test Script Recorder should set TransactionController property "Include duration of timer and pre-post processors in generated sample" to false</li>

</ul>


<h3>Other samplers</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54788">
      Bug
      54788</a> - JMS Point-to-Point Sampler - GUI enhancements to increase readability and ease of use. Contributed by Bruno Antunes (b.m.antunes at gmail.com)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54798">
      Bug
      54798</a> - Using subject from EML-file for SMTP Sampler. Contributed by Mikhail Epikhin (epihin-m at yandex.ru)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54759">
      Bug
      54759</a> - SSLPeerUnverifiedException using HTTPS , property documented.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54896">
      Bug
      54896</a> - JUnit sampler gives only "failed to create an instance of the class" message with constructor problems.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55084">
      Bug
      55084</a> - Add timeout support for JDBC Request. Contributed by Mikhail Epikhin (epihin-m at yandex.ru)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55403">
      Bug
      55403</a> - Enhancement to OS sampler: Support for timeout</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55518">
      Bug
      55518</a> - Add ability to limit number of cached PreparedStatements per connection when "Prepared Select Statement", "Prepared Update Statement" or "Callable Statement" query type is selected</li>

</ul>


<h3>Controllers</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54271">
      Bug
      54271</a> - Module Controller breaks if test plan is renamed.</li>

</ul>


<h3>Listeners</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54532">
      Bug
      54532</a> - Improve Response Time Graph Y axis scale with huge values or small values (&lt; 1000ms). Add a new field to define increment scale. Contributed by Milamber based on patch by Luca Maragnani (luca.maragnani at gmail.com)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54576">
      Bug
      54576</a> - View Results Tree : Add a CSS/JQuery Tester.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54777">
      Bug
      54777</a> - Improve Performance of default ResultCollector. Based on patch by Mikhail Epikhin (epihin-m at yandex.ru)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55389">
      Bug
      55389</a> - Show IP source address in request data</li>

</ul>


<h3>Timers, Assertions, Config, Pre- &amp; Post-Processors</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54789">
      Bug
      54789</a> - XPath Assertion - GUI enhancements to increase readability and ease of use.</li>

</ul>


<h3>Functions</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54991">
      Bug
      54991</a> - Add functions to encode/decode URL encoded chars (__urlencode and __urldecode). Contributed by Milamber.</li>

</ul>


<h3>I18N</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55241">
      Bug
      55241</a> - Need GUI Editor to process fields which are based on Enums with localised display strings</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55440">
      Bug
      55440</a> - ComboStringEditor should allow tags to be language dependent</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55432">
      Bug
      55432</a> - CSV Dataset Config loses sharing mode when switching languages</li>

</ul>


<h3>General</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54584">
      Bug
      54584</a> - MongoDB plugin. Based on patch by Jan Paul Ettles (janpaulettles at gmail.com)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54669">
      Bug
      54669</a> - Add flag forcing non-GUI JVM to exit after test. Contributed by Scott Emmons</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=42428">
      Bug
      42428</a> - Workbench not saved with Test Plan. Contributed by Dzmitry Kashlach (dzmitrykashlach at gmail.com)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54825">
      Bug
      54825</a> - Add shortcuts to move elements in the tree. Contributed by Benoit Wiart (benoit.wiart at gmail.com)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54834">
      Bug
      54834</a> - Improve Drag &amp; Drop in the jmeter tree. Contributed by Benoit Wiart (benoit.wiart at gmail.com)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54839">
      Bug
      54839</a> - Set the application name on Mac. Contributed by Benoit Wiart (benoit.wiart at gmail.com)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54841">
      Bug
      54841</a> - Correctly handle the quit shortcut on Mac Os (CMD-Q). Contributed by Benoit Wiart (benoit.wiart at gmail.com)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54844">
      Bug
      54844</a> - Set the application icon on Mac Os. Contributed by Benoit Wiart (benoit.wiart at gmail.com)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54864">
      Bug
      54864</a> - Enable multi selection drag &amp; drop in the tree without having to start dragging before releasing Shift or Control. Contributed by Benoit Wiart (benoit.wiart at gmail.com)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54945">
      Bug
      54945</a> - Add Shutdown Hook to enable trapping kill or CTRL+C signals.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54990">
      Bug
      54990</a> - Download large files avoiding outOfMemory.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55085">
      Bug
      55085</a> - UX Improvement : Ability to create New Test Plan from Templates. Contributed by UBIK Load Pack (support at ubikloadpack.com)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55172">
      Bug
      55172</a> - Provide plugins a way to add Top Menu and menu items.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55202">
      Bug
      55202</a> - Add syntax color for scripts elements (BeanShell, BSF, and JSR223) and JDBC elements with RSyntaxTextArea. Contributed by Milamber based on patch by Marko Vlahovic (vlahovic74 at gmail.com)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55175">
      Bug
      55175</a> - HTTPHC4Impl refactoring to allow better inheritance.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55236">
      Bug
      55236</a> - Templates - provide button to reload template details.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55237">
      Bug
      55237</a> - Template system should support relative fileName entries.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55423">
      Bug
      55423</a> - BatchSampleSender: Reduce locking granularity by moving listener.processBatch outside of synchronized block</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55424">
      Bug
      55424</a> - Add Stripping to existing SampleSenders</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55451">
      Bug
      55451</a> - Test Element GUI with JSyntaxTextArea scroll down when text content is long enough to add a Scrollbar</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55513">
      Bug
      55513</a> - StreamCopier cannot be used with System.err or System.out as it closes the output stream</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55514">
      Bug
      55514</a> - SystemCommand should support arbitrary input and output streams</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55515">
      Bug
      55515</a> - SystemCommand should support chaining of commands</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55606">
      Bug
      55606</a> - Use JSyntaxtTextArea for Http Request, JMS Test Elements</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55651">
      Bug
      55651</a> - Change JMeter application icon to Apache plume icon</li>

</ul>


<h2 class="ch_section" id="Non-functional changes">Non-functional changes</h2>

<ul>

<li>Updated to jsoup-1.7.2</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54776">
      Bug
      54776</a> - Update the dependency on Bouncy Castle to 1.48. Contributed by Emmanuel Bourg (ebourg at apache.org)</li>

<li>Updated to HttpComponents Client 4.2.6 (from 4.2.3)</li>

<li>Updated to HttpComponents Core 4.2.5 (from 4.2.3)</li>

<li>Updated to commons-codec 1.8 (from 1.6)</li>

<li>Updated to commons-io 2.4 (from 2.2)</li>

<li>Updated to commons-logging 1.1.3 (from 1.1.1)</li>

<li>Updated to commons-net 3.3 (from 3.1)</li>

<li>Updated to jdom-1.1.3 (from 1.1.2)</li>

<li>Updated to jodd-lagarto and jodd-core 3.4.8 (from 3.4.1)</li>

<li>Updated to junit 4.11 (from 4.10)</li>

<li>Updated to slf4j-api 1.7.5 (from 1.7.2)</li>

<li>Updated to tika 1.4 (from 1.3)</li>

<li>Updated to xmlgraphics-commons 1.5 (from 1.3.1)</li>

<li>Updated to xstream 1.4.4 (from 1.4.2)</li>

<li>Updated to BouncyCastle 1.49 (from 1.48)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54912">
      Bug
      54912</a> - JMeterTreeListener should use constants. Contributed by Benoit Wiart (benoit.wiart at gmail.com)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54903">
      Bug
      54903</a> - Remove the dependency on the Activation Framework. Contributed by Emmanuel Bourg (ebourg at apache.org)</li>

<li>Moved commons-lang (2.6) to lib/doc as it's only needed by Velocity.</li>

<li>Re-organised and simplified NOTICE and LICENSE files.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55411">
      Bug
      55411</a> -  NativeCommand could be useful elsewhere. Copied code to o.a.jorphan.exec.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55435">
      Bug
      55435</a> - ComboStringEditor could be simplified to make most settings final</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55436">
      Bug
      55436</a> - ComboStringEditor should implement ClearGui</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55463">
      Bug
      55463</a> - Component.requestFocus() is discouraged; use requestFocusInWindow() instead</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55486">
      Bug
      55486</a> - New JMeter Logo. Contributed by UBIK Load Pack (support at ubikloadpack.com)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55548">
      Bug
      55548</a> - Tidy up use of TestElement.ENABLED; use TestElement.isEnabled()/setEnabled() throughout</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55617">
      Bug
      55617</a> - Improvements to jorphan collection. Contributed by Benoit Wiart (benoit.wiart at gmail.com)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55623">
      Bug
      55623</a> - Invalid/unexpected configuration values should not be silently ignored</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55626">
      Bug
      55626</a> - Rename HTTP Proxy Server as HTTP(S) Test Script Recorder</li>

</ul>


<h2 class="ch_section" id="Thanks">Thanks</h2>

<p>We thank all contributors mentioned in bug and improvement sections above:
<ul>

<li>Bruno Antunes (b.m.antunes at gmail.com)</li>

<li>Emmanuel Bourg (ebourg at apache.org)</li>

<li>Scott Emmons</li>

<li>Mikhail Epikhin (epihin-m at yandex.ru)</li>

<li>Dzmitry Kashlach (dzmitrykashlach at gmail.com)</li>

<li>Luca Maragnani (luca.maragnani at gmail.com)</li>

<li>Milamber</li>

<li>Adrian Nistor (nistor1 at illinois.edu)</li>

<li>Antonio Gomes Rodrigues (ra0077 at gmail.com)</li>

<li>UBIK Load Pack (support at ubikloadpack.com)</li>

<li>Benoit Wiart (benoit.wiart at gmail.com)</li>

</ul>

<br>
We also thank bug reporters who helped us improve JMeter. <br>
For this release we want to give special thanks to the following reporters for the clear reports and tests made after our fixes:
<ul>

<li>Immanuel Hayden (immanuel.hayden at gmail.com)</li>

<li>Danny Lade (dlade at web.de)</li>

<li>Brent Cromarty (brent.cromarty at yahoo.ca)</li>

<li>Wolfgang Heider (wolfgang.heider at racon.at)</li>

<li>Shmuel Krakower (shmulikk at gmail.com)</li>

</ul>


Apologies if we have omitted anyone else.
 </p>




<h1>Version 2.9</h1>


<h2>New and Noteworthy</h2>


<h3>
<u>Core Improvements:</u>
</h3>


<h4>* A new Extractor that uses CSS or jquery-like selector syntax has been introduced,
it allows using either JODD or JSOUP implementations</h4>

<p>

<figure>
<a href="./images/screenshots/changes/2.9/01_css_jquery_extractor.png"><img src="./images/screenshots/changes/2.9/01_css_jquery_extractor.png" width="762" height="277" alt=""></a>
<figcaption></figcaption>
</figure>

</p>

<p>Result: the title of the page in a JMeter variable
<figure>
<a href="./images/screenshots/changes/2.9/01_css_jquery_extractor_resul.png"><img src="./images/screenshots/changes/2.9/01_css_jquery_extractor_resul.png" width="719" height="171" alt=""></a>
<figcaption></figcaption>
</figure>

</p>

<h4>* JMeter can now handle different types of documents (PDF, MsOffice files, Apache OpenOffice's files, &hellip;)
 within different elements </h4>

<ul>
    
<li>Regular Expression Extractor, extract text from documents</li>
    
<li>Assertion Response, check text in documents</li>
    
<li>View Results Tree, view as a text the documents</li>

</ul>

<p>

<figure>
<a href="./images/screenshots/changes/2.9/02_document_render_view_results_tree.png"><img src="./images/screenshots/changes/2.9/02_document_render_view_results_tree.png" width="761" height="345" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h4>* A new Regex User Parameters Pre-Processor that enables injecting input parameter names and values
using a reference extracted by Regular Expression Extractor from a previous response</h4>

<p>

<figure>
<a href="./images/screenshots/changes/2.9/13_regex_user_params.png"><img src="./images/screenshots/changes/2.9/13_regex_user_params.png" width="727" height="138" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h4>* TCP Sampler: new options</h4>

<p>TCP Sampler has been enhanced with new options to allow setting <b>Close Connection</b>,
 <b>SO_LINGER</b> and  <b>End of line(EOL) byte value</b>

<figure>
<a href="./images/screenshots/changes/2.9/03_new_options_tcp_sampler.png"><img src="./images/screenshots/changes/2.9/03_new_options_tcp_sampler.png" width="1147" height="302" alt=""></a>
<figcaption></figcaption>
</figure>

</p>

<h4>* A new function <i>__escapeOroRegexpChars(,)</i> has been introduced quote ORO regexp meta characters</h4>

<h4>* ForEach Controller: new fields</h4>

<p>ForEach Controller has now 2 new fields to control start and end of loop
<figure>
<a href="./images/screenshots/changes/2.9/04_for_each_new_fields.png"><img src="./images/screenshots/changes/2.9/04_for_each_new_fields.png" width="320" height="203" alt=""></a>
<figcaption></figcaption>
</figure>

</p>

<h4>* Result Status Action Handler now has a new option to "Start next thread loop"</h4>

<p>

<figure>
<a href="./images/screenshots/changes/2.9/05_result_status_action_handler.png"><img src="./images/screenshots/changes/2.9/05_result_status_action_handler.png" width="722" height="132" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h4>* JMS Publisher: new option</h4>

<p>JMS Publisher can now send Bytes Messages</p>

<figure>
<a href="./images/screenshots/changes/2.9/11_jms_publisher_bytes.png"><img src="./images/screenshots/changes/2.9/11_jms_publisher_bytes.png" width="833" height="701" alt=""></a>
<figcaption></figcaption>
</figure>


<h4>* Memory and performance improvements</h4>

<p>Significant improvements have been done in this version on memory usage per Thread and CPU when more
than one Post Processor is used as child of a Sampler</p>

<p>JSR223 Elements (enable using Groovy, Scala, &hellip; as scripting languages) have been improved to enable caching
of Compilation results when scripts are passed in Text area</p>

<figure>
<a href="./images/screenshots/changes/2.9/12_jsr223_sampler.png"><img src="./images/screenshots/changes/2.9/12_jsr223_sampler.png" width="841" height="470" alt=""></a>
<figcaption></figcaption>
</figure>


<p>Some configuration defaults have changed to improve performances by default(see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54412">
      Bug
      54412</a>),
see description in New and Noteworthy section.
<ul>
    
<li>Distributed testing now uses MODE_STRIPPED_BATCH, which returns samples in batch mode (every 100 samples
     or every minute by default). Note also that MODE_STRIPPED_BATCH strips response data from SampleResult,
     so if you need it change to another mode (mode property in jmeter.properties)</li>
    
<li>Result data are now saved to CSV by default (jmeter.save.saveservice.output_format in jmeter.properties)</li>

</ul>

</p>


<h4>* XPath Assertion now enables using a JMeter variable as input</h4>

<p>

<figure>
<a href="./images/screenshots/changes/2.9/14_xpath_assertion.png"><img src="./images/screenshots/changes/2.9/14_xpath_assertion.png" width="800" height="317" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3>
<u>GUI and ergonomy Improvements:</u>
</h3>

<h4>* Search feature has been improved to search within more internal fields of elements and expand search results</h4>

<h4>* Copy/paste is now possible between 2 JMeter instances &gt;= 2.9 version</h4>

<p>Copy element(s) from one JMeter instance:
<figure>
<a href="./images/screenshots/changes/2.9/06_copy_paste_between_2_jmeter1.png"><img src="./images/screenshots/changes/2.9/06_copy_paste_between_2_jmeter1.png" width="618" height="262" alt=""></a>
<figcaption></figcaption>
</figure>

</p>

<p>Paste element(s) into a second JMeter instance:
<figure>
<a href="./images/screenshots/changes/2.9/06_copy_paste_between_2_jmeter2.png"><img src="./images/screenshots/changes/2.9/06_copy_paste_between_2_jmeter2.png" width="617" height="278" alt=""></a>
<figcaption></figcaption>
</figure>

</p>

<h4>* HTTP Header Manager</h4>

<p>Allow copy from clipboard to HeaderPanel, headers are supposed to be separated by new line
 and have the following form <i>name:value</i>

<figure>
<a href="./images/screenshots/changes/2.9/07_header_panel_add_from_clipboard.png"><img src="./images/screenshots/changes/2.9/07_header_panel_add_from_clipboard.png" width="661" height="263" alt=""></a>
<figcaption></figcaption>
</figure>

</p>

<h4>* Module Controller</h4>

<p>Module Controller has been improved to better render referenced controller and expand it by clicking on a new button
<figure>
<a href="./images/screenshots/changes/2.9/08_module_controller_improvements.png"><img src="./images/screenshots/changes/2.9/08_module_controller_improvements.png" width="832" height="274" alt=""></a>
<figcaption></figcaption>
</figure>

</p>

<h4>* HTTP Proxy Server</h4>

<p>HTTP Proxy Server now has a button to add a set of default exclusions for URL patterns,
this list can be configured through property : <i>proxy.excludes.suggested</i>

<figure>
<a href="./images/screenshots/changes/2.9/09_proxy_excludes_suggested.png"><img src="./images/screenshots/changes/2.9/09_proxy_excludes_suggested.png" width="811" height="214" alt=""></a>
<figcaption></figcaption>
</figure>

</p>

<h4>* Rendering of target controller has been improved in HTTP Proxy Server</h4>


<h3>
<u>HTTP Proxy Server recording:</u>
</h3>

<p>* HTTP Proxy Server now automatically uses HTTP Request with Raw Post Body mode for
samples that only have one unnamed argument (JSON, XML, GWT, &hellip;)</p>

<p>* HTTP Proxy Server does not force user to select the type of Sampler in HTTP Sampler Settings,
 this allows easier switch between implementations as Sampler do not have this information set anymore</p>
 
<p>

<figure>
<a href="./images/screenshots/changes/2.9/10_http_proxy_dont_force_http_type.png"><img src="./images/screenshots/changes/2.9/10_http_proxy_dont_force_http_type.png" width="484" height="307" alt=""></a>
<figcaption></figcaption>
</figure>

</p>

<p>* SamplerCreator interface has been enriched to meet new requirements for plug-in providers</p>

<p>* It is now possible to create binary sampler for x-www-form-urlencoded POST request by
modifying <i>proxy.binary.types</i> property to add application/x-www-form-urlencoded </p>

<p>* Improved timestamp format auto-detection when reading CSV files</p>




<h2>Known bugs</h2>


<p>The Once Only controller behaves correctly under a Thread Group or Loop Controller,
but otherwise its behaviour is not consistent (or clearly specified).</p>


<p>Listeners don't show iteration counts when a If Controller has a condition which is always false from the first iteration (see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52496">
      Bug
      52496</a>).
A workaround is to add a sampler at the same level as (or superior to) the If Controller.
For example a Test Action sampler with 0 wait time (which doesn't generate a sample),
or a Debug Sampler with all fields set to False (to reduce the sample size).
</p>


<p>Webservice sampler does not consider the HTTP response status to compute the status of a response, thus a response 500 containing a non empty body will be considered as successful, see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54006">
      Bug
      54006</a>.
To workaround this issue, ensure you always read the response and add a Response Assertion checking text inside the response.
</p>


<p>
Changing language can break part of the configuration of the following elements (see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53679">
      Bug
      53679</a>):
<ul>
    
<li>CSV Data Set Config (sharing mode will be lost)</li>
    
<li>Constant Throughput Timer (Calculate throughput based on will be lost)</li>

</ul>

</p>


<p>
The numbers that appear to the left of the green box are the number of active threads / total number of threads,
these only apply to a locally run test; they do not include any threads started on remote systems when using client-server mode, (see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54152">
      Bug
      54152</a>).
</p>


<p>
Note that there is a bug in Java on some Linux systems that manifests
itself as the following error when running the test cases or JMeter itself:
<pre>
 [java] WARNING: Couldn't flush user prefs:
 java.util.prefs.BackingStoreException:
 java.lang.IllegalArgumentException: Not supported: indent-number
</pre>
This does not affect JMeter operation.
</p>




<h2>Incompatible changes</h2>


<p>
<b>JMeter requires now a Java 6 runtime or higher.</b>
</p>


<p>Some configuration defaults have changed to improve performances by default (see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54412">
      Bug
      54412</a>),
see description in New and Noteworthy section.</p>


<p>Webservice sampler now adds to request the headers that are set through Header Manager, these were previously ignored</p>


<p>
<i>jdbcsampler.cachesize</i> property has been removed, it previously limited the size of a per connection cache of Map &lt; String,
PreparedStatement &gt; , it also limited the size of this
map which held the PreparedStatement for SQL queries. This limitation provoked a bug <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53995">
      Bug
      53995</a>.
It has been removed so now size of these 2 maps is not limited anymore. This change changes behaviour as starting from
this version no PreparedStatement will be closed during the test.</p>


<p>Starting with this version, there are some important changes on JSR223 Test Elements:
<ul>
    
<li>JSR223 Test Elements that have an invalid filename (not existing or unreadable) will make test fail instead of
    making the element silently work</li>
    
<li>In JSR223 Test Elements: responseCodeOk, responseMessageOK and successful are set before
     script is executed, if responseData is set it will not be overridden anymore by a toString() on script return value</li>

</ul>

</p>


<p>View Results Tree now considers response with missing content type as text.</p>


<p>In remote Test mode, JMeter now exits in error if one of the remote engines cannot be configured,
previously it started the test with available engines.</p>




<h2>Bug fixes</h2>


<h3>HTTP Samplers and Proxy</h3>

<ul>

<li>Don't log spurious warning messages when using concurrent pool embedded downloads with Cache Manager or CookieManager</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54057">
      Bug
      54057</a>- Proxy option to set user and password at startup (-u and -a) not working with HTTPClient 4</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54187">
      Bug
      54187</a> - Request tab does not show headers if request fails</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53840">
      Bug
      53840</a> - Proxy Recording : Response message: URLDecoder: Illegal hex characters in escape (%) pattern - For input string: "" "</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54351">
      Bug
      54351</a> - HC4 and URI fragments is failing</li>

</ul>


<h3>Other Samplers</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53997">
      Bug
      53997</a> - LDAP Extended Request: Escape ampersand (&amp;), left angle bracket (&lt;)
and right angle bracket (&gt;) in search filter tag in XML response data</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53995">
      Bug
      53995</a> - AbstractJDBCTestElement shares PreparedStatement between multi-threads</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54119">
      Bug
      54119</a> - HTTP 307 response is not redirected</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54326">
      Bug
      54326</a> - AjpSampler send file in post throws FileNotFoundException</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54331">
      Bug
      54331</a> - AjpSampler throws null pointer on GET request that are protected</li>

</ul>


<h3>Controllers</h3>

<ul>

</ul>


<h3>Listeners</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54088">
      Bug
      54088</a> - The type video/f4m is text, not binary</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54166">
      Bug
      54166</a> - ViewResultsTree could not render the HTML response: handle failure to parse HTML</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54287">
      Bug
      54287</a> - Incorrect Timestamp in Response Time Graph when using a date with time in Date format field</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54451">
      Bug
      54451</a> - Response Time Graph reports wrong times when the are many samples for same time</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54459">
      Bug
      54459</a> - CSVSaveService does not handle date parsing very well</li>

</ul>


<h3>Timers, Assertions, Config, Pre- &amp; Post-Processors</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54058">
      Bug
      54058</a> - In HTTP Request Defaults, the value of field "Embedded URLs must match: is not saved if the check box "Retrieve All  Embedded Resources" is not checked.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54375">
      Bug
      54375</a> - Regular Expression Extractor : When regex syntax is wrong, post processing is stopped</li>

</ul>


<h3>Functions</h3>

<ul>

</ul>


<h3>I18N</h3>

<ul>

</ul>


<h3>General</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53975">
      Bug
      53975</a> - Variables replacement doesn't work with option "Delay thread creation until needed"</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54055">
      Bug
      54055</a> - View Results tree: = signs are stripped from parameter values at HTTP tab</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54129">
      Bug
      54129</a> - Search Feature does not find text although existing in elements </li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54023">
      Bug
      54023</a> - Unable to start JMeter from a root directory and if the full path of JMeter installation contains one or more spaces (Unix/linux)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54172">
      Bug
      54172</a> - Duplicate shortcut key not working and CTRL+C / CTRL+V / CTRL+V do not cancel default event</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54057">
      Bug
      54057</a> - Proxy option to set user and password at startup (-u and -a) not working with HTTPClient 4</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54267">
      Bug
      54267</a> - Start Next Thread Loop setting doesn't work in custom thread groups</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54413">
      Bug
      54413</a> - DataStrippingSampleSender returns 0 for number of bytes of any response</li>

</ul>




<h2>Improvements</h2>


<h3>HTTP Samplers</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54185">
      Bug
      54185</a> - Allow query strings in paths that start with HTTP or HTTPS</li>

</ul>


<h3>Other samplers</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54004">
      Bug
      54004</a> - Webservice Sampler : Allow adding headers to request with Header Manager</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54106">
      Bug
      54106</a> - JSR223TestElement should check for file existence when a filename is set instead of using Text Area content </li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54107">
      Bug
      54107</a> - JSR223TestElement : Enable compilation and caching of Script Text</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54109">
      Bug
      54109</a> - JSR223TestElement : SampleResult properties should be set before entering script to allow user setting different code</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54230">
      Bug
      54230</a> - TCP Sampler, additions of "Close Connection", "SO_LINGER" and "End of line(EOL) byte value" options</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54182">
      Bug
      54182</a> - Support sending of ByteMessage for JMS Publisher.</li>

</ul>


<h3>Controllers</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54131">
      Bug
      54131</a> - ForEach Controller : Add start and end index for looping over variables</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54132">
      Bug
      54132</a> - Module Controller GUI : Improve rendering of referenced controller</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54155">
      Bug
      54155</a> - ModuleController : Add a shortcut button to unfold the tree up to referenced controller and highlight it</li>

</ul>


<h3>Listeners</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54200">
      Bug
      54200</a> - Add support of several document types (like Apache OpenOffice's files, MS Office's files, PDF's files, etc.)
to the elements View Results Tree, Assertion Response and Regular Expression Extractor (using Apache Tika)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54226">
      Bug
      54226</a> - View Results Tree : Show response even when server does not return ContentType header</li>

</ul>


<h3>Timers, Assertions, Config, Pre- &amp; Post-Processors</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54259">
      Bug
      54259</a> - Introduce a new Extractor that uses CSS or jquery-like selector syntax</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=45772">
      Bug
      45772</a> - RegEx User Parameters Post Processor</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54160">
      Bug
      54160</a> - Add support for xpath assertion to apply to a JMeter variable.</li>

</ul>


<h3>Functions</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54189">
      Bug
      54189</a> - Add a function to quote ORO regexp meta characters</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54418">
      Bug
      54418</a> - UUID Function</li>

</ul>


<h3>I18N</h3>

<ul>

</ul>


<h3>General</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54005">
      Bug
      54005</a> - HTTP Mirror Server : Add special headers "X-" to control Response status and response content</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53875">
      Bug
      53875</a> - Include suggested defaults for URL filters on HTTP Proxy</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54031">
      Bug
      54031</a> - Add tooltip to running/total threads indicator </li>

<li>Webservice (SOAP) Request has been deprecated</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54161">
      Bug
      54161</a> - Proxy : be able to create binary sampler for x-www-form-urlencoded POST request</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54154">
      Bug
      54154</a> - HTTP Proxy Server should not force user to select the type of Sampler in HTTP Sampler Settings</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54165">
      Bug
      54165</a> - Proxy Server: Improve rendering of target controller</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=46677">
      Bug
      46677</a> - Copying Test Elements between test plans</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54204">
      Bug
      54204</a> - Result Status Action Handler : Add start next thread loop option</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54232">
      Bug
      54232</a> - Search Feature : Add a button to search and expand results</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54251">
      Bug
      54251</a> - Add tristate checkbox implementation</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54257">
      Bug
      54257</a> - Enhance SamplerCreator interface to meet new requirements</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54258">
      Bug
      54258</a> - Proxy : Use Raw Post Body when Sampler has one unnamed argument, useful for Samplers using POST method by of type JSON, XML, GWT body</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54268">
      Bug
      54268</a> - Improve CPU and memory usage</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54376">
      Bug
      54376</a> - ScopePanel : Allow configuring more precisely scopes</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54412">
      Bug
      54412</a> - Changing JMeter defaults to ensure better performances by default</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54414">
      Bug
      54414</a> - Remote Test should not start if one of the engines fails to start correctly</li>

</ul>


<h2>Non-functional changes</h2>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53956">
      Bug
      53956</a> - Add ability to paste (a list of values) from clipboard for Header Manager</li>

<li>Updated to HttpComponents Client 4.2.3 (from 4.2.1)</li>

<li>Updated to HttpComponents Core 4.2.3 (from 4.2.2)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54110">
      Bug
      54110</a> - BSFTestElement and JSR223TestElement should use shared super-class for common fields</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54199">
      Bug
      54199</a> - Move to Java 6</li>

<li>Upgraded to rhino 1.7R4</li>

</ul>




<h1>Version 2.8</h1>


<h2>New and Noteworthy</h2>


<h3>Core Improvements:</h3>


<h4>Thread Group: New Option <i>Delay thread creation until needed</i>
</h4>

<p>New Option "Delay thread creation until needed" that will create and start threads when needed instead of creating them on Test startup<br>

<b>This new feature allows running tests with a huge number of short lived threads.</b>

<figure>
<a href="./images/screenshots/changes/2.8/12_delay_thread_creation.png"><img src="./images/screenshots/changes/2.8/12_delay_thread_creation.png" width="817" height="296" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h4>HTTP Cookie Manager (IPv6 support)</h4>

<p>Add HTTPClient 4 cookie implementation in JMeter. <br>
Cookie Manager has now the default HC3.1 implementation and a new choice HC4 implementation (compliant with IPv6 address)
<figure>
<a href="./images/screenshots/changes/2.8/11_hc4_cookie.png"><img src="./images/screenshots/changes/2.8/11_hc4_cookie.png" width="635" height="239" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h4>Memory and performance improvements</h4>

<p>Significant improvements have been done in this version on memory usage of JMeterThread</p>

<p>JSR223 Elements (enable using Groovy, scala, &hellip; as scripting languages) have been improved to enable:
<ul>
    
<li>usage of Compilable interface when available to boost CPU usage</li>
    
<li>caching of Compilation when scripts are used as Files</li>

</ul>
See <a href="https://cwiki.apache.org/confluence/display/JMETER/JMeterPerformance">JMeter Performances across versions</a>

</p>


<h4>OS Process Sampler</h4>

<p>Allow defining files for stdout/stderr/stdin.
<figure>
<a href="./images/screenshots/changes/2.8/06_os_sampler_stdout-err-in.png"><img src="./images/screenshots/changes/2.8/06_os_sampler_stdout-err-in.png" width="820" height="531" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h4>HTTP Request: PATCH verb</h4>

<p>Add PATCH verb to HTTP sampler
<figure>
<a href="./images/screenshots/changes/2.8/01_http_patch_verb.png"><img src="./images/screenshots/changes/2.8/01_http_patch_verb.png" width="615" height="340" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h4>HTTP Request: HTTPClient 4 is now the default implementation</h4>

<p>HTTPClient 4 is now the default HTTP Request implementation (and for Proxy element when generating HTTP requests).<br>
Previously the default was the HTTP Java implementation (i.e. the implementation provided by the JVM)
<figure>
<a href="./images/screenshots/changes/2.8/02_http_default_hc4.png"><img src="./images/screenshots/changes/2.8/02_http_default_hc4.png" width="558" height="288" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h4>HTTP Request</h4>

<p>Add Embedded URL Filter to HTTP Request Defaults Control (it was already present for HTTP Requests)
<figure>
<a href="./images/screenshots/changes/2.8/05_http_defaults_url_filter.png"><img src="./images/screenshots/changes/2.8/05_http_defaults_url_filter.png" width="586" height="682" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h4>Miscellaneous</h4>

<ul>
    
<li>CSV Dataset : Embedded new lines are now supported in quoted data</li>
    
<li>JMX files now contain the version of JMeter that created the file</li>
    
<li>JMeter Version is now available as property "jmeter.version"</li>

</ul>

<h3>Reporting Improvements:</h3>


<h4>Response Time Graph</h4>

<p>Add a new visualizer Response Time Graph to draw a line graph showing the evolution of response time for a test
<figure>
<a href="./images/screenshots/changes/2.8/09_resp_time_graph.png"><img src="./images/screenshots/changes/2.8/09_resp_time_graph.png" width="993" height="549" alt=""></a>
<figcaption></figcaption>
</figure>

</p>

<p>Settings for Response Time Graph
<figure>
<a href="./images/screenshots/changes/2.8/08_resp_time_graph_settings.png"><img src="./images/screenshots/changes/2.8/08_resp_time_graph_settings.png" width="989" height="602" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h4>View Results in Table</h4>

<p>Add latency to View Result in Table listener
<figure>
<a href="./images/screenshots/changes/2.8/10_latency_view_results_table.png"><img src="./images/screenshots/changes/2.8/10_latency_view_results_table.png" width="998" height="324" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h4>Aggregate Graph</h4>

<p>Small improvements: legend at left or right is now on 1 column (instead of 1 large line), &hellip;
<figure>
<a href="./images/screenshots/changes/2.8/07_aggregate_graph_legend_left_right.png"><img src="./images/screenshots/changes/2.8/07_aggregate_graph_legend_left_right.png" width="989" height="418" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3>GUI and ergonomy Improvements:</h3>

<h4>HTTP Proxy Server simplifications</h4>

<p>HTTPS Spoofing options have been removed from Proxy as HTTPS recording is directly available since JMeter 2.4.
<figure>
<a href="./images/screenshots/changes/2.8/03_remove_https_spoofing1.png"><img src="./images/screenshots/changes/2.8/03_remove_https_spoofing1.png" width="940" height="277" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h4>HTTP Proxy Server</h4>

<p>Allow URL Filters to be pasted from clipboard
<figure>
<a href="./images/screenshots/changes/2.8/15_add_from_clipboard_filter.png"><img src="./images/screenshots/changes/2.8/15_add_from_clipboard_filter.png" width="707" height="614" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h4>Find in JMeter</h4>

<p>CTRL + F for the new Find feature
<figure>
<a href="./images/screenshots/changes/2.8/14_ctrl_F_shortcut.png"><img src="./images/screenshots/changes/2.8/14_ctrl_F_shortcut.png" width="477" height="157" alt=""></a>
<figcaption></figcaption>
</figure>

ESC key now closes popups.
</p>


<h4>User Interface in GNOME 3</h4>

<p>Display 'Apache JMeter' title in app title bar in Gnome 3
<figure>
<a href="./images/screenshots/changes/2.8/13_gnome3_title.png"><img src="./images/screenshots/changes/2.8/13_gnome3_title.png" width="441" height="253" alt=""></a>
<figcaption></figcaption>
</figure>

</p>




<h2>Known bugs</h2>


<p>The Once Only controller behaves correctly under a Thread Group or Loop Controller,
but otherwise its behaviour is not consistent (or clearly specified).</p>


<p>Listeners don't show iteration counts when a If Controller has a condition which is always false from the first iteration (see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52496">
      Bug
      52496</a>).
A workaround is to add a sampler at the same level as (or superior to) the If Controller.
For example a Test Action sampler with 0 wait time (which doesn't generate a sample),
or a Debug Sampler with all fields set to False (to reduce the sample size).
</p>


<p>
Changing language can break part of the configuration of the following elements (see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53679">
      Bug
      53679</a>):
<ul>
    
<li>CSV Data Set Config (sharing mode will be lost)</li>
    
<li>Constant Throughput Timer (Calculate throughput based on will be lost)</li>

</ul>

</p>


<p>
Note that there is a bug in Java on some Linux systems that manifests
itself as the following error when running the test cases or JMeter itself:
<pre>
 [java] WARNING: Couldn't flush user prefs:
 java.util.prefs.BackingStoreException:
 java.lang.IllegalArgumentException: Not supported: indent-number
</pre>
This does not affect JMeter operation.
</p>




<h2>Incompatible changes</h2>


<p>
When using CacheManager, JMeter now caches responses for GET queries provided header Cache-Control is different from "no-cache" as described in specification.
Furthermore it doesn't put anymore in Cache deprecated entries for "no-cache" responses. See <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53521">
      Bug
      53521</a> and <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53522">
      Bug
      53522</a>

</p>


<p>
A major change has occurred on JSR223 Test Elements, previously variables set up before script execution where stored in ScriptEngineManager which was created once per execution,
now ScriptEngineManager is a singleton shared by all JSR223 elements and only ScriptEngine is created once per execution, variables set up before script execution are now stored
in Bindings created on each execution, see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53365">
      Bug
      53365</a>.
</p>


<p>
JSR223 Test Elements using Script file are now Compiled if ScriptEngine supports this feature, see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53520">
      Bug
      53520</a>.
</p>


<p>
Shortcut for Function Helper Dialog is now CTRL+F1 (CMD + F1 for Mac OS), CTRL+F (CMD+F1 for Mac OS) now opens Search Dialog.
</p>


<p>
By default, the TestCompiler now stores details of which pairs it has seen in Controller instances rather than in a static Set.
[<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53796">
      Bug
      53796</a>]
This gives much better memory behaviour for delayed start test plans, as memory used is proportional to the number of concurrent threads.
With the static Set memory usage was proportional to the total thread count.
This change is very unlikely to cause a problem.
The original behaviour can be restored by setting the property <span class="code">TestCompiler.useStaticSet=true</span>

</p>


<p>
HTTPS Spoofing options have been removed from Proxy as HTTPS recording is directly available since JMeter 2.4.
</p>



<h2>Bug fixes</h2>


<h3>HTTP Samplers and Proxy</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53521">
      Bug
      53521</a> - Cache Manager should cache content with Cache-control=private</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53522">
      Bug
      53522</a> - Cache Manager should not store at all response with header "no-cache" and store other types of Cache-Control having max-age value</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53838">
      Bug
      53838</a> - Pressing "Stop" does not interrupt the TCP sampler</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53911">
      Bug
      53911</a> - JmeterKeystore does not allow for key down the list of certificate</li>

</ul>


<h3>Other Samplers</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53348">
      Bug
      53348</a> - JMeter JMS Point-to-Point Request-Response sampler doesn't work when Request-queue and Receive-queue are different</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53357">
      Bug
      53357</a> - JMS Point to Point reports too high response times in Request Response Mode</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53440">
      Bug
      53440</a> - SSL connection leads to ArrayStoreException on JDK 6 with some KeyManagerFactory SPI</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53511">
      Bug
      53511</a> - access log sampler SessionFilter throws NullPointerException - cookie manager not initialized properly</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53715">
      Bug
      53715</a> - JMeter does not load WSDL</li>

</ul>


<h3>Controllers</h3>

<ul>

</ul>


<h3>Listeners</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53742">
      Bug
      53742</a> - When jmeter.save.saveservice.sample_count is set to true, elapsed time read by listener is always equal to 0</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53774">
      Bug
      53774</a> - RequestViewRaw does not show headers unless samplerData is non-null</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53802">
      Bug
      53802</a> - IdleTime values are not saved to CSV log</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53874">
      Bug
      53874</a> - View Results Tree : If some parameter containing special characters like % is not encoded, RequestViewHTTP fails with java.lang.IllegalArgumentException: URLDecoder: Illegal hex characters in escape (%) pattern and Response is not displayed</li>

</ul>


<h3>Timers, Assertions, Config, Pre- &amp; Post-Processors</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51512">
      Bug
      51512</a> - Cookies aren't inserted into HTTP request with IPv6 Host header</li>

</ul>


<h3>Functions</h3>

<ul>

</ul>


<h3>I18N</h3>

<ul>

</ul>


<h3>General</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53365">
      Bug
      53365</a> - JSR223TestElement should cache ScriptEngineManager</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53520">
      Bug
      53520</a> - JSR223 Elements : Use Compilable interface to improve performances on File scripts</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53501">
      Bug
      53501</a> - Synchronization timer blocks test end.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53750">
      Bug
      53750</a> - TestCompiler saves unnecessary entries in pairing collection</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52266">
      Bug
      52266</a> - Code:Inconsistent synchronization</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53841">
      Bug
      53841</a> - CSVSaveService reads file using JVM default file encoding instead of using the one configured in saveservice.properties</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53953">
      Bug
      53953</a> New: Typo in monitor test plan documentation</li>

</ul>




<h2>Improvements</h2>


<h3>HTTP Samplers</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53675">
      Bug
      53675</a> - Add PATCH verb to HTTP sampler</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53931">
      Bug
      53931</a> - Define HTTPClient 4 for the default HTTP Request (and Proxy element to generate the HTTP requests). Before the default, it was the HTTP Java Sampler</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53934">
      Bug
      53934</a> - Removes HTTPS spoofing options in JMeter HTTP Proxy Server. Since JMeter 2.4, the HTTPS protocol is directly supported by the proxy</li>

</ul>


<h3>Other samplers</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55310">
      Bug
      55310</a> - TestAction should implement Interruptible</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53318">
      Bug
      53318</a> - Add Embedded URL Filter to HTTP Request Defaults Control </li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53782">
      Bug
      53782</a> - Enhance JavaSampler handling of JavaSamplerClient cleanup to use less memory</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53168">
      Bug
      53168</a> - OS Process - allow specification of stdout/stderr/stdin</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53844">
      Bug
      53844</a> - JDBC related elements should check class of Variable Name supposed to contain JDBC Connection Configuration to avoid ClassCastException </li>

</ul>


<h3>Controllers</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53671">
      Bug
      53671</a> - tearDown thread group to run even if shutdown test happens</li>

</ul>


<h3>Listeners</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53566">
      Bug
      53566</a> - Don't log partial responses to the jmeter log</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53716">
      Bug
      53716</a> - Small improvements in aggregate graph: legend at left or right is now on 1 column (instead of 1 large line), no border to the reference's square color, reduce width on some fields</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53718">
      Bug
      53718</a> - Add a new visualizer 'Response Time Graph' to draw a line graph showing the evolution of response time for a test</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53738">
      Bug
      53738</a> - Keep track of number of threads started and finished</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53753">
      Bug
      53753</a> -  Summariser: no point displaying fractional time in most cases</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53749">
      Bug
      53749</a> - TestListener interface could perhaps be split up.
This should reduce per-thread memory requirements and processing,
as only test elements that actually use testIterationStart functionality now need to be handled.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53941">
      Bug
      53941</a> - Add latency to View Result table listener</li>

</ul>


<h3>Timers, Assertions, Config, Pre- &amp; Post-Processors</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53755">
      Bug
      53755</a> - Adding a HttpClient 4 cookie implementation in JMeter.
Cookie Manager has now the default HC3.1 implementation and a new choice HC4 implementation (compliant with IPv6 address)</li>

</ul>


<h3>Functions</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51527">
      Bug
      51527</a> - __time() function : add another option to __time() to provide *seconds* since epoch</li>

</ul>


<h3>I18N</h3>

<ul>

</ul>


<h3>General</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53364">
      Bug
      53364</a> - Sort list of Functions in Function Helper Dialog</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53418">
      Bug
      53418</a> - New Option "Delay thread creation until needed" that will create and start threads when needed instead of creating them on Test startup</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=42245">
      Bug
      42245</a> - Show clear passwords in HTTP Authorization Manager</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53616">
      Bug
      53616</a> - Display 'Apache JMeter' title in app title bar in Gnome 3</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53759">
      Bug
      53759</a> - ClientJMeterEngine performs unnecessary traverse using SearchByClass(TestListener)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52601">
      Bug
      52601</a> - CTRL + F for the new Find feature</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53796">
      Bug
      53796</a> - TestCompiler uses static Set which can grow huge</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53673">
      Bug
      53673</a> - Add JMeter version in the jmx file</li>

<li>Add support for HeapDump to the JMeter non-GUI and GUI client</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53862">
      Bug
      53862</a> - Would be nice to have the JMeter Version available as a property</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53806">
      Bug
      53806</a> -  FileServer should provide thread-safe parsing</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53807">
      Bug
      53807</a> - CSV Dataset does not handle embedded new lines in quoted data</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53879">
      Bug
      53879</a> - GUI : Allow Popups to be closed with ESC key</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53876">
      Bug
      53876</a> - Allow URL Filters (HTTP Proxy) to be pasted from clipboard</li>

</ul>


<h2>Non-functional changes</h2>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53311">
      Bug
      53311</a> - JMeterUtils#runSafe should not throw Error when interrupted</li>

<li>Updated to commons-net-3.1 (from 3.0.1)</li>

<li>Updated to HttpComponents Core 4.2.2 (from 4.1.4) and HttpComponents Client 4.2.1 (from 4.1.3)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53765">
      Bug
      53765</a> - Switch to commons-lang3-3.1</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53884">
      Bug
      53884</a> - wrong Maven groupId for commons-lang</li>

</ul>




<h1>Version 2.7</h1>


<h2>New and Noteworthy</h2>


<h3>OS Process Sampler</h3>

<p>A new System Sampler that can be used to execute commands on the local machine.
<figure>
<a href="./images/screenshots/changes/2.7/01_os_process_sampler.png"><img src="./images/screenshots/changes/2.7/01_os_process_sampler.png" width="629" height="497" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<p>OS Process Sampler results example with DNS lookup command 'dig'
<figure>
<a href="./images/screenshots/changes/2.7/02_os_process_example_results.png"><img src="./images/screenshots/changes/2.7/02_os_process_example_results.png" width="877" height="470" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3>JMS Samplers improvements</h3>

<p>Addition of a "Non Persistent Delivery" option to send "Non-Persistent" (Guaranteed to be delivered at most once. Message loss is not a concern.) JMS messages
<figure>
<a href="./images/screenshots/changes/2.7/11_jms_non_persistent_delivery_mode.png"><img src="./images/screenshots/changes/2.7/11_jms_non_persistent_delivery_mode.png" width="953" height="336" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<p>Support sending of JMS Object Messages to enable sending Objects unmarshalled from XML by XStream
<figure>
<a href="./images/screenshots/changes/2.7/12_jms_sending_objects.png"><img src="./images/screenshots/changes/2.7/12_jms_sending_objects.png" width="808" height="726" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<p>Enable setting JMS Properties through JMS Publisher sampler
<figure>
<a href="./images/screenshots/changes/2.7/13_jms_properties.png"><img src="./images/screenshots/changes/2.7/13_jms_properties.png" width="1029" height="470" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3>Test Action sampler</h3>

<p>Allow premature exit from a loop
<figure>
<a href="./images/screenshots/changes/2.7/07_test_action_next_iter.png"><img src="./images/screenshots/changes/2.7/07_test_action_next_iter.png" width="862" height="167" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3>Webservice Sampler improvements</h3>

<p>Add a jmeter property soap.document_cache to control size of Document Cache
<figure>
<a href="./images/screenshots/changes/2.7/14_ws_document_cache.png"><img src="./images/screenshots/changes/2.7/14_ws_document_cache.png" width="270" height="59" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<p>Make Maintain HTTP Session configurable
<figure>
<a href="./images/screenshots/changes/2.7/15_ws_maintain_session.png"><img src="./images/screenshots/changes/2.7/15_ws_maintain_session.png" width="833" height="505" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3>Aggregate graph: Clustered Bar char with average, median, 90% line, min and max columns</h3>

<p>Aggregate graph changes to Clustered Bar chart, add more columns (median, 90% line, min, max) and options, fixed some bugs
<figure>
<a href="./images/screenshots/changes/2.7/03_aggregate_graph_with_new_cols.png"><img src="./images/screenshots/changes/2.7/03_aggregate_graph_with_new_cols.png" width="1177" height="503" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<p>New settings for aggregate graph
<figure>
<a href="./images/screenshots/changes/2.7/04_aggregate_graph_parameters.png"><img src="./images/screenshots/changes/2.7/04_aggregate_graph_parameters.png" width="1173" height="433" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3>Improvements of HTML report design generated by JMeter Ant task in extras folder</h3>

<p>HTML report example
<figure>
<a href="./images/screenshots/changes/2.7/05_jmeter_ant_task_report_success.png"><img src="./images/screenshots/changes/2.7/05_jmeter_ant_task_report_success.png" width="1264" height="506" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<p>HTML report example with some assertion errors
<figure>
<a href="./images/screenshots/changes/2.7/06_jmeter_ant_task_report_errors.png"><img src="./images/screenshots/changes/2.7/06_jmeter_ant_task_report_errors.png" width="1267" height="550" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3>Mailer Visualizer</h3>

<p>
<ul>

<li>Enable authentication, and connection security with SSL or TLS</li>

<li>Improve GUI design</li>

<li>Add internationalisation (i18n) support</li>

</ul>

<figure>
<a href="./images/screenshots/changes/2.7/10_mailer_visualizer_gui.png"><img src="./images/screenshots/changes/2.7/10_mailer_visualizer_gui.png" width="860" height="403" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3>New Visual Indicator of number of ERROR/FATAL messages in logs</h3>

<p>Indicator shows number of ERROR/FATAL messages in logs, it can be clicked to toggle Log Viewer panel
<figure>
<a href="./images/screenshots/changes/2.7/16_log_errors_counter.png"><img src="./images/screenshots/changes/2.7/16_log_errors_counter.png" width="815" height="633" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3>Dialog box to show detail of a parameter row</h3>

<p>Add a detail button on parameters table to show detail of a Row
<figure>
<a href="./images/screenshots/changes/2.7/08_param_button_detail.png"><img src="./images/screenshots/changes/2.7/08_param_button_detail.png" width="824" height="165" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<p>Detail box example
<figure>
<a href="./images/screenshots/changes/2.7/09_detail_box.png"><img src="./images/screenshots/changes/2.7/09_detail_box.png" width="702" height="454" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3>Plugin writers</h3>

<p>
New interface org.apache.jmeter.engine.util.ConfigMergabilityIndicator has been introduced to tell whether a ConfigTestElement can be merged in Sampler (see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53042">
      Bug
      53042</a>):<br>

<pre>public boolean applies(ConfigTestElement configElement);</pre>

</p>


<p>New interface org.apache.jmeter.protocol.http.proxy.SamplerCreator to allow plugging HTTP based samplers that differ from default HTTP Samplers through Proxy during Recording Phase (see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52674">
      Bug
      52674</a>):<br>

<pre>public String[] getManagedContentTypes();</pre>

<pre>public HTTPSamplerBase createSampler(HttpRequestHdr request, Map&lt;String, String&gt; pageEncodings, Map&lt;String, String&gt; formEncodings);</pre>

<pre>public void populateSampler(HTTPSamplerBase sampler, HttpRequestHdr request, Map&lt;String, String&gt; pageEncodings, Map&lt;String, String&gt; formEncodings) throws Exception;</pre>

</p>





<h2>Known bugs</h2>


<p>The Once Only controller behaves correctly under a Thread Group or Loop Controller,
but otherwise its behaviour is not consistent (or clearly specified).</p>


<p>Listeners don't show iteration counts when a If Controller has a condition which is always false from the first iteration (see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52496">
      Bug
      52496</a>).
A workaround is to add a sampler at the same level as (or superior to) the If Controller.
For example a Test Action sampler with 0 wait time (which doesn't generate a sample),
or a Debug Sampler with all fields set to False (to reduce the sample size).
</p>




<h2>Incompatible changes</h2>


<p>
When doing replacement of User Defined Variables, Proxy will not substitute partial values anymore when "Regexp matching" is used. It will use Perl 5 word matching ("\b")
</p>


<p>
In User Defined Variables, Test Plan, HTTP Sampler Arguments Table, Java Request Defaults, JMS Sampler and Publisher, LDAP Request Defaults and LDAP Extended Request Defaults, rows with
empty Name and Value are no more saved.
</p>


<p>
JMeter now expands the Test Plan tree to the testplan level and no further and selects the root of the tree. Furthermore default value of onload.expandtree is false.
</p>


<p>
Graph Full Results Listener has been removed.
</p>


<p>
When calling "Clear All" command, if Log Viewer is displayed its content will be cleared.
</p>



<h2>Bug fixes</h2>


<h3>HTTP Samplers and Proxy</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52613">
      Bug
      52613</a> - Using Raw Post Body option, text gets encoded</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52781">
      Bug
      52781</a> - Content-Disposition header garbled even if browser compatible headers is checked (HC4) </li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52796">
      Bug
      52796</a> - MonitorHandler fails to clear variables when starting a new parse</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52871">
      Bug
      52871</a> - Multiple Certificates not working with HTTP Client 4</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52885">
      Bug
      52885</a> - Proxy : Recording issues with HTTPS, cookies starting with secure are partly truncated</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52886">
      Bug
      52886</a> - Proxy : Recording issues with HTTPS when spoofing is on, secure cookies are not always changed</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52897">
      Bug
      52897</a> - HTTPSampler : Using PUT method with HTTPClient4 and empty Content Encoding and sending files leads to NullPointerException</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53145">
      Bug
      53145</a> - HTTP Sampler - function in path evaluated too early</li>

</ul>


<h3>Other Samplers</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51737">
      Bug
      51737</a> - TCPSampler : Packet gets converted/corrupted</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52868">
      Bug
      52868</a> - BSF language list should be sorted</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52869">
      Bug
      52869</a> - JSR223 language list currently uses BSF list which is wrong</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52932">
      Bug
      52932</a> - JDBC Sampler : Sampler is not marked in error in an Exception which is not of class IOException, SQLException, IOException occurs</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52916">
      Bug
      52916</a> - JDBC Exception if there is an empty user defined variable</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52937">
      Bug
      52937</a> - Webservice Sampler : Clear Soap Documents Cache at end of Test </li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53027">
      Bug
      53027</a> - JMeter starts throwing exceptions while using SMTP Sample in a test plan with HTTP Cookie Mngr or HTTP Request Defaults</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53072">
      Bug
      53072</a> - JDBC PREPARED SELECT statements should return results in variables like non prepared SELECT</li>

</ul>


<h3>Controllers</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52968">
      Bug
      52968</a> - Option Start Next Loop in Thread Group does not mark parent Transaction Sampler in error when an error occurs</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=50898">
      Bug
      50898</a> - IncludeController : NullPointerException loading script in non-GUI mode if Includers use same element name</li>

</ul>


<h3>Listeners</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=43450">
      Bug
      43450</a> - Listeners/Savers assume SampleResult count is always 1; fixed Generate Summary Results</li>

</ul>


<h3>Assertions</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52848">
      Bug
      52848</a> - NullPointer in "XPath Assertion"</li>

</ul>


<h3>Functions</h3>

<ul>

</ul>


<h3>I18N</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52551">
      Bug
      52551</a> - Function Helper Dialog does not switch language correctly</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52552">
      Bug
      52552</a> - Help reference only works in English</li>

</ul>


<h3>General</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52639">
      Bug
      52639</a> - JSplitPane divider for log panel should be hidden if log is not activated</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52672">
      Bug
      52672</a> - Change Controller action deletes all but one child samplers</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52694">
      Bug
      52694</a> - Deadlock in GUI related to non AWT Threads updating GUI</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52678">
      Bug
      52678</a> - Proxy : When doing replacement of UserDefinedVariables, partial values should not be substituted</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52728">
      Bug
      52728</a> - CSV Data Set Config element cannot coexist with BSF Sampler in same Thread Plan</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52762">
      Bug
      52762</a> - Problem with multiples certificates: first index not used until indexes are restarted</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52741">
      Bug
      52741</a> - TestBeanGUI default values do not work at second time or later</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52783">
      Bug
      52783</a> - oro.patterncache.size property never used due to early init</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52789">
      Bug
      52789</a> - Proxy with Regexp Matching can fail with NullPointerException in Value Replacement if value is null</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52645">
      Bug
      52645</a> - Recording with Proxy leads to OutOfMemory</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52679">
      Bug
      52679</a> - User Parameters columns narrow</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52843">
      Bug
      52843</a> - Sample headerSize and bodySize not being accumulated for subsamples</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52967">
      Bug
      52967</a> - The function __P() couldn't use default value when running with remote server in GUI mode.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=50799">
      Bug
      50799</a> - Having a non-HTTP sampler in a http test plan prevents multiple header managers from working</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52997">
      Bug
      52997</a> - JMeter should not exit without saving Test Plan if saving before exit fails</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53136">
      Bug
      53136</a> - Catching Throwable needs to be carefully handled</li>

</ul>




<h2>Improvements</h2>


<h3>HTTP Samplers</h3>

<ul>

</ul>


<h3>Other samplers</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52775">
      Bug
      52775</a> - JMS Publisher : Add Non Persistent Delivery option</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52810">
      Bug
      52810</a> - Enable setting JMS Properties through JMS Publisher sampler</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52938">
      Bug
      52938</a> - Webservice Sampler : Add a jmeter property soap.document_cache to control size of Document Cache</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52939">
      Bug
      52939</a> - Webservice Sampler : Make MaintainSession configurable</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53073">
      Bug
      53073</a> - Allow to assign the OUT result of a JDBC CALLABLE to JMeter variables</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53164">
      Bug
      53164</a> - New System Sampler</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53172">
      Bug
      53172</a> - OS Process Sampler - allow specification of Environment Variables</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52936">
      Bug
      52936</a> - JMS Publisher : Support sending of JMS Object Messages</li>

</ul>


<h3>Controllers</h3>

<ul>

</ul>


<h3>Listeners</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52603">
      Bug
      52603</a> - MailerVisualizer : Enable SSL , TLS and Authentication</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52698">
      Bug
      52698</a> - Remove Graph Full Results Listener</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53070">
      Bug
      53070</a> - Change Aggregate graph to Clustered Bar chart, add more columns (median, 90% line, min, max) and options, fixed some bugs</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53246">
      Bug
      53246</a> - Mailer Visualizer: improve GUI design and I18N</li>

</ul>


<h3>Timers, Assertions, Config, Pre- &amp; Post-Processors</h3>

<ul>

</ul>


<h3>Functions</h3>

<ul>

</ul>


<h3>I18N</h3>

<ul>

<li>Mailer Visualizer has been internationalized. French translation added. (see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53246">
      Bug
      53246</a>)</li>

</ul>


<h3>General</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=45839">
      Bug
      45839</a> - Test Action : Allow premature exit from a loop</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52614">
      Bug
      52614</a> - MailerModel.sendMail has strange way to calculate debug setting</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52782">
      Bug
      52782</a> - Add a detail button on parameters table to show detail of a Row</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52674">
      Bug
      52674</a> - Proxy : Add a Sampler Creator to allow plugging HTTP based samplers using potentially non textual POST Body (AMF, Silverlight, &hellip;) and customizing them for others</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52934">
      Bug
      52934</a> - GUI : Open Test plan with the tree expanded to the testplan level and no further and select the root of the tree</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52941">
      Bug
      52941</a> - Improvements of HTML report design generated by JMeter Ant task extra</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53042">
      Bug
      53042</a> - Introduce a new method in Sampler interface to allow Sampler to decide whether a config element applies to Sampler</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52771">
      Bug
      52771</a> - Documentation : Added RSS feed on JMeter Home page under link "Subscribe to What's New"</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=42784">
      Bug
      42784</a> - Show the number of errors logged in the GUI</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53256">
      Bug
      53256</a> - Make Clear All command clean LogViewer content</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53261">
      Bug
      53261</a> - Make "Error/fatal" counter added in <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=42784">
      Bug
      42784</a> open Log Viewer panel when Warn Indicator is clicked</li>

</ul>


<h2>Non-functional changes</h2>

<ul>

<li>Upgraded to rhino 1.7R3 (was js-1.7R2.jar).
Note: the Maven coordinates for the jar were changed from rhino:js to org.mozilla:rhino.
This does not affect JMeter directly, but might cause problems if using JMeter in a Maven project
with other code that depends on an earlier version of the Rhino Javascript jar.
</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52675">
      Bug
      52675</a> - Refactor Proxy and HttpRequestHdr to allow Sampler Creation by Proxy</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52680">
      Bug
      52680</a> - Mention version in which function was introduced</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52788">
      Bug
      52788</a> - HttpRequestHdr : Optimize code to avoid useless work</li>

<li>JMeter Ant (ant-jmeter-1.1.1.jar) task was upgraded from 1.0.9 to 1.1.1</li>

<li>Updated to commons-io 2.2 (from 2.1)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53129">
      Bug
      53129</a> - Upgrade XStream from 1.3.1 to 1.4.2</li>

<li>Updated to httpcomponents-client 4.1.3 (from 4.1.2)</li>

<li>Updated JMeter distributed testing guide (jmeter_distributed_testing_step_by_step.pdf). Changes source format to OpenOffice odt (from sxw)</li>

</ul>




<h1>Version 2.6</h1>


<h2>New and Noteworthy</h2>


<h3>Toolbar</h3>

<p>A new toolbar on JMeter's main window
<figure>
<a href="./images/screenshots/changes/2.6/01_toolbar.png"><img src="./images/screenshots/changes/2.6/01_toolbar.png" width="986" height="91" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3>JMeter start test button</h3>

<p>A new menu option and button allow to start a test ignoring the Pause Timers
<figure>
<a href="./images/screenshots/changes/2.6/02_ignore_pause_timers.png"><img src="./images/screenshots/changes/2.6/02_ignore_pause_timers.png" width="201" height="58" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3>JMeter GUI Look and Feel</h3>

<p>Allow System or CrossPlatform LAF to be set from options menu
<figure>
<a href="./images/screenshots/changes/2.6/03_look_and_feel.png"><img src="./images/screenshots/changes/2.6/03_look_and_feel.png" width="373" height="162" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3>JMeter GUI - duplicate node</h3>

<p>Add "duplicate node" in context menu
<figure>
<a href="./images/screenshots/changes/2.6/04_duplicate_context_menu.png"><img src="./images/screenshots/changes/2.6/04_duplicate_context_menu.png" width="323" height="136" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3>JMeter tree view - search facility</h3>

<p>Functionality to search by keyword in Samplers Tree View
<figure>
<a href="./images/screenshots/changes/2.6/05_search_tree.png"><img src="./images/screenshots/changes/2.6/05_search_tree.png" width="554" height="219" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3>HTTP Request - raw request pane</h3>

<p>Improve HTTP Request GUI to better show parameters without name (GWT RPC request or SOAP request for example)
<figure>
<a href="./images/screenshots/changes/2.6/06_post_data.png"><img src="./images/screenshots/changes/2.6/06_post_data.png" width="759" height="461" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3>HTTP Request - other changes</h3>

<p>
<ul>

<li>Allow multiple selection in arguments panel</li>

<li>Allow to add (paste) entries from the clipboard to an arguments list</li>

<li>Ability to move variables up or down in HTTP Request</li>

</ul>

<figure>
<a href="./images/screenshots/changes/2.6/07_multiple_selection_params.png"><img src="./images/screenshots/changes/2.6/07_multiple_selection_params.png" width="875" height="218" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3>HTTP Request - file protocol</h3>

<p>Better support for file: protocol in HTTP sampler
<figure>
<a href="./images/screenshots/changes/2.6/08_file_protocol.png"><img src="./images/screenshots/changes/2.6/08_file_protocol.png" width="489" height="662" alt=""></a>
<figcaption></figcaption>
</figure>

</p>

<p>Retrieve embedded resources with file: protocol
<figure>
<a href="./images/screenshots/changes/2.6/09_file_protocol_embedded.png"><img src="./images/screenshots/changes/2.6/09_file_protocol_embedded.png" width="700" height="138" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3>HTTP Request - Ignore embedded resources failed</h3>

<p>Enable "ignore failed" for embedded resources
<figure>
<a href="./images/screenshots/changes/2.6/26_ignore_child_failed.png"><img src="./images/screenshots/changes/2.6/26_ignore_child_failed.png" width="820" height="246" alt=""></a>
<figcaption></figcaption>
</figure>

</p>

<p>Parent success with a embedded resource failed
<figure>
<a href="./images/screenshots/changes/2.6/27_succes_with_child_failed.png"><img src="./images/screenshots/changes/2.6/27_succes_with_child_failed.png" width="590" height="214" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3>View Results in Table - child sample display</h3>

<p>Add option to TableVisualiser to display child samples instead of parent
<figure>
<a href="./images/screenshots/changes/2.6/10_child_sampler.png"><img src="./images/screenshots/changes/2.6/10_child_sampler.png" width="911" height="619" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3>Key Store - multiple certificates</h3>

<p>Allowing multiple certificates (JKS)
<figure>
<a href="./images/screenshots/changes/2.6/11_jks_keystore.png"><img src="./images/screenshots/changes/2.6/11_jks_keystore.png" width="324" height="166" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3>Aggregate graph improvements</h3>

<p>Some improvements on Aggregate Graph Listener:
<ul>
<li>new GUI for settings</li>

<li>dynamic graph size</li>

<li>allow to change fonts for title graph and legend</li>

<li>allow to change bar color (background and text values)</li>

<li>allow to draw or not bars outlines</li>

<li>allow to select only some samplers by a regexp filter</li>

<li>allow to define Y axis maximum scale</li>

</ul>

<figure>
<a href="./images/screenshots/changes/2.6/12_aggregate_graph_settings.png"><img src="./images/screenshots/changes/2.6/12_aggregate_graph_settings.png" width="850" height="411" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<p>Aggregate Graph bar
<figure>
<a href="./images/screenshots/changes/2.6/13_aggregate_graph_bar.png"><img src="./images/screenshots/changes/2.6/13_aggregate_graph_bar.png" width="851" height="506" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3>Counter - new reset option</h3>

<p>Add an option to reset counter on each Thread Group iteration
<figure>
<a href="./images/screenshots/changes/2.6/14_reset_counter.png"><img src="./images/screenshots/changes/2.6/14_reset_counter.png" width="345" height="257" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3>Functions</h3>

<p>
<ul>

<li>Add a new function __RandomString to generate random Strings</li>

<li>Add a new function __TestPlanName returning the name of the current "Test Plan"</li>

<li>Add a new function __machineIP returning IP address</li>

<li>Add a new function  __jexl2 to support Jexl2</li>

</ul>

<figure>
<a href="./images/screenshots/changes/2.6/15_random_string.png"><img src="./images/screenshots/changes/2.6/15_random_string.png" width="697" height="236" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3>User Defined Variable improvements</h3>

<p>
<ul>
<li>Add a comment field in User Defined Variables</li>

<li>Allow to add (paste) entries from the clipboard to an arguments list</li>

<li>Ability to move up or down variables in User Defined Variables</li>

</ul>

<figure>
<a href="./images/screenshots/changes/2.6/16_udv_comments.png"><img src="./images/screenshots/changes/2.6/16_udv_comments.png" width="543" height="237" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3>View Results Tree</h3>

<p>In View Results Tree rather than showing just a message if the results are to big, show as much of the result as are configured
<figure>
<a href="./images/screenshots/changes/2.6/17_vrt_max_size_display.png"><img src="./images/screenshots/changes/2.6/17_vrt_max_size_display.png" width="953" height="98" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3>Controllers - change elements</h3>

<p>Add ability to Change Controller elements
<figure>
<a href="./images/screenshots/changes/2.6/18_change_ctl_type.png"><img src="./images/screenshots/changes/2.6/18_change_ctl_type.png" width="643" height="112" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3>JDBC pre- and post-processor</h3>

<p>Add JDBC pre- and post-processor
<figure>
<a href="./images/screenshots/changes/2.6/19_jdbc_pre_post_proc.png"><img src="./images/screenshots/changes/2.6/19_jdbc_pre_post_proc.png" width="535" height="217" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3>JDBC transaction isolation option</h3>

<p>Allow to set the transaction isolation in the JDBC Connection Configuration
<figure>
<a href="./images/screenshots/changes/2.6/20_jdbc_trans_isolation.png"><img src="./images/screenshots/changes/2.6/20_jdbc_trans_isolation.png" width="437" height="351" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3>Poisson Timer</h3>

<p>Add a Poisson based timer
<figure>
<a href="./images/screenshots/changes/2.6/21_poisson_timer.png"><img src="./images/screenshots/changes/2.6/21_poisson_timer.png" width="358" height="156" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3>GUI and OS interaction</h3>

<p>Support for file Drag and Drop.
<figure>
<a href="./images/screenshots/changes/2.6/22_drag_and_drop.png"><img src="./images/screenshots/changes/2.6/22_drag_and_drop.png" width="776" height="508" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3>Confirm Remove Dialog box</h3>

<p>Add a dialog box to confirm removing the element(s) when Remove action is called
<figure>
<a href="./images/screenshots/changes/2.6/23_confirm_remove.png"><img src="./images/screenshots/changes/2.6/23_confirm_remove.png" width="583" height="210" alt=""></a>
<figcaption></figcaption>
</figure>
The dialogue can be skipped by setting the JMeter property <span class="code">confirm.delete.skip=true</span>

</p>


<h3>Remote batching support</h3>

<p>Use external store to hold samples during distributed testing,
Added DiskStore remote sample sender: like Hold, but saves samples to disk until end of test
<figure>
<a href="./images/screenshots/changes/2.6/24_diskstore.png"><img src="./images/screenshots/changes/2.6/24_diskstore.png" width="998" height="273" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3>JMS Subscriber sampler</h3>

<p>With JMS Subscriber, ability to use Selectors
<figure>
<a href="./images/screenshots/changes/2.6/25_selector.png"><img src="./images/screenshots/changes/2.6/25_selector.png" width="705" height="297" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3>New Logger Panel</h3>

<p>A new Log Viewer  has been added to the GUI and can be enabled from menu Options &rarr; Log Viewer:
<figure>
<a href="./images/screenshots/changes/2.6/28_loggerpanel_option.png"><img src="./images/screenshots/changes/2.6/28_loggerpanel_option.png" width="326" height="147" alt=""></a>
<figcaption></figcaption>
</figure>

</p>

<p>This Log Viewer shows the jmeter.log file, and useful (for example) to debug BeanShell/BSF scripts:
<figure>
<a href="./images/screenshots/changes/2.6/28_loggerpanel.png"><img src="./images/screenshots/changes/2.6/28_loggerpanel.png" width="953" height="466" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3>The menu item Options / Choose Language is now fully functional</h3>

<p>
The menu item Options / Choose Language now changes all the displayed text to the new language provided
all messages are translated. You can help on this by translating into your language.
</p>


<h3>Legacy JMX and JTL Avalon format support restored</h3>

<p>
Support for reading/writing the original Avalon XML format of JMX (script) and JTL (sample result) files was dropped in JMeter version 2.4.
JMeter can now read the Avalon format files again, however there is no support for saving files in the old format.
</p>


<h3>JMeter jars available from Maven repository</h3>

<p>
JMeter jars are now available from Maven repository.
</p>




<h2>Known bugs</h2>


<p>
The Include Controller has some problems in non-GUI mode (see Bugs 40671, 41286, 44973, 50898).
In particular, it can cause a NullPointerException if there are two include controllers with the same name.
</p>


<p>The Once Only controller behaves correctly under a Thread Group or Loop Controller,
but otherwise its behaviour is not consistent (or clearly specified).</p>


<p>Listeners don't show iteration counts when a If Controller has a condition which is always false from the first iteration (see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52496">
      Bug
      52496</a>).
A workaround is to add a sampler at the same level as (or superior to) the If Controller.
For example a Test Action sampler with 0 wait time (which doesn't generate a sample),
or a Debug Sampler with all fields set to False (to reduce the sample size).
</p>




<h2>Incompatible changes</h2>


<p>
JMeter versions since 2.1 failed to create a container sample when loading embedded resources.
This has been corrected; can still revert to the <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51939">
      Bug
      51939</a> behaviour by setting the following property:
<span class="code">httpsampler.separate.container=false</span>

</p>

<p>
Mirror server now uses default port 8081, was 8080 before 2.5.1.
</p>

<p>
TCP Sampler handles SocketTimeoutException, SocketException and InterruptedIOException differently since 2.6, when
these occurs, Sampler is marked as failed.
</p>

<p>
Sample Sender implementations now resolve their configuration on Client side since 2.6.
This behaviour can be changed with property sample_sender_client_configured (set it to false).
</p>


<p>
The HTTP User Parameter Modifier test element has been removed; it has been deprecated for a long time.
</p>




<h2>Bug fixes</h2>


<h3>HTTP Samplers and Proxy</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51932">
      Bug
      51932</a> - CacheManager does not handle cache-control header with any attributes after max-age</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51918">
      Bug
      51918</a> - GZIP compressed traffic produces errors, when multiple connections allowed</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51939">
      Bug
      51939</a> - Should generate new parent sample if necessary when retrieving embedded resources</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51942">
      Bug
      51942</a> - Synchronisation issue on CacheManager when Concurrent Download is used</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51957">
      Bug
      51957</a> - Concurrent get can hang if a task does not complete</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51925">
      Bug
      51925</a> - Calling Stop on Test leaks executor threads when concurrent download of resources is on</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51980">
      Bug
      51980</a> - HtmlParserHTMLParser double-counts images used in links</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52064">
      Bug
      52064</a> - OutOfMemory Risk in CacheManager</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51919">
      Bug
      51919</a> - Random ConcurrentModificationException or NoSuchElementException in CookieManager#removeMatchingCookies when using Concurrent Download</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52126">
      Bug
      52126</a> - HttpClient4 does not clear cookies between iterations</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52129">
      Bug
      52129</a> - Reported Body Size is wrong when using HTTP Client 4 and Keep Alive connection</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52137">
      Bug
      52137</a> - Problems with HTTP Cache Manager</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52221">
      Bug
      52221</a> - Nullpointer Exception with use Retrieve Embedded Resource without HTTP Cache Manager</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52310">
      Bug
      52310</a> - variable in IPSource failed HTTP request if "Concurrent Pool Size" is enabled</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52371">
      Bug
      52371</a> - API Incompatibility - Methods in HTTPSampler2 now require PostMethod instead of HttpMethod[Base]. Reverted to original types.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=49950">
      Bug
      49950</a> - Proxy : IndexOutOfBoundsException when recording with Proxy server</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52409">
      Bug
      52409</a> - HttpSamplerBase#errorResult modifies sampleResult passed as parameter;
fix code which assumes that a new instance is created (i.e. when adding a sub-sample)
</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52507">
      Bug
      52507</a> - Delete Http User Parameters modifier (deprecated, obsolete)</li>

</ul>


<h3>Other Samplers</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51996">
      Bug
      51996</a> - JMS Initial Context leak newly created Context when Multiple Thread enter InitialContextFactory#lookupContext at the same time</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51691">
      Bug
      51691</a> - Authorization does not work for JMS Publisher and JMS Subscriber</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52036">
      Bug
      52036</a> - Durable Subscription fails with ActiveMQ due to missing clientId field</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52044">
      Bug
      52044</a> - JMS Subscriber used with many threads leads to javax.naming.NamingException: Something already bound with ActiveMQ</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52072">
      Bug
      52072</a> - LengthPrefixedBinaryTcpClientImpl may end a sample prematurely</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52390">
      Bug
      52390</a> - AbstractJDBCTestElement:Memory leak and synchronization issue in perConnCache</li>

</ul>


<h3>Controllers</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51865">
      Bug
      51865</a> - Infinite loop inside thread group does not work properly if "Start next loop after a Sample error" option set</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51868">
      Bug
      51868</a> - A lot of exceptions in jmeter.log while using option "Start next loop" for thread</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51866">
      Bug
      51866</a> - Counter under loop doesn't work properly if "Start next loop on error" option set for thread group</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52296">
      Bug
      52296</a> - TransactionController + Children ThrouputController or InterleaveController leads to ERROR sampleEnd called twice java.lang.Throwable: Invalid call sequence when TPC does not run sample</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52330">
      Bug
      52330</a> - With next-Loop-On-Error after error samples are not executed in next loop</li>

</ul>


<h3>Listeners</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52357">
      Bug
      52357</a> - View results in Table does not allow for multiple result samples</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52491">
      Bug
      52491</a> - Incorrect parsing of Post data parameters in Tree Listener / Http Request view</li>

</ul>


<h3>Assertions</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52519">
      Bug
      52519</a> - XMLSchemaAssertion uses JMeter JVM file.encoding instead of response encoding</li>

</ul>


<h3>Functions</h3>

<ul>

<li>The CRLF example for the char function was wrong; CRLF=(0xD,0xA), not (0xC,0xA)</li>

</ul>


<h3>I18N</h3>

<ul>

</ul>


<h3>General</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51937">
      Bug
      51937</a> - JMeter does not handle missing TestPlan entry well</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51988">
      Bug
      51988</a> - CSV Data Set Configuration does not resolve default delimiter for header parsing when variables field is empty</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52003">
      Bug
      52003</a> - View Results Tree "Scroll automatically" does not scroll properly in case nodes are expanded</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=27112">
      Bug
      27112</a> - User Parameters should use scrollbars</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52029">
      Bug
      52029</a> - Command-line shutdown only gets sent to last engine that was started</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52093">
      Bug
      52093</a> - Toolbar ToolTips don't switch language</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51733">
      Bug
      51733</a> - SyncTimer is messed up if you a interrupt a test plan</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52118">
      Bug
      52118</a> - New toolbar : shutdown and stop buttons not disabled when no test is running</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52125">
      Bug
      52125</a> - StatCalculator.addAll(StatCalculator calc) joins incorrect if there are more samples with the same response time in one of the TreeMap</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52339">
      Bug
      52339</a> - JMeter Statistical mode in distributed testing shows wrong response time</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52215">
      Bug
      52215</a> - Confusing synchronization in StatVisualizer, SummaryReport ,Summariser and issue in StatGraphVisualizer</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52216">
      Bug
      52216</a> - TableVisualizer : currentData field is badly synchronized</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52217">
      Bug
      52217</a> - ViewResultsFullVisualizer : Synchronization issues on root and treeModel</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=43294">
      Bug
      43294</a> - XPath Extractor namespace problems</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52224">
      Bug
      52224</a> - TestBeanHelper does not support NOT_UNDEFINED == Boolean.FALSE</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52279">
      Bug
      52279</a> - Switching to another language loses icons in Tree and logs error Can't obtain GUI class from &hellip;</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52280">
      Bug
      52280</a> - The menu item Options / Choose Language does not change all the displayed text to the new language</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52376">
      Bug
      52376</a> - StatCalculator#addValue(T val, int sampleCount) should use long, not int</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=49374">
      Bug
      49374</a> - Encoding of embedded element URLs depend on the file.encoding property</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52399">
      Bug
      52399</a> - URLRewritingModifier uses default file.encoding to match text content</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=50438">
      Bug
      50438</a> - code calculates average with integer math, expecting double value</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52469">
      Bug
      52469</a> - Changes in Support of SSH-Tunneling of RMI traffic for Remote Testing</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52466">
      Bug
      52466</a> - Upgrade Test Plan feature : NameUpdater does not upgrade properties</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52503">
      Bug
      52503</a> - Unify File&rarr;Close and Window close file saving behaviour</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52537">
      Bug
      52537</a> - Help does not scroll to correct anchor when file is first loaded</li>

</ul>




<h2>Improvements</h2>


<h3>HTTP Samplers</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51981">
      Bug
      51981</a> - Better support for file: protocol in HTTP sampler</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52033">
      Bug
      52033</a> - Allowing multiple certificates (JKS)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52352">
      Bug
      52352</a> - Proxy : Support IPv6 URLs capture</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=44301">
      Bug
      44301</a> - Enable "ignore failed" for embedded resources</li>

</ul>


<h3>Other samplers</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51419">
      Bug
      51419</a> - JMS Subscriber: ability to use Selectors</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52088">
      Bug
      52088</a> - JMS Sampler : Add a selector when REQUEST / RESPONSE is chosen</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52104">
      Bug
      52104</a> - TCP Sampler handles badly errors</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52087">
      Bug
      52087</a> - TCPClient interface does not allow for partial reads</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52115">
      Bug
      52115</a> - SOAP/XML-RPC should not send a POST request when file to send is not found</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=40750">
      Bug
      40750</a> - TCPSampler : Behaviour when sockets are closed by remote host</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52396">
      Bug
      52396</a> - TCP Sampler in "reuse connection mode" reuses previous sampler's connection even if it's configured with other host, port, user or password</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52048">
      Bug
      52048</a> - BSFSampler, BSFPreProcessor and BSFPostProcessor should share the same GUI</li>

</ul>


<h3>Controllers</h3>

<ul>

</ul>


<h3>Listeners</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52022">
      Bug
      52022</a> - In View Results Tree rather than showing just a message if the results are to big, show as much of the result as are configured</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52201">
      Bug
      52201</a> - Add option to TableVisualiser to display child samples instead of parent </li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52214">
      Bug
      52214</a> - Save Responses to a file - improve naming algorithm</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52340">
      Bug
      52340</a> - Allow remote sampling mode to be changed at run-time</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52452">
      Bug
      52452</a> - Improvements on Aggregate Graph Listener (GUI and settings)</li>

<li>Resurrected OldSaveService to allow reading Avalon format JTL (result) files</li>

</ul>


<h3>Timers, Assertions, Config, Pre- &amp; Post-Processors</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52128">
      Bug
      52128</a> - Add JDBC pre- and post-processor</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52183">
      Bug
      52183</a> - SyncTimer could be improved (performance+reliability)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52317">
      Bug
      52317</a> - Counter : Add option to reset counter on each Thread Group iteration</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=37073">
      Bug
      37073</a> - Add a Poisson based timer</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52497">
      Bug
      52497</a> - Improve DebugSampler and DebugPostProcessor</li>

</ul>


<h3>Functions</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52006">
      Bug
      52006</a> - Create a function RandomString to generate random Strings</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52016">
      Bug
      52016</a> - It would be useful to support Jexl2</li>

<li>__char() function now supports octal values</li>

<li>New function __machineIP returning IP address</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51091">
      Bug
      51091</a> - New function returning the name of the current "Test Plan"</li>

</ul>


<h3>I18N</h3>

<ul>

</ul>


<h3>General</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51892">
      Bug
      51892</a> - Default mirror port should be different from default proxy port</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51817">
      Bug
      51817</a> - Moving variables up and down in User Defined Variables control</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51876">
      Bug
      51876</a> - Functionality to search in Samplers TreeView</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52019">
      Bug
      52019</a> - Add menu option to Start a test ignoring Pause Timers</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52027">
      Bug
      52027</a> - Allow System or CrossPlatform LAF to be set from options menu</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52037">
      Bug
      52037</a> - Remember user-set LaF over restarts.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51861">
      Bug
      51861</a> - Improve HTTP Request GUI to better show parameters without name (GWT RPC requests for example) (UNDER DEVELOPMENT)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52040">
      Bug
      52040</a> - Add a toolbar in JMeter main window</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51816">
      Bug
      51816</a> - Comment Field in User Defined Variables control.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52052">
      Bug
      52052</a> - Using a delimiter to separate result-messages for JMS Subscriber</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52103">
      Bug
      52103</a> - Add automatic scrolling option to table visualizer</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52097">
      Bug
      52097</a> - Save As should point to same folder that was used to open a file if MRU list is used</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52085">
      Bug
      52085</a> - Allow multiple selection in arguments panel</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52099">
      Bug
      52099</a> - Allow to set the transaction isolation in the JDBC Connection Configuration</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52116">
      Bug
      52116</a> - Allow to add (paste) entries from the clipboard to an arguments list</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52160">
      Bug
      52160</a> - Don't display TestBeanGui items which are flagged as hidden</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51886">
      Bug
      51886</a> - SampleSender configuration resolved partly on client and partly on server</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52161">
      Bug
      52161</a> - Enable plugins to add own translation rules in addition to upgrade.properties.
Loads any additional properties found in META-INF/resources/org.apache.jmeter.nameupdater.properties files</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=42538">
      Bug
      42538</a> - Add "duplicate node" in context menu</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=46921">
      Bug
      46921</a> - Add Ability to Change Controller elements</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52240">
      Bug
      52240</a> - TestBeans should support Boolean, Integer and Long</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52241">
      Bug
      52241</a> - GenericTestBeanCustomizer assumes that the default value is the empty string</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52242">
      Bug
      52242</a> - FileEditor does not allow output to be saved in a File </li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51093">
      Bug
      51093</a> - when loading a selection previously stored by "Save Selection As", show the file name in the blue window bar</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=50086">
      Bug
      50086</a> - Password fields not Hidden in JMS Publisher, JMS Subscriber, Mail Reader sampler, SMTP sampler and Database Configuration</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=29352">
      Bug
      29352</a> - Use external store to hold samples during distributed testing, Added DiskStore remote sample sender: like Hold, but saves samples to disk until end of test.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52333">
      Bug
      52333</a> - Reduce overhead in calculating SampleResult#nanoTimeOffset</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52346">
      Bug
      52346</a> - Shutdown detects if there are any non-daemon threads left which prevent JVM exit.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52281">
      Bug
      52281</a> - Support for file Drag and Drop</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52471">
      Bug
      52471</a> - Improve Mirror Server performance by Using Pool of threads instead of launching a Thread for each request</li>

<li>Resurrected OldSaveService to allow reading Avalon format JMX files (removed in 2.4)</li>

<li>Add a dialog box to confirm removing the element(s) when Remove action is called</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=41788">
      Bug
      41788</a> - Log viewer (console window) needed as an option</li>

<li>Add option to change the pause time (default 2000ms) in the daemon thread which checks for successful JVM exit.
The thread is not now started unless the pause time is greater than 0.
</li>

</ul>


<h2>Non-functional changes</h2>

<ul>

<li>fixes to build.xml: support scripts; localise re-usable property names</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51923">
      Bug
      51923</a> - Counter function bug or documentation issue ? (fixed docs)</li>

<li>Update velocity.jar to 1.7 (from 1.6.2)</li>

<li>Update js.jar to 1.7R3 (from 1.6R5)</li>

<li>Update commons-codec 1.5 &rArr; 1.6</li>

<li>Update commons-io 2.0.1 &rArr; 2.1</li>

<li>Update commons-jexl 2.0.1 &rArr; 2.1.1</li>

<li>Update jdom 1.1 &rArr; 1.1.2</li>

<li>Update junit 4.9 &rArr; 4.10</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51954">
      Bug
      51954</a> - Generated documents include &lt;/br&gt; entries which cause extra blank lines </li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52075">
      Bug
      52075</a> - JMeterProperty.clone() currently returns Object; it should return JMeterProperty</li>

<li>Updated httpcore to 4.1.4</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=49753">
      Bug
      49753</a> - Please publish jMeter artifacts on Maven central repository</li>

</ul>




<h1>Version 2.5.1</h1>


<h2>Summary of main changes</h2>


<ul>

<li>HttpClient4 sampler now re-uses connections properly (previously it would use one per sample, which could quickly cause resource exhaustion).</li>

<li>Various fixes to JMS samplers</li>

<li>Functions are no longer spuriously invoked when used with a Configuration element</li>

<li>WebService sampler GUI has been re-organized for better design and more user-friendliness. Some improvements on WSDL configuration assistant</li>

<li>Better handling of test shutdown. System.exit now only called if there is no other option; even this can be disabled.</li>

</ul>



<h2>Known bugs</h2>


<p>
The Include Controller has some problems in non-GUI mode.
In particular, it can cause a NullPointerException if there are two include controllers with the same name.
</p>


<p>The Once Only controller behaves correctly under a Thread Group or Loop Controller,
but otherwise its behaviour is not consistent (or clearly specified).</p>


<p>The If Controller may cause an infinite loop if the condition is always false from the first iteration.
A workaround is to add a sampler at the same level as (or superior to) the If Controller.
For example a Test Action sampler with 0 wait time (which doesn't generate a sample),
or a Debug Sampler with all fields set to False (to reduce the sample size).
</p>


<p>
The menu item Options / Choose Language does not change all the displayed text to the new language.
[The behaviour has improved, but language change is still not fully working]
To override the default local language fully, set the JMeter property "language" before starting JMeter.
</p>


<h2>Incompatible changes</h2>


<p>
The HttpClient4 and Commons HttpClient 3.1 samplers previously used a retry count of 3.
This has been changed to default to 1, to be compatible with the Java implementation.
The retry count can be overridden by setting the relevant JMeter property, for example:
<pre>
httpclient4.retrycount=3
httpclient3.retrycount=3
</pre>

</p>


<h2>Bug fixes</h2>


<h3>HTTP Samplers and Proxy</h3>

<ul>

<li>Fix HttpClient 4 sampler so it reuses HttpClient instances and connections where possible.</li>

<li>Temporary fix to HC4 sampler to work round HTTPCLIENT-1120.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51863">
      Bug
      51863</a> - Lots of ESTABLISHED connections with HttpClient 4 implementation (vs HttpClient 3.1 impl)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51750">
      Bug
      51750</a> - Retrieve all embedded resources doesn't follow IFRAME</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51752">
      Bug
      51752</a> - HTTP Cache is broken when using "Retrieve all embedded resources" with concurrent pool</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=39219">
      Bug
      39219</a> - HTTP Server: You can't stop it after File&rarr;Open</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51775">
      Bug
      51775</a> - Port number duplicates in Host header when capturing by HttpClient (3.1 and 4.x)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=50617">
      Bug
      50617</a> - Monitor Results legend show "dead" server although values from the server are retrieved</li>

</ul>


<h3>Other Samplers</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=50424">
      Bug
      50424</a> - Web Methods drop down list box inconsistent</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=43293">
      Bug
      43293</a> - Java Request fields not cleared when creating new sampler</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51830">
      Bug
      51830</a> - Webservice Soap Request triggers too many popups when Webservice WSDL URL is down</li>

<li>WebService(SOAP) request - add a connect timeout to get the wsdl used to populate Web Methods when server doesn't response</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51841">
      Bug
      51841</a> - JMS : If an error occurs in ReceiveSubscriber constructor or Publisher, then Connections will stay open</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51691">
      Bug
      51691</a> - Authorization does not work for JMS Publisher and JMS Subscriber</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51840">
      Bug
      51840</a> - JMS : Cache of InitialContext has some issues</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=47888">
      Bug
      47888</a> - JUnit Sampler re-uses test object</li>

</ul>


<h3>Controllers</h3>

<ul>

<li>If Controller - Fixed two regressions introduced by <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=50032">
      Bug
      50032</a> (see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=50618">
      Bug
      50618</a> too)</li>

<li>If Controller - Catches a StackOverflowError when a condition returns always false (after at least one iteration with return true) See <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=50618">
      Bug
      50618</a>
</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51869">
      Bug
      51869</a> - NullPointer Exception when using Include Controller</li>

</ul>


<h3>Listeners</h3>

<ul>

</ul>


<h3>Assertions</h3>

<ul>

</ul>


<h3>Functions</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=48943">
      Bug
      48943</a> - Functions are invoked additional times when used in combination with a Config Element</li>

</ul>


<h3>I18N</h3>

<ul>

<li>WebService(SOAP) request - add I18N for some labels</li>

</ul>


<h3>General</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51831">
      Bug
      51831</a> - Cannot disable UDP server or change the maximum UDP port</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51821">
      Bug
      51821</a> - Add short-cut for Enabling / Disabling (sub)tree or branches in test plan.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=47921">
      Bug
      47921</a> - Variables not released for GC after JMeterThread exits.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51839">
      Bug
      51839</a> - "&hellip; end of run" printed prematurely</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51847">
      Bug
      51847</a> - Some JUnit tests are Locale sensitive and fail if Locale is different from US</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51855">
      Bug
      51855</a> - Parent samples may have slightly inaccurate elapsed times</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51880">
      Bug
      51880</a> - The shutdown command is not working if I invoke it before all the thread are started</li>

<li>Remote Shut host menu item was not being enabled.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51888">
      Bug
      51888</a> - Occasional deadlock when stopping a testplan</li>

</ul>




<h2>Improvements</h2>


<h3>HTTP Samplers</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51380">
      Bug
      51380</a> - Control reuse of cached SSL Context from iteration to iteration</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51882">
      Bug
      51882</a> - HTTPHC3Client uses a default retry count of 3, make it configurable; default is now 1</li>

<li>Change the default HttpClient 4 sampler retry count to 1</li>

</ul>


<h3>Other samplers</h3>

<ul>

<li>Beanshell Sampler now supports Interruptible interface</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51605">
      Bug
      51605</a> - WebService(SOAP) Request - WebMethod field value changes surreptitiously for all the requests when a value is selected in a request</li>

<li>WebService(SOAP) Request - Reorganized GUI for better design and more user-friendliness</li>

</ul>


<h3>Controllers</h3>

<ul>

</ul>


<h3>Listeners</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=42246">
      Bug
      42246</a> - Need for a 'auto-scroll' option in "View Results Tree" and "Assertion Results"</li>

<li>View Results Tree: Regexp Tester - little improvements on user interface</li>

</ul>


<h3>Timers, Assertions, Config, Pre- &amp; Post-Processors</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51885">
      Bug
      51885</a> - Allow a JMeter Variable as input to XPathExtractor</li>

</ul>


<h3>Functions</h3>

<ul>

</ul>


<h3>I18N</h3>

<ul>

</ul>


<h3>General</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51822">
      Bug
      51822</a> - (part 1) save 1 invocation of GuiPackage#getCurrentGui</li>

<li>Added AsynchSampleSender which sends samples from server to client asynchronously.</li>

<li>Upgraded to htmlparser 2.1; JavaMail 1.4.4; JUnit 4.9</li>

</ul>


<h2>Non-functional changes</h2>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=49976">
      Bug
      49976</a> - FormCharSetFinder visibility is default instead of public. </li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=50917">
      Bug
      50917</a> - Property CookieManager.save.cookies not honored when set from test plan</li>

<li>Improve error logging when Javascript errors are detected.</li>

<li>Updated documentation footer</li>

</ul>




<h1>Version 2.5</h1>


<h2>Summary of main changes</h2>


<ul>

<li>The HTTP implementation can now be selected at run-time, and JMeter now also supports Apache HttpComponents HttpClient 4.x.
Note that Commons HttpClient 3.1 is no longer actively developed, and support may be removed from JMeter in a future release.
</li>

<li>The HTTP sampler now allows concurrent downloads of embedded resources in an HTML page</li>

<li>The HTTP Sampler can now report the size of a request before decompression.</li>

<li>The JMS and Mail samplers have been improved.</li>

<li>The new Test Fragment Test Element makes using Include Controllers easier</li>

<li>There are various improvements to the View Results Tree Listener</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=30563">
      Bug
      30563</a> - Thread Group should have a start next loop option on Sample Error</li>

<li>There are two new Thread Group types - setUp and tearDown - which are run before and after the main Thread groups.</li>

<li>Client-Server mode now supports external stop/shutdown via UDP<br>
multiple JMeter server instances can be started on the same host without needing to change the port property.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=50516">
      Bug
      50516</a> - "Host" header in HTTP Header Manager is not included in generated HTTP request</li>

</ul>


<p>

<ul>

</ul>

</p>





<h2>Known bugs</h2>


<p>
The Include Controller has some problems in non-GUI mode.
In particular, it can cause a NullPointerException if there are two include controllers with the same name.
</p>


<p>Once Only controller behaves correctly under a Thread Group or Loop Controller,
but otherwise its behaviour is not consistent (or clearly specified).</p>


<p>
The menu item Options / Choose Language does not change all the displayed text to the new language.
[The behaviour has improved, but language change is still not fully working]
To override the default local language fully, set the JMeter property "language" before starting JMeter.
</p>


<h2>Incompatible changes</h2>


<p>
Unsupported methods are no longer converted to GET by the Commons HttpClient sampler.
</p>


<p>
Removed method public static long currentTimeInMs().
This has been replaced by the instance method public long currentTimeInMillis().
</p>


<p>
ProxyControl.getSamplerTypeName() now returns a String rather than an int.
This is internal to the workings of the JMeter Proxy &amp; its GUI, so should not affect any user code.
</p>


<h2>Bug fixes</h2>


<h3>HTTP Samplers and Proxy</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=50178">
      Bug
      50178</a> - HeaderManager added as child of Thread Group can create concatenated HeaderManager names and OutOfMemoryException</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=50392">
      Bug
      50392</a> - value is trimmed when sending the request in Multipart</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=50686">
      Bug
      50686</a> - HeaderManager logging too verbose when merging instances</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=50963">
      Bug
      50963</a> - AjpSampler throws java.lang.StringIndexOutOfBoundsException</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=50516">
      Bug
      50516</a> - "Host" header in HTTP Header Manager is not included in generated HTTP request</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=50544">
      Bug
      50544</a> - In Apache Common Log the HEAD requests cause problems.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51268">
      Bug
      51268</a> - HTTPS request through an invalid proxy causes NullPointerException and does not show in result tree.
Rather than delegating to the JMeter thread handler for "unexpected" failures, ensure all Exceptions generate a sample error.
</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51275">
      Bug
      51275</a> - Cookie Panel clearGui() sets incorrect default policy in Java 1.6</li>

</ul>


<h3>Other Samplers</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=50173">
      Bug
      50173</a> - JDBCSampler discards ResultSet from a PreparedStatement</li>

<li>Ensure JSR223 Sampler has access to the current SampleResult</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=50977">
      Bug
      50977</a> - Unable to set TCP Sampler for individual samples</li>

</ul>


<h3>Controllers</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=50032">
      Bug
      50032</a> - Last_Sample_Ok along with other controllers doesn't work correctly when the threadgroup has multiple loops</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=50080">
      Bug
      50080</a> - Transaction controller incorrectly creates samples including timer duration</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=50134">
      Bug
      50134</a> - TransactionController : Reports bad response time when it contains other TransactionControllers</li>

</ul>


<h3>Listeners</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=50367">
      Bug
      50367</a> - Clear / Clear all in View results tree does not clear selected element</li>

</ul>


<h3>Assertions</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51488">
      Bug
      51488</a> - Assertion: Variable name scope is shared among all assertions (and <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51255">
      Bug
      51255</a>)</li>

</ul>


<h3>Functions</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=50568">
      Bug
      50568</a> - Function __FileToString(): Could not read file when encoding option is blank/empty</li>

</ul>


<h3>I18N</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=50811">
      Bug
      50811</a> - Incomplete Spanish translation</li>

</ul>


<h3>General</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=49734">
      Bug
      49734</a> - Null pointer exception on stop Threads command (Run &rarr; Stop)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=49666">
      Bug
      49666</a> - CSV Header read as data after EOF</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=45703">
      Bug
      45703</a> - Synchronizing Timer</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=50088">
      Bug
      50088</a> - fix getAvgPageBytes in SamplingStatCalculator so it returns what it should</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=50203">
      Bug
      50203</a> Cannot set property "jmeter.save.saveservice.default_delimiter=\t"</li>

<li>mirror-server.sh - fix classpath to use : separator (not ;)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=50286">
      Bug
      50286</a> - URL Re-writing Modifier: extracted jsessionid value is incorrect when is between XML tags</li>

<li>
System.nanoTime() tends to drift relative to System.currentTimeMillis().
Change SampleResult to recalculate offset each time.
Also enable reversion to using System.currentTimeMillis() only.
</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=50425">
      Bug
      50425</a> - Remove thread groups from Controller add menu</li>

<li>

<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=50675">
      Bug
      50675</a> - CVS Data Set Config incompatible with Remote Start
Fixed RMI startup to provide location of JMX file relative to user.dir.
</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=50221">
      Bug
      50221</a> - Renaming elements in the tree does not resize label</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51002">
      Bug
      51002</a> - Stop Thread if CSV file is not available. JMeter now treats IOError as EOF.</li>

<li>Define sun.net.http.allowRestrictedHeaders=true by default. This fixes <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51238">
      Bug
      51238</a>.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51645">
      Bug
      51645</a> - CSVDataSet does not read UTF-8 files when file.encoding is UTF-8</li>

</ul>




<h2>Improvements</h2>


<h3>HTTP Samplers</h3>

<ul>

<li>AJP Sampler now implements Interruptible</li>

<li>Allow HTTP implementation to be selected at run-time</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=50684">
      Bug
      50684</a> - Optionally disable Content-Type and Transfer-Encoding in Multipart POST</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=50943">
      Bug
      50943</a> - Allowing concurrent downloads of embedded resources in html page</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=50170">
      Bug
      50170</a> - Bytes reported by http sampler is after GUnZip<br>Add optional properties to allow change the method to get response size</li>

<li>Hiding the proxy password on HTTP Sampler (just on GUI, not in JMX file)</li>

</ul>


<h3>Other samplers</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=49622">
      Bug
      49622</a> - Allow sending messages without a subject (SMTP Sampler)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=49603">
      Bug
      49603</a> - Allow accepting expired certificates on Mail Reader Sampler</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=49775">
      Bug
      49775</a> - Allow sending messages without a body</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=49862">
      Bug
      49862</a> - Improve SMTPSampler Request output.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=50268">
      Bug
      50268</a> - Adds static and dynamic destinations to JMS Publisher</li>

<li>JMS Subscriber - Add dynamic destination</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=50666">
      Bug
      50666</a> - JMSSubscriber: support for durable subscriptions</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=50937">
      Bug
      50937</a> - TCP Sampler does not provide for / honor connect timeout</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=50569">
      Bug
      50569</a> - Jdbc Request Sampler to optionally store result set object data</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51011">
      Bug
      51011</a> - Mail Reader: upon authentication failure, tell what you tried</li>

</ul>


<h3>Controllers</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=50475">
      Bug
      50475</a> - Introduction of a Test Fragment Test Element for a better Include flow</li>

</ul>


<h3>Listeners</h3>

<ul>

<li>View Results Tree - Add a dialog's text box on "Sampler result tab &rarr; Parsed" to display the long value with a double click on cell</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=37156">
      Bug
      37156</a> - Formatted view of Request in Results Tree</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=49365">
      Bug
      49365</a> - Allow result set to be written to file in a path relative to the loaded script</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=50579">
      Bug
      50579</a> - Error count is long, sample count is int. Changed sample count to long.</li>

<li>View Results Tree - Add new size fields: response headers and response body (in bytes) - derived from <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=43363">
      Bug
      43363</a>
</li>

</ul>


<h3>Timers, Assertions, Config, Pre- &amp; Post-Processors</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=48015">
      Bug
      48015</a> - Proposal new icons for pre-processor, post-processor and assertion elements</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=50962">
      Bug
      50962</a> - SizeAssertionGui validation prevents the use of variables for the size</li>

<li>Size Assertion - Add response size scope (full, headers, body, code, message) - derived from <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=43363">
      Bug
      43363</a>
</li>

</ul>


<h3>Functions</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=49975">
      Bug
      49975</a> - New function returning the name of the current sampler</li>

</ul>


<h3>I18N</h3>

<ul>

<li>Add French translation for the new labels and reduce size for some labels (by abbreviation) on HTTP Sample</li>

</ul>


<h3>General</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=30563">
      Bug
      30563</a> - Thread Group should have a start next loop option on Sample Error</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=50347">
      Bug
      50347</a> - Eclipse setup instructions should remind user to download dependent jars</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=50490">
      Bug
      50490</a> - Setup and Post Thread Group enhancements for better test flow.</li>

<li>All BeanShell test elements now have the script variables "prev" and "Label" defined.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=50708">
      Bug
      50708</a> - Classpath jar order in NewDriver not alphabetically</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=50659">
      Bug
      50659</a> - JMeter server does not support concurrent tests - prevent client from starting another</li>

<li>Added remote shutdown functionality</li>

<li>Client JMeter engine now supports external stop/shutdown via UDP</li>

<li>UDP shutdown can now use a range of ports, from jmeterengine.nongui.port=4445 to jmeterengine.nongui.maxport=4455,
allowing multiple JMeter instances on the same host without needing to change the port property.</li>

<li>Updated to httpcore 4.1.3 and httpclient 4.1.2</li>

</ul>


<h2>Non-functional changes</h2>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=50008">
      Bug
      50008</a> - Allow BatchSampleSender to be subclassed</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=50450">
      Bug
      50450</a> - use System.array copy in jacobi solver as, being native, is more performant.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=50487">
      Bug
      50487</a> - runSerialTest verifies objects that never need persisting</li>

<li>Use Thread.setDefaultUncaughtExceptionHandler() instead of private ThreadGroup</li>

<li>Update to Commons Net 3.0</li>

</ul>




<h1>Version 2.4</h1>


<h2>Summary of main changes</h2>


<p>

<ul>

<li>JMeter now requires at least Java 1.5.</li>

<li>HTTP Proxy can now record HTTPS sessions.</li>

<li>JUnit sampler now supports JUnit4 annotations.</li>

<li>Added JSR223 (javax.script) test elements.</li>

<li>MailReader Sampler can now use any protocol supported by the underlying implementation.</li>

<li>An SMTP Sampler has been added.</li>

<li>JMeter now allows users to provide their own Thread Group implementations.</li>

<li>View Results Tree now supports more display options, including search and Regex Testing.</li>

<li>StatCalculator performance is much improved; Aggregate Report etc. need far less memory.</li>

<li>
JMS samplers have been extensively reworked, and should no longer lose messages.
Correlation processing is improved.
JMS Publisher and Subscriber now support both Topics and Queues.
</li>

<li>Many other improvements have been made, please see below and in the manual.</li>

</ul>

</p>





<h2>Known bugs</h2>


<p>
The Include Controller has some problems in non-GUI mode.
In particular, it can cause a NullPointerException if there are two include controllers with the same name.
</p>


<p>Once Only controller behaves correctly under a Thread Group or Loop Controller,
but otherwise its behaviour is not consistent (or clearly specified).</p>


<p>
The menu item Options / Choose Language does not change all the displayed text to the new language.
[The behaviour has improved, but language change is still not fully working]
To override the default local language fully, set the JMeter property "language" before starting JMeter.
</p>


<h2>Incompatible changes</h2>


<p>
HTTP Redirect now defaults to "Follow Redirects" rather than "Redirect Automatically".
This is to enable JMeter to track cookies that may be sent during redirects.
This does not affect existing test plans; it only affects the default for new HTTP Samplers.
</p>


<p>
The Avalon file format for JMX and JTL files is no longer supported.
Any such files will need to be converted by reading them in JMeter 2.3.4 and resaving them.
</p>


<p>
The XPath Assertion and XPath Extractor elements no longer fetch external DTDs by default; this can be changed in the GUI.
</p>


<p>
JMSConfigGui has been renamed as JMSSamplerGui.
This does not affect existing test plans.
</p>


<p>
The constructor public SampleResult(SampleResult res) has been changed to become a true "copy constructor".
It no longer calls addSubResult(). This may possibly affect some 3<sup>rd</sup> party add-ons.
</p>


<h2>Bug fixes</h2>


<h3>HTTP Samplers and Proxy</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=47445">
      Bug
      47445</a> - Using Proxy with https-spoofing secure cookies need to be unsecured</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=47442">
      Bug
      47442</a> - Missing replacement of https by http for certain conditions using https-spoofing</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=48451">
      Bug
      48451</a> - Error in: SoapSampler.setPostHeaders(PostMethod post) in the else branch</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=48542">
      Bug
      48542</a> - SoapSampler uses wrong response header field to decide if response is gzip encoded</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=48568">
      Bug
      48568</a> - CookieManager broken for AjpSampler</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=48570">
      Bug
      48570</a> - AjpSampler doesn't support query parameters (GET/POST)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=46901">
      Bug
      46901</a> - HTTP Sampler does not process var/func refs correctly in first file parameter</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=43678">
      Bug
      43678</a> - Handle META tag http-equiv charset?</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=49294">
      Bug
      49294</a> - Images not downloaded from redirected-to pages</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=49560">
      Bug
      49560</a> - wrong "size in bytes" when following redirections</li>

</ul>


<h3>Other Samplers</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=47420">
      Bug
      47420</a> - LDAP extended request not closing connections during add request</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=48573">
      Bug
      48573</a> - LDAPExtSampler directory context handling</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=47870">
      Bug
      47870</a> - JMSSubscriber fails due to NPE</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=47899">
      Bug
      47899</a> - NullPointerExceptions in JMS ReceiveSubscriber constructor</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=48144">
      Bug
      48144</a> - NPE in JMS OnMessageSubscriber</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=47992">
      Bug
      47992</a> - JMS Point-to-Point Request - Response option doesn't work</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=48579">
      Bug
      48579</a> - Single Bind does not show config information when LdapExt Sampler is accessed</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=49111">
      Bug
      49111</a> - "Message With ID Not Found" Error on JMS P2P sampler.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=47949">
      Bug
      47949</a> - JMS Subscriber never receives all the messages</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=46142">
      Bug
      46142</a> - JMS Point-to-Point correlation problems</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=48747">
      Bug
      48747</a> - TCP Sampler swallows exceptions</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=48709">
      Bug
      48709</a> - TCP Sampler Config setting "classname" has no effect</li>

</ul>


<h3>Controllers</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=47385">
      Bug
      47385</a> - TransactionController should set AllThreads and GroupThreads</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=47940">
      Bug
      47940</a> - Module controller incorrectly creates the replacement Sub Tree</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=47592">
      Bug
      47592</a> - Run Thread groups consecutively with "Stop test" on error, JMeter will not mark to finished</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=48786">
      Bug
      48786</a> - Run Thread groups consecutively: with "Stop test now" on error or manual stop, JMeter leaves the green box active</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=48727">
      Bug
      48727</a> - Cannot stop test if all thread groups are disabled</li>

</ul>


<h3>Listeners</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=48603">
      Bug
      48603</a> - Mailer Visualiser sends two emails for a single failed response</li>

<li>Correct calculation of min/max/std.dev for aggregated samples (Summary Report)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=48889">
      Bug
      48889</a> - Wrong response time with mode=Statistical and num_sample_threshold &gt; 1</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=47398">
      Bug
      47398</a> - SampleEvents are sent twice over RMI in distributed testing and non gui mode</li>

</ul>


<h3>Assertions</h3>

<ul>

</ul>


<h3>Functions</h3>

<ul>

</ul>


<h3>I18N</h3>

<ul>

</ul>


<h3>General</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=47646">
      Bug
      47646</a> -  NullPointerException in the "Random Variable" element</li>

<li>Disallow adding any child elements to JDBC Configuration</li>

<li>BeanInfoSupport now caches getBeanDescriptor() - should avoid an NPE on non-Sun JVMs when using CSVDataSet (and some other TestBeans)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=48350">
      Bug
      48350</a> - Deadlock on distributed testing with 2 clients</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=48901">
      Bug
      48901</a> - Endless wait by adding Synchronizing Timer</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=49149">
      Bug
      49149</a> - usermanual/index.html has typo in link to "Regular Expressions" page</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=49394">
      Bug
      49394</a> - Classcast Exception in ActionRouter.postActionPerformed</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=48136">
      Bug
      48136</a> - Essential files missing from source tarball.<br>
Source archives now contain all source files, including source files previously only provided in the binary archives.
</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=48331">
      Bug
      48331</a> - XpathExtractor does not return XML string representations for a Nodeset</li>

</ul>




<h2>Improvements</h2>


<h3>HTTP Samplers</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=47622">
      Bug
      47622</a> - enable recording of HTTPS sessions</li>

<li>Allow Proxy Server to be specified on HTTP Sampler GUI and HTTP Config GUI</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=47461">
      Bug
      47461</a> - Update Cache Manager to handle Expires HTTP header</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=48153">
      Bug
      48153</a> - Support for Cache-Control and Expires headers</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=47946">
      Bug
      47946</a> - Proxy should enable Grouping inside a Transaction Controller</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=48300">
      Bug
      48300</a> - Allow override of IP source address for HTTP HttpClient requests</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=49083">
      Bug
      49083</a> - collapse '/pathsegment/..' in redirect URLs</li>

</ul>


<h3>Other samplers</h3>

<ul>

<li>JUnit sampler now supports JUnit4 tests (using annotations)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=47900">
      Bug
      47900</a> - Allow JMS SubscriberSampler to be interrupted</li>

<li>Added JSR223 Sampler</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=47556">
      Bug
      47556</a> - JMS-PointToPoint-Sampler Timeout field should use Strings</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=47947">
      Bug
      47947</a> - Mail Reader Sampler should allow port to be overridden</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=48155">
      Bug
      48155</a> - Multiple problems / enhancements with JMS protocol classes</li>

<li>Allow MailReader sampler to use arbitrary protocols</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=45053">
      Bug
      45053</a> - SMTP-Sampler for JMeter</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=49552">
      Bug
      49552</a> - Add Message Headers on SMTPSampler</li>

<li>
JMS Publisher and Subscriber now support both Topics and Queues.
Added read Timeout to JMS Subscriber.
General clean-up of JMS code.
</li>

</ul>


<h3>Controllers</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=47909">
      Bug
      47909</a> - TransactionController should sum the latency</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=41418">
      Bug
      41418</a> - Exclude timer duration from Transaction Controller runtime in report</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=48749">
      Bug
      48749</a> - Allowing custom Thread Groups</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=43389">
      Bug
      43389</a> - Allow Include files to be found relative to the current JMX file</li>

</ul>


<h3>Listeners</h3>

<ul>

<li>Added DataStrippingSample sender - supports "Stripped" and "StrippedBatch" modes.</li>

<li>Added Comparison Assertion Visualizer</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=47907">
      Bug
      47907</a> - Improvements (enhancements and I18N) Comparison Assertion and Comparison Visualizer</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=36726">
      Bug
      36726</a> - add search function to Tree View Listener</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=47869">
      Bug
      47869</a> - Ability to cleanup fields of SampleResult</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=47952">
      Bug
      47952</a> - Added JSR223 Listener</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=47474">
      Bug
      47474</a> - View Results Tree support for plugin renderers</li>

<li>Allow Idle Time to be saved to sample log files</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=48259">
      Bug
      48259</a> - Improve StatCalculator performance by using TreeMap</li>

<li>Listeners using SamplingStatCalculator have much reduced memory needs
as the Sample cache has been moved to the new CachingStatCalculator class.
In particular, Aggregate Report can now handle large numbers of samples.
</li>

<li>Aggregate Report and Summary Report now allow column headers to be optionally excluded</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=49506">
      Bug
      49506</a> - Add .csv File Extension in open dialog box from "read from file" functionality of listeners</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=49545">
      Bug
      49545</a> - Formatted (parsed) view of Sample Result in Results Tree</li>

</ul>


<h3>Timers, Assertions, Config, Pre- &amp; Post-Processors</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=47338">
      Bug
      47338</a> - XPath Extractor forces retrieval of document DTD</li>

<li>Added Comparison Assertion</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=47952">
      Bug
      47952</a> - Added JSR223 PreProcessor and PostProcessor</li>

<li>Added JSR223 Assertion</li>

<li>Added BSF Timer and JSR223 Timer</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=48511">
      Bug
      48511</a> - add parent,child,all selection to regex extractor</li>

<li>Add Sampler scope selection to XPathExtractor</li>

<li>Regular Expression Extractor, Response Assertion and Size Assertion can now be applied to a JMeter variable</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=46790">
      Bug
      46790</a> - CSV Data Set Config should be able to parse CSV headers</li>

</ul>


<h3>Functions</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=47565">
      Bug
      47565</a> - [Function] FileToString</li>

</ul>


<h3>I18N</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=47938">
      Bug
      47938</a> -  Adding some French translations for new elements</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=48714">
      Bug
      48714</a> -  add new French messages</li>

</ul>


<h3>General</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=47223">
      Bug
      47223</a> - Slow Aggregate Report Performance (StatCalculator)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=47980">
      Bug
      47980</a> - hostname resolves to 127.0.0.1 - specifying IP not possible</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=47943">
      Bug
      47943</a> - DisabledComponentRemover is not used in Start class</li>

<li>HeapDumper class for runtime generation of dumps</li>

<li>Basic read-only JavaMail provider implementation for reading raw mail files</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=49540">
      Bug
      49540</a> - Sort "Add" menus alphabetically</li>

</ul>


<h2>Non-functional changes</h2>

<ul>

<li>Beanshell, JavaMail and JMS API (Apache Geronimo) jars are now included in the binary archive.</li>

<li>Add TestBean Table Editor support</li>

<li>Removed all external libraries from SVN; added download_jars Ant target</li>

<li>Updated various jar files:
<ul>

<li>BeanShell - 2.0b4 &rArr; 2.0b5</li>

<li>Commons Codec - 1.3 &rArr; 1.4</li>

<li>Commons-Collections - 3.2 &rArr; 3.2.1</li>

<li>JTidy &rArr; r938</li>

<li>JUnit - 3.8.2 &rArr; 4.8.1</li>

<li>Logkit - 1.2 &rArr; 2.0</li>

<li>Xalan Serializer = 2.7.1 (previously erroneously shown as 2.9.1)</li>

<li>Xerces xml-apis = 1.3.04 (previously erroneously shown as 2.9.1)</li>

<li>Some jar files were renamed.</li>

</ul>

</li>

</ul>




<h1>Version 2.3.4</h1>


<h2>Summary of main changes</h2>


<p>
This is a minor bug-fix release, mainly to correct some bugs that were accidentally added in 2.3.3.
</p>



<h2>Known bugs</h2>


<p>
The Include Controller has some problems in non-GUI mode.
In particular, it can cause a NullPointerException if there are two include controllers with the same name.
</p>


<p>Once Only controller behaves correctly under a Thread Group or Loop Controller,
but otherwise its behaviour is not consistent (or clearly specified).</p>


<p>
The menu item Options / Choose Language does not change all the displayed text to the new language.
[The behaviour has improved, but language change is still not fully working]
To override the default local language fully, set the JMeter property "language" before starting JMeter.
</p>


<h2>Bug fixes</h2>


<h3>HTTP Samplers and Proxy</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=47321">
      Bug
      47321</a> -  HTTPSampler2 response timeout not honored</li>

</ul>


<h3>Other Samplers</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=47290">
      Bug
      47290</a> -  Infinite loop on connection factory lookup (JMS)</li>

<li>JDBC Sampler should not close Prepared or Callable statements as these are cached</li>

</ul>


<h3>Controllers</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=39509">
      Bug
      39509</a> -  Once-only controller running twice</li>

</ul>


<h3>Listeners</h3>

<ul>

<li>Change ResultCollector to only warn if the directory was not created</li>

<li>Fix some synchronisation issues in ResultCollector and SampleResult (wrong locks were being used)</li>

</ul>


<h3>I18N</h3>

<ul>

<li>Fixed bug introduced in 2.3.3: JMeter does not start up if there is no messages.properties file for the default Locale.</li>

</ul>


<h3>General</h3>

<ul>

<li>Fix problems with remote clients - bug introduced in 2.3.3</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=47377">
      Bug
      47377</a> - Make ClassFinder more robust and close zipfile resources</li>

<li>Fix some errors in generating the documentation (latent bug revealed in 2.3.3 when Velocity was upgraded)</li>

</ul>


<h2>Improvements</h2>


<h3>Other samplers</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=47266">
      Bug
      47266</a> - FTP Request Sampler: allow specifying an FTP port, other than the default</li>

</ul>




<h1>Version 2.3.3</h1>


<h2>Summary of main changes</h2>


<p>
The handling of test closedown is much improved.
The gradual "Shutdown" command now waits until all threads have stopped,
and does not report an error if threads don't stop within 5 seconds.
The immediate "Stop" command can now be used if "Shutdown" takes too long.
Also the immediate "Stop" command is able to interrupt samplers which support the new Interruptible interface (e.g. HTTP and SOAP, FTP).
This allows immediate completion of pending responses.
Non-GUI mode tests can also now be sent a "Shutdown" or "Stop" message.
<a href="./usermanual/component_reference.html#Test_Action">Test Action</a> now supports a "Stop Now" action,
as do the <a href="./usermanual/component_reference.html#Thread_Group">Thread Group</a> and <a href="./usermanual/component_reference.html#Result_Status_Action_Handler">Result Status Action Handler</a> Post Processor elements.
</p>


<p>
HTTP Cookie handling is improved, and HTTP POST can now use variable file names correctly.
HTTP, SOAP/XML-RPC and WebService(SOAP) sampler character encodings updated to be more consistent.
HTTP Samplers now support connection and response timeouts (requires JVM 1.5 for the HTTP Java sampler).
Together with the closedown improvements described above, this should avoid most cases where a test run hangs.
Multiple Header Manager elements are now supported for a single HTTP sampler.
The Proxy Server is improved, and no longer stores "Host" headers by default.
</p>


<p>
JDBC Request can optionally save the results of Select statements to variables.
JDBC Request now handles quoted strings and UTF-8, and can handle arbitrary variable types.
</p>


<p>
There are several new <a href="usermanual/functions.html">functions</a>:
__char() function: allows arbitrary Unicode characters to be entered in fields.
__unescape() function: allows Java-escaped strings to be used.
_unescapeHtml() function: decodes Html-encoded text.
__escapeHtml() function: encodes text using Html-encoding.
A reference to a missing function - e.g. ${__missing(a)} - is now treated the same as a missing variable.
Previously the function name - and leading { - were dropped. This makes it easier to debug test plans.
</p>


<p>
Some Assertions can now be applied to sub-samples as well as (or instead of) just the parent sample.
There is a new <a href="./usermanual/component_reference.html#Random_Variable">Random Variable</a> Configuration element.
</p>


<p>
JMS samplers are much improved (see details below). The <a href="./usermanual/component_reference.html#TCP_Sampler">TCP Sampler</a> now supports some additional clients and is a bit more flexible.
</p>


<p>
Client-server mode has been improved, and the server can optionally use a fixed RMI port, which should help with setting up firewalls.
</p>


<p>
Various I18N changes have been made; language change works better (though not perfect yet).
There are improved French translations as well as new Polish and Brazilian Portuguese translations.
</p>


<p>
The BeanShell jar is now included with the binary archive; there is no need to download it separately.
</p>




<h2>Known bugs</h2>


<p>
The Include Controller has some problems in non-GUI mode.
In particular, it can cause a <span class="code">NullPointerException</span> if there are two include controllers with the same name.
</p>


<p>Once Only controller behaves correctly under a Thread Group or Loop Controller,
but otherwise its behaviour is not consistent (or clearly specified).</p>


<p>
The menu item <span class="menuchoice"><span class="guimenuitem">Options</span>&nbsp;&rarr;&nbsp;<span class="guimenuitem">Choose Language</span></span>
does not change all the displayed text to the new language.
[The behaviour has improved, but language change is still not fully working]
To override the default local language fully, set the JMeter property "<span class="code">language</span>" before starting JMeter.
</p>


<h2>Incompatible changes</h2>

<p>
When loading sample results from a file, previous results are no longer cleared.
This allows one to merge multiple files.
If the previous behaviour is required,
use the menu item <span class="menuchoice"><span class="guimenuitem">Run</span>&nbsp;&rarr;&nbsp;<span class="guimenuitem">Clear</span>
    (<span class="keycombo"><span class="keysym">Ctrl</span>&nbsp;+&nbsp;<span class="keysym">Shift</span>&nbsp;+&nbsp;<span class="keysym">E</span></span>)
  </span> or <span class="menuchoice"><span class="guimenuitem">Run</span>&nbsp;&rarr;&nbsp;<span class="guimenuitem">Clear All</span>
    (<span class="keycombo"><span class="keysym">Ctrl</span>&nbsp;+&nbsp;<span class="keysym">E</span></span>)
  </span> before loading the file.
</p>

<p>
The test elements "Save Results to a file" and "Generate Summary Results" are now shown as Listeners.
They were previously shown as Post-Processors, even though they are implemented as Listeners.
</p>

<p>
The Cookie Manager no longer saves incoming cookies as variables by default.
To save cookies as variables, define the property "<span class="code">CookieManager.save.cookies=true</span>".
Also, cookies names are prefixed with "<span class="code">COOKIE_</span>" before they are stored (this avoids accidental corruption of local variables)
To revert to the original behaviour, define the property "<span class="code">CookieManager.name.prefix= </span>" (one or more spaces).
</p>

<p>
The Counter element is now shown as a Configuration element.
It was previously shown as a Pre-Processor, even though it is implemented as a Config item.
</p>

<p>
The above changes only affect the icons that are displayed and the locations in the GUI pop-up menus.
They do not affect test plans or test behaviour.
</p>

<p>
The PreProcessors are now invoked directly by the JMeterThread class,
rather than by the TestCompiler#configureSampler() method. (JMeterThread handles the PostProcessors).
This does not affect test plans or behaviour, but could perhaps affect 3<sup>rd</sup> party add-ons (very unlikely).
</p>

<p>
Moved the Scoping Rules sub-section from Section 3. "Building a Test Plan"  to Section 4. "Elements of a test plan"
</p>


<p>
The While controller now trims leading and trailing spaces from the condition value before it is compared
with <span class="code">LAST</span>, blank or false.
</p>


<p>
The "threadName" variable in the _jexl() and __javaScript() functions was previously misspelt as "theadName".
</p>


<p>
The following deprecated methods were removed from JOrphanUtils: booleanToString(boolean) and valueOf(boolean).
Java 1.4+ has these methods in the Boolean class.
</p>


<p>
The TestElement interface has some new methods:
<ul>

<li>void setProperty(String key, String value, String dflt)</li>

<li>void setProperty(String key, boolean value, boolean dflt)</li>

<li>void setProperty(String key, int value)</li>

<li>void setProperty(String key, int value, int dflt)</li>

<li>int getPropertyAsInt(String key, int defaultValue)</li>

</ul>
These are implemented in the AbstractTestElement class which all elements should extend so this is unlikely to cause a problem.
</p>

<h2>Bug fixes</h2>


<h3>HTTP Samplers and Proxy</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=46332">
      Bug
      46332</a> - HTTP Cookie Manager ignores manually defined cookies (bug introduced in r707810)</li>

<li>Cookie Manager was not passing cookie policy to runtime threads so they always used compatibility mode</li>

<li>Add version attribute to JMeter Cookie class (needed for proper cookie support)</li>

<li>Cookie Manager now saves/restores cookie versions</li>

<li>Check validity of cookies before storing them.</li>


<li>HTTPSamplers can now use variables in POSTed file names</li>

<li>Fix processing of first file name in HTTP POST so functions/variables work (bug introduced with multiple file support)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=45831">
      Bug
      45831</a> - WS Sampler reports incorrect throughput if SOAP packet creation fails</li>

<li>HTTP, SOAP/XML-RPC and WebService(SOAP) sampler character encodings updated to be more consistent</li>


<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=46148">
      Bug
      46148</a> - HTTP sampler fails on SSL requests when logging for jmeter.util is set to DEBUG</li>

<li>Fix Java 1.6 https error: java.net.SocketException: Unconnected sockets not implemented</li>


<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=46838">
      Bug
      46838</a> - if there was no data, still need to set latency in HTTPSampler</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=46993">
      Bug
      46993</a> - Saving from Header Manager generates ClassCastException</li>

<li>

<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=46690">
      Bug
      46690</a> - handling of 302 redirects with invalid relative paths.
JMeter now removes extraneous leading "../" segments (as do many browsers)
</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=44521">
      Bug
      44521</a> - empty variables for a POST in the HTTP Request don't get ignored</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=46977">
      Bug
      46977</a> - JMeter does not handle HTTP headers not delimited by whitespace</li>

<li>Fix bug in HTTP file: handling - read bytes, not characters in the default encoding.</li>


<li>Remove Host from headers saved by the Proxy server, as that will normally be generated by the HTTP stack</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=45199">
      Bug
      45199</a> - don't try to replace blank variables in Proxy recording</li>

<li>Change HTTPS spoofing so https: links are replaced even when URL match fails</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=46436">
      Bug
      46436</a> - Improve error reporting in Proxy Gui</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=46435">
      Bug
      46435</a> - More verbose error msg for error 501 (Proxy Server)</li>

</ul>


<h3>Other Samplers</h3>

<ul>

<li>The "prev" and "sampler" objects are now defined for BSF test elements</li>

<li>Fix NPE (in DataSourceElement) when using JDBC in client-server mode</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=45425">
      Bug
      45425</a> - JDBC Request does not support Unicode (changed sampler to use UTF-8)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=46522">
      Bug
      46522</a> - Incorrect "Response data" in JDBC sample when column names are missing</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=46821">
      Bug
      46821</a> - JDBC select request doesn't store the first column in the variables</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=43791">
      Bug
      43791</a> - ensure QueueReceiver is closed in JMS Point to Point sampler</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=46016">
      Bug
      46016</a> - avoid possible NPE in JMSSampler</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=46142">
      Bug
      46142</a> - JMS Receiver now uses MessageID</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=45458">
      Bug
      45458</a> - Point to Point JMS in combination with authentication</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=45460">
      Bug
      45460</a> - JMS TestPlan elements depend on resource property</li>

<li>Various ReceiveSubscriber thread-safety fixes</li>

<li>JMSPublisher and Subscriber fixes: thread-safety, support dynamic locale changes, locale independence for JMX attribute values</li>

<li>FTP Sampler now logs out before disconnecting.</li>

<li>TCP sampler now calls setupTest() and teardownTest() methods</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=45887">
      Bug
      45887</a> - TCPSampler: timeout property incorrectly set</li>

</ul>


<h3>Controllers</h3>

<ul>

<li>Fix NPE when using nested Transaction Controllers with parent samples</li>

<li>Fix processing of Transaction Controller parent mode so current sampler is set to actual sampler</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=44941">
      Bug
      44941</a> - Throughput controllers should not share global counters</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=47120">
      Bug
      47120</a> - Throughput Controller: change percent executions to total executions, the value is stored in a String and interpreted as 1 execution</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=47150">
      Bug
      47150</a> - ThreadGroup with a loop count of zero causes infinite loop</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=47009">
      Bug
      47009</a> - Insert parent caused child controller name to be reset</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=47165">
      Bug
      47165</a> - Using duplicate Module Controller names in command line mode causes NPE</li>

</ul>


<h3>Listeners</h3>

<ul>

<li>Mailer Visualizer documentation now agrees with code i.e. failure/success counts need to be exceeded to trigger the mail.</li>

<li>Mailer Visualizer now shows the failure count</li>

<li>Mailer Visualiser - fix parsing of multiple e-mail address when using Test button</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=45976">
      Bug
      45976</a> - incomplete result file when using remote testing with more than 1 server</li>

<li>Fix Summariser so it works in client server mode</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=34096">
      Bug
      34096</a> - Duplicate samples not eliminated when writing to CSV files</li>

<li>Save "Include group Name in Label" setting in Aggregate and Summary reports</li>

<li>The JMeter variable "sample_variables" is sent to all server instances to ensure the data is available to the client.</li>

<li>CSVSaveService - check for EOF while reading quoted string</li>

</ul>


<h3>Assertions</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=45749">
      Bug
      45749</a> - Response Assertion does not work with a substring that happens to be an invalid RE</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=45904">
      Bug
      45904</a> - Allow 'Not' Response Assertion to succeed with null sample</li>

</ul>


<h3>Functions</h3>

<ul>

<li>Fix regex function - was failing to process $m$mid$n$ correctly</li>

<li>Protect against possible NPE in RegexFunction if called during test shutdown.</li>

<li>Avoid NPE if XPath function does not match any nodes</li>

<li>Correct the variable name "theadName" to "threadName" in the __jexl() and __javaScript() functions</li>

<li>A reference to a missing function - e.g. ${__missing(a)} - is now treated the same as a missing variable. Previously the function name - and leading { - were dropped.</li>

</ul>


<h3>I18N</h3>

<ul>

<li>Fixed language change handling for menus (does not yet work for TestBeans)</li>

<li>Add HeaderAsPropertyRenderer to support header resource names; use this to fix locale changes in various GUI elements</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=46424">
      Bug
      46424</a> - corrections to French translation</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=46844">
      Bug
      46844</a> -  "Library" label in test plan are not I18N</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=47064">
      Bug
      47064</a> - fixes for Mac LAF</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=47127">
      Bug
      47127</a> -  Unable to change language to pl_PL</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=47137">
      Bug
      47137</a> - Labels in View Results Tree aren't I18N</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=46423">
      Bug
      46423</a> - I18N of Proxy Recorder</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=45928">
      Bug
      45928</a> - AJP/1.3 Sampler doesn't retrieve its label from messages.properties</li>

</ul>


<h3>General</h3>

<ul>

<li>Prompt to overwrite an existing file when first saving a new test plan</li>

<li>Amend TestBeans to show the correct popup menu for Listeners</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=45185">
      Bug
      45185</a> - CSV dataset blank delimiter causes OOM</li>

<li>Fix incorrect GUI classifications:
"Save Results to a file" and "Generate Summary Results" are now shown as Listeners.
"Counter" is now shown as a Configuration element.
</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=41608">
      Bug
      41608</a> - misleading warning log message removed</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=46359">
      Bug
      46359</a> - BSF JavaScript Preprocessor cannot access sampler variable on first iteration (Implement temporary work-round for BSF-22)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=46407">
      Bug
      46407</a> - BSF elements do not load script files, attempt to interpret filename as script</li>

<li>Better handling of Exceptions during test shutdown</li>

<li>Fix potential thread safety issue in JMeterThread class</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=46491">
      Bug
      46491</a> - Incorrect value for the last variable in "CSV Data Set Config" (error in processing quoted strings)</li>


</ul>




<h2>Improvements</h2>


<h3>HTTP Samplers</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=45479">
      Bug
      45479</a> - Support for multiple HTTP Header Manager nodes</li>

<li>HTTP Samplers now support connection and request timeouts (requires Java 1.5 for Java Http sampler)</li>

<li>Apache SOAP 2.3.1 does not give access to HTTP response code/message, so WebService sampler now treats an empty response as an error</li>

<li>Mirror server now supports "X-Sleep" header - if this is set, the responding thread will wait for the specified number of milliseconds</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=45694">
      Bug
      45694</a> - Support GZIP compressed logs in Access Log Sampler</li>

</ul>


<h3>Other samplers</h3>

<ul>

<li>JDBC Request can optionally save the results of Select statements to variables.</li>

<li>JDBC Request now handles quoted strings.</li>

<li>JDBC Request now handles arbitrary variable types.</li>

<li>LDAP result data now formatted with line breaks</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=45200">
      Bug
      45200</a> - MailReaderSampler: store the whole MIME message in the SamplerResult</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=45571">
      Bug
      45571</a> - JMS Sampler correlation enhancement</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=46030">
      Bug
      46030</a> - Extend TCP Sampler to Support Length-Prefixed Binary Data</li>

<li>Add classname field to TCP Sampler GUIs</li>

</ul>


<h3>Controllers</h3>

<ul>

<li>Allow If Controller to use variable expressions (not just Javascript)</li>

<li>Trim spaces from While Controller condition before comparing against LAST, blank or false</li>

</ul>


<h3>Listeners</h3>

<ul>

<li>Save Responses to a file can save the generated filename(s) to variables.</li>

<li>Add option to skip suffix generation in Save Responses to a File</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=43119">
      Bug
      43119</a> - Save Responses to file: optionally omit the file number</li>

<li>Add BSF Listener element</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=47176">
      Bug
      47176</a> -  Monitor Results : improve load status graphic</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=40045">
      Bug
      40045</a> - Allow Results monitor to select a specific connector</li>

<li>Read XML JTL files more efficiently - pass samples to visualizers as they are read, rather than saving them all and then processing them</li>

</ul>


<h3>Assertions, Config, Pre- &amp; Post-Processors</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=45903">
      Bug
      45903</a> - allow Assertions to apply to sub-samples</li>

<li>Add Body (unescaped) source option to Regular Expression Extractor.</li>

<li>Random Variable - new configuration element to create random numeric variables</li>

</ul>


<h3>Functions</h3>

<ul>

<li>Add OUT and log variables to __jexl() function</li>

<li>Use Script to evaluate __jexl() function so can have multiple statements.</li>

<li>Add log variable to the __javaScript() function</li>

<li>Added __char() function: allows arbitrary Unicode characters to be entered in fields.</li>

<li>Added __unescape() function: allows Java-escaped strings to be used.</li>

<li>Added __unescapeHtml() function: decodes Html-encoded text.</li>

<li>Added __escapeHtml() function: encodes text using Html-encoding.</li>

</ul>


<h3>I18N</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=45929">
      Bug
      45929</a> - improved French translations</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=47132">
      Bug
      47132</a> - Brazilian Portuguese translations</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=46900">
      Bug
      46900</a> - Polish translations</li>

<li>Added locales.add property to allow for new Locales</li>

</ul>


<h3>General</h3>

<ul>

<li>Allow spaces in JMeter path names (apply work-round for <a href="http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4496398">Java Bug 4496398</a>)</li>

<li>Process JVM_ARGS last in script files so users can override default settings</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=46636">
      Bug
      46636</a> - Allow server mode to optionally use a fixed rmi port</li>

<li>Make some samplers interruptible: HTTP (both), SoapSampler, FTPSampler</li>

<li>Test Action now supports "Stop Now" action, as do the Thread Group and Result Status Post Processor elements</li>

<li>The Menu items Stop and Shutdown now behave better. Shutdown will now wait until all threads exit.
In GUI mode it can be cancelled and Stop run instead.
Stop now reports if some threads will not exit, and exits if running in non-GUI mode</li>

<li>Add UDP server to wait for shutdown message if running in non-GUI mode; add UDP client to send the message.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=41209">
      Bug
      41209</a> - JLabeled* and ToolTips</li>

<li>Include BeanShell 2.0b4 jar in binary download.</li>

</ul>


<h2>Non-functional changes</h2>

<ul>

<li>Introduce AbstractListenerGui class to make it easier to create Listeners with no visual output</li>

<li>Assertions are run after PostProcessors; change order of pop-up menus accordingly</li>

<li>Remove unnecessary clone() methods from function classes</li>

<li>Moved PreProcessor invocation to JMeterThread class</li>

<li>Made HashTree Map field final</li>

<li>Improve performance of calling ResultCollector#isSampleWanted() for multiple samples</li>

<li>Updated to new versions of: xmlgraphics-commons (1.3.1), jdom (1.1), xstream (1.3.1), velocity (1.6.2)</li>

</ul>





<h2>Version 2.3.2</h2>


<h3>Summary of main changes</h3>


<h4>Bug fixes</h4>

<p>
Version 2.3.1 changed the way binary and text content types were determined as far as the View Results Tree Listener was concerned:
originally everything except "image/" content types were considered text, but 2.3.1 introduced a check
for specific content types. This has caused problems,
as several popular types were omitted and these were no longer shown by default in the Response tab.
Rather than try to list all the possible text types, JMeter now just checks for the following binary types:
<ul>

<li>image/*</li>

<li>audio/*</li>

<li>video/*</li>

</ul>
All other types are now assumed to be text.
</p>


<p>
JMeter 2.3.1 introduced a bug in the Cookie Manager
- if "Clear Cookie each iteration" was selected, all threads would see the same cookies.
This bug has been corrected.
</p>


<h4>Improvements</h4>


<p>
The Proxy server can now record binary requests.
By default the content types
application/x-amf and application/x-java-serialized-object
will be treated as binary and saved in a file.
To change the content types, update the property <b>proxy.binary.types</b>.
</p>


<p>
The CSV Dataset configuration element has new file sharing options: per thread group, per thread, per identifier.
This allows for more flexible file processing, e.g. each thread can process the same data in the same order.
</p>


<p>Switch Controller now works properly with functions and variables,
and the condition can now be a name instead of a number.
Simple Controller now works properly under a While Controller</p>


<p>CSV fields in JTL files can now contain delimiters.
CSV and XML files can now contain additional variables (define the JMeter property <b>sample_variables</b>).</p>


<p>Response Assertion can now match on substrings (i.e. not regular expression).
Regex extractor can operate on variables.</p>


<p>
XPath processing is improved; Tidy errors are handled better.
</p>


<p>Save Table Data buttons added to Summary and Aggregate reports to allow easy saving of the calculated data.</p>


<p>
HTTP samplers can now save just the MD5 hash of responses, rather than the entire response.
As a special case, if the HTTP Sampler path starts with "http://" or "https://" then this is used as the full URL,
overriding the host and port fields.
The HTTP Samplers can now POST multiple files.
Webservice(SOAP) Sampler can now load local WSDL files using the "file:" protocol.
</p>


<p>
A simple HTTP Cache Manager has been added. This needs further development.
</p>


<p>
View Results Tree Listener now uses Tidy to display XML.
This should allow more content to be displayed successfully.
It also avoids the need to download remote DTD files, which can slow the rendering considerably.
</p>


<p>
MailReader sampler now supports POP3S and IMAPS protocols. Individual mails are now added as sub-samples.
</p>


<p>
Various improvements to the BSF Sampler: now supports Jexl, and Javascript bug works properly.
Added BSF PreProcessor, PostProcessor and Assertion test elements.
All now have access to "props" JMeter Properties object.
</p>


<p>Number of classes loaded in non-GUI mode is much reduced.</p>


<h3>Known bugs</h3>


<p>
The Include Controller has some problems in non-GUI mode.
In particular, it can cause a NullPointerException if there are two include controllers with the same name.
</p>


<p>Once Only controller behaves OK under a Thread Group or Loop Controller,
but otherwise its behaviour is not consistent (or clearly specified).</p>


<p>
The menu item Options / Choose Language does not change all the displayed text to the new language.
To override the default local language, set the JMeter property "language" before starting JMeter.
</p>

<h3>Incompatible changes</h3>

<ul>

<li>
To reduce the number of classes loaded in non-GUI mode,
Functions will only be found if their classname contains the string
'.functions.' and does not contain the string '.gui.'.
All existing JMeter functions conform to this restriction.
To revert to earlier behaviour, comment or change the properties classfinder.functions.* in jmeter.properties.
</li>

<li>The reference value parameter for intSum() is now optional.
As a consequence, if a variable name is used, it must not be a valid integer.</li>

<li>The supplied TCPClient implementation no longer treats tcp.eolByte=0 as special.
To skip EOL checking, set tcp.eolByte=1000 (or some other value which is not a valid byte)
</li>

<li>
Leading and trailing spaces are trimmed from variable names in function calls.
For example, ${__Random(1,63,&nbsp;LOTTERY&nbsp;)} will use the variable 'LOTTERY' rather than '&nbsp;LOTTERY&nbsp;'.
</li>

<li>
Synchronization has been removed from the RunningSample class (it was not fully threadsafe anyway).
Developers of 3<sup>rd</sup> party add-ons that use the class may need to synchronize access.
</li>

</ul>


<h3>Bug fixes</h3>

<ul>

<li>Check that the CSV delimiter is reasonable.</li>

<li>Fix Switch Controller to work properly with functions and variables</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=44011">
      Bug
      44011</a> - application/soap+xml not treated as a text type</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=43427">
      Bug
      43427</a> - Simple Controller is only partly executed in While loop</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=33954">
      Bug
      33954</a> - Stack Overflow in If/While controllers (may have been fixed previously)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=44022">
      Bug
      44022</a> - Memory Leak when closing test plan</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=44042">
      Bug
      44042</a> - Regression in Cookie Manager (Bug introduced in 2.3.1)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=41028">
      Bug
      41028</a> - JMeter server doesn't alert the user when the host is defined as a loopback address</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=44142">
      Bug
      44142</a> - Function __machineName causes NPE if parameters are omitted.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=44144">
      Bug
      44144</a> - JMS point-to-point: request response test does not work</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=44314">
      Bug
      44314</a> - Not possible to add more than one SyncTimer</li>

<li>Capture Tidy console error output and log it</li>

<li>Fix problems using Tidy(tolerant parser) in XPath Assertion and XPath Extractor</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=44374">
      Bug
      44374</a> - improve timer calculation</li>

<li>Regular Expression Extractor now deletes all stale variables from previous matches.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=44707">
      Bug
      44707</a> - Running remote test changes internal test plan</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=44625">
      Bug
      44625</a> - Cannot have two or more FTP samplers with different "put" and "get" actions</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=40850">
      Bug
      40850</a> - BeanShell memory leak</li>

<li>Ensure ResponseCode and ResponseMessage are set for successful JDBC samples</li>

<li>FTPSampler now detects and reports failure to open the remote file</li>

<li>Class directories defined in search_paths and user.classpath no longer need trailing "/"</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=44852">
      Bug
      44852</a> SOAP/ XML-RPC Request does not show Request details in View Results Tree</li>

<li>WebService(SOAP) Sampler ResponseData now includes the EOLs sent by server</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=44910">
      Bug
      44910</a> - close previous socket (if any) in TCP Sampler</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=44912">
      Bug
      44912</a> - Filter not working in Log Parser</li>

<li>The BeanShell and BSF component documentation made some incorrect references to the "SampleResponse" object;
this has been corrected to "SampleResult"</li>

<li>BSF Sampler now works properly with Javascript</li>

<li>Test Action "Stop Test" now works</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=42833">
      Bug
      42833</a> - Argument class uses LinkedHashMap in getArgumentsAsMap() to preserve ordering</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=45093">
      Bug
      45093</a> - SizeAssertion did not call getBytes()</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=45007">
      Bug
      45007</a> - Rewrite Location headers when using Proxy HTTPS spoofing</li>

<li>Use CRLF rather than LF in Proxy when returning headers to the client</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=45007">
      Bug
      45007</a> - fix content length header if content may have been changed</li>

</ul>


<h3>Improvements</h3>

<ul>

<li>CSV files can now handle fields with embedded delimiters.</li>

<li>longSum() function added</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=43382">
      Bug
      43382</a> - configure Tidy output (warnings, errors) for XPath Assertion and Post-Processor</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=43984">
      Bug
      43984</a> - trim spaces from port field</li>

<li>Add optional comment to __log() function</li>

<li>Make Random function variable name optional</li>

<li>Reduce class loading in non-GUI mode by only looking for Functions in class names
that contain '.functions.' and don't contain '.gui.'</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=43379">
      Bug
      43379</a> - Switch Controller now supports selection by name as well as number</li>

<li>Can specify list of variable names to be written to JTL files (CSV and XML format)</li>

<li>Now checks that the remoteStart options -r and -R are only used with non_GUI -n option</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=44184">
      Bug
      44184</a> - Allow header to be saved with Aggregate Graph data</li>

<li>Added "Save Table Data" buttons to Aggregate and Summary Reports - save table as CSV format with header</li>

<li>Allow most functions to be used on the Test Plan.
Note __evalVar(), __split() and __regex() cannot be used on the Test Plan.</li>

<li>Allow Global properties to be loaded from a file, e.g. -Gglobal.properties</li>

<li>Add "Substring" option to Response Assertion</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=44378">
      Bug
      44378</a> - Turkish localisation</li>

<li>Add optional output variable name to Jexl function</li>

<li>Add application/vnd.wap.xhtml+xml as a text type</li>

<li>Add means to override maximum display size in View Results Tree - set the property: view.results.tree.max_size</li>

<li>Use Tidy to display XML in View Results Tree Listener (avoids fetching DTDs)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=44487">
      Bug
      44487</a> - German translation</li>

<li>
As a special case, if the HTTP Sampler path starts with "http://" or "https://" then this is used as the full URL.
</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=44575">
      Bug
      44575</a> - Result Saver can now save only successful results</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=44650">
      Bug
      44650</a> - CSV Dataset now handles quoted column values</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=44600">
      Bug
      44600</a> - 1-ms resolution timer when running with Java 1.5+</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=44632">
      Bug
      44632</a> - Text input enhancement to FTP Sampler</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=42204">
      Bug
      42204</a> - add thread group name to Aggregate and Summary reports</li>

<li>FTP Sampler sets latency = time to login</li>

<li>FTP Sampler sets a URL if it can</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=41921">
      Bug
      41921</a> - add option for samplers to store MD5 of response; done for HTTP Samplers.</li>

<li>Regex Function can now also be applied to a variable rather than just the previous sample result.</li>

<li>Remove HTML Parameter Mask,HTTP User Parameter Modifier from menus as they are deprecated</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=44807">
      Bug
      44807</a> - allow session ids to be terminated by backslash</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=44784">
      Bug
      44784</a> - allow for broken server returning additional charset</li>

<li>Added TESTSTART.MS property / variable = test start time in milliseconds</li>

<li>Add POP3S and IMAPS protocols to Mail Reader Sampler.</li>

<li>Mail Reader Sampler now creates a sub-sample for each mail.</li>

<li>The supplied TCPClient implementation no longer treats tcp.eolByte=0 as special.
To skip EOL checking, set tcp.eolByte=1000 (or some other value which is not a valid byte)
</li>

<li>JUnit sampler GUI now also finds Test classes defined in user.classpath</li>

<li>
Leading and trailing spaces are trimmed from variable names in function calls.
For example, ${__Random(1,63,&nbsp;LOTTERY&nbsp;)} will use the variable 'LOTTERY' rather than '&nbsp;LOTTERY&nbsp;'
</li>

<li>Webservice(SOAP) Sampler can now load local WSDL files using the file: protocol</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=44872">
      Bug
      44872</a> - Add "All Files" filter to Open File dialogs</li>

<li>Mirror server can now be run independently (mirror-server.cmd and mirror-server.sh)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=19128">
      Bug
      19128</a> - Added multiple file POST support to HTTP Samplers</li>

<li>Allow use of special name LAST to mean the last test run; applies to -t, -l, -j flags</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=44418">
      Bug
      44418</a>/42178 - CSV Dataset file handling improvements</li>

<li>Give BeanShell, Javascript and Jexl functions access to JMeter properties via the "props" object</li>

<li>Give BSF Sampler access to JMeter Properties via "props" object</li>

<li>Add Jexl as a supported BSF Sampler language</li>

<li>Give Beanshell test elements access to JMeter Properties via "props" object</li>

<li>Added BSF PreProcessor, PostProcessor and Assertion test elements</li>

<li>All BSF elements now have access to System.out via the variable "OUT"</li>

<li>Summariser updated to handle variable names</li>

<li>Synchronisation added to Summary and Aggregate Report to try to prevent occasional lost samples</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=44808">
      Bug
      44808</a>,<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=39641">
      Bug
      39641</a> - Proxy support for binary requests</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=28502">
      Bug
      28502</a> - HTTP Resource Cache</li>

</ul>


<h3>Non-functional changes</h3>

<ul>

<li>Better handling of MirrorServer startup problems and improved unit test.</li>

<li>Build process now detects missing 3<sup>rd</sup> party libraries and reports need for both binary and source archives</li>

<li>Skip BeanShell tests if jar is not present</li>

<li>Update to Xerces 2.9.1, Xalan 2.7.1, Commons IO 1.4, Commons Lang 2.4, Commons-Logging 1.1.1, XStream 1.3, XPP3 1.1.4c</li>

<li>Use properties for log/logn function descriptions</li>

<li>Check that all jmx files in the demos directory can be loaded OK</li>

<li>Update copyright to 2008; use copy tag instead of numeric character in HTML output</li>

<li>Methods called from constructors must not be overridable: make GUI init methods private</li>

<li>Make static variables final if possible</li>

<li>Split changes into current and previous</li>

</ul>




<h3>Version 2.3.1</h3>

<h4>Summary of changes</h4>


<h5>JMeter Proxy</h5>


<p>
The Proxy spoof function was broken in 2.3; it has been fixed.
Spoof now supports an optional parameter to limit spoofing to particular URLs.
This is useful for HTTPS pages that have insecure content - e.g. images/stylesheets may be accessed using HTTP.
Spoofed responses now drop the default port (443) from https links to make them work better.
</p>

<p>
Ignored proxy samples are now visible in Listeners - the label is enclosed in [ and ] as an indication.
Proxy documentation has been improved.
</p>


<h5>GUI changes</h5>


<p>The Add menus show element types in the order in which they are processed
- see <a href="usermanual/test_plan.html#executionorder">Test Plan Execution Order</a>.
It is no longer possible to add test elements to inappropriate parts of the tree
- e.g. samplers cannot be added directly under a test plan.
This also applies to Paste and drag and drop.
</p>


<p>
The File menu now supports a "Revert" option, which reloads the current file.
Also the last few file names used are remembered for easy reloading.
</p>


<p>
The Options Menu now supports Collapse All and Expand All items to collapse and expand the test tree.
</p>


<h5>Remote testing</h5>


<p>
The JMeter server now starts the RMI server directly (by default).
This simplifies testing, and means that the RMI server will be stopped when the server stops.
</p>


<p>
Functions can now be used in Listener filenames (variables do not work).
</p>


<p>
Command-line option -G can now be used to define properties for remote servers.
Option -X can be used to stop a remote server after a non-GUI run.
Server can be set to automatically exit after a single test (set property server.exitaftertest=true).
</p>


<h5>Other enhancements</h5>


<p>
JMeter startup no longer loads as many classes; this should reduce memory requirements.
</p>


<p>
Parameter and file support added to all BeanShell elements.
Javascript function now supports access to JMeter objects;
Jexl function always did have access, but the documentation has now been included.
New functions __eval() and __evalVar() for evaluating variables.
</p>


<p>
CSV files with the correct header column names are now automatically recognised when loaded.
There is no need to configure the properties.
</p>


<p>
The hostname can now be saved in CSV and XML output files.
New "Successes only" option added when saving result files.
Errors / Successes only option is now supported when loading XML and CSV files.
</p>


<p>
General documentation improvements.
</p>


<h5>HTTP</h5>


<p>PUT and DELETE should now work properly.
Cookie Manager no longer clears manually entered cookies.
</p>

<p>Now handles the META tag http-equiv charset</p>


<h5>JDBC</h5>


<p>JDBC Sampler now allows INOUT and OUT parameters for Called procedures.
JDBC Sampler now allows per-thread connections - set Max Connections = 0 in JDBC Config.
</p>


<hr>



<h4>Incompatible changes</h4>

<ul>

<li>JMeter server now creates the RMI registry by default.
If the RMI registry has already been started externally, this will generate a warning message, but the server will continue.
This should not affect JMeter testing.
However, if you are also using the RMI registry for other applications there may be problems.
For example, when the JMeter server shuts down it will stop the RMI registry.
Also user-written command files may need to be adjusted (the ones supplied with JMeter have been updated).
To revert to the earlier behaviour, define the JMeter property: <b>server.rmi.create=false</b>.
</li>

<li>The Proxy server removes If-Modified-Since and If-None-Match headers from generated Header Managers.
To revert to the previous behaviour, define the property proxy.headers.remove with no value</li>

</ul>


<h4>Bug fixes</h4>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=43430">
      Bug
      43430</a> - Count of active threads is incorrect for remote samples</li>

<li>Throughput Controller was not working for "all thread" counts</li>

<li>If a POST body is built from parameter values only, these are now encoded if the checkbox is set.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=43584">
      Bug
      43584</a> - Assertion Failure Message contains a comma that is also used as the delimiter for CSV files</li>

<li>HTTP Mirror Server now always returns the exact same content, it used to return incorrect data if UTF-8 encoding was used for HTTP POST body, for example</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=43612">
      Bug
      43612</a> - HTTP PUT does not honor request parameters</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=43694">
      Bug
      43694</a> - ForEach Controller (empty collection processing error)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=42012">
      Bug
      42012</a> - Variable Listener filenames do not get processed in remote tests.
Filenames can now include function references; variable references do not work.</li>

<li>Ensure Listener nodes get own save configuration when copy-pasted</li>

<li>Correct Proxy Server include and exclude matching description - port and query are included, contrary to previously documented.</li>

<li>Aggregate Graph and Aggregate Report Column Header is KB/Sec; fixed the values to be KB rather than bytes</li>

<li>
Fix SamplingStatCalculator so it no longer adds elapsed time to endTime, as this is handled by SampleResult.
This corrects discrepancies between Summary Report and Aggregate Report throughput calculation.
</li>

<li>Default HTTPSampleResult to ISO-8859-1 encoding</li>

<li>Fix default encoding for blank encoding</li>

<li>Fix Https spoofing (port problem) which was broken in 2.3</li>

<li>Fix HTTP (Java) sampler so http.java.sampler.retries means retries, i.e. does not include initial try</li>

<li>Fix SampleResult dataType checking to better detect TEXT documents</li>

</ul>


<h4>Improvements</h4>

<ul>

<li>Add run_gui Ant target, to package and then start the JMeter GUI from Ant</li>

<li>Add File&rarr;Revert to easily drop the current changes and reload the project file currently loaded</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=31366">
      Bug
      31366</a> - Remember recently opened file(s)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=43351">
      Bug
      43351</a> - Add support for Parameters and script file to all BeanShell test elements</li>

<li>SaveService no longer needs to instantiate classes</li>

<li>New functions: __eval() and __evalVar()</li>

<li>Menu items now appear in execution order</li>

<li>Test Plan items can now only be dropped/pasted/merged into parts of the tree where they are allowed</li>

<li>Property Display to show the value of System and JMeter properties and allow them to be changed</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=43451">
      Bug
      43451</a> - Allow Regex Extractor to operate on Response Code/Message</li>

<li>JDBC Sampler now allows INOUT and OUT parameters for Called procedures</li>

<li>JDBC Sampler now allows per-thread connections</li>

<li>Cookie Manager not longer clears cookies defined in the GUI</li>

<li>HTTP Parameters without names are ignored (except for POST requests with no file)</li>

<li>"Save Selection As" added to main menu; now checks only item is selected</li>

<li>Test Plan now has Paste menu item (paste was already supported via ^V)</li>

<li>If the default delimiter does not work when loading a CSV file, guess the delimiter by analysing the header line.</li>

<li>Add optional "loopback" protocol for HttpClient sampler</li>

<li>HTTP Mirror Server now supports blocking waiting for more data to appear, if content-length header is present in request</li>

<li>HTTP Mirror Server GUI now has the Start and Stop buttons in a more visible place</li>

<li>Server mode now creates the RMI registry; to disable set the JMeter property server.rmi.create=false</li>

<li>HTTP Sampler now supports using MIME Type field to specify content-type request header when body is constructed from parameter values</li>

<li>Enable exit after a single server test - define JMeter property server.exitaftertest=true</li>

<li>Added -G option to set properties in remote servers</li>

<li>Added -X option to stop remote servers after non-GUI run</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=43485">
      Bug
      43485</a> - Ability to specify keep-alive on SOAP/XML-RPC request</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=43678">
      Bug
      43678</a> - Handle META tag http-equiv charset</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=42555">
      Bug
      42555</a> - [I18N] Proposed corrections for the french translation</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=43727">
      Bug
      43727</a> - Test Action does not support variables or functions</li>

<li>The Proxy server removes If-Modified-Since and If-None-Match headers from generated Header Managers by default.
To change the list of removed headers, define the property proxy.headers.remove as a comma-separated list of headers to remove</li>

<li>The javaScript function now has access to JMeter variables and context etc. See <a href="usermanual/functions.html#__javaScript">JavaScript function</a>
</li>

<li>Use drop-down list for BSF Sampler language field</li>

<li>Add hostname to items that can be saved in CSV and XML output files.</li>

<li>Errors only flag is now supported when loading XML and CSV files</li>

<li>Ensure ResultCollector uses SaveService encoding</li>

<li>Proxy now rejects attempts to use it with https</li>

<li>Proxy spoofing can now use RE matching to determine which urls to spoof (useful if images are not https)</li>

<li>Proxy spoofing now drops the default HTTPS port (443) when converting https: links to http:</li>

<li>Add Successes Only logging and display</li>

<li>The JMeter log file name is formatted as a SimpleDateFormat (applied to the current date) if it contains paired single-quotes,  .e.g. 'jmeter_'yyyyMMddHHmmss'.log'</li>

<li>Added Collapse All and Expand All Option menu items</li>

<li>Allow optional definition of extra content-types that are viewable as text</li>

</ul>


<h4>Non-functional Improvements</h4>

<ul>

<li>Functor code tightened up; Functor can now be used with interfaces, as well as pre-defined targets and parameters.</li>

<li>Save graphics function now prompts before overwriting an existing file</li>

<li>Debug Sampler and Debug PostProcessor added.</li>

<li>Fixed up method names in Calculator and SamplingStatCalculator</li>

<li>Tidied up Listener documentation.</li>

</ul>




<h3>Version 2.3</h3>


<h3>Fixes since 2.3RC4</h3>


<h4>Bug fixes</h4>

<ul>

<li>Fix NPE in SampleResultConverter - XStream PrettyPrintWriter cannot handle nulls</li>

<li>If Java HTTP sampler sees null ResponseMessage, replace with HTTP header</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=43332">
      Bug
      43332</a> - 2.3RC4 does not clear Guis based on TestBean</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=42948">
      Bug
      42948</a> - Problems with Proxy gui table fields in Java 1.6</li>

<li>Fixup broken jmeter-server script</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=43364">
      Bug
      43364</a> - option to revert If Controller to pre 2.3RC3 behaviour</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=43449">
      Bug
      43449</a> - Statistical Remote mode does not handle Latency</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=43450">
      Bug
      43450</a> (partial fix) - Allow SampleCount and ErrorCount to be saved to/restored from files</li>

</ul>


<h4>Improvements</h4>

<ul>

<li>Add nameSpace option to XPath extractor</li>

<li>Add NULL parameter option to JDBC sampler</li>

<li>Add documentation links for Rhino and BeanShell to functions; clarify variables and properties</li>

<li>Ensure uncaught exceptions are logged</li>

<li>Look for user.properties and system.properties in JMeter bin directory if not found locally</li>

</ul>


<h4>Fixes since 2.3RC3</h4>

<ul>

<li>Fixed NPE in Summariser (bug introduced in 2.3RC3)</li>

<li>Fixed setup of proxy port (bug introduced in 2.3RC3)</li>

<li>Fixed errors when running non-GUI on a headless host (bug introduced in 2.3RC3)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=43054">
      Bug
      43054</a> - SSLManager causes stress tests to saturate and crash (bug introduced in 2.3RC3)</li>

<li>Clarified HTTP Request Defaults usage of the port field</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=43006">
      Bug
      43006</a> - NPE if icon.properties file not found</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=42918">
      Bug
      42918</a> - Size Assertion now treats an empty response as having zero length</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=43007">
      Bug
      43007</a> - Test ends before all threadgroups started</li>

<li>Fix possible NPE in HTTPSampler2 if 302 does not have Location header.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=42919">
      Bug
      42919</a> - Failure Message blank in CSV output [now records first non-blank message]</li>

<li>Add link to Extending JMeter PDF</li>

<li>Allow for quoted charset in Content-Type parsing</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=39792">
      Bug
      39792</a> - ClientJMeter synchronisation needed</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=43122">
      Bug
      43122</a> - GUI changes not always picked up when short-cut keys used (bug introduced in 2.3RC3)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=42947">
      Bug
      42947</a> - TestBeanGUI changes not picked up when short-cut keys used</li>

<li>Added serializer.jar (needed for update to xalan 2.7.0)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=38687">
      Bug
      38687</a> - Module controller does not work in non-GUI mode</li>

</ul>


<h4>Improvements since 2.3RC3</h4>

<ul>

<li>Add stop thread option to CSV Dataset</li>

<li>Updated commons-httpclient to 3.1</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=28715">
      Bug
      28715</a> - allow variable cookie values (set CookieManager.allow_variable_cookies=false to disable)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=40873">
      Bug
      40873</a> - add JMS point-to-point non-persistent delivery option</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=43283">
      Bug
      43283</a> - Save action adds .jmx if not present; checks for existing file on Save As</li>

<li>
<span class="keycombo"><span class="keysym">Control</span>&nbsp;+&nbsp;<span class="keysym">A</span></span> key does not work for Save All As;
    changed to <span class="keycombo"><span class="keysym">Control</span>&nbsp;+&nbsp;<span class="keysym">Shift</span>&nbsp;+&nbsp;<span class="keysym">S</span></span>
</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=40991">
      Bug
      40991</a> - Allow Assertions to check Headers</li>

</ul>


<h3>Version 2.3RC3</h3>


<h4>Known problems/restrictions:</h4>

<p>
The JMeter remote server does not support multiple concurrent tests - each remote test should be run in a separate server.
Otherwise tests may fail with random Exceptions, e.g. ConcurrentModification Exception in StandardJMeterEngine.
See <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=43168">
      Bug
      43168</a>.
</p>

<p>
The default HTTP Request (not HTTPClient) sampler may not work for HTTPS connections via a proxy.
This appears to be due to a Java bug, see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=39337">
      Bug
      39337</a>.
To avoid the problem, try a more recent version of Java, or switch to the HTTPClient version of the HTTP Request sampler.
</p>

<p>Transaction Controller parent mode does not support nested Transaction Controllers.
Doing so may cause a Null Pointer Exception in TestCompiler.
</p>

<p>Thread active counts are always zero in CSV and XML files when running remote tests.
</p>

<p>The property file_format.testlog=2.1 is treated the same as 2.2.
However JMeter does honour the 3 testplan versions.</p>

<p>

<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=22510">
      Bug
      22510</a> - JMeter always uses the first entry in the keystore.
</p>

<p>
Remote mode does not work if JMeter is installed in a directory where the path name contains spaces.
</p>

<p>
BeanShell test elements leak memory.
This can be reduced by using a file instead of including the script in the test element.
</p>

<p>
Variables and functions do not work in Listeners in client-server (remote) mode so they cannot be used
to name log files in client-server mode.
</p>

<p>
CSV Dataset variables are defined after configuration processing is completed,
so they cannot be used for other configuration items such as JDBC Config.
(see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=40394">
      Bug
      40394</a>)
</p>


<h4>Summary of changes (for more details, see below)</h4>

<p>
Some of the main enhancements are:
</p>

<ul>

<li>Htmlparser 2.0 now used for parsing</li>

<li>HTTP Authorization now supports domain and realm</li>

<li>HttpClient options can be specified via httpclient.parameters file</li>

<li>HttpClient now behaves the same as Java Http for SSL certificates</li>

<li>HTTP Mirror Server to allow local testing of HTTP samplers</li>

<li>HTTP Proxy supports XML-RPC recording, and other proxy improvements</li>

<li>__V() function allows support of nested variable references</li>

<li>LDAP Ext sampler optionally parses result sets and supports secure mode</li>

<li>FTP Sampler supports Ascii/Binary mode and upload</li>

<li>Transaction Controller now optionally generates a Sample with subresults</li>

<li>HTTPS session contexts are now per-thread, rather than shared. This gives better emulation of multiple users</li>

<li>BeanShell elements now support ThreadListener and TestListener interfaces</li>

<li>Coloured icons in Tree View Listener and elsewhere to better differentiate failed samples.</li>

</ul>

<p>
The main bug fixes are:
</p>

<ul>

<li>HTTPS (SSL) handling now much improved</li>

<li>Various Remote mode bugs fixed</li>

<li>
<span class="keycombo"><span class="keysym">Control</span>&nbsp;+&nbsp;<span class="keysym">C</span></span>
    and <span class="keycombo"><span class="keysym">Control</span>&nbsp;+&nbsp;<span class="keysym">V</span></span> now work in the test tree</li>

<li>Latency and Encoding now available in CSV log output</li>

<li>Test elements no longer default to previous contents; test elements no longer cleared when changing language.</li>

</ul>


<h4>Incompatible changes (usage):</h4>

<p>

<b>N.B. The javax.net.ssl properties have been moved from jmeter.properties to system.properties,
and will no longer work if defined in jmeter.properties.</b>

<br>
The new arrangement is more flexible, as it allows arbitrary system properties to be defined.
</p>

<p>
SSL session contexts are now created per-thread, rather than being shared.
This generates a more realistic load for HTTPS tests.
The change is likely to slow down tests with many SSL threads.
The original behaviour can be enabled by setting the JMeter property:
<pre>
https.sessioncontext.shared=true
</pre>

</p>

<p>
The LDAP Extended Sampler now uses the same panel for both Thread Bind and Single-Bind tests.
This means that any tests using the Single-bind test will need to be updated to set the username and password.
</p>

<p>

<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=41140">
      Bug
      41140</a>: JMeterThread behaviour was changed so that PostProcessors are run in forward order
(as they appear in the test plan) rather than reverse order as previously.
The original behaviour can be restored by setting the following JMeter property:
<br>
jmeterthread.reversePostProcessors=true
</p>

<p>
The HTTP Authorization Manager now has extra columns for domain and realm,
so the temporary work-round of using '\' and '@' in the username to delimit the domain and realm
has been removed.
</p>

<p>

<span class="keycombo"><span class="keysym">Control</span>&nbsp;+&nbsp;<span class="keysym">Z</span></span> no longer used for Remote Start All - this
now uses <span class="keycombo"><span class="keysym">Control</span>&nbsp;+&nbsp;<span class="keysym">Shift</span>&nbsp;+&nbsp;<span class="keysym">R</span></span>

</p>

<p>
HttpClient now uses pre-emptive authentication.
This can be changed by setting the following:
<pre>
jmeter.properties:
httpclient.parameters.file=httpclient.parameters

httpclient.parameters:
http.authentication.preemptive$Boolean=false
</pre>

</p>


<p>
The port field in HTTP Request Defaults is no longer ignored for https samplers if it is set to 80.
</p>


<h4>Incompatible changes (development):</h4>

<p>

<b>N.B.</b>The clear() method was defined in the following interfaces: Clearable, JMeterGUIComponent and TestElement.
The methods serve different purposes, so two of them were renamed:
the Clearable method is now clearData() and the JMeterGUIComponent method is now clearGui().
3<sup>rd</sup> party add-ons may need to be rebuilt.
</p>

<p>
Calculator and SamplingStatCalculator classes no longer provide any formatting of their data.
Formatting should now be done using the jorphan.gui Renderer classes.
</p>

<p>
Removed deprecated method JMeterUtils.split() - use JOrphanUtils version instead.
</p>

<p>
Removed method saveUsingJPEGEncoder() from SaveGraphicsService.
It was unused so far, and used the only Sun-specific class in JMeter.
</p>



<h4>New functionality/improvements:</h4>

<ul>

<li>Add Domain and Realm support to HTTP Authorization Manager</li>

<li>HttpClient now behaves the same as the JDK http sampler for invalid certificates etc</li>

<li>Added httpclient.parameters.file to allow HttpClient parameters to be defined</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=33964">
      Bug
      33964</a> - Http Requests can send a file as the entire post body if name/type are omitted</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=41705">
      Bug
      41705</a> - add content-encoding option to HTTP samplers for POST requests</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=40933">
      Bug
      40933</a>,<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=40945">
      Bug
      40945</a> - optional RE matching when retrieving embedded resource URLs</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=27780">
      Bug
      27780</a> - (patch 19936) create multipart/form-data HTTP request without uploading file</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=42098">
      Bug
      42098</a> - Use specified encoding for parameter values in HTTP GET</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=42506">
      Bug
      42506</a> - JMeter threads now use independent SSL sessions</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=41707">
      Bug
      41707</a> - HTTP Proxy XML-RPC support</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=41880">
      Bug
      41880</a> - Add content-type filtering to HTTP Proxy Server</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=41876">
      Bug
      41876</a> - Add more options to control what the HTTP Proxy generates</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=42158">
      Bug
      42158</a> - Improve support for multipart/form-data requests in HTTP Proxy server</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=42173">
      Bug
      42173</a> - Let HTTP Proxy handle encoding of request, and undecode parameter values</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=42674">
      Bug
      42674</a> - default to pre-emptive HTTP authorisation if not specified</li>

<li>Support "file" protocol in HTTP Samplers</li>

<li>Http Autoredirects are now enabled by default when creating new samplers</li>


<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=40103">
      Bug
      40103</a> - various LDAP enhancements</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=40369">
      Bug
      40369</a> - LDAP: Stable search results in sampler</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=40381">
      Bug
      40381</a> - LDAP: more descriptive strings</li>


<li>BeanShell Post-Processor no longer ignores samples with zero-length result data</li>

<li>Added beanshell.init.file property to run a BeanShell script at startup</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=39864">
      Bug
      39864</a> - BeanShell init files now found from current or bin directory</li>

<li>BeanShell elements now support ThreadListener and TestListener interfaces</li>

<li>BSF Sampler passes additional variables to the script</li>


<li>Added timeout for WebService (SOAP) Sampler</li>


<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=40825">
      Bug
      40825</a> - Add JDBC prepared statement support</li>

<li>Extend JDBC Sampler: Commit, Rollback, AutoCommit</li>


<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=41457">
      Bug
      41457</a> - Add TCP Sampler option to not re-use connections</li>


<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=41522">
      Bug
      41522</a> - Use JUnit sampler name in sample results</li>


<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=42223">
      Bug
      42223</a> - FTP Sampler can now upload files</li>


<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=40804">
      Bug
      40804</a> - Change Counter default to max = Long.MAX_VALUE</li>


<li>Use property jmeter.home (if present) to override user.dir when starting JMeter</li>

<li>New -j option to easily change jmeter log file</li>


<li>HTTP Mirror Server Workbench element</li>


<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=41253">
      Bug
      41253</a> - extend XPathExtractor to work with non-NodeList XPath expressions</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=42088">
      Bug
      42088</a> - Add XPath Assertion for booleans</li>


<li>Added __V variable function to resolve nested variable names</li>


<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=40369">
      Bug
      40369</a> - Equals Response Assertion</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=41704">
      Bug
      41704</a> - Allow charset encoding to be specified for CSV DataSet</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=41259">
      Bug
      41259</a> - Comment field added to all test elements</li>

<li>Add standard deviation to Summary Report</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=41873">
      Bug
      41873</a> - Add name to AssertionResult and display AssertionResult in ViewResultsFullVisualizer</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=36755">
      Bug
      36755</a> - Save XML test files with UTF-8 encoding</li>

<li>Use ISO date-time format for Tree View Listener (previously the year was not shown)</li>

<li>Improve loading of CSV files: if possible, use header to determine format; guess timestamp format if not milliseconds</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=41913">
      Bug
      41913</a> - TransactionController now creates samples as sub-samples of the transaction</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=42582">
      Bug
      42582</a> - JSON pretty printing in Tree View Listener</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=40099">
      Bug
      40099</a> - Enable use of object variable in ForEachController</li>


<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=39693">
      Bug
      39693</a> - View Result Table uses icon instead of check box</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=39717">
      Bug
      39717</a> - use icons in the results tree</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=42247">
      Bug
      42247</a> - improve HCI</li>

<li>Allow user to cancel out of Close dialogue</li>

</ul>


<h4>Non-functional improvements:</h4>

<ul>

<li>Functor calls can now be unit tested</li>

<li>Replace com.sun.net classes with javax.net</li>

<li>Extract external jar definitions into build.properties file</li>

<li>Use specific jar names in build classpaths so errors are detected sooner</li>

<li>Tidied up ORO calls; now only one cache, size given by oro.patterncache.size, default 1000</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=42326">
      Bug
      42326</a> - Order of elements in .jmx files changes</li>

</ul>


<h4>External jar updates:</h4>

<ul>

<li>Htmlparser 2.0-20060923</li>

<li>xstream 1.2.1/xpp3_min-1.1.3.4.O</li>

<li>Batik 1.6</li>

<li>BSF 2.4.0</li>

<li>commons-collections 3.2</li>

<li>commons-httpclient-3.1-rc1</li>

<li>commons-jexl 1.1</li>

<li>commons-lang-2.3 (added)</li>

<li>JUnit 3.8.2</li>

<li>velocity 1.5</li>

<li>commons-io 1.3.1 (added)</li>

</ul>


<h4>Bug fixes:</h4>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=39773">
      Bug
      39773</a> - NTLM now needs local host name - fix other call</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=40438">
      Bug
      40438</a> - setting "httpclient.localaddress" has no effect</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=40419">
      Bug
      40419</a> - Chinese messages translation fix</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=39861">
      Bug
      39861</a> - fix typo</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=40562">
      Bug
      40562</a> - redirects no longer invoke RE post processors</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=40451">
      Bug
      40451</a> - set label if not set by sampler</li>

<li>Fix NPE in CounterConfig.java in Remote mode</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=40791">
      Bug
      40791</a> - Calculator used by Summary Report</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=40772">
      Bug
      40772</a> - correctly parse missing fields in CSV log files</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=40773">
      Bug
      40773</a> - XML log file timestamp not parsed correctly</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=41029">
      Bug
      41029</a> - JMeter -t fails to close input JMX file</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=40954">
      Bug
      40954</a> - Statistical mode in distributed testing shows wrong results</li>

<li>Fix ClassCast Exception when using sampler that returns null, e..g TestAction</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=41140">
      Bug
      41140</a> - Post-processors are run in reverse order</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=41277">
      Bug
      41277</a> - add Latency and Encoding to CSV output</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=41414">
      Bug
      41414</a> - Mac OS X may add extra item to -jar classpath</li>

<li>Fix NPE when saving thread counts in remote testing</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=34261">
      Bug
      34261</a> - NPE in HtmlParser (allow for missing attributes)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=40100">
      Bug
      40100</a> - check FileServer type before calling close</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=39887">
      Bug
      39887</a> - jmeter.util.SSLManager: Couldn't load keystore error message</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=41543">
      Bug
      41543</a> - exception when webserver returns "500 Internal Server Error" and content-length is 0</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=41416">
      Bug
      41416</a> - don't use chunked input for text-box input in SOAP-RPC sampler</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=39827">
      Bug
      39827</a> - SOAP Sampler content length for files</li>

<li>Fix Class cast exception in Clear.java</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=40383">
      Bug
      40383</a> - don't set content-type if already set</li>

<li>Mailer Visualiser test button now works if test plan has not yet been saved</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=36959">
      Bug
      36959</a> - Shortcuts "ctrl c" and "ctrl v" don't work on the tree elements</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=40696">
      Bug
      40696</a> - retrieve embedded resources from STYLE URL() attributes</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=41568">
      Bug
      41568</a> - Problem when running tests remotely when using a 'Counter'</li>

<li>Fixed various classes that assumed timestamps were always end time stamps:
<ul>

<li>SamplingStatCalculator</li>

<li>JTLData</li>

<li>RunningSample</li>

</ul>

</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=40325">
      Bug
      40325</a> - allow specification of proxyuser and proxypassword for WebServiceSampler</li>

<li>Change HttpClient proxy definition to use NTCredentials; added http.proxyDomain property for this</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=40371">
      Bug
      40371</a> - response assertion "pattern to test" scrollbar problem</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=40589">
      Bug
      40589</a> - Unescape XML entities in embedded URLs</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=41902">
      Bug
      41902</a> - NPE in HTTPSampler when responseCode = -1</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=41903">
      Bug
      41903</a> - ViewResultsFullVisualizer : status column looks bad when you do copy and paste</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=41837">
      Bug
      41837</a> - Parameter value corruption in proxy</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=41905">
      Bug
      41905</a> - Can't cut/paste/select Header Manager fields in Java 1.6</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=41928">
      Bug
      41928</a> - Make all request headers sent by HTTP Request sampler appear in sample result</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=41944">
      Bug
      41944</a> - Subresults not handled recursively by ResultSaver</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=42022">
      Bug
      42022</a> - HTTPSampler does not allow multiple headers of same name</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=42019">
      Bug
      42019</a> - Content type not stored in redirected HTTP request with subresults</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=42057">
      Bug
      42057</a> - connection can be null if method is null</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=41518">
      Bug
      41518</a> - JMeter changes the HTTP header Content Type for POST request</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=42156">
      Bug
      42156</a> - HTTPRequest HTTPClient incorrectly urlencodes parameter value in POST</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=42184">
      Bug
      42184</a> - Number of bytes for subsamples not added to sample when sub samples are added</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=42185">
      Bug
      42185</a> - If a HTTP Sampler follows a redirect, and is set up to download images, then images are downloaded multiple times</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=39808">
      Bug
      39808</a> - Invalid redirect causes incorrect sample time</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=42267">
      Bug
      42267</a> - Concurrent GUI update failure in Proxy Recording</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=30120">
      Bug
      30120</a> - Name of simple controller is resetted if a new simple controller is added as child</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=41078">
      Bug
      41078</a> - merge results in name change of test plan</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=40077">
      Bug
      40077</a> - Creating new Elements copies values from Existing elements</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=42325">
      Bug
      42325</a> - Implement the "clear" method for the LogicControllers</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=25441">
      Bug
      25441</a> - TestPlan changes sometimes detected incorrectly (isDirty)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=39734">
      Bug
      39734</a> - Listeners shared after copy/paste operation</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=40851">
      Bug
      40851</a> - Loop controller with 0 iterations, stops evaluating the iterations field</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=24684">
      Bug
      24684</a> - remote startup problems if spaces in the path of the jmeter</li>

<li>Use Listener configuration when loading CSV data files</li>

<li>Function methods setParameters() need to be synchronized</li>

<li>Fix CLI long optional argument to require "=" (as for short options)</li>

<li>Fix SlowSocket to work properly with Httpclient (both http and https)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=41612">
      Bug
      41612</a> - Loop nested in If Controller behaves erratically</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=42232">
      Bug
      42232</a> - changing language clears UDV contents</li>

<li>Jexl function did not allow variables</li>

</ul>


<h3>Version 2.2</h3>


<h4>Incompatible changes:</h4>

<p>
The time stamp is now set to the sampler start time (it was the end).
To revert to the previous behaviour, change the property <b>sampleresult.timestamp.start</b> to false (or comment it)
</p>

<p>The JMX output format has been simplified and files are not backwards compatible</p>

<p>
The JMeter.BAT file no longer changes directory to JMeter home, but runs from the current working directory.
The jmeter-n.bat and jmeter-t.bat files change to the directory containing the input file.
</p>

<p>
Listeners are now started slightly later in order to allow variable names to be used.
This may cause some problems; if so define the following in jmeter.properties:
<br>
jmeterengine.startlistenerslater=false
</p>


<p>
The GUI now expands the tree by default when loading a test plan.
This can be disabled by setting the JMeter property <b>onload.expandtree=false</b>

</p>


<h4>Known problems:</h4>

<ul>

<li>Post-processors run in reverse order (see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=41140">
      Bug
      41140</a>)</li>

<li>Module Controller does not work in non-GUI mode</li>

<li>Aggregate Report and some other listeners use increasing amounts of memory as a test progresses</li>

<li>Does not always handle non-default encoding properly</li>

<li>Spaces in the installation path cause problems for client-server mode</li>

<li>Change of Language does not propagate to all test elements</li>

<li>SamplingStatCalculator keeps a List of all samples for calculation purposes;
this can cause memory exhaustion in long-running tests</li>

<li>Does not properly handle server certificates if they are expired or not installed locally</li>

</ul>


<h4>New functionality:</h4>

<ul>

<li>Report function</li>

<li>XPath Extractor Post-Processor. Handles single and multiple matches.</li>

<li>Simpler JMX file format (2.2)</li>

<li>BeanshellSampler code can update ResponseData directly</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=37490">
      Bug
      37490</a> - Allow UDV as delay in Duration Assertion</li>

<li>Slow connection emulation for HttpClient</li>

<li>Enhanced JUnitSampler so that by default assert errors and exceptions are not appended to the error message.
Users must explicitly check append in the sampler</li>

<li>Enhanced the documentation for webservice sampler to explain how it works with CSVDataSet</li>

<li>Enhanced the documentation for javascript function to explain escaping comma</li>

<li>Allow CSV Data Set file names to be absolute</li>

<li>Report Tree compiler errors better</li>

<li>Don't reset Regex Extractor variable if default is empty</li>

<li>includecontroller.prefix property added</li>

<li>Regular Expression Extractor sets group count</li>

<li>Can now save entire screen as an image, not just the right-hand pane</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=38901">
      Bug
      38901</a> - Add optional SOAPAction header to SOAP Sampler</li>

<li>New BeanShell test elements: Timer, PreProcessor, PostProcessor, Listener</li>

<li>__split() function now clears next variable, so it can be used with ForEach Controller</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=38682">
      Bug
      38682</a> - add CallableStatement functionality to JDBC Sampler</li>

<li>Make it easier to change the RMI/Server port</li>

<li>Add property jmeter.save.saveservice.xml_pi to provide optional xml processing instruction in JTL files</li>

<li>Add bytes and URL to items that can be saved in sample log files (XML and CSV)</li>

<li>The Post-Processor "Save Responses to a File" now saves the generated file name with the
sample, and the file name can be included in the sample log file.
</li>

<li>Change jmeter.bat DOS script so it works from any directory</li>

<li>New -N option to define nonProxyHosts from command-line</li>

<li>New -S option to define system properties from input file</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=26136">
      Bug
      26136</a> - allow configuration of local address</li>

<li>Expand tree by default when loading a test plan - can be disabled by setting property onload.expandtree=false</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=11843">
      Bug
      11843</a> - URL Rewriter can now cache the session id</li>

<li>Counter Pre-Processor now supports formatted numbers</li>

<li>Add support for HEAD PUT OPTIONS TRACE and DELETE methods</li>

<li>Allow default HTTP implementation to be changed</li>

<li>Optionally save active thread counts (group and all) to result files</li>

<li>Variables/functions can now be used in Listener file names</li>

<li>New __time() function; define START.MS/START.YMD/START.HMS properties and variables</li>

<li>Add Thread Name to Tree and Table Views</li>

<li>Add debug functions: What class, debug on, debug off</li>

<li>Non-caching Calculator - used by Table Visualiser to reduce memory footprint</li>

<li>Summary Report - similar to Aggregate Report, but uses less memory</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=39580">
      Bug
      39580</a> - recycle option for CSV Dataset</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=37652">
      Bug
      37652</a> - support for Ajp Tomcat protocol</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=39626">
      Bug
      39626</a> - Loading SOAP/XML-RPC requests from file</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=39652">
      Bug
      39652</a> - Allow truncation of labels on AxisGraph</li>

<li>Allow use of htmlparser 1.6</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=39656">
      Bug
      39656</a> - always use SOAP action if it is provided</li>

<li>Automatically include properties from user.properties file</li>

<li>Add __jexl() function - evaluates Commons JEXL expressions</li>

<li>Optionally load JMeter properties from user.properties and system properties from system.properties.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=39707">
      Bug
      39707</a> - allow Regex match against URL</li>

<li>Add start time to Table Visualiser</li>

<li>HTTP Samplers can now extract embedded resources for any required media types</li>

</ul>


<h4>Bug fixes:</h4>

<ul>

<li>Fix NPE when no module selected in Module Controller</li>

<li>Fix NPE in XStream when no ResponseData present</li>

<li>Remove ?xml prefix when running with Java 1.5 and no x-jars</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=37117">
      Bug
      37117</a> - setProperty() function should return ""; added optional return of original setting</li>

<li>Fix CSV output time format</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=37140">
      Bug
      37140</a> - handle encoding better in RegexFunction</li>

<li>Load all cookies, not just the first; fix class cast exception</li>

<li>Fix default Cookie path name (remove page name)</li>

<li>Fixed resultcode attribute name</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=36898">
      Bug
      36898</a> - apply encoding to RegexExtractor</li>

<li>Add properties for saving subresults, assertions, latency, samplerData, responseHeaders, requestHeaders &amp; encoding</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=37705">
      Bug
      37705</a> - Synch Timer now works OK after run is stopped</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=37716">
      Bug
      37716</a> - Proxy request now handles file Post correctly</li>

<li>HttpClient Sampler now saves latency</li>

<li>Fix NPE when using JavaScript function on Test Plan</li>

<li>Fix Base Href parsing in htmlparser</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=38256">
      Bug
      38256</a> - handle cookie with no path</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=38391">
      Bug
      38391</a> - use long when accumulating timer delays</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=38554">
      Bug
      38554</a> - Random function now uses long numbers</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=35224">
      Bug
      35224</a> - allow duplicate attributes for LDAP sampler</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=38693">
      Bug
      38693</a> - Webservice sampler can now use https protocol</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=38646">
      Bug
      38646</a> - Regex Extractor now clears old variables on match failure</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=38640">
      Bug
      38640</a> - fix WebService Sampler pooling</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=38474">
      Bug
      38474</a> - HTML Link Parser doesn't follow frame links</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=36430">
      Bug
      36430</a> - Counter now uses long rather than int to increase the range</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=38302">
      Bug
      38302</a> - fix XPath function</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=38748">
      Bug
      38748</a> - JDBC DataSourceElement fails with remote testing</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=38902">
      Bug
      38902</a> - sometimes -1 seems to be returned unnecessarily for response code</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=38840">
      Bug
      38840</a> - make XML Assertion thread-safe</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=38681">
      Bug
      38681</a> - Include controller now works in non-GUI mode</li>

<li>Add write(OS,IS) implementation to TCPClientImpl</li>

<li>Sample Result converter saves response code as "rc". Previously it saved as "rs" but read with "rc"; it will now also read with "rc".
The XSL stylesheets also now accept either "rc" or "rs"</li>

<li>Fix counter function so each counter instance is independent (previously the per-user counters were shared between instances of the function)</li>

<li>Fix TestBean Examples so that they work</li>

<li>Fix JTidy parser so it does not skip body tags with background images</li>

<li>Fix HtmlParser parser so it catches all background images</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=39252">
      Bug
      39252</a> set SoapSampler sample result from XML data</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=38694">
      Bug
      38694</a> - WebServiceSampler not setting data encoding correctly</li>

<li>Result Collector now closes input files read by listeners</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=25505">
      Bug
      25505</a> - First HTTP sampling fails with "HTTPS hostname wrong: should be 'localhost'"</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=25236">
      Bug
      25236</a> - remove double scrollbar from Assertion Result Listener</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=38234">
      Bug
      38234</a> - Graph Listener divide by zero problem</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=38824">
      Bug
      38824</a> - clarify behaviour of Ignore Status</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=38250">
      Bug
      38250</a> - jmeter.properties "language" now supports country suffix, for zh_CN and zh_TW etc</li>

<li>jmeter.properties file is now closed after it has been read</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=39533">
      Bug
      39533</a> - StatCalculator added wrong items</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=39599">
      Bug
      39599</a> - ConcurrentModificationException</li>

<li>HTTPSampler2 now handles Auto and Follow redirects correctly</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=29481">
      Bug
      29481</a> - fix reloading sample results so subresults not counted twice</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=30267">
      Bug
      30267</a> - handle AutoRedirects properly</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=39677">
      Bug
      39677</a> - allow for space in JMETER_BIN variable</li>

<li>Use Commons HttpClient cookie parsing and management. Fix various problems with cookie handling.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=39773">
      Bug
      39773</a> - NTCredentials needs host name</li>

</ul>


<h4>Other changes</h4>

<ul>

<li>Updated to HTTPClient 3.0 (from 2.0)</li>

<li>Updated to Commons Collections 3.1</li>

<li>Improved formatting of Request Data in Tree View</li>

<li>Expanded user documentation</li>

<li>Added MANIFEST, NOTICE and LICENSE to all jars</li>

<li>Extract htmlparser interface into separate jarfile to make it possible to replace the parser</li>

<li>Removed SQL Config GUI as no longer needed (or working!)</li>

<li>HTTPSampler no longer logs a warning for Page not found (404)</li>

<li>StringFromFile now callable as __StringFromFile (as well as _StringFromFile)</li>

<li>Updated to Commons Logging 1.1</li>

</ul>





<hr>

<h3>Version 2.1.1</h3>

<h4>New functionality:</h4>

<ul>

<li>New Include Controller allows a test plan to reference an external jmx file</li>

<li>New JUnitSampler added for using JUnit Test classes</li>

<li>New Aggregate Graph listener is capable of graphing aggregate statistics</li>

<li>Can provide additional classpath entries using the property user.classpath and on the Test Plan element</li>

</ul>

<h4>Bug fixes:</h4>

<ul>

<li>AccessLog Sampler and JDBC test elements populated correctly from 2.0 test plans</li>

<li>BSF Sampler now populates filename and parameters from saved test plan</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=36500">
      Bug
      36500</a> - handle missing data more gracefully in WebServiceSampler</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=35546">
      Bug
      35546</a> - add merge to right-click menu</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=36642">
      Bug
      36642</a> - Summariser stopped working in 2.1</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=36618">
      Bug
      36618</a> - CSV header line did not match saved data</li>

<li>JMeter should now run under JVM 1.3 (but does not build with 1.3)</li>

</ul>





<h3>Version 2.1</h3>

<h4>New functionality:</h4>

<ul>

<li>New Test Script file format - smaller, more compact, more readable</li>

<li>New Sample Result file format - smaller, more compact</li>

<li>XSchema Assertion</li>

<li>XML Tree display</li>

<li>CSV DataSet Config item</li>

<li>New JDBC Connection Pool Config Element</li>

<li>Synchronisation Timer</li>

<li>setProperty function</li>

<li>Save response data on error</li>

<li>Ant JMeter XSLT now optionally shows failed responses and has internal links</li>

<li>Allow JavaScript variable name to be omitted</li>

<li>Changed following Samplers to set sample label from sampler name</li>

<li>All Test elements can be saved as a graphics image to a file</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=35026">
      Bug
      35026</a> - add RE pattern matching to Proxy</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=34739">
      Bug
      34739</a> - Enhance constant Throughput timer</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=25052">
      Bug
      25052</a> - use response encoding to create comparison string in Response Assertion</li>

<li>New optional icons</li>

<li>Allow icons to be defined via property files</li>

<li>New stylesheets for 2.1 format XML test output</li>

<li>Save samplers, config element and listeners as PNG</li>

<li>Enhanced support for WSDL processing</li>

<li>New JMS sampler for topic and queue messages</li>

<li>How-to for JMS samplers</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=35525">
      Bug
      35525</a> - Added Spanish localisation</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=30379">
      Bug
      30379</a> - allow server.rmi.port to be overridden</li>

<li>enhanced the monitor listener to save the calculated stats</li>

<li>Functions and variables now work at top level of test plan</li>

</ul>

<h4>Bug fixes:</h4>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=34586">
      Bug
      34586</a> - XPath always remained as /</li>

<li>BeanShellInterpreter did not handle null objects properly</li>

<li>Fix Chinese resource bundle names</li>

<li>Save field names if required to CSV files</li>

<li>Ensure XML file is closed</li>

<li>Correct icons now displayed for TestBean components</li>

<li>Allow for missing optional jar(s) in creating menus</li>

<li>Changed Samplers to set sample label from sampler name as was the case for HTTP</li>

<li>Fix various samplers to avoid NPEs when incomplete data is provided</li>

<li>Fix Cookie Manager to use seconds; add debug</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=35067">
      Bug
      35067</a> - set up filename when using -t option</li>

<li>Don't substitute TestElement.* properties by UDVs in Proxy</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=35065">
      Bug
      35065</a> - don't save old extensions in File Saver</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=25413">
      Bug
      25413</a> - don't enable Restart button unnecessarily</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=35059">
      Bug
      35059</a> - Runtime Controller stopped working</li>

<li>Clear up any left-over connections created by LDAP Extended Sampler</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=23248">
      Bug
      23248</a> - module controller didn't remember stuff between save and reload</li>

<li>Fix Chinese locales</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=29920">
      Bug
      29920</a> - change default locale if necessary to ensure default properties are picked up when English is selected.</li>

<li>Bug fixes for Tomcat monitor captions</li>

<li>Fixed webservice sampler so it works with user defined variables</li>

<li>Fixed screen borders for LDAP config GUI elements</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=31184">
      Bug
      31184</a> - make sure encoding is specified in JDBC sampler</li>

<li>TCP sampler - only share sockets with same host:port details; correct the manual</li>

<li>Extract src attribute for embed tags in JTidy and Html Parsers</li>

</ul>




<h3>Version 2.0.3</h3>

<h4>New functionality:</h4>

<ul>

<li>XPath Assertion and XPath Function</li>

<li>Switch Controller</li>

<li>ForEach Controller can now loop through sets of groups</li>

<li>Allow CSVRead delimiter to be changed (see jmeter.properties)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=33920">
      Bug
      33920</a> - allow additional property files</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=33845">
      Bug
      33845</a> - allow direct override of Home dir</li>

</ul>

<h4>Bug fixes:</h4>

<ul>

<li>Regex Extractor nested constant not put in correct place <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=32395">
      Bug
      32395</a>
</li>

<li>Start time reset to now if necessary so that delay works OK.</li>

<li>Missing start/end times in scheduler are assumed to be now, not 1970</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=28661">
      Bug
      28661</a> - 304 responses not appearing in listeners</li>

<li>DOS scripts now handle different disks better</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=32345">
      Bug
      32345</a> - HTTP Rewriter does not work with HTTP Request default</li>

<li>Catch Runtime Exceptions so an error in one Listener does not affect others</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=33467">
      Bug
      33467</a> - __threadNum() extracted number wrongly </li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=29186">
      Bug
      29186</a>,33299 - fix CLI parsing of "-" in second argument</li>

<li>Fix CLI parse bug: -D arg1=arg2. Log more startup parameters.</li>

<li>Fix JTidy and HTMLParser parsers to handle form src= and link rel=stylesheet</li>

<li>JMeterThread now logs Errors to jmeter.log which were appearing on console</li>

<li>Ensure WhileController condition is dynamically checked</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=32790">
      Bug
      32790</a> ensure If Controller condition is re-evaluated each time</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=30266">
      Bug
      30266</a> - document how to display proxy recording responses</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=33921">
      Bug
      33921</a> - merge should not change file name</li>

<li>Close file now gives chance to save changes</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=33559">
      Bug
      33559</a> - fixes to Runtime Controller</li>

</ul>

<h4>Other changes:</h4>

<ul>

<li>To help with variable evaluation, JMeterThread sets "sampling started" a bit earlier (see jmeter.properties)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=33796">
      Bug
      33796</a> - delete cookies with null/empty values</li>

<li>Better checking of parameter count in JavaScript function</li>

<li>Thread Group now defaults to 1 loop instead of forever</li>

<li>All Beanshell access is now via a single class; only need BSH jar at run-time</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=32464">
      Bug
      32464</a> - document Direct Draw settings in jmeter.bat</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=33919">
      Bug
      33919</a> - increase Counter field sizes</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=32252">
      Bug
      32252</a> - ForEach was not initialising counters</li>

</ul>




<h3>Version 2.0.2</h3>

<h4>New functionality:</h4>

<ul>

<li>While Controller</li>

<li>BeanShell initialisation scripts</li>

<li>Result Saver can optionally save failed results only</li>

<li>Display as HTML has option not to download frames and images etc</li>

<li>Multiple Tree elements can now be enabled/disabled/copied/pasted at once</li>

<li>__split() function added</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=28699">
      Bug
      28699</a> allow Assertion to regard unsuccessful responses - e.g. 404 - as successful</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=29075">
      Bug
      29075</a> Regex Extractor can now extract data out of http response header as well as the body</li>

<li>__log() functions can now write to stdout and stderr</li>

<li>URL Modifier can now optionally ignore query parameters</li>

</ul>

<h4>Bug fixes:</h4>

<ul>

<li>If controller now works after the first false condition <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=31390">
      Bug
      31390</a>
</li>

<li>Regex GUI was losing track of Header/Body checkbox <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=29853">
      Bug
      29853</a>
</li>

<li>Display as HTML now handles frames and relative images</li>

<li>Right-click open replaced by merge</li>

<li>Fix some drag and drop problems</li>

<li>Fixed foreach demo example so it works</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=30741">
      Bug
      30741</a> SSL password prompt now works again </li>

<li>StringFromFile now closes files at end of test; start and end now optional as intended</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=31342">
      Bug
      31342</a> Fixed text of SOAP Sampler headers</li>

<li>Proxy must now be stopped before it can be removed <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=25145">
      Bug
      25145</a>
</li>

<li>Link Parser now supports BASE href <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=25490">
      Bug
      25490</a>
</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=30917">
      Bug
      30917</a> Classfinder ignores duplicate names</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=22820">
      Bug
      22820</a> Allow Counter value to be cleared</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=28230">
      Bug
      28230</a> Fix NPE in HTTP Sampler retrieving embedded resources</li>

<li>Improve handling of StopTest; catch and log some more errors</li>

<li>ForEach Controller no longer runs any samples if first variable is not defined</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=28663">
      Bug
      28663</a> NPE in remote JDBC execution</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=30110">
      Bug
      30110</a> Deadlock in stopTest processing</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=31696">
      Bug
      31696</a> Duration not working correctly when using Scheduler</li>

<li>JMeterContext now uses ThreadLocal - should fix some potential NPE errors</li>

</ul>

<h3>Version 2.0.1</h3>

<p>Bug fix release. TBA.</p>

<h3>Version 2.0</h3>

<ul>
    
<li>HTML parsing improved; now has choice of 3 parsers, and most embedded elements can now be detected and downloaded.</li>

<li>Redirects can now be delegated to URLConnection by defining the JMeter property HTTPSamper.delegateRedirects=true (default is false) </li>

<li>Stop Thread and Stop Test methods added for Samplers and Assertions etc. Samplers can call setStopThread(true) or setStopTest(true) if they detect an error that needs to stop the thread of the test after the sample has been processed </li>

<li>Thread Group Gui now has an extra pane to specify what happens after a Sampler error: Continue (as now), Stop Thread or Stop Test.
    This needs to be extended to a lower level at some stage. </li>

<li>Added Shutdown to Run Menu. This is the same as Stop except that it lets the Threads finish normally (i.e. after the next sample has been completed) </li>

<li>Remote samples can be cached until the end of a test by defining the property hold_samples=true when running the server.
More work is needed to be able to control this from the GUI </li>

<li>Proxy server has option to skip recording browser headers </li>

<li>Proxy restart works better (stop waits for daemon to finish) </li>

<li>Scheduler ignores start if it has already passed </li>

<li>Scheduler now has delay function </li>

<li>added Summariser test element (mainly for non-GUI) testing. This prints summary statistics to System.out and/or the log file every so often (3 minutes by default). Multiple summarisers can be used; samples are accumulated by summariser name. </li>

<li>Extra Proxy Server options:
Create all samplers with keep-alive disabled
Add Separator markers between sets of samples
Add Response Assertion to first sampler in each set </li>

<li>Test Plan has a comment field</li>

    
<li>Help Page can now be pushed to background</li>
    
<li>Separate Function help page</li>
    
<li>New / amended functions</li>
    
<ul>
      
<li>__property() and __P() functions</li>
      
<li>__log() and __logn() - for writing to the log file</li>
      
<li>_StringFromFile can now process a sequence of files, e.g. dir/file01.txt, dir/file02.txt etc </li>
      
<li>_StringFromFile() function can now use a variable or function for the file name </li>
    
</ul>
    
<li>New / amended Assertions</li>
    
<ul>
        
<li>Response Assertion now works for URLs, and it handles null data better </li>
        
<li>Response Assertion can now match on Response Code and Response message as well </li>
        
<li>HTML Assertion using JTidy to check for well-formed HTML</li>
    
</ul>
    
<li>If Controller (not fully functional yet)</li>
    
<li>Transaction Controller (aggregates the times of its children)</li>
    
<li>New Samplers</li>
        
<ul>
            
<li>Basic BSF Sampler (optional)</li>
            
<li>BeanShell Sampler (optional, needs to be downloaded from www.beanshell.org</li>
            
<li>Basic TCP Sampler</li>
        
</ul>
     
<li>Optionally start BeanShell server (allows remote access to JMeter variables and methods) </li>

</ul>

<h3>Version 1.9.1</h3>

<p>TBA</p>

<h3>Version 1.9</h3>

<ul>

<li>Sample result log files can now be in CSV or XML format</li>

<li>New Event model for notification of iteration events during test plan run</li>

<li>New Javascript function for executing arbitrary javascript statements</li>

<li>Many GUI improvements</li>

<li>New Pre-processors and Post-processors replace Modifiers and Response-Based Modifiers. </li>

<li>Compatible with jdk1.3</li>

<li>JMeter functions are now fully recursive and universal (can use functions as parameters to functions)</li>

<li>Integrated help window now supports hypertext links</li>

<li>New Random Function</li>

<li>New XML Assertion</li>

<li>New LDAP Sampler (alpha code)</li>

<li>New Ant Task to run JMeter (in extras folder)</li>

<li>New Java Sampler test implementation (to assist developers)</li>

<li>More efficient use of memory, faster loading of .jmx files</li>

<li>New SOAP Sampler (alpha code)</li>

<li>New Median calculation in Graph Results visualizer</li>

<li>Default config element added for developer benefit</li>

<li>Various performance enhancements during test run</li>

<li>New Simple File recorder for minimal GUI overhead during test run</li>

<li>New Function: StringFromFile - grabs values from a file</li>

<li>New Function: CSVRead - grabs multiple values from a file</li>

<li>Functions now longer need to be encoded - special values should be escaped
with "\" if they are literal values</li>

<li>New cut/copy/paste functionality</li>

<li>SSL testing should work with less user-fudging, and in non-gui mode</li>

<li>Mailer Model works in non-gui mode</li>

<li>New Throughput Controller</li>

<li>New Module Controller</li>

<li>Tests can now be scheduled to run from a certain time till a certain time</li>

<li>Remote JMeter servers can be started from a non-gui client.  Also, in gui mode, all remote servers can be started with a single click</li>

<li>ThreadGroups can now be run either serially or in parallel (default)</li>

<li>New command line options to override properties</li>

<li>New Size Assertion</li>


</ul>


<h3>Version 1.8.1</h3>

<ul>

<li>Bug Fix Release.  Many bugs were fixed.</li>

<li>Removed redundant "Root" node from test tree.</li>

<li>Re-introduced Icons in test tree.</li>

<li>Some re-organization of code to improve build process.</li>

<li>View Results Tree has added option to view results as web document (still buggy at this point).</li>

<li>New Total line in Aggregate Listener (still buggy at this point).</li>

<li>Improvements to ability to change JMeter's Locale settings.</li>

<li>Improvements to SSL Manager.</li>

</ul>


<h3>Version 1.8</h3>

<ul>

<li>Improvement to Aggregate report's calculations.</li>

<li>Simplified application logging.</li>

<li>New Duration Assertion.</li>

<li>Fixed and improved Mailer Visualizer.</li>

<li>Improvements to HTTP Sampler's recovery of resources (sockets and file handles).</li>

<li>Improving JMeter's internal handling of test start/stop.</li>

<li>Fixing and adding options to behavior of Interleave and Random Controllers.</li>

<li>New Counter config element.</li>

<li>New User Parameters config element.</li>

<li>Improved performance of file opener.</li>

<li>Functions and other elements can access global variables.</li>

<li>Help system available within JMeter's GUI.</li>

<li>Test Elements can be disabled.</li>

<li>Language/Locale can be changed while running JMeter (mostly).</li>

<li>View Results Tree can be configured to record only errors.</li>

<li>Various bug fixes.</li>

</ul>


<h3>Version 1.7.3</h3>

<ul>

<li>New Functions that provide more ability to change requests dynamically during test runs.</li>

<li>New language translations in Japanese and German.</li>

<li>Removed annoying Log4J error messages.</li>

<li>Improved support for loading JMeter 1.7 version test plan files (.jmx files).</li>

<li>JMeter now supports proxy servers that require username/password authentication.</li>

<li>Dialog box indicating test stopping doesn't hang JMeter on problems with stopping test.</li>

<li>GUI can run multiple remote JMeter servers (fixes GUI bug that prevented this).</li>

<li>Dialog box to help created function calls in GUI.</li>

<li>New Keep-alive switch in HTTP Requests to indicate JMeter should or should not use Keep-Alive for sockets.</li>

<li>HTTP Post requests can have GET style arguments in Path field.  Proxy records them correctly now.</li>

<li>New User-defined test-wide static variables.</li>

<li>View Results Tree now displays more information, including name of request (matching the name
in the test tree) and full request and POST data.</li>

<li>Removed obsolete View Results Visualizer (use View Results Tree instead).</li>

<li>Performance enhancements.</li>

<li>Memory use enhancements.</li>

<li>Graph visualizer GUI improvements.</li>

<li>Updates and fixes to Mailer Visualizer.</li>

</ul>


<h3>Version 1.7.2</h3>

<ul>

<li>JMeter now notifies user when test has stopped running.</li>

<li>HTTP Proxy server records HTTP Requests with re-direct turned off.</li>

<li>HTTP Requests can be instructed to either follow redirects or ignore them.</li>

<li>Various GUI improvements.</li>

<li>New Random Controller.</li>

<li>New SOAP/XML-RPC Sampler.</li>

</ul>


<h3>Version 1.7.1</h3>

<ul>

<li>JMeter's architecture revamped for a more complete separation between GUI code and
test engine code.</li>

<li>Use of Avalon code to save test plans to XML as Configuration Objects</li>

<li>All listeners can save data to file and load same data at later date.</li>

</ul>


<h3>Version 1.7Beta</h3>

<ul>
    
<li>Better XML support for special characters (Tushar Bhatia) </li>
    
<li>Non-GUI functioning  &amp; Non-GUI test plan execution  (Tushar Bhatia)</li>
    
<li>Removing Swing dependence from base JMeter classes</li>
    
<li>Internationalization (Takashi Okamoto)</li>
    
<li>AllTests bug fix (neth6@atozasia.com)</li>
    
<li>ClassFinder bug fix (neth6@atozasia.com)</li>
    
<li>New Loop Controller</li>
    
<li>Proxy Server records HTTP samples from browser
        (and documented in the user manual)</li> 
<li>Multipart Form support</li>
    
<li>HTTP Header class for Header customization</li>
    
<li>Extracting HTTP Header information from responses (Jamie Davidson)</li>
    
<li>Mailer Visualizer re-added to JMeter</li>
    
<li>JMeter now url encodes parameter names and values</li>
    
<li>listeners no longer give exceptions if their gui's haven't been initialized</li>
    
<li>HTTPS and Authorization working together</li>
    
<li>New Http sampling that automatically parses HTML response
        for images to download, and includes the downloading of these
        images in total time for request (Neth neth6@atozasia.com) </li>
    
<li>HTTP responses from server can be parsed for links and forms,
        and dynamic data can be extracted and added to test samples
        at run-time (documented)</li>
    
<li>New Ramp-up feature (Jonathan O'Keefe)</li>
    
<li>New visualizers (Neth)</li>
    
<li>New Assertions for functional testing</li>

</ul>


<h3>Version 1.6.1</h3>

<ul>
    
<li>Fixed saving and loading of test scripts (no more extra lines)</li>
    
<li>Can save and load special characters (such as "&amp;" and "&lt;").</li>
    
<li>Can save and load timers and listeners.</li>
    
<li>Minor bug fix for cookies (if you cookie value
        contained an "=", then it broke).</li>
    
<li>URL's can sample ports other than 80, and can test HTTPS,
        provided you have the necessary jars (JSSE)</li>

</ul>


<h3>Version 1.6 Alpha</h3>

<ul>
    
<li>New UI</li>
    
<li>Separation of GUI and Logic code</li>
    
<li>New Plug-in framework for new modules</li>
    
<li>Enhanced performance</li>
    
<li>Layering of test logic for greater flexibility</li>
    
<li>Added support for saving of test elements</li>
    
<li>Added support for distributed testing using a single client</li>


</ul>

<h3>Version 1.5.1</h3>

<ul>
    
<li>Fixed bug that caused cookies not to be read if header name case not as expected.</li>
    
<li>Clone entries before sending to sampler - prevents relocations from messing up
        information across threads</li>
    
<li>Minor bug fix to convenience dialog for adding parameters to test sample.
        Bug prevented entries in dialog from appearing in test sample.</li>
    
<li>Added xerces.jar to distribution</li>
    
<li>Added junit.jar to distribution and created a few tests.</li>
    
<li>Started work on new framework.  New files in cvs, but do not effect program yet.</li>
    
<li>Fixed bug that prevent HTTPJMeterThread from delaying according to chosen timer.</li>

</ul>

<p>

<h3>Version 1.5</h3>

<ul>
    
<li>Abstracted out the concept of the Sampler, SamplerController, and TestSample.
        A Sampler represents code that understands a protocol (such as HTTP,
        or FTP, RMI,   SMTP, etc..).  It is the code that actually makes the
        connection to whatever is   being tested.   A SamplerController
        represents code that understands how to organize and run a group
        of test samples.  It is what binds together a Sampler and its test
        samples and runs them.   A TestSample represents code that understands
        how to gather information from the   user about a particular test.
        For a website, it would represent a URL and any   information to be sent
        with the URL.</li>
    
<li>The UI has been updated to make entering test samples more convenient.</li>
    
<li>Thread groups have been added, allowing a user to setup multiple test to run
        concurrently, and to allow sharing of test samples between those tests.</li>
    
<li>It is now possible to save and load test samples.</li>
    
<li>&hellip; and many more minor changes/improvements &hellip;</li>

</ul>

</p>

<p>

<b>Apache JMeter 1.4.1-dev</b>

<ul>
   
<li>Cleaned up URLSampler code after tons of patches for better readability. (SM)</li>
   
<li>Made JMeter send a special "user-agent" identifier. (SM)</li>
   
<li>Fixed problems with redirection not sending cookies and authentication info and removed
     a warning with jikes compilation. Thanks to Wesley Tanaka for the patches (SM)</li>
   
<li>Fixed a bug in the URLSampler that caused to skip one URL when testing lists of URLs and
     a problem with Cookie handling. Thanks to Graham Johnson for the patches (SM)</li>
   
<li>Fixed a problem with POST actions. Thanks to Stephen Schaub for the patch (SM)</li>
 
</ul>
 
</p>
 
<p>
 
<b>Apache JMeter 1.4</b> - Jul 11 1999
  <ul>
   
<li>Fixed a problem with POST actions. Thanks to Brendan Burns for the patch (SM)</li>
   
<li>Added close button to the About box for those window managers who don't provide it.
     Thanks to Jan-Henrik Haukeland for pointing it out. (SM)</li>
   
<li>Added the simple Spline sample visualizer (JPN)</li>

</ul> 
</p>
  
<p>
<b>Apache JMeter 1.3</b> - Apr 16 1999
<ul>
   
<li>Run the Garbage Collector and run finalization before starting to sampling to ensure
     same state every time (SM)</li>
   
<li>Fixed some NullPointerExceptions here and there (SM)</li>
   
<li>Added HTTP authentication capabilities (RL)</li>
   
<li>Added windowed sample visualizer (SM)</li>
   
<li>Fixed stupid bug for command line arguments. Thanks to Jorge Bracer for pointing this out (SM)</li>

</ul> 
</p>
  
<p>
<b>Apache JMeter 1.2</b> - Mar 17 1999
<ul>
   
<li>Integrated cookie capabilities with JMeter (SM)</li>
   
<li>Added the Cookie manager and Netscape file parser (SD)</li>
   
<li>Fixed compilation error for JDK 1.1 (SD)</li> 
</ul> 
</p>

<p> 
<b>Apache JMeter 1.1</b> - Feb 24 1999
<ul>
   
<li>Created the opportunity to create URL aliasing from the properties file as well as the
     ability to associate aliases to URL sequences instead of single URLs (SM) Thanks to
     Simon Chatfield for the very nice suggestions
     and code examples.</li>
   
<li>Removed the TextVisualizer and replaced it with the much more useful FileVisualizer (SM)</li>
   
<li>Added the known bug list (SM)</li>
   
<li>Removed the Java Apache logo (SM)</li>
   
<li>Fixed a couple of typos (SM)</li>
   
<li>Added UNIX makefile (SD)</li> 
</ul> 
</p>

<p> 
<b>Apache JMeter 1.0.1</b> - Jan 25 1999
<ul>
   
<li>Removed pending issues doc issues (SM)</li>
   
<li>Fixed the unix script (SM)</li>
   
<li>Added the possibility of running the JAR directly using "java -jar
     ApacheJMeter.jar" with Java 2 (SM)</li>
   
<li>Some small updates: fixed Swing location after Java 2(tm) release, license update and
     small cleanups (SM)</li>

</ul> 
</p>

<p> 
<b>Apache JMeter 1.0</b> - Dec 15 1998
<ul>
   
<li>Initial version. (SM)</li>

</ul> 
</p>

</div>
<div class="share-links">
      Share this page:
      <ul>
<li class="fb">
<a data-social-url="https://facebook.com/sharer/sharer.php?u=" title="Share on facebook"><i class="fa fa-facebook" aria-hidden="true"></i>share</a>
</li>
<li class="twitter">
<a data-social-url="https://twitter.com/intent/tweet?url=" title="Tweet on twitter"><i class="fa fa-twitter" aria-hidden="true"></i>tweet</a>
</li>
</ul>
</div>
<a href="#top" id="topButton">Go to top</a>
</div>
<div class="footer">
<div class="copyright">
            Copyright &copy;
            1999 &ndash;
            2021
            , Apache Software Foundation
          </div>
<div class="trademarks">Apache, Apache JMeter, JMeter, the Apache
            feather, and the Apache JMeter logo are
            trademarks of the
            Apache Software Foundation.
          </div>
</div>
<script>(function(){
            "use strict";
            // enable 'go to top' button functionality
            document.addEventListener('scroll', function() {
                if (document.body.scrollTop > 500 || document.documentElement.scrollTop > 500) {
                    document.getElementById("topButton").style.display = "block";
                } else {
                    document.getElementById("topButton").style.display = "none";
                }
            });
            // fill in the current location into social links on this page.
            var as = document.getElementsByTagName('a');
            var loc = document.location.href;
            if (!loc.toLowerCase().startsWith('http')) {
                return;
            }
            for (var i=0; i<as.length; i++) {
                var href = as[i].getAttribute('data-social-url');
                if (href !== null) {
                    as[i].href = href + encodeURIComponent(loc);
                }
            }
        })();</script>
</body>
</html>
