<!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.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 wether 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 master sometimes ends distributed test even though some of the slaves 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 slave 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="./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 wether 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;
            2019
            , 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>
