<!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.2.1</h1>

<p>
Summary
</p>

<ul>

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

<li>
<a href="#Incompatible changes">Incompatible changes</a>
</li>

<li>
<a href="#Bug fixes">Bug fixes</a>
</li>

<li>
<a href="#Improvements">Improvements</a>
</li>

<li>
<a href="#Non-functional changes">Non-functional changes</a>
</li>

<li>
<a href="#Known problems and workarounds">Known problems and workarounds</a>
</li>

<li>
<a href="#Thanks">Thanks</a>
</li>


</ul>


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

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





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

<ul>

</ul>



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


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

<ul>

</ul>


<h3>Other samplers</h3>

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

</ul>


<h3>Controllers</h3>

<ul>

</ul>


<h3>Listeners</h3>

<ul>

</ul>


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

<ul>

</ul>


<h3>Functions</h3>

<ul>

</ul>


<h3>I18N</h3>

<ul>

</ul>


<h3>Report / Dashboard</h3>

<ul>

</ul>


<h3>General</h3>

<ul>

</ul>


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

<ul>

</ul>

 


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


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

<ul>

</ul>


<h3>Other Samplers</h3>

<ul>

</ul>


<h3>Controllers</h3>

<ul>

</ul>


<h3>Listeners</h3>

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

</ul>


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

<ul>

</ul>


<h3>Functions</h3>

<ul>

</ul>


<h3>I18N</h3>

<ul>

</ul>


<h3>Report / Dashboard</h3>

<ul>

</ul>


<h3>Documentation</h3>

<ul>

</ul>


<h3>General</h3>

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

</ul>

 


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

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

<ul>
    
<li>
<a href="https://github.com/vincentclee">Vincent Lee</a>
</li>

</ul>

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

<ul>

</ul>

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


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

<ul>

<li>The Once Only controller behaves correctly under a Thread Group or Loop Controller,
but otherwise its behaviour is not consistent (or clearly specified).</li>


<li>
The numbers that appear to the left of the green box are the number of active threads / total number of threads,
the total number of threads only applies to a locally run test, otherwise it will show <span class="code">0</span> (see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55510">
      Bug
      55510</a>).
</li>


<li>
Note that under some windows systems you may have this WARNING:
<pre class="source">
java.util.prefs.WindowsPreferences
WARNING: Could not open/create prefs root node Software\JavaSoft\Prefs at root 0
x80000002. Windows RegCreateKeyEx(&hellip;) returned error code 5.
</pre>
The fix is to run JMeter as Administrator, it will create the registry key for you, then you can restart JMeter as a normal user and you won't have the warning anymore.
</li>


<li>
You may encounter the following error:
<pre class="source">java.security.cert.CertificateException: Certificates does not conform to algorithm constraints</pre>
 if you run a HTTPS request on a web site with a SSL certificate (itself or one of SSL certificates in its chain of trust) with a signature
 algorithm using MD2 (like <span class="code">md2WithRSAEncryption</span>) or with a SSL certificate with a size lower than 1024 bits.
This error is related to increased security in Java 8+.
<br>
To allow you to perform your HTTPS request, you can downgrade the security of your Java installation by editing
the Java <span class="code">jdk.certpath.disabledAlgorithms</span> property. Remove the MD2 value or the constraint on size, depending on your case.
<br>
This property is in this file:
<pre class="source">JAVA_HOME/jre/lib/security/java.security</pre>
See  <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56357">
      Bug
      56357</a> for details.
</li>


<li>
Under Mac OSX Aggregate Graph will show wrong values due to mirroring effect on numbers.
This is due to a known Java bug, see Bug <a href="https://bugs.openjdk.java.net/browse/JDK-8065373">JDK-8065373</a>
The fix is to use JDK8_u45 or later.
</li>


<li>
View Results Tree may fail to display some HTML code under HTML renderer, see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54586">
      Bug
      54586</a>.
This is due to a known Java bug which fails to parse "<span class="code">px</span>" units in row/col attributes.
See Bug <a href="https://bugs.openjdk.java.net/browse/JDK-8031109">JDK-8031109</a>
The fix is to use JDK9 b65 or later.
</li>


<li>
JTable selection with keyboard (<span class="keycombo"><span class="keysym">SHIFT</span>&nbsp;+&nbsp;<span class="keysym">up/down</span></span>) is totally unusable with Java 7 on Mac OSX.
This is due to a known Java bug <a href="https://bugs.openjdk.java.net/browse/JDK-8025126">JDK-8025126</a>
The fix is to use JDK 8 b132 or later.
</li>


<li>
Since Java 11 the JavaScript implementation <a href="https://openjdk.java.net/jeps/335">Nashorn has been deprecated</a>.
Java will emit the following deprecation warnings, if you are using JavaScript based on Nashorn.
<pre class="source">
Warning: Nashorn engine is planned to be removed from a future JDK release
</pre>
To silence these warnings, add <span class="code">-Dnashorn.args=--no-deprecation-warning</span> to your Java arguments.
That can be achieved by setting the enviroment variable <span class="code">JVM_ARGS</span>

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

</li>

</ul>




<h1>Version 5.2</h1>

<p>
Summary
</p>

<ul>

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

<li>
<a href="#Incompatible changes">Incompatible changes</a>
</li>

<li>
<a href="#Bug fixes">Bug fixes</a>
</li>

<li>
<a href="#Improvements">Improvements</a>
</li>

<li>
<a href="#Non-functional changes">Non-functional changes</a>
</li>

<li>
<a href="#Known problems and workarounds">Known problems and workarounds</a>
</li>

<li>
<a href="#Thanks">Thanks</a>
</li>


</ul>


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

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





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

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

     
</li>

</ul>



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


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

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

</ul>


<h3>Other samplers</h3>

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

</ul>


<h3>Controllers</h3>

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

</ul>


<h3>Listeners</h3>

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

</ul>


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

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

</ul>


<h3>Functions</h3>

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

</ul>


<h3>I18N</h3>

<ul>

</ul>


<h3>Report / Dashboard</h3>

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

</ul>


<h3>General</h3>

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

</ul>


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

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

</ul>

 


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


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

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

</ul>


<h3>Other Samplers</h3>

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

</ul>


<h3>Controllers</h3>

<ul>

</ul>


<h3>Listeners</h3>

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

</ul>


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

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

</ul>


<h3>Functions</h3>

<ul>

</ul>


<h3>I18N</h3>

<ul>

</ul>


<h3>Report / Dashboard</h3>

<ul>

</ul>


<h3>Documentation</h3>

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

</ul>


<h3>General</h3>

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

</ul>

 


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

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

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

</ul>

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

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

</ul>

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


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

<ul>

<li>The Once Only controller behaves correctly under a Thread Group or Loop Controller,
but otherwise its behaviour is not consistent (or clearly specified).</li>


<li>
The numbers that appear to the left of the green box are the number of active threads / total number of threads,
the total number of threads only applies to a locally run test, otherwise it will show <span class="code">0</span> (see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55510">
      Bug
      55510</a>).
</li>


<li>
Note that under some windows systems you may have this WARNING:
<pre class="source">
java.util.prefs.WindowsPreferences
WARNING: Could not open/create prefs root node Software\JavaSoft\Prefs at root 0
x80000002. Windows RegCreateKeyEx(&hellip;) returned error code 5.
</pre>
The fix is to run JMeter as Administrator, it will create the registry key for you, then you can restart JMeter as a normal user and you won't have the warning anymore.
</li>


<li>
You may encounter the following error:
<pre class="source">java.security.cert.CertificateException: Certificates does not conform to algorithm constraints</pre>
 if you run a HTTPS request on a web site with a SSL certificate (itself or one of SSL certificates in its chain of trust) with a signature
 algorithm using MD2 (like <span class="code">md2WithRSAEncryption</span>) or with a SSL certificate with a size lower than 1024 bits.
This error is related to increased security in Java 8+.
<br>
To allow you to perform your HTTPS request, you can downgrade the security of your Java installation by editing
the Java <span class="code">jdk.certpath.disabledAlgorithms</span> property. Remove the MD2 value or the constraint on size, depending on your case.
<br>
This property is in this file:
<pre class="source">JAVA_HOME/jre/lib/security/java.security</pre>
See  <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56357">
      Bug
      56357</a> for details.
</li>


<li>
Under Mac OSX Aggregate Graph will show wrong values due to mirroring effect on numbers.
This is due to a known Java bug, see Bug <a href="https://bugs.openjdk.java.net/browse/JDK-8065373">JDK-8065373</a>
The fix is to use JDK8_u45 or later.
</li>


<li>
View Results Tree may fail to display some HTML code under HTML renderer, see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54586">
      Bug
      54586</a>.
This is due to a known Java bug which fails to parse "<span class="code">px</span>" units in row/col attributes.
See Bug <a href="https://bugs.openjdk.java.net/browse/JDK-8031109">JDK-8031109</a>
The fix is to use JDK9 b65 or later.
</li>


<li>
JTable selection with keyboard (<span class="keycombo"><span class="keysym">SHIFT</span>&nbsp;+&nbsp;<span class="keysym">up/down</span></span>) is totally unusable with Java 7 on Mac OSX.
This is due to a known Java bug <a href="https://bugs.openjdk.java.net/browse/JDK-8025126">JDK-8025126</a>
The fix is to use JDK 8 b132 or later.
</li>


<li>
Since Java 11 the JavaScript implementation <a href="https://openjdk.java.net/jeps/335">Nashorn has been deprecated</a>.
Java will emit the following deprecation warnings, if you are using JavaScript based on Nashorn.
<pre class="source">
Warning: Nashorn engine is planned to be removed from a future JDK release
</pre>
To silence these warnings, add <span class="code">-Dnashorn.args=--no-deprecation-warning</span> to your Java arguments.
That can be achieved by setting the enviroment variable <span class="code">JVM_ARGS</span>

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

</li>

</ul>




<h1>Version 5.1.1</h1>

<p>
Summary
</p>

<ul>

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

<li>
<a href="#Incompatible changes">Incompatible changes</a>
</li>

<li>
<a href="#Bug fixes">Bug fixes</a>
</li>

<li>
<a href="#Improvements">Improvements</a>
</li>

<li>
<a href="#Non-functional changes">Non-functional changes</a>
</li>

<li>
<a href="#Known problems and workarounds">Known problems and workarounds</a>
</li>

<li>
<a href="#Thanks">Thanks</a>
</li>


</ul>


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

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


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

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

<br>

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

</p>




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

<ul>

</ul>



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


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

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

</ul>


<h3>Other samplers</h3>

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

</ul>


<h3>Controllers</h3>

<ul>

</ul>


<h3>Listeners</h3>

<ul>

</ul>


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

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

</ul>


<h3>Functions</h3>

<ul>

</ul>


<h3>I18N</h3>

<ul>

</ul>


<h3>Report / Dashboard</h3>

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

</ul>


<h3>General</h3>

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

</ul>


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

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

</ul>

 


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


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

<ul>

</ul>


<h3>Other Samplers</h3>

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

</ul>


<h3>Controllers</h3>

<ul>

</ul>


<h3>Listeners</h3>

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

</ul>


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

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

</ul>


<h3>Functions</h3>

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

</ul>


<h3>I18N</h3>

<ul>

</ul>


<h3>Report / Dashboard</h3>

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

</ul>


<h3>Documentation</h3>

<ul>

</ul>


<h3>General</h3>

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

</ul>

 


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

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

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

</ul>

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

<ul>

</ul>

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


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

<ul>

<li>The Once Only controller behaves correctly under a Thread Group or Loop Controller,
but otherwise its behaviour is not consistent (or clearly specified).</li>


<li>
The numbers that appear to the left of the green box are the number of active threads / total number of threads,
the total number of threads only applies to a locally run test, otherwise it will show <span class="code">0</span> (see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55510">
      Bug
      55510</a>).
</li>


<li>
Note that under some windows systems you may have this WARNING:
<pre class="source">
java.util.prefs.WindowsPreferences
WARNING: Could not open/create prefs root node Software\JavaSoft\Prefs at root 0
x80000002. Windows RegCreateKeyEx(&hellip;) returned error code 5.
</pre>
The fix is to run JMeter as Administrator, it will create the registry key for you, then you can restart JMeter as a normal user and you won't have the warning anymore.
</li>


<li>
You may encounter the following error:
<pre class="source">java.security.cert.CertificateException: Certificates does not conform to algorithm constraints</pre>
 if you run a HTTPS request on a web site with a SSL certificate (itself or one of SSL certificates in its chain of trust) with a signature
 algorithm using MD2 (like <span class="code">md2WithRSAEncryption</span>) or with a SSL certificate with a size lower than 1024 bits.
This error is related to increased security in Java 8+.
<br>
To allow you to perform your HTTPS request, you can downgrade the security of your Java installation by editing
the Java <span class="code">jdk.certpath.disabledAlgorithms</span> property. Remove the MD2 value or the constraint on size, depending on your case.
<br>
This property is in this file:
<pre class="source">JAVA_HOME/jre/lib/security/java.security</pre>
See  <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56357">
      Bug
      56357</a> for details.
</li>


<li>
Under Mac OSX Aggregate Graph will show wrong values due to mirroring effect on numbers.
This is due to a known Java bug, see Bug <a href="https://bugs.openjdk.java.net/browse/JDK-8065373">JDK-8065373</a>
The fix is to use JDK8_u45 or later.
</li>


<li>
View Results Tree may fail to display some HTML code under HTML renderer, see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54586">
      Bug
      54586</a>.
This is due to a known Java bug which fails to parse "<span class="code">px</span>" units in row/col attributes.
See Bug <a href="https://bugs.openjdk.java.net/browse/JDK-8031109">JDK-8031109</a>
The fix is to use JDK9 b65 or later.
</li>


<li>
JTable selection with keyboard (<span class="keycombo"><span class="keysym">SHIFT</span>&nbsp;+&nbsp;<span class="keysym">up/down</span></span>) is totally unusable with Java 7 on Mac OSX.
This is due to a known Java bug <a href="https://bugs.openjdk.java.net/browse/JDK-8025126">JDK-8025126</a>
The fix is to use JDK 8 b132 or later.
</li>

</ul>




<h1>Version 5.1</h1>

<p>
Summary
</p>

<ul>

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

<li>
<a href="#Incompatible changes">Incompatible changes</a>
</li>

<li>
<a href="#Bug fixes">Bug fixes</a>
</li>

<li>
<a href="#Improvements">Improvements</a>
</li>

<li>
<a href="#Non-functional changes">Non-functional changes</a>
</li>

<li>
<a href="#Known problems and workarounds">Known problems and workarounds</a>
</li>

<li>
<a href="#Thanks">Thanks</a>
</li>


</ul>


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

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

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

</p>

<ul>

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

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

</ul>

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

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

</p>

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

</ul>

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

</p>

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

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

</p>

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

<ul>

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

</ul>

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

<ul>

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

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

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

</ul>




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

<ul>

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

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

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

</li>

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

</ul>



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


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

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

</ul>


<h3>Other samplers</h3>

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

</ul>


<h3>Controllers</h3>

<ul>

</ul>


<h3>Listeners</h3>

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

</ul>


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

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

</ul>


<h3>Functions</h3>

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

</ul>


<h3>I18N</h3>

<ul>

</ul>


<h3>Report / Dashboard</h3>

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

</ul>


<h3>General</h3>

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

</ul>


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

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

</ul>

 


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


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

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

</ul>


<h3>Other Samplers</h3>

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

</ul>


<h3>Controllers</h3>

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

</ul>


<h3>Listeners</h3>

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

</ul>


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

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

</ul>


<h3>Functions</h3>

<ul>

</ul>


<h3>I18N</h3>

<ul>

</ul>


<h3>Report / Dashboard</h3>

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

</ul>


<h3>Documentation</h3>

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

</ul>


<h3>General</h3>

<ul>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=62745">
      Bug
      62745</a>
    -
  Fix undefined disabled icon. Contributed by Till Neunast (https://github.com/tilln)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=62743">
      Bug
      62743</a>
    -
  Client auth must be enabled on distributed testing</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=62767">
      Bug
      62767</a>
    -
  NPE when searching under certain conditions. Contributed by Ubik Load Pack (support at ubikloadpack.com)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=62790">
      Bug
      62790</a>
    -
  <span class="code">ArrayIndexOutOfBoundsException</span> when calling replace without selecting the first match</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=62795">
      Bug
      62795</a>
    -
  JMeter 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="./usermanual/build-ws-test-plan.html">Building a WebService Test Plan</a>
</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=60423">
      Bug
      60423</a>
    -
  Drop Monitor Results listener </li>
    
<li>Drop deprecated class <span class="code">org.apache.jmeter.protocol.system.NativeCommand</span>
</li>
    
<li>Drop deprecated class <span class="code">org.apache.jmeter.protocol.http.config.gui.MultipartUrlConfigGui</span>
</li>
    
<li>Drop deprecated class <span class="code">org.apache.jmeter.testelement.TestListener</span>
</li>
    
<li>Drop deprecated class <span class="code">org.apache.jmeter.reporters.FileReporter</span>
</li>
    
<li>Drop deprecated class <span class="code">org.apache.jmeter.protocol.http.modifier.UserSequence</span>
</li>
    
<li>Drop deprecated class <span class="code">org.apache.jmeter.protocol.http.parser.HTMLParseError</span>
</li>
    
<li>Drop unused methods <span class="code">org.apache.jmeter.protocol.http.control.HeaderManager#getSOAPHeader</span>
    and <span class="code">org.apache.jmeter.protocol.http.control.HeaderManager#setSOAPHeader(Object)</span>
    
</li>
    
<li>
<span class="code">org.apache.jmeter.protocol.http.util.Base64Encode</span> has been deprecated, you can use <span class="code">java.util.Base64</span> as a replacement</li>

</ul>


<h3>Logging changes</h3>

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


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

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

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

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

</p>


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

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

</p>



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


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

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

</ul>


<h3>Other samplers</h3>

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

</ul>


<h3>Controllers</h3>

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

</ul>


<h3>Listeners</h3>

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

</ul>


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

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

</ul>


<h3>Functions</h3>

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

</ul>


<h3>I18N</h3>

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

</ul>


<h3>Report / Dashboard</h3>

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

</ul>


<h3>General</h3>

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

</ul>


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

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

</ul>

 


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


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

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

</ul>


<h3>Other Samplers</h3>

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

</ul>


<h3>Controllers</h3>

<ul>

</ul>


<h3>Listeners</h3>

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

</ul>


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

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

</ul>


<h3>Functions</h3>

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

</ul>


<h3>I18N</h3>

<ul>

</ul>


<h3>Report / Dashboard</h3>

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

</ul>


<h3>General</h3>

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

</ul>

 


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

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

<ul>

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

</ul>

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

<ul>

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

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

</ul>

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


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

<ul>

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

</ul>

<ul>

<li>The Once Only controller behaves correctly under a Thread Group or Loop Controller,
but otherwise its behaviour is not consistent (or clearly specified).</li>


<li>
The numbers that appear to the left of the green box are the number of active threads / total number of threads,
the total number of threads only applies to a locally run test, otherwise it will show <span class="code">0</span> (see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55510">
      Bug
      55510</a>).
</li>


<li>
Note that under some windows systems you may have this WARNING:
<pre class="source">
java.util.prefs.WindowsPreferences
WARNING: Could not open/create prefs root node Software\JavaSoft\Prefs at root 0
x80000002. Windows RegCreateKeyEx(&hellip;) returned error code 5.
</pre>
The fix is to run JMeter as Administrator, it will create the registry key for you, then you can restart JMeter as a normal user and you won't have the warning anymore.
</li>


<li>
You may encounter the following error:
<pre class="source">java.security.cert.CertificateException: Certificates does not conform to algorithm constraints</pre>
 if you run a HTTPS request on a web site with a SSL certificate (itself or one of SSL certificates in its chain of trust) with a signature
 algorithm using MD2 (like md2WithRSAEncryption) or with a SSL certificate with a size lower than 1024 bits.
This error is related to increased security in Java 8+.
<br>
To allow you to perform your HTTPS request, you can downgrade the security of your Java installation by editing
the Java <span class="code">jdk.certpath.disabledAlgorithms</span> property. Remove the MD2 value or the constraint on size, depending on your case.
<br>
This property is in this file:
<pre class="source">JAVA_HOME/jre/lib/security/java.security</pre>
See  <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56357">
      Bug
      56357</a> for details.
</li>


<li>
Under Mac OSX Aggregate Graph will show wrong values due to mirroring effect on numbers.
This is due to a known Java bug, see Bug <a href="https://bugs.openjdk.java.net/browse/JDK-8065373">JDK-8065373</a>
The fix is to use JDK8_u45 or later.
</li>


<li>
View Results Tree may fail to display some HTML code under HTML renderer, see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54586">
      Bug
      54586</a>.
This is due to a known Java bug which fails to parse "<span class="code">px</span>" units in row/col attributes.
See Bug <a href="https://bugs.openjdk.java.net/browse/JDK-8031109">JDK-8031109</a>
The fix is to use JDK9 b65 or later (but be aware that Java 9 is not certified yet for JMeter).
</li>


<li>
JTable selection with keyboard (<span class="keycombo"><span class="keysym">SHIFT</span>&nbsp;+&nbsp;<span class="keysym">up/down</span></span>) is totally unusable with JAVA 7 on Mac OSX.
This is due to a known Java bug <a href="https://bugs.openjdk.java.net/browse/JDK-8025126">JDK-8025126</a>
The fix is to use JDK 8 b132 or later.
</li>

</ul>




<h1>Version 3.1</h1>

<p>
Summary
</p>

<ul>

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

<li>
<a href="#Incompatible changes">Incompatible changes</a>
</li>

<li>
<a href="#Bug fixes">Bug fixes</a>
</li>

<li>
<a href="#Improvements">Improvements</a>
</li>

<li>
<a href="#Non-functional changes">Non-functional changes</a>
</li>

<li>
<a href="#Known problems and workarounds">Known problems and workarounds</a>
</li>

<li>
<a href="#Thanks">Thanks</a>
</li>


</ul>


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


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

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

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

</ul>


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

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


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

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


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

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


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

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

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


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

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

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


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

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


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

<ul>

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

<li>Memory usage improvements</li>

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

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

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

</ul>


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

<ul>

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

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

</ul>







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


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

</ul>


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

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

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

</ul>




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


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

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

</ul>


<h3>Other samplers</h3>

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

</ul>


<h3>Controllers</h3>

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

</ul>


<h3>Listeners</h3>

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

</ul>


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

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

</ul>


<h3>Functions</h3>

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

</ul>


<h3>I18N</h3>

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

</ul>


<h3>Report / Dashboard</h3>

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

</ul>

<h3>General</h3>

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

</ul>


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

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

</ul>

 


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


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

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


<h3>Other Samplers</h3>

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

</ul>


<h3>Controllers</h3>

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

</ul>


<h3>Listeners</h3>

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

</ul>


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

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

</ul>


<h3>Functions</h3>

<ul>

</ul>


<h3>I18N</h3>

<ul>

</ul>


<h3>General</h3>

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

</ul>

 


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

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

<ul>

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

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

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

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

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

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

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

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

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

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

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

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

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

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

</ul>

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

<ul>

</ul>

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


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


<ul>

<li>The Once Only controller behaves correctly under a Thread Group or Loop Controller,
but otherwise its behaviour is not consistent (or clearly specified).</li>


<li>
The numbers that appear to the left of the green box are the number of active threads / total number of threads,
the total number of threads only applies to a locally run test, otherwise it will show <span class="code">0</span> (see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55510">
      Bug
      55510</a>).
</li>


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


<li>
Note that under some windows systems you may have this WARNING:
<pre class="source">
java.util.prefs.WindowsPreferences
WARNING: Could not open/create prefs root node Software\JavaSoft\Prefs at root 0
x80000002. Windows RegCreateKeyEx(&hellip;) returned error code 5.
</pre>
The fix is to run JMeter as Administrator, it will create the registry key for you, then you can restart JMeter as a normal user and you won't have the warning anymore.
</li>


<li>
With Oracle Java 7 and Mac Book Pro Retina Display, the JMeter GUI may look blurry.
This is a known Java bug, see Bug <a href="http://bugs.java.com/bugdatabase/view_bug.do?bug_id=8000629">JDK-8000629</a>.
A workaround is to use a Java 7 update 40 runtime which fixes this issue.
</li>


<li>
You may encounter the following error:
<pre class="source">java.security.cert.CertificateException: Certificates does not conform to algorithm constraints</pre>
 if you run a HTTPS request on a web site with a SSL certificate (itself or one of SSL certificates in its chain of trust) with a signature
 algorithm using MD2 (like md2WithRSAEncryption) or with a SSL certificate with a size lower than 1024 bits.
This error is related to increased security in Java 7 version u16 (MD2) and version u40 (Certificate size lower than 1024 bits), and Java 8 too.
<br>
To allow you to perform your HTTPS request, you can downgrade the security of your Java installation by editing
the Java <span class="code">jdk.certpath.disabledAlgorithms</span> property. Remove the MD2 value or the constraint on size, depending on your case.
<br>
This property is in this file:
<pre class="source">JAVA_HOME/jre/lib/security/java.security</pre>
See  <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56357">
      Bug
      56357</a> for details.
</li>


<li>
Under Mac OSX Aggregate Graph will show wrong values due to mirroring effect on numbers.
This is due to a known Java bug, see Bug <a href="https://bugs.openjdk.java.net/browse/JDK-8065373">JDK-8065373</a>
The fix is to use JDK7_u79, JDK8_u45 or later.
</li>


<li>
View Results Tree may fail to display some HTML code under HTML renderer, see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54586">
      Bug
      54586</a>.
This is due to a known Java bug which fails to parse "<span class="code">px</span>" units in row/col attributes.
See Bug <a href="https://bugs.openjdk.java.net/browse/JDK-8031109">JDK-8031109</a>
The fix is to use JDK9 b65 or later.
</li>


<li>
JTable selection with keyboard (<span class="keycombo"><span class="keysym">SHIFT</span>&nbsp;+&nbsp;<span class="keysym">up/down</span></span>) is totally unusable with JAVA 7 on Mac OSX.
This is due to a known Java bug <a href="https://bugs.openjdk.java.net/browse/JDK-8025126">JDK-8025126</a>
The fix is to use JDK 8 b132 or later.
</li>

</ul>




<h1>Version 3.0</h1>

<p>
Summary
</p>

<ul>

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

<li>
<a href="#Known bugs">Known bugs</a>
</li>

<li>
<a href="#Incompatible changes">Incompatible changes</a>
</li>

<li>
<a href="#Bug fixes">Bug fixes</a>
</li>

<li>
<a href="#Improvements">Improvements</a>
</li>

<li>
<a href="#Non-functional changes">Non-functional changes</a>
</li>

<li>
<a href="#Thanks">Thanks</a>
</li>


</ul>


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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

<ul>

<li>IfController</li>

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

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

</ul>

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

<p>

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

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

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

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

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


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

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

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


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


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

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

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

</ul>



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

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

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

</p>

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

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

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

</p>

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

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

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

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

<ul>

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

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

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

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

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

</ul>

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

<ul>

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

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

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

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

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

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

</ul>

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

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

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


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

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

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

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


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

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

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

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

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

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

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

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

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

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

<ul>

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

<li>Shortcuts to expand nodes</li>

</ul>

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


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

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

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

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

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

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

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

<ul>

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

<li>Major code cleanups</li>

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

</ul>

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

<ul>

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

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

<li>More Unit Tests</li>

</ul>

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

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

<ul>

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

<li>htmllexer, htmlparser removed</li>

<li>soap removed</li>

<li>jdom removed</li>

</ul>

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

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



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


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

</ul>

<h3>Deprecated and removed elements</h3>

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

</ul>




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


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

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

</ul>


<h3>Other samplers</h3>

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

</ul>


<h3>Controllers</h3>

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

</ul>


<h3>Listeners</h3>

<ul>

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

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

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

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

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

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

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

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

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

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

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

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

</ul>


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

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

</ul>


<h3>Functions</h3>

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

</ul>


<h3>I18N</h3>

<ul>

</ul>


<h3>General</h3>

<ul>

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

</ul>

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

<ul>

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58704">
      Bug
      58704</a>
    -
  Non regression testing : Ant task batchtest fails if tests and run in a non <span class="code">en_EN</span> locale and use a JMX file that uses a CSV DataSet</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58897">
      Bug
      58897</a>
    -
  Improve JUnit Test code. Contributed by Benoit Wiart (benoit dot wiart at gmail.com)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58949">
      Bug
      58949</a>
    -
  Cleanup of LDAP code. Based on a patch by Benoit Wiart (benoit dot wiart at gmail.com)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58897">
      Bug
      58897</a>
    -
  Improve JUnit Test code. Contributed by Benoit Wiart (benoit dot wiart at gmail.com)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58967">
      Bug
      58967</a>
    -
  Use JUnit categories to exclude tests that need a gui. Contributed by Benoit Wiart (benoit dot wiart at gmail.com)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=59003">
      Bug
      59003</a>
    -
  <span class="code">ClutilTestCase</span> <span class="code">testSingleArg8</span> and <span class="code">testSingleArg9</span> are identical</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=59064">
      Bug
      59064</a>
    -
  Remove OldSaveService which supported very old Avalon format JTL (result) files</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=59165">
      Bug
      59165</a>
    -
  RSyntaxTextArea not compatible with headless testing</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=59021">
      Bug
      59021</a>
    -
  Use <span class="code">Double#compare</span> instead of reimplementing it in <span class="code">NumberProperty#compareTo</span>
</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=59037">
      Bug
      59037</a>
    -
  Drop HtmlParserHTMLParser and dependencies on htmlparser and htmllexer</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58465">
      Bug
      58465</a>
    -
  JMS Read response field is badly named and documented</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58601">
      Bug
      58601</a>
    -
  Change check for modification of <span class="code">saveservice.properties</span> from <span class="code">SVN Revision ID</span> to sha1 sum of the file itself.</li>

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

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58784">
      Bug
      58784</a>
    -
  Make <span class="code">JMeterUtils#runSafe</span> sync/async awt invocation configurable and change the visualizers to use the async version.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58790">
      Bug
      58790</a>
    -
  Issue in CheckDirty and its relation to ActionRouter</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=59095">
      Bug
      59095</a>
    -
  Remove UserParameterXMLParser that was deprecated eight years ago. Contributed by Benoit Wiart (benoit dot wiart at gmail.com)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=59262">
      Bug
      59262</a>
    -
  Add list of binary jars to LICENSE; use that for unit tests</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=59353">
      Bug
      59353</a>
    -
  Add "Deprecated and removed elements" in "Incompatible changes" part in changes.xml. Contributed by Antonio Gomes Rodrigues (ra0077 at gmail.com)</li>

</ul>

 


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


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

<ul>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57806">
      Bug
      57806</a>
    -
  "<span class="code">audio/x-mpegurl</span>" mime type is erroneously considered as binary by ViewResultsTree. Contributed by Ubik Load Pack (support at ubikloadpack.com).</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57858">
      Bug
      57858</a>
    -
  Don't call <span class="code">sampleEnd</span> twice in HTTPHC4Impl when a <span class="code">RuntimeException</span> or an <span class="code">IOException</span> occurs in the sample method.</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57921">
      Bug
      57921</a>
    -
  HTTP/1.1 without keep-alive "<span class="code">Connection</span>" response header no longer uses infinite keep-alive.</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57956">
      Bug
      57956</a>
    -
  The <span class="code">hc.parameters</span> reference in <span class="code">jmeter.properties</span> doesn't work when JMeter is not started in <span class="code">bin</span>.</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58137">
      Bug
      58137</a>
    -
  JMeter fails to download embedded URLs that contain illegal characters in URL (it does not escape them).</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58201">
      Bug
      58201</a>
    -
  Make usage of port in the host header more consistent across the different http samplers.</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58453">
      Bug
      58453</a>
    -
  HTTP Test Script Recorder : <span class="code">NullPointerException</span> when disabling Capture HTTP Headers </li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57804">
      Bug
      57804</a>
    -
  HTTP Request doesn't reuse cached SSL context when using Client Certificates in HTTPS (only fixed for HttpClient4 implementation)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58800">
      Bug
      58800</a>
    -
  <span class="code">proxy.pause</span> default value: fix documentation</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58844">
      Bug
      58844</a>
    -
  Buttons enable / disable is broken in the arguments panel. Contributed by Benoit Wiart (benoit dot wiart at gmail.com)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58861">
      Bug
      58861</a>
    -
  When clicking on up, down or detail while in a cell of the argument panel, newly added content is lost. Contributed by Benoit Wiart (benoit dot wiart at gmail.com)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57935">
      Bug
      57935</a>
    -
  SSL SNI extension not supported by HttpClient 4.2.6</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=59044">
      Bug
      59044</a>
    -
  Http Sampler : It should not be possible to select the multipart encoding if the method is not <span class="code">POST</span>. Contributed by Benoit Wiart (benoit dot wiart at gmail.com)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=59008">
      Bug
      59008</a>
    -
  Http Sampler: Infinite recursion SampleResult on frame depth limit reached</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58881">
      Bug
      58881</a>
    -
  HTTP Request : HTTPHC4Impl shows exception when server uses "<span class="code">deflate</span>" compression</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58583">
      Bug
      58583</a>
    -
  HTTP client fails to close connection if server misbehaves by not sending "<span class="code">connection: close</span>", violating HTTP RFC 2616 / RFC 7230</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58950">
      Bug
      58950</a>
    -
  <span class="code">NoHttpResponseException</span> when Pause between samplers exceeds keepalive sent by server</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=59085">
      Bug
      59085</a>
    -
  Http file panel : data lost on browse cancellation. Contributed by Benoit Wiart (benoit dot wiart at gmail.com)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56141">
      Bug
      56141</a>
    -
  Application does not behave correctly when using HTTP Recorder. With the help of Dan (java.junkee at yahoo.com)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=59079">
      Bug
      59079</a>
    -
  "<span class="code">httpsampler.max_redirects</span>" property is not enforced when "<span class="code">Redirect Automatically</span>" is used</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58811">
      Bug
      58811</a>
    -
  When pasting arguments between http samplers the column "Encode" and "Include Equals" are lost. Contributed by Benoit Wiart (benoit dot wiart at gmail.com)</li>

</ul>


<h3>Other Samplers</h3>

<ul>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58013">
      Bug
      58013</a>
    -
  Enable all protocols that are enabled on the default SSLContext for usage with the SMTP Sampler.</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58209">
      Bug
      58209</a>
    -
  JMeter hang when testing javasampler because <span class="code">HashMap.put()</span> is called from multiple threads without sync.</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58301">
      Bug
      58301</a>
    -
  Use typed methods such as <span class="code">setInt</span>, <span class="code">setDouble</span>, <span class="code">setDate</span>, &hellip; for prepared statement #27</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58851">
      Bug
      58851</a>
    -
  Add a dependency on hamcrest-core to allow JUnit tests with annotations to work</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58947">
      Bug
      58947</a>
    -
  Connect metric is wrong when <span class="code">ConnectException</span> occurs</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58980">
      Bug
      58980</a>
    -
  JMS Subscriber will return successful as long as 1 message is received. Contributed by Harrison Termotto (harrison dot termotto at stonybrook.edu)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=59075">
      Bug
      59075</a>
    -
  JMS Publisher: <span class="code">NumberFormatException</span> is thrown if priority or expiration field is empty</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=59345">
      Bug
      59345</a>
    -
  SMTPSampler connection leak. Based on a patch by Luca Maragnani (luca dot maragnani at gmail dot com)</li>

</ul>


<h3>Controllers</h3>

<ul>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58600">
      Bug
      58600</a>
    -
  Display correct filenames, when they are searched by IncludeController</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58678">
      Bug
      58678</a>
    -
  Module Controller : limit target element selection. Contributed by Benoit Wiart (benoit dot wiart at gmail.com)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58714">
      Bug
      58714</a>
    -
  Module controller : it should not be possible to add a timer as child. Contributed by Benoit Wiart (benoit dot wiart at gmail.com)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=59067">
      Bug
      59067</a>
    -
  JMeter fails to iterate over Controllers that are children of a TransactionController having "<span class="code">Generate parent sample</span>" checked after an assertion error occurs on a Thread Group with "<span class="code">Start Next Thread Loop</span>". Contributed by Benoit Wiart(benoit dot wiart at gmail.com)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=59076">
      Bug
      59076</a>
    -
  Test should fail if a module controller cannot find its replacement subtree</li>

</ul>


<h3>Listeners</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58033">
      Bug
      58033</a>
    -
  SampleResultConverter should note that it cannot record non-TEXT data</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58845">
      Bug
      58845</a>
    -
  Request http view doesn't display all the parameters. Contributed by Benoit Wiart (benoit dot wiart at gmail.com)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58413">
      Bug
      58413</a>
    -
  ViewResultsTree : Request HTTP Renderer does not show correctly parameters that contain ampersand (&amp;). Contributed by Benoit Wiart (benoit dot wiart at gmail.com)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=59172">
      Bug
      59172</a>
    -
  SampleResult SaveConfig does not allow some fields to be disabled</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58329">
      Bug
      58329</a>
    -
  Response Time Graph and Aggregate Graph : Save graph to file does not take into account the settings changed since last click on Graph. Contributed by David Coppens (d.l.coppens at gmail.com)</li>

</ul>


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

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58079">
      Bug
      58079</a>
    -
  Do not cache HTTP samples that have a <span class="code">Vary</span> header when using a HTTP CacheManager.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58912">
      Bug
      58912</a>
    -
  Response assertion gui : Deleting more than 1 selected row deletes only one row. Contributed by Benoit Wiart (benoit dot wiart at gmail.com)</li>

</ul>


<h3>Functions</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57825">
      Bug
      57825</a>
    -
  __Random function fails if <span class="code">min</span> value is equal to <span class="code">max</span> value (regression related to <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54453">
      Bug
      54453</a>)</li>

</ul>


<h3>I18N</h3>

<ul>

</ul>


<h3>General</h3>

<ul>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54826">
      Bug
      54826</a>
    -
  Don't fail on long strings in JSON responses when displaying them as JSON in View Results Tree.</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57734">
      Bug
      57734</a>
    -
  Maven transient dependencies are incorrect for 2.13 (Fixed group ids for Commons Pool and Math)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57731">
      Bug
      57731</a>
    -
  <span class="code">TESTSTART.MS</span> has always the value of the first Test started in Server mode in NON GUI Distributed testing</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58016">
      Bug
      58016</a>
    -
   Error type casting using external SSL Provider. Contributed by Kirill Yankov (myworkpostbox at gmail.com)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58293">
      Bug
      58293</a>
    -
  SOAP/XML-RPC Sampler file browser generates NullPointerException</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58685">
      Bug
      58685</a>
    -
  JDatefield : Make the modification of the date with up/down arrow work. Contributed by Benoit Wiart (benoit dot wiart at gmail.com)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58693">
      Bug
      58693</a>
    -
  Fix "Cannot nest output folder 'jmeter/build/components' inside output folder 'jmeter/build'" when setting up eclipse</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58781">
      Bug
      58781</a>
    -
  Command line option "<span class="code">-?</span>" shows Unknown option</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57821">
      Bug
      57821</a>
    -
  Command-line option "<span class="code">-X --remoteexit</span>" doesn't work since 2.13 (regression related to <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57500">
      Bug
      57500</a>)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58795">
      Bug
      58795</a>
    -
  NPE may occur in <span class="code">GuiPackage#getTestElementCheckSum</span> with some 3<sup>rd</sup> party plugins</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58913">
      Bug
      58913</a>
    -
  When closing JMeter should not interpret cancel as "<em>destroy my test plan</em>". Contributed by Benoit Wiart (benoit dot wiart at gmail.com)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=59096">
      Bug
      59096</a>
    -
  Search Feature : Case insensitive search is not really case insensitive</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=59193">
      Bug
      59193</a>
    -
  <span class="code">ant run_gui</span> fails with  <span class="code">ClassNotFoundException</span> or <span class="code">IllegalAccessError</span> when accessing classes from dependencies not loaded through <span class="code">Thread.currentThread().getContextClassLoader()</span>
</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=59225">
      Bug
      59225</a>
    -
  Bad display of running indicator icon. Contributed by Antonio Gomes Rodrigues (ra0077 at gmail.com)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56927">
      Bug
      56927</a>
    -
  Disable language change during a test</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=59391">
      Bug
      59391</a>
    -
  In Distributed mode, the client exits abnormally at the end of test</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=59397">
      Bug
      59397</a>
    -
  <span class="code">build.xml</span> does not make dist.executables executable on Unix systems</li>

</ul>

 


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

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

<ul>

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

<li>Benoit Vatan (benoit.vatan at gmail.com)</li>

<li>J&eacute;r&eacute;mie Lesage (jeremie.lesage at jeci.fr)</li>

<li>Kirill Yankov (myworkpostbox at gmail.com)</li>

<li>Amol Moye (amol.moye at thomsonreuters.com)</li>

<li>Samoht-fr (https://github.com/Samoht-fr)</li>

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

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

<li>Benoit Wiart (benoit.wiart at gmail.com)</li>

<li>
<a href="http://www.decathlon.com">Decathlon S.A.</a>
</li>

<li>
<a href="http://www.ubik-ingenierie.com">Ubik-Ingenierie S.A.S.</a>
</li>

<li>Oleg Kalnichevski (olegk at apache.org)</li>

<li>Pascal Schumacher (pascalschumacher at gmx.net)</li>

<li>Vincent Herilier (vherilier at gmail.com)</li>

<li>Florent Sabbe (f dot sabbe at ubik-ingenierie.com)</li>

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

<li>Harrison Termotto (harrison dot termotto at stonybrook.edu</li>

<li>Denis Kirpichenkov (denis.kirpichenkov at gmail.com)</li>

<li>Gary Gregory (ggregory at apache.org)</li>

<li>David Coppens (d.l.coppens at gmail.com)</li>

<li>Luca Maragnani (luca dot maragnani at gmail dot com)</li>

<li>Philip Helger (http://www.helger.com) for his <a href="https://github.com/phax" target="_blank">CSS Parser</a> and for taking into account our bug reports very rapidly</li>

<li>Irek Pastusiak (the.automatic.tester at gmail.com)</li>

</ul>

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

<ul>

<li>purnasatyap at gmail dot com  for the tests and reports on nightly build</li>

<li>Sergey Batalin (sergey_batalin at mail dot ru) for the tests and reports on nightly build</li>

<li>Vincent Daburon (vdaburon at gmail dot com) for the tests and reports on nightly build</li>

</ul>

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


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


<ul>

<li>The Once Only controller behaves correctly under a Thread Group or Loop Controller,
but otherwise its behaviour is not consistent (or clearly specified).</li>


<li>
The numbers that appear to the left of the green box are the number of active threads / total number of threads,
the total number of threads only applies to a locally run test, otherwise it will show <span class="code">0</span> (see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55510">
      Bug
      55510</a>).
</li>


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


<li>
Note that under some windows systems you may have this WARNING:
<pre class="source">
java.util.prefs.WindowsPreferences
WARNING: Could not open/create prefs root node Software\JavaSoft\Prefs at root 0
x80000002. Windows RegCreateKeyEx(&hellip;) returned error code 5.
</pre>
The fix is to run JMeter as Administrator, it will create the registry key for you, then you can restart JMeter as a normal user and you won't have the warning anymore.
</li>


<li>
With Oracle Java 7 and Mac Book Pro Retina Display, the JMeter GUI may look blurry.
This is a known Java bug, see Bug <a href="http://bugs.java.com/bugdatabase/view_bug.do?bug_id=8000629">JDK-8000629</a>.
A workaround is to use a Java 7 update 40 runtime which fixes this issue.
</li>


<li>
You may encounter the following error:
<pre class="source">java.security.cert.CertificateException: Certificates does not conform to algorithm constraints</pre>
 if you run a HTTPS request on a web site with a SSL certificate (itself or one of SSL certificates in its chain of trust) with a signature
 algorithm using MD2 (like md2WithRSAEncryption) or with a SSL certificate with a size lower than 1024 bits.
This error is related to increased security in Java 7 version u16 (MD2) and version u40 (Certificate size lower than 1024 bits), and Java 8 too.
<br>
To allow you to perform your HTTPS request, you can downgrade the security of your Java installation by editing
the Java <span class="code">jdk.certpath.disabledAlgorithms</span> property. Remove the MD2 value or the constraint on size, depending on your case.
<br>
This property is in this file:
<pre class="source">JAVA_HOME/jre/lib/security/java.security</pre>
See  <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56357">
      Bug
      56357</a> for details.
</li>


<li>
Under Mac OSX Aggregate Graph will show wrong values due to mirroring effect on numbers.
This is due to a known Java bug, see Bug <a href="https://bugs.openjdk.java.net/browse/JDK-8065373">JDK-8065373</a>
The fix is to use JDK7_u79, JDK8_u45 or later.
</li>


<li>
View Results Tree may fail to display some HTML code under HTML renderer, see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54586">
      Bug
      54586</a>.
This is due to a known Java bug which fails to parse "<span class="code">px</span>" units in row/col attributes.
See Bug <a href="https://bugs.openjdk.java.net/browse/JDK-8031109">JDK-8031109</a>
The fix is to use JDK9 b65 or later.
</li>


<li>
JTable selection with keyboard (<span class="keycombo"><span class="keysym">SHIFT</span>&nbsp;+&nbsp;<span class="keysym">up/down</span></span>) is totally unusable with JAVA 7 on Mac OSX.
This is due to a known Java bug <a href="https://bugs.openjdk.java.net/browse/JDK-8025126">JDK-8025126</a>
The fix is to use JDK 8 b132 or later.
</li>

</ul>




<h1>Version 2.13</h1>

<p>
Summary
</p>

<ul>

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

<li>
<a href="#Known bugs">Known bugs</a>
</li>

<li>
<a href="#Incompatible changes">Incompatible changes</a>
</li>

<li>
<a href="#Bug fixes">Bug fixes</a>
</li>

<li>
<a href="#Improvements">Improvements</a>
</li>

<li>
<a href="#Non-functional changes">Non-functional changes</a>
</li>

<li>
<a href="#Thanks">Thanks</a>
</li>


</ul>


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





<h2 class="ch_category">New Elements</h2>


<h3 class="ch_title">New Async BackendListener with Graphite implementation</h3>

<p>A new Async BackendListener has been added to allow sending result data to a backend listener.
JMeter ships with a GraphiteBackendListenerClient that allows sending results to a <a href="http://graphite.wikidot.com/" target="_blank">Graphite</a> server using Pickle or Plaintext protocols.
You can implement your own backend by extending <a href="./api/org/apache/jmeter/visualizers/backend/AbstractBackendListenerClient.html">AbstractBackendListenerClient</a>. This backend could be
a database (JDBC), a Message Oriented Middleware (JMS), a Webservice or anything you want.
 </p>

<figure>
<a href="./images/screenshots/changes/2.13/backend_listener_graphite.png"><img src="./images/screenshots/changes/2.13/backend_listener_graphite.png" width="902" height="293" alt=""></a>
<figcaption></figcaption>
</figure>

<p>This is the kind of Live Dashboard you can obtain using <a href="http://grafana.org/" target="_blank">Grafana</a> and <a href="http://influxdb.com/" target="_blank">InfluxDB</a>
<br>
Read <a href="./usermanual/realtime-results.html">this</a> for more details.</p>

<figure>
<a href="./images/screenshots/grafana_dashboard.png"><img src="./images/screenshots/grafana_dashboard.png" width="1265" height="581" alt="Grafana dashboard"></a>
<figcaption>Grafana dashboard</figcaption>
</figure>


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


<h3 class="ch_title">New connect time metric</h3>

<p>Starting with this version a new metric called connectTime has been added. It represents the time to establish connection.
By default it is not saved to CSV or XML, to have it saved add to user.properties:<br>

<span class="code">
jmeter.save.saveservice.connect_time=true
</span>

</p>

<figure>
<a href="./images/screenshots/changes/2.13/connect_time_table.png"><img src="./images/screenshots/changes/2.13/connect_time_table.png" width="1058" height="193" alt=""></a>
<figcaption></figcaption>
</figure>

<figure>
<a href="./images/screenshots/changes/2.13/connect_time_tree.png"><img src="./images/screenshots/changes/2.13/connect_time_tree.png" width="665" height="651" alt=""></a>
<figcaption></figcaption>
</figure>


<h3 class="ch_title">Aggregate Graph and Report</h3>

<p>The listeners Aggregate Graph and Aggregate Report previously showed only the 90 percentile (historical behavior), the 95 percentile and the 99 percentile have been added and are customizable.
To setup the percentiles value you want, add to user.properties:<br>

<span class="code">
aggregate_rpt_pct1=90<br>
aggregate_rpt_pct2=95<br>
aggregate_rpt_pct3=99
</span>

<figure>
<a href="./images/screenshots/changes/2.13/aggregate_graph_new_percentile.png"><img src="./images/screenshots/changes/2.13/aggregate_graph_new_percentile.png" width="801" height="681" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3 class="ch_title">HTTP(S) Test Script Recorder</h3>

<p>Now component is able to detect authentication schemes and automatically adds a pre-configured HTTP Authorization Manager with the correct Mechanism.
</p>


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

<p>The CalDAV verbs (Calendar extensions to WebDAV) REPORT and MKCALENDAR have been added in the HTTP Request sampler.
<figure>
<a href="./images/screenshots/changes/2.13/new_methods_caldav.png"><img src="./images/screenshots/changes/2.13/new_methods_caldav.png" width="716" height="324" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3 class="ch_title">JDBC Request</h3>

<p>The ResultSet can be get as a object, this allows to handle more easily the results after in BeanShell, JSR223 scripts, &hellip;
<figure>
<a href="./images/screenshots/changes/2.13/jdbc_resultset_handler.png"><img src="./images/screenshots/changes/2.13/jdbc_resultset_handler.png" width="683" height="628" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3 class="ch_title">Distributed Testing</h3>

<p>To allow better usage of Distributed Testing in the cloud, retry behaviour has been added when starting test on servers.
Read <a href="./usermanual/remote-test.html#retries">this</a> for more details.
<figure>
<a href="./images/screenshots/changes/2.13/distributed_retry.png"><img src="./images/screenshots/changes/2.13/distributed_retry.png" width="669" height="202" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3 class="ch_title">Distributed Testing performance</h3>

<p>Since JMeter 2.13, Stripping modes (StrippingBatch being the default mode) now also strip responses from SubResults improving consumed network bandwidth.
</p>


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

<p>A new style for website (responsive and more up to date) has been created by Felix Schumacher.
Documentations have been refreshed particularly:
<ul>
    
<li>
<a href="./usermanual/build-ws-test-plan.html">Building a Webservice Test Plan</a>
</li>
    
<li>
<a href="./usermanual/best-practices.html">Best Practices</a>
</li>
    
<li>
<a href="./usermanual/boss.html">Help! My boss wants me to load test our application!</a>
</li>

</ul>

</p>


<h2 class="ch_category">GUI Improvements</h2>


<h3 class="ch_title">Module Controller</h3>

<p>The Module Controller now shows the target controller in a tree view (instead of combo list).
<figure>
<a href="./images/screenshots/changes/2.13/module_controller_tree_view.png"><img src="./images/screenshots/changes/2.13/module_controller_tree_view.png" width="306" height="372" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


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

<p>JMeter's toolbar has been refreshed for some icons (start, toggle, etc.). Three sizes are now available for the icons: 22x22, 32x32 and 48x48.<br>
The property to define your preferred size is:
<pre>jmeter.toolbar.icons.size=value</pre>
with the value 22x22 (default size), 32x32 or 48x48.</br>
</p>

<p>The toolbar with 22x22 pixels icons
<figure>
<a href="./images/screenshots/changes/2.13/toolbar_22x22.png"><img src="./images/screenshots/changes/2.13/toolbar_22x22.png" width="417" height="116" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<p>The toolbar with 32x32 pixels icons
<figure>
<a href="./images/screenshots/changes/2.13/toolbar_32x32.png"><img src="./images/screenshots/changes/2.13/toolbar_32x32.png" width="533" height="130" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<p>The toolbar with 48x48 pixels icons
<figure>
<a href="./images/screenshots/changes/2.13/toolbar_48x48.png"><img src="./images/screenshots/changes/2.13/toolbar_48x48.png" width="716" height="143" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3 class="ch_title">HTTP(S) Test Script Recorder</h3>

<p>If your Test Plan does not contains a Recording Controller, a new warning message will appear if the
 HTTP(S) Test Script Recorder is configured to send the samples into a Recording Controller.
<figure>
<a href="./images/screenshots/changes/2.13/warning_message_proxy.png"><img src="./images/screenshots/changes/2.13/warning_message_proxy.png" width="858" height="386" alt=""></a>
<figcaption></figcaption>
</figure>

</p>




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


<ul>
    
<li>Since 2.13, Aggregate Graph, Summary Report and Aggregate Report now export percentages to %, before they exported the decimal value which differed from what was shown in GUI</li>
    
<li>Third party plugins may be impacted by fix of <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57586">
      Bug
      57586</a>, ensure that your subclass of HttpTestSampleGui implements ItemListener if you relied on parent class doing so.</li>
    
<li>Report package has been removed, <span class="code">ApacheJMeter_report.jar</span> is not generated anymore as a consequence, see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57269">
      Bug
      57269</a>
</li>

</ul>




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


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

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=25430">
      Bug
      25430</a>
    -
  HTTP(S) Test Script Recorder : Make it populate HTTP Authorization Manager. Partly based on a patch from Dzmitry Kashlach (dzmitrykashlach at gmail.com)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57381">
      Bug
      57381</a>
    -
  HTTP(S) Test Script Recorder should display an error if Target Controller references a Recording Controller and no Recording Controller exists. Contributed by Ubik Load Pack (support at ubikloadpack.com)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57488">
      Bug
      57488</a>
    -
  Performance : Improve SSLContext reset for Two-way SSL Authentication</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57565">
      Bug
      57565</a>
    -
  SamplerCreator : Add method to allow implementations to add children to created sampler</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57606">
      Bug
      57606</a>
    -
  HTTPSamplerBase#errorResult changes the sample label on exception </li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57613">
      Bug
      57613</a>
    -
  HTTP Sampler : Added CalDAV verbs (REPORT, MKCALENDAR). Contributed by Richard Brigham (richard.brigham at teamaol.com)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=48799">
      Bug
      48799</a>
    -
  Add time to establish connection to available sample metrics. Implemented by Andrey Pokhilko (andrey at blazemeter.com) and contributed by BlazeMeter Ltd. and Pieter Ennes (apache.org at spam.ennes.nl)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57500">
      Bug
      57500</a>
    -
  Introduce retry behavior for distributed testing. Implemented by Andrey Pokhilko and Dzimitry Kashlach and contributed by BlazeMeter Ltd.</li>

</ul>


<h3>Other samplers</h3>

<ul>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57322">
      Bug
      57322</a>
    -
  JDBC Test elements: add ResultHandler to deal with ResultSets(cursors) returned by callable statements. Contributed by Yngvi &THORN;&oacute;r Sigurj&oacute;nsson (blitzkopf at gmail.com)</li>

</ul>


<h3>Controllers</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57561">
      Bug
      57561</a>
    -
  Module controller UI : Replace combobox by tree. Contributed by Maciej Franek (maciej.franek at gmail.com)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57648">
      Bug
      57648</a>
    -
  TestFragment should be disabled when created. Contributed by Ubik Load Pack (support at ubikloadpack.com)</li>

</ul>


<h3>Listeners</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55932">
      Bug
      55932</a>
    -
  Create a Async BackendListener to allow easy plug of new listener (Graphite, JDBC, Console, &hellip;)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57246">
      Bug
      57246</a>
    -
  BackendListener : Create a Graphite implementation</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57217">
      Bug
      57217</a>
    -
  Aggregate graph and Aggregate report improvements (3 configurable percentiles, same data in both, factor out code). Contributed by Ubik Load Pack (support at ubikloadpack.com)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57537">
      Bug
      57537</a>
    -
  BackendListener : Allow implementations to drop samples</li>

</ul>


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

<ul>

</ul>


<h3>Functions</h3>

<ul>

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

</ul>


<h3>I18N</h3>

<ul>

</ul>


<h3>General</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57518">
      Bug
      57518</a>
    -
  Icons for toolbar with several sizes</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57605">
      Bug
      57605</a>
    -
  When there is an error loading Test Plan, <span class="code">SaveService.loadTree</span> returns <span class="code">null</span> leading to NPE in callers</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57269">
      Bug
      57269</a>
    -
  Drop <span class="code">org.apache.jmeter.reports</span> package</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53764">
      Bug
      53764</a>
    -
  Website : Create a new style for website</li>

</ul>

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

<ul>

<li>Updated to jsoup-1.8.1.jar (from 1.7.3)</li>

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

<li>Updated to commons-codec-1.10.jar (from 1.9)</li>

<li>Updated to dnsjava-2.1.7.jar (from 2.1.6)</li>

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

<li>Updated to junit-4.12.jar (from 4.11)</li>

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

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

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

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57276">
      Bug
      57276</a>
    -
  RMIC no longer needed since Java 5</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57310">
      Bug
      57310</a>
    -
  Replace <span class="code">System.getProperty("file.separator")</span> with <span class="code">File.separator</span> throughout (Also "<span class="code">path.separator"</span> with <span class="code">File.pathSeparator</span>)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57389">
      Bug
      57389</a>
    -
  Fix potential NPE in converters</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57417">
      Bug
      57417</a>
    -
  Remove unused method <span class="code">isTemporary</span> from <span class="code">NullProperty</span>. This was a leftover from a refactoring done in 2003.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57418">
      Bug
      57418</a>
    -
  Remove unused constructor from Workbench</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57419">
      Bug
      57419</a>
    -
  Remove unused interface ModelListener.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57466">
      Bug
      57466</a>
    -
  IncludeController : Remove an unneeded set creation. Contributed by Benoit Wiart (benoit.wiart at gmail.com)</li>

<li>Added property <span class="code">loggerpanel.usejsyntaxtext</span> to disable the use of JSyntaxTextArea for the Console Logger (in case of memory or other issues)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57586">
      Bug
      57586</a>
    -
  HttpTestSampleGui: Remove interface ItemListener implementation</li>

</ul>

 


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


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

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57385">
      Bug
      57385</a>
    -
  Getting empty thread name in xml result for HTTP requests with "Follow Redirects" set. Contributed by Ubik Load Pack (support at ubikloadpack.com)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57579">
      Bug
      57579</a>
    -
  NullPointerException error is raised on main sample if "RETURN_NO_SAMPLE" is used (default) and "Use Cache-Control / Expires header&hellip;" is checked in HTTP Cache Manager</li>

</ul>


<h3>Other Samplers</h3>

<ul>

</ul>


<h3>Controllers</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57447">
      Bug
      57447</a>
    -
  Use only the user listed DNS Servers, when "use custom DNS resolver" option is enabled.</li>

</ul>


<h3>Listeners</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57262">
      Bug
      57262</a>
    -
  Aggregate Report, Aggregate Graph and Summary Report export : headers use keys instead of labels</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57346">
      Bug
      57346</a>
    -
  Summariser : The + (difference) reports show wrong elapsed time and throughput</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57449">
      Bug
      57449</a>
    -
  Distributed Testing: Stripped modes do not strip responses from SubResults (affects load tests that use Download of embedded resources). Contributed by Ubik Load Pack (support at ubikloadpack.com)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57562">
      Bug
      57562</a>
    -
  View Results Tree CSS/JQuery Tester : Nothing happens when there is an error in syntax and an exception occurs in jmeter.log</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57514">
      Bug
      57514</a>
    -
  Aggregate Graph, Summary Report and Aggregate Report show wrong percentage reporting in saved file</li>

</ul>


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

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57607">
      Bug
      57607</a>
    -
  Constant Throughput Timer : Wrong throughput computed in shared modes due to rounding error </li>

</ul>


<h3>General</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57365">
      Bug
      57365</a>
    -
  Selected LAF is not correctly setup due to call of <span class="code">UIManager.setLookAndFeel</span> too late. Contributed by Ubik Load Pack (support at ubikloadpack.com)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57364">
      Bug
      57364</a>
    -
  Options &lt; Look And Feel does not update all windows LAF. Contributed by Ubik Load Pack (support at ubikloadpack.com)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57394">
      Bug
      57394</a>
    -
  When constructing an instance with ClassTools#construct(String, int) the integer was ignored and the default constructor was used instead.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57440">
      Bug
      57440</a>
    -
  OutOfMemoryError after introduction of JSyntaxTextArea in LoggerPanel due to disableUndo not being taken into account.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57569">
      Bug
      57569</a>
    -
  FileServer.reserveFile - inconsistent behaviour when hasHeader is true</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57555">
      Bug
      57555</a>
    -
  Cannot use JMeter 2.12 as a maven dependency. Contributed by Pascal Schumacher (pascal.schumacher at t-systems.com)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57608">
      Bug
      57608</a>
    -
  Fix start script compatibility with old Unix shells, e.g. on Solaris</li>

</ul>

 


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

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

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

<li>Yngvi &THORN;&oacute;r Sigurj&oacute;nsson (blitzkopf at gmail.com)</li>

<li>Dzmitry Kashlach (dzmitrykashlach at gmail.com)</li>

<li>
<a href="http://blazemeter.com">BlazeMeter Ltd.</a>
</li>

<li>Benoit Wiart (benoit.wiart at gmail.com)</li>

<li>Pascal Schumacher (pascal.schumacher at t-systems.com)</li>

<li>Maciej Franek (maciej.franek at gmail.com)</li>

<li>Richard Brigham (richard.brigham at teamaol.com)</li>

<li>Pieter Ennes (apache.org at spam.ennes.nl)</li>

</ul>


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

<li>Chaitanya Bhatt (bhatt.chaitanya at gmail.com) for his thorough testing of new BackendListener and Graphite Client implementation.</li>

<li>Marcelo Jara (marcelojara at hotmail.com) for his clear report on <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57607">
      Bug
      57607</a>.</li>

</ul>

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


<h2 class="ch_section" id="Known bugs">Known bugs</h2>


<ul>

<li>The Once Only controller behaves correctly under a Thread Group or Loop Controller,
but otherwise its behaviour is not consistent (or clearly specified).</li>


<li>
The numbers that appear to the left of the green box are the number of active threads / total number of threads,
the total number of threads only applies to a locally run test, otherwise it will show 0 (see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55510">
      Bug
      55510</a>).
</li>


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


<li>
Note that under some windows systems you may have this WARNING:
<pre class="source">
java.util.prefs.WindowsPreferences
WARNING: Could not open/create prefs root node Software\JavaSoft\Prefs at root 0
x80000002. Windows RegCreateKeyEx(&hellip;) returned error code 5.
</pre>
The fix is to run JMeter as Administrator, it will create the registry key for you, then you can restart JMeter as a normal user and you won't have the warning anymore.
</li>


<li>
With Java 1.6 and Gnome 3 on Linux systems, the JMeter menu may not work correctly (shift between mouse's click and the menu).
This is a known Java bug (see  <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54477">
      Bug
      54477</a>).
A workaround is to use a Java 7 runtime (OpenJDK or Oracle JDK).
</li>


<li>
With Oracle Java 7 and Mac Book Pro Retina Display, the JMeter GUI may look blurry.
This is a known Java bug, see Bug <a href="http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=8000629">JDK-8000629</a>.
A workaround is to use a Java 7 update 40 runtime which fixes this issue.
</li>


<li>
You may encounter the following error: <i>java.security.cert.CertificateException: Certificates does not conform to algorithm constraints</i>
 if you run a HTTPS request on a web site with a SSL certificate (itself or one of SSL certificates in its chain of trust) with a signature
 algorithm using MD2 (like md2WithRSAEncryption) or with a SSL certificate with a size lower than 1024 bits.
This error is related to increased security in Java 7 version u16 (MD2) and version u40 (Certificate size lower than 1024 bits), and Java 8 too.
<br>
To allow you to perform your HTTPS request, you can downgrade the security of your Java installation by editing
the Java <b>jdk.certpath.disabledAlgorithms</b> property. Remove the MD2 value or the constraint on size, depending on your case.
<br>
This property is in this file:
<pre>JAVA_HOME/jre/lib/security/java.security</pre>
See  <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56357">
      Bug
      56357</a> for details.
</li>


</ul>




<h1>Version 2.12</h1>

<p>
Summary
</p>

<ul>

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

<li>
<a href="#Known bugs">Known bugs</a>
</li>

<li>
<a href="#Incompatible changes">Incompatible changes</a>
</li>

<li>
<a href="#Bug fixes">Bug fixes</a>
</li>

<li>
<a href="#Improvements">Improvements</a>
</li>

<li>
<a href="#Non-functional changes">Non-functional changes</a>
</li>

<li>
<a href="#Thanks">Thanks</a>
</li>


</ul>


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





<h3 class="ch_title">Java 8 support</h3>

<p>Now, JMeter 2.12 is compliant with Java 8.</p>


<h2 class="ch_category">New Elements</h2>

<h3 class="ch_title">Critical Section Controller</h3>

<p>The Critical Section Controller allow to serialize the execution of a section in your tree.
Only one instance of the section will be executed at the same time during the test.</p>

<figure>
<a href="./images/screenshots/changes/2.12/01_critical_section_controller.png"><img src="./images/screenshots/changes/2.12/01_critical_section_controller.png" width="683" height="240" alt=""></a>
<figcaption></figcaption>
</figure>


<h3 class="ch_title">DNS Cache Manager</h3>

<p>The new configuration element <b>DNS Cache Manager</b>(see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56841">
      Bug
      56841</a>) improves the testing of:
<ul>

<li>CDN (Content Delivery Network)</li>

<li>DNS load balancing.</li>

<li>Load Balancers like Amazon Elastic Load Balancer</li>

</ul>

</p>

<figure>
<a href="./images/screenshots/changes/2.12/02_dns_cache_manager.png"><img src="./images/screenshots/changes/2.12/02_dns_cache_manager.png" width="573" height="359" alt=""></a>
<figcaption></figcaption>
</figure>

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


<h3 class="ch_title">Smarter Recording of Http Test Plans</h3>

<p>Test Script Recorder has been improved in many ways</p>

<ul>
    
<li>Better matching of Variables in Requests, making Test Script Recorder variabilize your sampler during recording more versatile</li>
    
<li>Ability to filter from View Results Tree the Samples that are excluded from recording, this lets you concentrate on recorded Samplers analysis and not bother with useless Sample Results
    <figure>
<a href="./images/screenshots/changes/2.12/14_recorder_filter.png"><img src="./images/screenshots/changes/2.12/14_recorder_filter.png" width="1094" height="647" alt=""></a>
<figcaption></figcaption>
</figure>
    
</li>
    
<li>Better defaults for recording, since this version Recorder will number created Samplers letting you find them much easily in View Results Tree.
    Grouping of Samplers under Transaction Controller will be smarter making all requests emitted by a web page be children as new Transaction Controller</li>

</ul>


<h3 class="ch_title">Support of Webdav requests</h3>

<p>You can now test against WebDav server using HttpClient4 Implementation of Http Request</p>

<figure>
<a href="./images/screenshots/changes/2.12/13_webdav.png"><img src="./images/screenshots/changes/2.12/13_webdav.png" width="989" height="406" alt=""></a>
<figcaption></figcaption>
</figure>


<h3 class="ch_title">Better handling of embedded resources</h3>

<p>When download embedded resources is checked, JMeter now uses User Agent header to download or not resources embedded within conditional comments as per <a href="http://msdn.microsoft.com/en-us/library/ms537512%28v=vs.85%29.aspx" target="_blank">About conditional comments</a>.</p>


<h3 class="ch_title">Ability to customize Cache Manager (Browser cache simulation) handling of cached resources</h3>

<p>You can now configure the behaviour of JMeter when a resource is found in Cache, this can be controlled with <i>cache_manager.cached_resource_mode</i> property</p>

<figure>
<a href="./images/screenshots/changes/2.12/12_cache_resource_mode.png"><img src="./images/screenshots/changes/2.12/12_cache_resource_mode.png" width="1024" height="314" alt=""></a>
<figcaption></figcaption>
</figure>



<h3 class="ch_title">JMS Publisher / JMS Point-to-Point</h3>

<p> Add JMSPriority and JMSExpiration fields for these samplers.</p>

<figure>
<a href="./images/screenshots/changes/2.12/04_jms_publisher.png"><img src="./images/screenshots/changes/2.12/04_jms_publisher.png" width="877" height="314" alt=""></a>
<figcaption></figcaption>
</figure>


<figure>
<a href="./images/screenshots/changes/2.12/05_jms_point_to_point.png"><img src="./images/screenshots/changes/2.12/05_jms_point_to_point.png" width="877" height="293" alt=""></a>
<figcaption></figcaption>
</figure>


<h3 class="ch_title">Mail Reader Sampler</h3>

<p>You can now specify the number of messages that want you retrieve (before all messages were retrieved).
In addition, you can fetch only the message header now.</p>

<figure>
<a href="./images/screenshots/changes/2.12/03_mail_reader_sampler.png"><img src="./images/screenshots/changes/2.12/03_mail_reader_sampler.png" width="814" height="416" alt=""></a>
<figcaption></figcaption>
</figure>


<h3 class="ch_title">SMTP Sampler</h3>

<p>Adding the Connection timeout and the Read timeout to the <b>SMTP Sampler.</b>
</p>

<figure>
<a href="./images/screenshots/changes/2.12/06_smtp_sampler.png"><img src="./images/screenshots/changes/2.12/06_smtp_sampler.png" width="796" height="192" alt=""></a>
<figcaption></figcaption>
</figure>


<h3 class="ch_title">Synchronizing Timer </h3>

<p>Adding a timeout to define the maximum time to waiting of the group of virtual users.</p>

<figure>
<a href="./images/screenshots/changes/2.12/09_synchronizing_timer.png"><img src="./images/screenshots/changes/2.12/09_synchronizing_timer.png" width="546" height="144" alt=""></a>
<figcaption></figcaption>
</figure>


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

<p>A big improvement in performances of Functions has been made by lifting useless synchronization. It concerns all functions except __StringFromFile, __XPath and __BeanShell, see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57114">
      Bug
      57114</a>
</p>

<p>__jexl2 performances have been improved to avoid contention point, see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56708">
      Bug
      56708</a>
</p>


<h2 class="ch_category">GUI Improvements</h2>


<h3 class="ch_title">Undo/Redo support</h3>

<p>Undo / Redo has been introduced and allows user to undo/redo changes made on Test Plan Tree. This feature (ALPHA MODE) is disabled by default, to enable it set property <b>undo.history.size=25</b> 
</p>

<figure>
<a href="./images/screenshots/changes/2.12/10_undo_redo.png"><img src="./images/screenshots/changes/2.12/10_undo_redo.png" width="1024" height="56" alt=""></a>
<figcaption></figcaption>
</figure>


<h3 class="ch_title">View Results Tree</h3>

<p>Improve the ergonomics of View Results Tree by changing placement of Renderers and allowing custom ordering
(with the property <i>view.results.tree.renderers_order</i>).</p>

<figure>
<a href="./images/screenshots/changes/2.12/07_view_results_tree.png"><img src="./images/screenshots/changes/2.12/07_view_results_tree.png" width="900" height="329" alt=""></a>
<figcaption></figcaption>
</figure>


<h3 class="ch_title">Response Time Graph</h3>

<p>Adding the ability for the <b>Response Time Graph</b> listener to save/restore format its settings in/from the jmx file.</p>

<figure>
<a href="./images/screenshots/changes/2.12/08_response_time_graph.png"><img src="./images/screenshots/changes/2.12/08_response_time_graph.png" width="997" height="574" alt=""></a>
<figcaption></figcaption>
</figure>


<h3 class="ch_title">Log Viewer</h3>

<p>Starting with this version, the last lines of JMeter's log file (jmeter.log) can be viewed directly in GUI by clicking on Warning icon in the upper right corner.
This will unfold the Log Viewer panel and show logs.</p>

<figure>
<a href="./images/screenshots/changes/2.12/11_log_viewer.png"><img src="./images/screenshots/changes/2.12/11_log_viewer.png" width="1024" height="437" alt=""></a>
<figcaption></figcaption>
</figure>


<h3 class="ch_title">File Opening</h3>

<p>Now, "Open File dialog" uses last opened file folder as start folder, see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52707">
      Bug
      52707</a>
</p>




<h2 class="ch_section" id="Known bugs">Known bugs</h2>


<ul>

<li>The Once Only controller behaves correctly under a Thread Group or Loop Controller,
but otherwise its behaviour is not consistent (or clearly specified).</li>


<li>
The numbers that appear to the left of the green box are the number of active threads / total number of threads,
the total number of threads only applies to a locally run test, otherwise it will show 0 (see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55510">
      Bug
      55510</a>).
</li>


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


<li>
Note that under some windows systems you may have this WARNING:
<pre class="source">
java.util.prefs.WindowsPreferences
WARNING: Could not open/create prefs root node Software\JavaSoft\Prefs at root 0
x80000002. Windows RegCreateKeyEx(&hellip;) returned error code 5.
</pre>
The fix is to run JMeter as Administrator, it will create the registry key for you, then you can restart JMeter as a normal user and you won't have the warning anymore.
</li>


<li>
With Java 1.6 and Gnome 3 on Linux systems, the JMeter menu may not work correctly (shift between mouse's click and the menu).
This is a known Java bug (see  <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54477 ">
      Bug
      54477 </a>).
A workaround is to use a Java 7 runtime (OpenJDK or Oracle JDK).
</li>


<li>
With Oracle Java 7 and Mac Book Pro Retina Display, the JMeter GUI may look blurry.
This is a known Java bug, see Bug <a href="http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=8000629">JDK-8000629</a>.
A workaround is to use a Java 7 update 40 runtime which fixes this issue.
</li>


<li>
You may encounter the following error: <i>java.security.cert.CertificateException: Certificates does not conform to algorithm constraints</i>
 if you run a HTTPS request on a web site with a SSL certificate (itself or one of SSL certificates in its chain of trust) with a signature
 algorithm using MD2 (like md2WithRSAEncryption) or with a SSL certificate with a size lower than 1024 bits.
This error is related to increased security in Java 7 version u16 (MD2) and version u40 (Certificate size lower than 1024 bits), and Java 8 too.
<br>
To allow you to perform your HTTPS request, you can downgrade the security of your Java installation by editing
the Java <b>jdk.certpath.disabledAlgorithms</b> property. Remove the MD2 value or the constraint on size, depending on your case.
<br>
This property is in this file:
<pre>JAVA_HOME/jre/lib/security/java.security</pre>
See  <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56357">
      Bug
      56357</a> for details.
</li>


</ul>




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


<ul>

<li>Since JMeter 2.12, active threads in all thread groups and active threads in current thread group are saved by default to CSV or XML results, see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57025">
      Bug
      57025</a>.
This is usually the expected behaviour as you want to have the number of running threads during the test. But if you want to revert to previous behaviour, set property <b>jmeter.save.saveservice.thread_counts=false</b>
</li>

<li>Since JMeter 2.12, Mail Reader Sampler will show 1 for number of samples instead of number of messages retrieved, see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56539">
      Bug
      56539</a>
</li>

<li>Since JMeter 2.12, when using Cache Manager, if resource is found in cache no SampleResult will be created, in previous version a SampleResult with empty content and 204 return code was returned, see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54778">
      Bug
      54778</a>.
You can choose between different ways to handle this case, see <span class="code">cache_manager.cached_resource_mode</span> in <span class="code">jmeter.properties</span>.</li>

<li>Since JMeter 2.12, Log Viewer will no more clear logs when closed and will have logs available even if closed. See <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56920">
      Bug
      56920</a>. Read <a href="./usermanual/hints_and_tips.html#debug_logging">Hints and Tips &gt; Enabling Debug logging</a>
for details on configuring this component.</li>

</ul>




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


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

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55998">
      Bug
      55998</a> - HTTP recording &ndash; Replacing port value by user defined variable does not work</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56178">
      Bug
      56178</a> - keytool error: Invalid escaped character in AVA: - some characters must be escaped</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56222">
      Bug
      56222</a> - NPE if jmeter.httpclient.strict_rfc2616=true and location is not absolute</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56263">
      Bug
      56263</a> - DefaultSamplerCreator should set BrowserCompatible Multipart true</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56231">
      Bug
      56231</a> - Move redirect location processing from HC3/HC4 samplers to HTTPSamplerBase#followRedirects()</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56207">
      Bug
      56207</a> - URLs get encoded on redirects in HC3.1 &amp; HC4 samplers</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56303">
      Bug
      56303</a> - The width of target controller's combo list should be set to the current panel size, not on label size of the controllers</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54778">
      Bug
      54778</a> - HTTP Sampler should not return 204 when resource is found in Cache, make it configurable with new property cache_manager.cached_resource_mode</li>

</ul>


<h3>Other Samplers</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55977">
      Bug
      55977</a> - JDBC pool keepalive flooding</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55999">
      Bug
      55999</a> - Scroll bar on jms point-to-point sampler does not work when content exceeds display</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56198">
      Bug
      56198</a> - JMSSampler : NullPointerException is thrown when JNDI underlying implementation of JMS provider does not comply with <span class="code">Context.getEnvironment</span> contract</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56428">
      Bug
      56428</a> - MailReaderSampler - should it use mail.pop3s.* properties?</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=46932">
      Bug
      46932</a> - Alias given in select statement is not used as column header in response data for a JDBC request. Based on report and analysis of Nicola Ambrosetti</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56539">
      Bug
      56539</a> - Mail reader sampler: When Number of messages to retrieve is superior to 1, Number of samples should only show 1 not the number of messages retrieved</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56809">
      Bug
      56809</a> - JMSSampler closes InitialContext too early. Contributed by Bradford Hovinen (hovinen at gmail.com)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56761">
      Bug
      56761</a> - JMeter tries to stop already stopped JMS connection and displays "The connection is closed"</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57068">
      Bug
      57068</a> - No error thrown when negative duration is entered in Test Action</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57078">
      Bug
      57078</a> - LagartoBasedHTMLParser fails to parse page that contains input with no type</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57183">
      Bug
      57183</a> - JMSSampler: For input string: "" java.lang.NumberFormatException (for Expiration or Priority fields)</li>

</ul>


<h3>Controllers</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56243">
      Bug
      56243</a> - Foreach works incorrectly with indexes on subsequent iterations </li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56276">
      Bug
      56276</a> - Loop controller becomes broken once loop count evaluates to zero </li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56160">
      Bug
      56160</a> - StackOverflowError when using WhileController within IfController</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56811">
      Bug
      56811</a> - "Start Next Thread Loop" in Result Status Action Handler or on Thread Group and "Go to next Loop iteration" in Test Action behave incorrectly with TransactionController that has "Generate Parent Sampler" checked</li>

</ul>


<h3>Listeners</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56706">
      Bug
      56706</a> - SampleResult#getResponseDataAsString() does not use encoding in response body impacting PostProcessors and ViewResultsTree. Contributed by Ubik Load Pack (support at ubikloadpack.com)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57052">
      Bug
      57052</a> - ArithmeticException: / by zero when sampleCount is equal to 0</li>

</ul>


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

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56162">
      Bug
      56162</a> -  HTTP Cache Manager should not cache PUT/POST etc.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56227">
      Bug
      56227</a> - AssertionGUI : NPE in assertion on mouse selection</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=41319">
      Bug
      41319</a> - URLRewritingModifier : Allow Parameter value to be url encoded</li>

</ul>


<h3>Functions</h3>

<ul>

</ul>


<h3>I18N</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56111">
      Bug
      56111</a> - "comments" in german translation is not correct</li>

</ul>


<h3>General</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56059">
      Bug
      56059</a> - Older TestBeans incompatible with 2.11 when using TextAreaEditor</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56080">
      Bug
      56080</a> - Conversion error com.thoughtworks.xstream.converters.ConversionException with Java 8 Early Access Build</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56182">
      Bug
      56182</a> - Can't trigger bsh script using bshclient.jar; socket is closed unexpectedly </li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56360">
      Bug
      56360</a> - HashTree and ListedHashTree fail to compile with Java 8</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56419">
      Bug
      56419</a> - JMeter silently fails to save results</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56662">
      Bug
      56662</a> - Save as xml in a listener is not remembered</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56367">
      Bug
      56367</a> - JMeter 2.11 on maven central triggers a not existing dependency rsyntaxtextarea 2.5.1, upgrade to 2.5.3</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56743">
      Bug
      56743</a> - Wrong mailing list archives on mail2.xml. Contributed by Felix Schumacher (felix.schumacher at internetallee.de)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56763">
      Bug
      56763</a> - Removing the Oracle icons, not used by JMeter (and missing license)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54100">
      Bug
      54100</a> - Switching languages fails to preserve toolbar button states (enabled/disabled)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54648">
      Bug
      54648</a> - JMeter GUI on OS X crashes when using CMD+C (keyboard shortcut or UI menu entry) on an element from the tree</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56962">
      Bug
      56962</a> - JMS GUIs should disable all fields affected by jndi.properties checkbox</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57061">
      Bug
      57061</a> - Save as Test Fragment fails to clone deeply selected node. Contributed by Ubik Load Pack (support at ubikloadpack.com)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57075">
      Bug
      57075</a> - BeanInfoSupport.MULTILINE attribute is not processed</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57076">
      Bug
      57076</a> - BooleanPropertyEditor#getAsText() must return a value that is in getTags()</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57088">
      Bug
      57088</a> - NPE in ResultCollector.testEnded</li>

</ul>




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


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

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55959">
      Bug
      55959</a> - Improve error message when Test Script Recorder fails due to I/O problem</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52013">
      Bug
      52013</a> - Test Script Recorder's Child View Results Tree does not take into account Test Script Recorder excluded/included URLs. Based on report and analysis of James Liang</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56119">
      Bug
      56119</a> - File uploads fail every other attempt using timers. Enable idle timeouts for servers that don't send Keep-Alive headers.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56272">
      Bug
      56272</a> - MirrorServer should support query parameters for status and redirects</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56772">
      Bug
      56772</a> - Handle IE Conditional comments when parsing embedded resources</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57026">
      Bug
      57026</a> - HTTP(S) Test Script Recorder : Better default settings. Contributed by Ubik Load Pack (support at ubikloadpack.com)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57107">
      Bug
      57107</a> - Patch proposal: Add DAV verbs to HTTP Sampler. Contributed by Philippe Jung (apache at famille-jung.fr)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56357">
      Bug
      56357</a> - Certificates does not conform to algorithm constraints: Adding a note to indicate how to remove of the Java installation these new security constraints</li>

</ul>


<h3>Other samplers</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56033">
      Bug
      56033</a> - Add Connection timeout and Read timeout to SMTP Sampler</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56429">
      Bug
      56429</a> - MailReaderSampler - no need to fetch all Messages if not all wanted</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56427">
      Bug
      56427</a> - MailReaderSampler enhancement: read message header only</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56510">
      Bug
      56510</a> - JMS Publisher/Point to Point: Add JMSPriority and JMSExpiration</li>

</ul>


<h3>Controllers</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56728">
      Bug
      56728</a> - New Critical Section Controller to serialize blocks of a Test. Based partly on a patch contributed by Mikhail Epikhin(epihin-m at yandex.ru)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57145">
      Bug
      57145</a> - RandomController : Use ThreadLocalRandom instead of Random for better performances</li>

</ul>


<h3>Listeners</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56228">
      Bug
      56228</a> - View Results Tree : Improve ergonomy by changing placement of Renderers and allowing custom ordering</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56349">
      Bug
      56349</a> - "summary" is a bad name for a Generate Summary Results component, documentation clarified</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56769">
      Bug
      56769</a> - Adds the ability for the Response Time Graph listener to save/restore format settings in/from the jmx file</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57025">
      Bug
      57025</a> - SaveService : Better defaults, save thread counts by default</li>

</ul>


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

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56691">
      Bug
      56691</a> - Synchronizing Timer : Add timeout on waiting</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56701">
      Bug
      56701</a> - HTTP Authorization Manager/ Kerberos Authentication: add port to SPN when server port is neither 80 nor 443. Based on patches from Dan Haughey (dan.haughey at swinton.co.uk) and Felix Schumacher (felix.schumacher at internetallee.de)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56841">
      Bug
      56841</a> - New configuration element: DNS Cache Manager to improve the testing of CDN. Based on patch from Dzmitry Kashlach (dzmitrykashlach at gmail.com), and contributed by BlazeMeter Ltd.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52061">
      Bug
      52061</a> - Allow access to Request Headers in Regex Extractor. Based on patch from Dzmitry Kashlach (dzmitrykashlach at gmail.com), and contributed by BlazeMeter Ltd.</li>

</ul>


<h3>Functions</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56708">
      Bug
      56708</a> - __jexl2 doesn't scale with multiple CPU cores. Based on analysis and patch contributed by Mikhail Epikhin(epihin-m at yandex.ru)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57114">
      Bug
      57114</a> - Performance : Functions that only have values as instance variable should not synchronize execute. Based on analysis by Ubik Load Pack support and Vladimir Sitnikov, patch contributed by Vladimir Sitnikov (sitnikov.vladimir at gmail.com)</li>

</ul>


<h3>I18N</h3>

<ul>

</ul>


<h3>General</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=21695">
      Bug
      21695</a> - Unix jmeter start script assumes it is on PATH, not a link</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56292">
      Bug
      56292</a> - Add the check of the Java's version in startup files and disable some options when is Java v8 engine</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56298">
      Bug
      56298</a> - JSR223 language display does not show which engine will be used</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56455">
      Bug
      56455</a> - Batch files: drop support for non-NT Windows shell scripts</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52707">
      Bug
      52707</a> - Make Open File dialog use last opened file folder as start folder. Based on patch from Dzmitry Kashlach (dzmitrykashlach at gmail.com), and contributed by BlazeMeter Ltd.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56807">
      Bug
      56807</a> - Ability to force flush of ResultCollector file. Contributed by Andrey Pohilko (apc4 at ya.ru)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56921">
      Bug
      56921</a> - Templates : Improve Recording template to ignore embedded resources case and URL parameters. Contributed by Ubik Load Pack (support at ubikloadpack.com)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=42248">
      Bug
      42248</a> - Undo-redo support on Test Plan tree modification. Developed by Andrey Pohilko (apc4 at ya.ru) and contributed by BlazeMeter Ltd. Additional contribution by Ubik Load Pack (support at ubikloadpack.com)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56920">
      Bug
      56920</a> - LogViewer : Make it receive all log events even when it is closed. Contributed by Ubik Load Pack (support at ubikloadpack.com)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57083">
      Bug
      57083</a> - simplified the CachedResourceMode enum. Contributed by Graham Russel (graham at ham1.co.uk)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57082">
      Bug
      57082</a> - ComboStringEditor : Added hashCode to an inner class which overwrote equals. Contributed by Graham Russel (graham at ham1.co.uk)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57081">
      Bug
      57081</a> - Updating checkstyle to only check for tabs in java, xml, xsd, dtd, htm, html and txt files (not images!). Contributed by Graham Russell (graham at ham1.co.uk)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56178">
      Bug
      56178</a> - Really replace backslashes in user name before generating proxy certificate. Contributed by Graham Russel (graham at ham1.co.uk)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57084">
      Bug
      57084</a> - Close socket after usage in BeanShellClient. Contributed by Graham Russel (graham at ham1.co.uk)</li>

</ul>

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

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57117">
      Bug
      57117</a> - Increase the default cipher for HTTPS Test Script Recorder from SSLv3 to TLS</li>

<li>Updated to commons-lang3 3.3.2 (from 3.1)</li>

<li>Updated to commons-codec 1.9 (from 1.8)</li>

<li>Updated to commons-logging 1.2 (from 1.1.3)</li>

<li>Updated to tika 1.6 (from 1.4)</li>

<li>Updated to xercesImpl 2.11.0 (from 2.9.1)</li>

<li>Updated to xml-apis 1.4.01 (from 1.3.04)</li>

<li>Updated to xstream 1.4.8 (from 1.4.4)</li>

<li>Updated to jodd 3.6.1 (from 3.4.10)</li>

<li>Updated to rsyntaxtextarea 2.5.3 (from 2.5.1)</li>

<li>Updated xalan and serializer to 2.7.2 (from 2.7.1)</li>

<li>Updated to jsoup-1.8.1.jar (from 1.7.3)</li>

</ul>


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

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

<li>James Liang (jliang at andera.com)</li>

<li>Emmanuel Bourg (ebourg at apache.org)</li>

<li>Nicola Ambrosetti (ambrosetti.nicola at gmail.com)</li>

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

<li>Mikhail Epikhin (epihin-m at yandex.ru)</li>

<li>Dan Haughey (dan.haughey at swinton.co.uk)</li>

<li>Felix Schumacher (felix.schumacher at internetallee.de)</li>

<li>Dzmitry Kashlach (dzmitrykashlach at gmail.com)</li>

<li>Andrey Pohilko (apc4 at ya.ru)</li>

<li>Bradford Hovinen (hovinen at gmail.com)</li>

<li>
<a href="http://blazemeter.com">BlazeMeter Ltd.</a>
</li>

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

<li>Philippe Jung (apache at famille-jung.fr)</li>

<li>Vladimir Sitnikov (sitnikov.vladimir at gmail.com)</li>

</ul>


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

<li>Oliver LLoyd (email at oliverlloyd.com) for his help on <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56119">
      Bug
      56119</a>
</li>

<li>Vladimir Ryabtsev (greatvovan at gmail.com) for his help on <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56243">
      Bug
      56243</a> and <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56276">
      Bug
      56276</a>
</li>

<li>Adrian Speteanu (asp.adieu at gmail.com) and Matt Kilbride (matt.kilbride at gmail.com) for their feedback and tests on <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54648">
      Bug
      54648</a>
</li>

<li>Shmuel Krakower (shmulikk at gmail.com) for his tests and reports on Undo/Redo feature</li>

</ul>

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




<h1>Version 2.11</h1>

<p>
Summary
</p>

<ul>

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

<li>
<a href="#Known bugs">Known bugs</a>
</li>

<li>
<a href="#Incompatible changes">Incompatible changes</a>
</li>

<li>
<a href="#Bug fixes">Bug fixes</a>
</li>

<li>
<a href="#Improvements">Improvements</a>
</li>

<li>
<a href="#Non-functional changes">Non-functional changes</a>
</li>

<li>
<a href="#Thanks">Thanks</a>
</li>


</ul>


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



<h3 class="ch_title">HTTP(S) Test Script Recorder improvements</h3>

<p>
Following improvements have been made since major changes introduced in JMeter 2.10 on HTTP(S) Test Script Recorder:
<ul>

<li>Better detection of missing or invalid configuration of keytool utility</li>

<li>New system property <span class="code">keytool.directory</span> (see <span class="code">system.properties</span>) lets you configure directory containing keytool in case on non-standard installation</li>

</ul>

</p>


<h3 class="ch_title">JMS Publisher/Point to Point : Add ability to set typed values in JMS header properties</h3>

<p>In the samplers JMS Publisher and JMS Point-to-Point, you can now set up the class of values for the JMS header properties. Previously only String was possible.</p>

<p>

<figure>
<a href="./images/screenshots/changes/2.11/01_jms_properties_typed_values.png"><img src="./images/screenshots/changes/2.11/01_jms_properties_typed_values.png" width="928" height="796" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3 class="ch_title">View Results Tree : Add an XPath Tester </h3>

<p>In View Results Tree listener, a new XPath tester can be used to test XPATH expressions.</p>

<p>

<figure>
<a href="./images/screenshots/changes/2.11/03_xpath_tester.png"><img src="./images/screenshots/changes/2.11/03_xpath_tester.png" width="990" height="765" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3 class="ch_title">Ability to choose the client alias for the cert key in JsseSslManager such that Mutual SSL auth testing can be made more flexible</h3>

<p>When testing client based certificate authentications you have now better control on certificate you use through a new field "Variable name holding certificate alias", this
field lets you select the certificate you want to send to server to authenticate. You can use a CSV Data Set as a holder for the variable value.</p>

<p>

<figure>
<a href="./images/screenshots/changes/2.11/07_keystore_config.png"><img src="./images/screenshots/changes/2.11/07_keystore_config.png" width="471" height="189" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3 class="ch_title">Add a "Save as Test Fragment" option </h3>

<p>In the file menu, a new option allow to save a group of elements as a Test fragment.</p>

<p>

<figure>
<a href="./images/screenshots/changes/2.11/05_save_as_fragement.png"><img src="./images/screenshots/changes/2.11/05_save_as_fragement.png" width="295" height="242" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3 class="ch_title">Summariser is be enabled by default in Non GUI mode</h3>

<p>When you run JMeter from command line, now JMeter displays some statistics from the Summariser mode.</p>

<p>

<figure>
<a href="./images/screenshots/changes/2.11/06_summariser.png"><img src="./images/screenshots/changes/2.11/06_summariser.png" width="1287" height="386" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3 class="ch_title">Transaction Controller:Change default property "Include duration of timer&hellip;" for newly created element</h3>

<p>Starting from 2.11, Transaction Controller is configured by default to exclude processing time of pre/post processors as long as timers pause.</p>

<p>

<figure>
<a href="./images/screenshots/changes/2.11/02_transaction_controller.png"><img src="./images/screenshots/changes/2.11/02_transaction_controller.png" width="628" height="140" alt=""></a>
<figcaption></figcaption>
</figure>

</p>








<h2 class="ch_section" id="Known bugs">Known bugs</h2>


<ul>

<li>The Once Only controller behaves correctly under a Thread Group or Loop Controller,
but otherwise its behaviour is not consistent (or clearly specified).</li>


<li>Listeners don't show iteration counts when a If Controller has a condition which is always false from the first iteration (see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52496">
      Bug
      52496</a>).
A workaround is to add a sampler at the same level as (or superior to) the If Controller.
For example a Test Action sampler with 0 wait time (which doesn't generate a sample),
or a Debug Sampler with all fields set to False (to reduce the sample size).
</li>


<li>
The numbers that appear to the left of the green box are the number of active threads / total number of threads,
the total number of threads only applies to a locally run test, otherwise it will show 0 (see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55510">
      Bug
      55510</a>).
</li>


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


<li>
With Java 1.6 and Gnome 3 on Linux systems, the JMeter menu may not work correctly (shift between mouse's click and the menu).
This is a known Java bug (see  <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54477 ">
      Bug
      54477 </a>).
A workaround is to use a Java 7 runtime (OpenJDK or Oracle JDK).
</li>


<li>
With Oracle Java 7 and Mac Book Pro Retina Display, the JMeter GUI may look blurry.
This is a known Java bug, see Bug <a href="http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=8000629">JDK-8000629</a>.
A workaround is to use a Java 7 update 40 runtime which fixes this issue.
</li>

</ul>




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


<ul>

<li>When creating a new Transaction Controller, property "Include duration of timer and pre-post processors in generated sample" will be unchecked starting from version 2.11</li>

<li>In Non GUI mode, since 2.11 summariser is enabled with a 30 seconds frequency</li>

<li>JMeter is more lenient with redirect handling and relaxes on RFC2616 by allowing relative locations. See property "<span class="code">jmeter.httpclient.strict_rfc2616</span>" in <span class="code">jmeter.properties</span> to change this behaviour, see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55717">
      Bug
      55717</a>
</li>

<li>When creating a new Response Assertion, property "Pattern Matching Rules" now defaults to Substring starting from version 2.11</li>

</ul>




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


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

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55815">
      Bug
      55815</a> - Proxy#getDomainMatch does not handle wildcards correctly</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55717">
      Bug
      55717</a> - Bad handling of Redirect when URLs are in relative format by HttpClient4 and HttpClient3.1</li>

</ul>


<h3>Other Samplers</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55685">
      Bug
      55685</a> - OS Sampler: timeout option don't save and restore correctly value and don't init correctly timeout</li>

</ul>


<h3>Controllers</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55816">
      Bug
      55816</a> - Transaction Controller with "Include duration of timer&hellip;" unchecked does not ignore processing time of last child sampler</li>

</ul>


<h3>Listeners</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55826">
      Bug
      55826</a> - Unsynchronised concurrent accesses to list in field RespTimeGraphVisualizer.internalList </li>

</ul>


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

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55694">
      Bug
      55694</a> - Assertions and Extractors : Avoid NullPointerException when scope is variable and variable is missing</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55721">
      Bug
      55721</a> - HTTP Cache Manager - no-store directive is wrongly interpreted</li>

</ul>


<h3>Functions</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55871">
      Bug
      55871</a> - Wrong result with intSum() function when a space character is present before/after the number. Contributed by Milamber based on a proposal by James Liang.</li>

</ul>


<h3>I18N</h3>

<ul>

</ul>


<h3>General</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55739">
      Bug
      55739</a> - Remote Test : Total threads in GUI mode shows invalid total number of threads</li>

</ul>




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


<h3>HTTP Samplers and Proxy</h3>

<ul>

</ul>


<h3>Other samplers</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55589">
      Bug
      55589</a> - JMS Publisher/Point to Point : Add ability to set typed values in JMS header properties.</li>

</ul>


<h3>Controllers</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55854">
      Bug
      55854</a> - Transaction Controller:Change default property "Include duration of timer&hellip;" for newly created element</li>

</ul>


<h3>Listeners</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55610">
      Bug
      55610</a> - View Results Tree : Add an XPath Tester</li>

</ul>


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

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55908">
      Bug
      55908</a> - Response assertion : Change Pattern Matching Rules default to Substring on creation for better performances</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54977">
      Bug
      54977</a> - Ability to choose the client alias for the cert key in JsseSslManager such that Mutual SSL auth testing can be made more flexible. Contributed by UBIK Load Pack (support at ubikloadpack.com)</li>

</ul>


<h3>Functions</h3>

<ul>

</ul>


<h3>I18N</h3>

<ul>

</ul>


<h3>General</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55693">
      Bug
      55693</a> - Add a "Save as Test Fragment" option</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55753">
      Bug
      55753</a> - Improve FilePanel behaviour to start from the value set in Filename field if any. Contributed by UBIK Load Pack (support at ubikloadpack.com)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55756">
      Bug
      55756</a> - HTTP Mirror Server : Add ability to set Headers</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55852">
      Bug
      55852</a> - Be more lenient in parsing when charset value is surrounded with single quotes</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55857">
      Bug
      55857</a> - Performance : AbstractProperty should test for emptiness to avoid Exception throwing</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55858">
      Bug
      55858</a> - Startup Performance : On Startup, BeanInfoSupport should test for key availability instead of throwing</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55865">
      Bug
      55865</a> - Performance :Disable stale check by default in HttpClient 4 and 3.1</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55512">
      Bug
      55512</a> - Summariser should be enabled by default in Non GUI mode</li>

</ul>


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

<ul>

<li>Updated to rsyntaxtextarea-2.5.1.jar (from 2.5.0)</li>

<li>Updated to jodd-core-3.4.9.jar from (3.4.8) and jodd-lagarto-3.4.9.jar (from 3.4.9)</li>

<li>Updated to jsoup-1.7.3.jar (from 1.7.2)</li>

<li>Updated to mail-1.5.0-b01 (from 1.4.4)</li>

<li>Updated to mongo-java-driver-2.11.3 (from 2.11.2)</li>

</ul>


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

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

<li>James Liang (jliang at andera.com)</li>

<li>UBIK Load Pack (support at ubikloadpack.com)</li>

</ul>

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

<li>John Natsioulas (john_natsioulas at yahoo.com.au)</li>

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

</ul>

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





<h1>Version 2.10</h1>

<p>
Summary
</p>

<ul>

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

<li>
<a href="#Known bugs">Known bugs</a>
</li>

<li>
<a href="#Incompatible changes">Incompatible changes</a>
</li>

<li>
<a href="#Bug fixes">Bug fixes</a>
</li>

<li>
<a href="#Improvements">Improvements</a>
</li>

<li>
<a href="#Non-functional changes">Non-functional changes</a>
</li>

<li>
<a href="#Thanks">Thanks</a>
</li>


</ul>


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


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


<h3 class="ch_title">New Performance improvements</h3>

<p>

<ul>

<li>A Huge performance improvement has been made on High Throughput Tests (no pause), see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54777">
      Bug
      54777</a>
</li>

<li>An issue with unnecessary SSL Context reset has been fixed which improves performances of pure HTTP tests, see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55023">
      Bug
      55023</a>
</li>

<li>Important performance improvement in parsing of Embedded resource in HTML pages thanks to a switch to JODD/Lagarto HTML Parser, see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55632">
      Bug
      55632</a>
</li>

</ul>

</p>


<h3 class="ch_title">New CSS/JQuery Tester in View Tree Results</h3>

<p>A new CSS/JQuery Tester in View Tree Results that makes CSS/JQuery Extractor a first class
citizen in JMeter, you can now test your expressions very easily</p>

<p>

<figure>
<a href="./images/screenshots/changes/2.10/01_css_jquery_tester.png"><img src="./images/screenshots/changes/2.10/01_css_jquery_tester.png" width="1144" height="638" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3 class="ch_title">Many improvements in HTTP(S) Recording have been made</h3>

<p>

<figure>
<a href="./images/screenshots/changes/2.10/18_https_test_script_recorder.png"><img src="./images/screenshots/changes/2.10/18_https_test_script_recorder.png" width="691" height="215" alt=""></a>
<figcaption></figcaption>
</figure>

<div class="clear"></div>
<div class="note">
The "HTTP Proxy Server" test element has been renamed as "HTTP(S) Test Script Recorder".
</div>
<div class="clear"></div>

<ul>

<li>Better recording of HTTPS sites, embedded resources using subdomains will more easily be recorded when using JDK 7. See <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55507">
      Bug
      55507</a>.
See updated documentation: <a href="./usermanual/component_reference.html#HTTP(S)_Test_Script_Recorder">HTTP(S) Test Script Recorder</a>

</li>

<li>Redirection are now more smartly detected by HTTP Proxy Server, see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55531">
      Bug
      55531</a>
</li>

<li>Many fixes on edge cases with HTTPS have been made, see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55502">
      Bug
      55502</a>, <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55504">
      Bug
      55504</a>, <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55506">
      Bug
      55506</a>
</li>

<li>Many encoding fixes have been made, see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54482">
      Bug
      54482</a>, <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54142">
      Bug
      54142</a>, <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54293">
      Bug
      54293</a>
</li>

</ul>

</p>


<h3 class="ch_title">You can now load test MongoDB through new MongoDB Source Config</h3>

<p>

<figure>
<a href="./images/screenshots/changes/2.10/02_mongodb_source_config.png"><img src="./images/screenshots/changes/2.10/02_mongodb_source_config.png" width="912" height="486" alt=""></a>
<figcaption></figcaption>
</figure>

</p>

<p>

<figure>
<a href="./images/screenshots/changes/2.10/14_mongodb_jsr223.png"><img src="./images/screenshots/changes/2.10/14_mongodb_jsr223.png" width="850" height="687" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3 class="ch_title">Kerberos authentication has been added to Auth Manager</h3>

<p>

<figure>
<a href="./images/screenshots/changes/2.10/15_kerberos.png"><img src="./images/screenshots/changes/2.10/15_kerberos.png" width="1005" height="364" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3 class="ch_title">Device can now be used in addition to source IP address</h3>


<p>

<figure>
<a href="./images/screenshots/changes/2.10/16_device.png"><img src="./images/screenshots/changes/2.10/16_device.png" width="1087" height="699" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3 class="ch_title">You can now do functional testing of MongoDB scripts through new MongoDB Script</h3>

<p>

<figure>
<a href="./images/screenshots/changes/2.10/03_mongodb_script_alpha.png"><img src="./images/screenshots/changes/2.10/03_mongodb_script_alpha.png" width="906" height="313" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3 class="ch_title">Timeout has been added to OS Process Sampler</h3>

<p>

<figure>
<a href="./images/screenshots/changes/2.10/17_os_process_timeout.png"><img src="./images/screenshots/changes/2.10/17_os_process_timeout.png" width="684" height="586" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3 class="ch_title">Query timeout has been added to JDBC Request</h3>

<p>

<figure>
<a href="./images/screenshots/changes/2.10/04_jdbc_request_timeout.png"><img src="./images/screenshots/changes/2.10/04_jdbc_request_timeout.png" width="540" height="600" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3 class="ch_title">New functions (__urlencode and __urldecode) are now available to encode/decode URL encoded chars</h3>

<p>

<figure>
<a href="./images/screenshots/changes/2.10/05_urlencode_function.png"><img src="./images/screenshots/changes/2.10/05_urlencode_function.png" width="512" height="240" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3 class="ch_title">Continuous Integration is now eased by addition of a new flag that forces NON-GUI JVM to exit after test end</h3>

<p>See jmeter property:</p>

<span class="code">jmeterengine.force.system.exit</span>

<p></p>


<h3 class="ch_title">HttpSampler now allows DELETE Http Method to have a body (works for HC4 and HC31 implementations). This allows for example to test Elastic Search APIs</h3>

<p>

<figure>
<a href="./images/screenshots/changes/2.10/06_http_request_delete_method.png"><img src="./images/screenshots/changes/2.10/06_http_request_delete_method.png" width="573" height="444" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3 class="ch_title">2 implementations of HtmlParser have been added to improve Embedded resources parsing</h3>

<p>
You can choose the implementation to use for parsing Embedded resources in HTML pages:
See jmeter.properties and look at property "htmlParser.className".
<ul>

<li>org.apache.jmeter.protocol.http.parser.LagartoBasedHtmlParser for optimal performances</li>

<li>org.apache.jmeter.protocol.http.parser.JSoupBasedHtmlParser for most accurate parsing and functional testing</li>

</ul>

</p>


<h3 class="ch_title">Distributed testing has been improved</h3>

<p>

<ul>

<li>
Number of threads on each node are now reported to controller.
<p>

<figure>
<a href="./images/screenshots/changes/2.10/17_threads_summariser.png"><img src="./images/screenshots/changes/2.10/17_threads_summariser.png" width="988" height="355" alt=""></a>
<figcaption></figcaption>
</figure>

</p>

<p>

<figure>
<a href="./images/screenshots/changes/2.10/17_threads_gui.png"><img src="./images/screenshots/changes/2.10/17_threads_gui.png" width="125" height="33" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


</li>

<li>Performance improvement on BatchSampleSender(<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55423">
      Bug
      55423</a>)</li>

<li>Addition of 2 SampleSender modes (StrippedAsynch and StrippedDiskStore), see jmeter.properties</li>

</ul>

</p>


<h3 class="ch_title">ModuleController has been improved to better handle changes to referenced controllers</h3>


<h3 class="ch_title">Improved class loader configuration, see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55503">
      Bug
      55503</a>
</h3>

<p>

<ul>

<li>New property "plugin_dependency_paths" for plugin dependencies</li>

<li>Properties "search_paths", "user.classpath" and "plugin_dependency_paths"
    now automatically add all jars from configured directories</li>

</ul>

</p>


<h3 class="ch_title">Best-practices section has been improved, ensure you read it to get the most out of JMeter</h3>

<p>See <a href="usermanual/best-practices.html">Best Practices</a>

</p>

<h2 class="ch_category">GUI and ergonomy Improvements</h2>



<h3 class="ch_title">New Templates feature that allows you to create test plan from existing template or merge
template into your Test Plan</h3>

<p>

<figure>
<a href="./images/screenshots/changes/2.10/07_jmeter_templates_icon.png"><img src="./images/screenshots/changes/2.10/07_jmeter_templates_icon.png" width="428" height="130" alt=""></a>
<figcaption></figcaption>
</figure>

</p>

<p>

<figure>
<a href="./images/screenshots/changes/2.10/08_jmeter_templates_box.png"><img src="./images/screenshots/changes/2.10/08_jmeter_templates_box.png" width="781" height="472" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3 class="ch_title">Workbench can now be saved</h3>

<p>

<figure>
<a href="./images/screenshots/changes/2.10/09_save_workbench.png"><img src="./images/screenshots/changes/2.10/09_save_workbench.png" width="489" height="198" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3 class="ch_title">Syntax color has been added to scripts elements (BeanShell, BSF, and JSR223), MongoDB and JDBC elements making code much more readable and allowing UNDO/REDO through CTRL+Z/CTRL+Y</h3>

<p>BSF Sampler with syntax color
<figure>
<a href="./images/screenshots/changes/2.10/10_color_syntax_bsf_sampler.png"><img src="./images/screenshots/changes/2.10/10_color_syntax_bsf_sampler.png" width="915" height="620" alt=""></a>
<figcaption></figcaption>
</figure>

</p>

<p>JSR223 Pre Processor with syntax color
<figure>
<a href="./images/screenshots/changes/2.10/11_color_syntax_jsr223_preprocessor.png"><img src="./images/screenshots/changes/2.10/11_color_syntax_jsr223_preprocessor.png" width="911" height="614" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3 class="ch_title">Better editors are now available for Test Elements with large text content, like HTTP Sampler, and JMS related Test Element providing line numbering and allowing UNDO/REDO through CTRL+Z/CTRL+Y</h3>


<h3 class="ch_title">JMeter GUI can now be fully Internationalized, all remaining issues have been fixed</h3>

<h5>Currently French has all its labels translated. Other languages are partly translated, feel free to
contribute translations by reading <a href="localising/index.html">Localisation (Translator's Guide)</a>
</h5>


<h3 class="ch_title">Moving elements in Test plan has been improved in many ways</h3>

<h5>Drag and drop of elements in Test Plan tree is now much easier and possible on multiple nodes</h5>

<p>

<figure>
<a href="./images/screenshots/changes/2.10/12_drap_n-drop_multiple.png"><img src="./images/screenshots/changes/2.10/12_drap_n-drop_multiple.png" width="894" height="236" alt=""></a>
<figcaption></figcaption>
</figure>

</p>

<p>

<b>Note that due to this <a href="http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6560955">bug in Java</a>,
you cannot drop a node after last node. The workaround is to drop it before this last node and then Drag and Drop the last node
before the one you just dropped.</b>

</p>

<h5>New shortcuts have been added to move elements in the tree. </h5>

<p>(alt + Arrow Up) and (alt + Arrow Down) move the element within the parent node<br>
(alt + Arrow Left) and (alt + Arrow Right) move the element up and down in the tree depth</p>


<h3 class="ch_title">Response Time Graph Y axis can now be scaled</h3>

<p>

<figure>
<a href="./images/screenshots/changes/2.10/13_response_time_graph_y_scale.png"><img src="./images/screenshots/changes/2.10/13_response_time_graph_y_scale.png" width="947" height="596" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3 class="ch_title">JUnit Sampler gives now more details on configuration errors</h3>





<h2 class="ch_section" id="Known bugs">Known bugs</h2>


<ul>

<li>The Once Only controller behaves correctly under a Thread Group or Loop Controller,
but otherwise its behaviour is not consistent (or clearly specified).</li>


<li>Listeners don't show iteration counts when a If Controller has a condition which is always false from the first iteration (see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52496">
      Bug
      52496</a>).
A workaround is to add a sampler at the same level as (or superior to) the If Controller.
For example a Test Action sampler with 0 wait time (which doesn't generate a sample),
or a Debug Sampler with all fields set to False (to reduce the sample size).
</li>


<li>Webservice sampler does not consider the HTTP response status to compute the status of a response, thus a response 500 containing a non empty body will be considered as successful, see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54006">
      Bug
      54006</a>.
To workaround this issue, ensure you always read the response and add a Response Assertion checking text inside the response.
</li>


<li>
The numbers that appear to the left of the green box are the number of active threads / total number of threads,
these only apply to a locally run test; they do not include any threads started on remote systems when using client-server mode, (see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54152">
      Bug
      54152</a>).
</li>


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


<li>
With Java 1.6 and Gnome 3 on Linux systems, the JMeter menu may not work correctly (shift between mouse's click and the menu).
This is a known Java bug (see  <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54477 ">
      Bug
      54477 </a>).
A workaround is to use a Java 7 runtime (OpenJDK or Oracle JDK).
</li>


<li>
With Oracle Java 7 and Mac Book Pro Retina Display, the JMeter GUI may look blurry.
This is a known Java bug, see Bug <a href="http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=8000629">JDK-8000629</a>.
A workaround is to use a Java 7 update 40 runtime which fixes this issue.
</li>

</ul>




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


<ul>

<li>
<b>SMTP Sampler</b> now uses eml file subject if subject field is empty</li>


<li>With this version autoFlush has been turned off on PrintWriter in charge of writing test results.
This results in improved throughput for intensive tests but can result in more test data loss in case
of JMeter crash (extremely rare). To revert to previous behaviour set <span class="code">jmeter.save.saveservice.autoflush</span> property to <span class="code">true</span>.</li>


<li>
Shortcut for <b>Function Helper Dialog</b> is now <i>CTRL+SHIFT+F1 (CMD + SHIFT + F1 for Mac OS)</i>.
The original key sequence <i>(Ctrl+F1)</i> did not work in some locations (it is consumed by the Java Swing ToolTipManager).
It was therefore necessary to change the shortcut.
</li>


<li>

<b>Webservice (SOAP) Request</b> has been removed by default from GUI as Element is deprecated. (Use <b>HTTP Request</b>
with <i>Body Data</i>, see also the Template <i>Building a SOAP Webservice Test Plan</i>), if you need to show it, see property <span class="code">not_in_menu</span> in <i>jmeter.properties</i>

</li>


<li>

<b>Transaction Controller</b> now sets <i>Response Code</i> of <i>Generated Parent Sampler</i>
(if <i>Generated Parent Sampler</i> is checked) to response code of first failing child in case of failure of one of the children, in previous versions <i>Response Code</i> was empty.
</li>


<li>
In previous versions, <b>IncludeController</b> could run Test Elements located inside a <b>Thread Group</b>, this behaviour (<i>which was not documented</i>)
could result in weird behaviour, it has been removed in this version (see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55464">
      Bug
      55464</a>).
The correct way to include Test Elements is to use <b>Test Fragment</b> as stated in documentation of <b>Include Controller</b>.
</li>


<li>
The retry count for the HttpClient 3.1 and HttpClient 4.x samplers has been changed to <b>0</b>.
Previously the default was 1, which could cause unexpected additional traffic.
</li>


<li>Starting with this version, the <b>HTTP(S) Test Script Recorder</b> tries to detect when a sample is the result of a previous
redirect. If the current response is a redirect, JMeter will save the redirect URL. When the next request is received,
it is compared with the saved redirect URL and if there is a match, JMeter will disable the generated sample.
To revert to previous behaviour, set the property <span class="code">proxy.redirect.disabling=false</span>

</li>


<li>Starting with this version, in <b>HTTP(S) Test Script Recorder</b> if Grouping is set to <i>Put each group in a new Transaction Controller</i>,
the Recorder will create <b>Transaction Controller</b> instances with <i>Include duration of timer and pre-post processors in generated sample</i> set
to false. This default value reflect more accurately response time.
</li>


<li>
<span class="code">__escapeOroRegexpChars</span> function (which escapes ORO reserved characters) no longer trims the value (see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55328">
      Bug
      55328</a>)
</li>


<li>The <i>commons-lang-2.6.jar</i> has been removed from embedded libraries in <span class="code">jmeter/lib</span> folder as it is not needed by JMeter at run-time
(it is only used by Apache Velocity for generating documentation).
If you use any plugin or third-party code that depends on it, you need to add it in <span class="code">jmeter/lib</span> folder
</li>

</ul>




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


<h3>HTTP Samplers and Proxy</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54627">
      Bug
      54627</a> - JMeter Proxy GUI: Type of sampler setting takes the whole screen when there are samplers with long names.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54629">
      Bug
      54629</a> - HTMLParser does not extract &lt;object&gt; tag urls.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55023">
      Bug
      55023</a> - SSL Context reuse feature (51380) adversely affects non-ssl request performance/throughput. based on analysis by Brent Cromarty (brent.cromarty at yahoo.ca)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55092">
      Bug
      55092</a> - Log message "WARN - jmeter.protocol.http.sampler.HTTPSamplerBase: Null URL detected (should not happen)" displayed when embedded resource URL is malformed.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55161">
      Bug
      55161</a> - Useless processing in SoapSampler.setPostHeaders. Contributed by Adrian Nistor (nistor1 at illinois.edu)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54482">
      Bug
      54482</a> - HC fails to follow redirects with non-encoded chars.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54142">
      Bug
      54142</a> - HTTP Proxy Server throws an exception when path contains "|" character.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55388">
      Bug
      55388</a> - HC3 does not allow IP Source field to override httpclient.localaddress.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55450">
      Bug
      55450</a> - HEAD redirects should remain as HEAD</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55455">
      Bug
      55455</a> - HTTPS with HTTPClient4 ignores cps setting</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55502">
      Bug
      55502</a> - Proxy generates empty http:/ entries when recording</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55504">
      Bug
      55504</a> - Proxy incorrectly issues CONNECT requests when browser prompts for certificate override</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55506">
      Bug
      55506</a> - Proxy should deliver failed requests to any configured Listeners</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55545">
      Bug
      55545</a> - HTTP Proxy Server GUI should not allow both Follow and Auto redirect to be selected</li>

</ul>


<h3>Other Samplers</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54913">
      Bug
      54913</a> - JMSPublisherGui incorrectly restores its state. Contributed by Benoit Wiart (benoit.wiart at gmail.com)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55027">
      Bug
      55027</a> - Test Action regression, duration value is not recorded (nightly build).</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55163">
      Bug
      55163</a> - BeanShellTestElement fails to quote string when calling testStarted(String)/testEnded(String).</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55349">
      Bug
      55349</a> - NativeCommand hangs if no input file is specified and the application requests input.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55462">
      Bug
      55462</a> - System Sampler should not change the sampler label if a sample fails</li>

</ul>


<h3>Controllers</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54467">
      Bug
      54467</a> - Loop Controller: compute loop value only once per parent iteration.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54985">
      Bug
      54985</a> - Make Transaction Controller set Response Code of Generated Parent Sampler to response code of first failing child in case of failure of one of its children. Contributed by Mikhail Epikhin (epihin-m at yandex.ru)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54950">
      Bug
      54950</a> - ModuleController : Changes to referenced Module are not taken into account if changes occur after first run and referenced node is disabled.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55201">
      Bug
      55201</a> - ForEach controller excludes start index and includes end index (clarified documentation).</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55334">
      Bug
      55334</a> - Adding Include Controller to test plan (made of Include Controllers) without saving TestPlan leads to included code not being taken into account until save.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55375">
      Bug
      55375</a> -  StackOverflowError with ModuleController in Non-GUI mode if its name is the same as the target node.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55464">
      Bug
      55464</a> - Include Controller running included thread group</li>

</ul>


<h3>Listeners</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54589">
      Bug
      54589</a> - View Results Tree have a lot of Garbage characters if html page uses double-byte charset.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54753">
      Bug
      54753</a> - StringIndexOutOfBoundsException at SampleResult.getSampleLabel() if key_on_threadname=false when using Statistical mode.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54685">
      Bug
      54685</a> - ArrayIndexOutOfBoundsException if "sample_variable" is set in client but not server.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55111">
      Bug
      55111</a> - ViewResultsTree: text not refitted if vertical scrollbar is required. Contributed by Milamber</li>

</ul>


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

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54540">
      Bug
      54540</a> - "HTML Parameter Mask" are not marked deprecated in the IHM.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54575">
      Bug
      54575</a> - CSS/JQuery Extractor : Choosing JODD Implementation always uses JSOUP.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54901">
      Bug
      54901</a> - Response Assertion GUI behaves weirdly.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54924">
      Bug
      54924</a> - XMLAssertion uses JMeter JVM file.encoding instead of response encoding and does not clean threadlocal variable.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53679">
      Bug
      53679</a> -  Constant Throughput Timer bug with localization. Reported by Ludovic Garcia</li>

</ul>


<h3>Functions</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55328">
      Bug
      55328</a> - __escapeOroRegexpChars trims spaces.</li>

</ul>


<h3>I18N</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55437">
      Bug
      55437</a> - ComboStringEditor does not translate EDIT and UNDEFINED strings on language change</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55501">
      Bug
      55501</a> - Incorrect encoding for French description of __char function. Contributed by Antonio Gomes Rodrigues (ra0077 at gmail.com)</li>

</ul>


<h3>General</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54504">
      Bug
      54504</a> - Resource string not found: [clipboard_node_read_error].</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54538">
      Bug
      54538</a> - GUI: context menu is too big.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54847">
      Bug
      54847</a> - Cut &amp; Paste is broken with tree multi-selection. Contributed by Benoit Wiart (benoit.wiart at gmail.com)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54870">
      Bug
      54870</a> - Tree drag and drop may lose leaf nodes (affected nightly build). Contributed by Benoit Wiart (benoit.wiart at gmail.com)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55056">
      Bug
      55056</a> - wasted work in Data.append(). Contributed by Adrian Nistor (nistor1 at illinois.edu)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55129">
      Bug
      55129</a> -  Change Javadoc generation per CVE-2013-1571, VU#225657.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55187">
      Bug
      55187</a> - Integer overflow when computing ONE_YEAR_MS in HTTP CacheManager.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55208">
      Bug
      55208</a> - JSR223 language entries are duplicated; fold to lower case.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55203">
      Bug
      55203</a> - TestBeanGUI - wrong language settings found.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55065">
      Bug
      55065</a> - Useless processing in Spline3.converge(). Contributed by Adrian Nistor (nistor1 at illinois.edu)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55064">
      Bug
      55064</a> - Useless processing in ReportTreeListener.isValidDragAction(). Contributed by Adrian Nistor (nistor1 at illinois.edu)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55242">
      Bug
      55242</a> - BeanShell Client jar throws exceptions after upgrading to 2.8.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55288">
      Bug
      55288</a> - JMeter should default to 0 retries for HTTP requests.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55405">
      Bug
      55405</a> - ant download_jars task fails if lib/api or lib/doc are missing. Contributed by Antonio Gomes Rodrigues.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55427">
      Bug
      55427</a> - TestBeanHelper should ignore properties not supported by GenericTestBeanCustomizer</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55459">
      Bug
      55459</a> - Elements using ComboStringEditor lose the input value if user selects another Test Element</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54152">
      Bug
      54152</a> - In distributed testing : activeThreads always show 0 in GUI and Summariser</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55509">
      Bug
      55509</a> - Allow Plugins to be notified of remote thread number progression</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55572">
      Bug
      55572</a> - Detail popup of parameter does not show a Scrollbar when content exceeds display</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55580">
      Bug
      55580</a> -  Help pane does not scroll to start for &lt;a href="#"&gt; links</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55600">
      Bug
      55600</a> - JSyntaxTextArea : Strange behaviour on first undo</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55655">
      Bug
      55655</a> - NullPointerException when Remote stopping /shutdown all if one engine did not start correctly. Contributed by UBIK Load Pack (support at ubikloadpack.com)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55657">
      Bug
      55657</a> - Remote and Local Stop/Shutdown buttons state does not take into account local / remote status </li>

</ul>




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


<h3>HTTP Samplers and Proxy</h3>

<ul>

<li>HTTP Request: Small user interaction improvements in Row parameter Detail Box. Contributed by Milamber</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55255">
      Bug
      55255</a> - Allow Body in HTTP DELETE method to support API that use it (like ElasticSearch).</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53480">
      Bug
      53480</a> - Add Kerberos support to Http Sampler (HttpClient4). Based on patch by Felix Schumacher (felix.schumacher at internetallee.de)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54874">
      Bug
      54874</a> - Support device in addition to source IP address. Based on patch by Dan Fruehauf (malkodan at gmail.com)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55488">
      Bug
      55488</a> - Add .ico and .woff file extension to default suggested exclusions in proxy recorder. Contributed by Antonio Gomes Rodrigues</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55525">
      Bug
      55525</a> - Proxy should support alias for keyserver entry</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55531">
      Bug
      55531</a> - Proxy recording and redirects. Added code to disable redirected samples.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55507">
      Bug
      55507</a> - Proxy SSL recording does not handle external embedded resources well</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55632">
      Bug
      55632</a> - Have a new implementation of htmlParser for embedded resources parsing with better performances</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55653">
      Bug
      55653</a> - HTTP(S) Test Script Recorder should set TransactionController property "Include duration of timer and pre-post processors in generated sample" to false</li>

</ul>


<h3>Other samplers</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54788">
      Bug
      54788</a> - JMS Point-to-Point Sampler - GUI enhancements to increase readability and ease of use. Contributed by Bruno Antunes (b.m.antunes at gmail.com)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54798">
      Bug
      54798</a> - Using subject from EML-file for SMTP Sampler. Contributed by Mikhail Epikhin (epihin-m at yandex.ru)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54759">
      Bug
      54759</a> - SSLPeerUnverifiedException using HTTPS , property documented.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54896">
      Bug
      54896</a> - JUnit sampler gives only "failed to create an instance of the class" message with constructor problems.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55084">
      Bug
      55084</a> - Add timeout support for JDBC Request. Contributed by Mikhail Epikhin (epihin-m at yandex.ru)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55403">
      Bug
      55403</a> - Enhancement to OS sampler: Support for timeout</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55518">
      Bug
      55518</a> - Add ability to limit number of cached PreparedStatements per connection when "Prepared Select Statement", "Prepared Update Statement" or "Callable Statement" query type is selected</li>

</ul>


<h3>Controllers</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54271">
      Bug
      54271</a> - Module Controller breaks if test plan is renamed.</li>

</ul>


<h3>Listeners</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54532">
      Bug
      54532</a> - Improve Response Time Graph Y axis scale with huge values or small values (&lt; 1000ms). Add a new field to define increment scale. Contributed by Milamber based on patch by Luca Maragnani (luca.maragnani at gmail.com)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54576">
      Bug
      54576</a> - View Results Tree : Add a CSS/JQuery Tester.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54777">
      Bug
      54777</a> - Improve Performance of default ResultCollector. Based on patch by Mikhail Epikhin (epihin-m at yandex.ru)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55389">
      Bug
      55389</a> - Show IP source address in request data</li>

</ul>


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

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54789">
      Bug
      54789</a> - XPath Assertion - GUI enhancements to increase readability and ease of use.</li>

</ul>


<h3>Functions</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54991">
      Bug
      54991</a> - Add functions to encode/decode URL encoded chars (__urlencode and __urldecode). Contributed by Milamber.</li>

</ul>


<h3>I18N</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55241">
      Bug
      55241</a> - Need GUI Editor to process fields which are based on Enums with localised display strings</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55440">
      Bug
      55440</a> - ComboStringEditor should allow tags to be language dependent</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55432">
      Bug
      55432</a> - CSV Dataset Config loses sharing mode when switching languages</li>

</ul>


<h3>General</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54584">
      Bug
      54584</a> - MongoDB plugin. Based on patch by Jan Paul Ettles (janpaulettles at gmail.com)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54669">
      Bug
      54669</a> - Add flag forcing non-GUI JVM to exit after test. Contributed by Scott Emmons</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=42428">
      Bug
      42428</a> - Workbench not saved with Test Plan. Contributed by Dzmitry Kashlach (dzmitrykashlach at gmail.com)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54825">
      Bug
      54825</a> - Add shortcuts to move elements in the tree. Contributed by Benoit Wiart (benoit.wiart at gmail.com)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54834">
      Bug
      54834</a> - Improve Drag &amp; Drop in the jmeter tree. Contributed by Benoit Wiart (benoit.wiart at gmail.com)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54839">
      Bug
      54839</a> - Set the application name on Mac. Contributed by Benoit Wiart (benoit.wiart at gmail.com)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54841">
      Bug
      54841</a> - Correctly handle the quit shortcut on Mac Os (CMD-Q). Contributed by Benoit Wiart (benoit.wiart at gmail.com)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54844">
      Bug
      54844</a> - Set the application icon on Mac Os. Contributed by Benoit Wiart (benoit.wiart at gmail.com)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54864">
      Bug
      54864</a> - Enable multi selection drag &amp; drop in the tree without having to start dragging before releasing Shift or Control. Contributed by Benoit Wiart (benoit.wiart at gmail.com)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54945">
      Bug
      54945</a> - Add Shutdown Hook to enable trapping kill or CTRL+C signals.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54990">
      Bug
      54990</a> - Download large files avoiding outOfMemory.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55085">
      Bug
      55085</a> - UX Improvement : Ability to create New Test Plan from Templates. Contributed by UBIK Load Pack (support at ubikloadpack.com)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55172">
      Bug
      55172</a> - Provide plugins a way to add Top Menu and menu items.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55202">
      Bug
      55202</a> - Add syntax color for scripts elements (BeanShell, BSF, and JSR223) and JDBC elements with RSyntaxTextArea. Contributed by Milamber based on patch by Marko Vlahovic (vlahovic74 at gmail.com)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55175">
      Bug
      55175</a> - HTTPHC4Impl refactoring to allow better inheritance.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55236">
      Bug
      55236</a> - Templates - provide button to reload template details.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55237">
      Bug
      55237</a> - Template system should support relative fileName entries.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55423">
      Bug
      55423</a> - BatchSampleSender: Reduce locking granularity by moving listener.processBatch outside of synchronized block</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55424">
      Bug
      55424</a> - Add Stripping to existing SampleSenders</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55451">
      Bug
      55451</a> - Test Element GUI with JSyntaxTextArea scroll down when text content is long enough to add a Scrollbar</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55513">
      Bug
      55513</a> - StreamCopier cannot be used with System.err or System.out as it closes the output stream</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55514">
      Bug
      55514</a> - SystemCommand should support arbitrary input and output streams</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55515">
      Bug
      55515</a> - SystemCommand should support chaining of commands</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55606">
      Bug
      55606</a> - Use JSyntaxtTextArea for Http Request, JMS Test Elements</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55651">
      Bug
      55651</a> - Change JMeter application icon to Apache plume icon</li>

</ul>


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

<ul>

<li>Updated to jsoup-1.7.2</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54776">
      Bug
      54776</a> - Update the dependency on Bouncy Castle to 1.48. Contributed by Emmanuel Bourg (ebourg at apache.org)</li>

<li>Updated to HttpComponents Client 4.2.6 (from 4.2.3)</li>

<li>Updated to HttpComponents Core 4.2.5 (from 4.2.3)</li>

<li>Updated to commons-codec 1.8 (from 1.6)</li>

<li>Updated to commons-io 2.4 (from 2.2)</li>

<li>Updated to commons-logging 1.1.3 (from 1.1.1)</li>

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

<li>Updated to jdom-1.1.3 (from 1.1.2)</li>

<li>Updated to jodd-lagarto and jodd-core 3.4.8 (from 3.4.1)</li>

<li>Updated to junit 4.11 (from 4.10)</li>

<li>Updated to slf4j-api 1.7.5 (from 1.7.2)</li>

<li>Updated to tika 1.4 (from 1.3)</li>

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

<li>Updated to xstream 1.4.4 (from 1.4.2)</li>

<li>Updated to BouncyCastle 1.49 (from 1.48)</li>

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

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54903">
      Bug
      54903</a> - Remove the dependency on the Activation Framework. Contributed by Emmanuel Bourg (ebourg at apache.org)</li>

<li>Moved commons-lang (2.6) to lib/doc as it's only needed by Velocity.</li>

<li>Re-organised and simplified NOTICE and LICENSE files.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55411">
      Bug
      55411</a> -  NativeCommand could be useful elsewhere. Copied code to o.a.jorphan.exec.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55435">
      Bug
      55435</a> - ComboStringEditor could be simplified to make most settings final</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55436">
      Bug
      55436</a> - ComboStringEditor should implement ClearGui</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55463">
      Bug
      55463</a> - Component.requestFocus() is discouraged; use requestFocusInWindow() instead</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55486">
      Bug
      55486</a> - New JMeter Logo. Contributed by UBIK Load Pack (support at ubikloadpack.com)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55548">
      Bug
      55548</a> - Tidy up use of TestElement.ENABLED; use TestElement.isEnabled()/setEnabled() throughout</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55617">
      Bug
      55617</a> - Improvements to jorphan collection. Contributed by Benoit Wiart (benoit.wiart at gmail.com)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55623">
      Bug
      55623</a> - Invalid/unexpected configuration values should not be silently ignored</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55626">
      Bug
      55626</a> - Rename HTTP Proxy Server as HTTP(S) Test Script Recorder</li>

</ul>


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

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

<li>Bruno Antunes (b.m.antunes at gmail.com)</li>

<li>Emmanuel Bourg (ebourg at apache.org)</li>

<li>Scott Emmons</li>

<li>Mikhail Epikhin (epihin-m at yandex.ru)</li>

<li>Dzmitry Kashlach (dzmitrykashlach at gmail.com)</li>

<li>Luca Maragnani (luca.maragnani at gmail.com)</li>

<li>Milamber</li>

<li>Adrian Nistor (nistor1 at illinois.edu)</li>

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

<li>UBIK Load Pack (support at ubikloadpack.com)</li>

<li>Benoit Wiart (benoit.wiart at gmail.com)</li>

</ul>

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

<li>Immanuel Hayden (immanuel.hayden at gmail.com)</li>

<li>Danny Lade (dlade at web.de)</li>

<li>Brent Cromarty (brent.cromarty at yahoo.ca)</li>

<li>Wolfgang Heider (wolfgang.heider at racon.at)</li>

<li>Shmuel Krakower (shmulikk at gmail.com)</li>

</ul>


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




<h1>Version 2.9</h1>


<h2>New and Noteworthy</h2>


<h3>
<u>Core Improvements:</u>
</h3>


<h4>* A new Extractor that uses CSS or jquery-like selector syntax has been introduced,
it allows using either JODD or JSOUP implementations</h4>

<p>

<figure>
<a href="./images/screenshots/changes/2.9/01_css_jquery_extractor.png"><img src="./images/screenshots/changes/2.9/01_css_jquery_extractor.png" width="762" height="277" alt=""></a>
<figcaption></figcaption>
</figure>

</p>

<p>Result: the title of the page in a JMeter variable
<figure>
<a href="./images/screenshots/changes/2.9/01_css_jquery_extractor_resul.png"><img src="./images/screenshots/changes/2.9/01_css_jquery_extractor_resul.png" width="719" height="171" alt=""></a>
<figcaption></figcaption>
</figure>

</p>

<h4>* JMeter can now handle different types of documents (PDF, MsOffice files, Apache OpenOffice's files, &hellip;)
 within different elements </h4>

<ul>
    
<li>Regular Expression Extractor, extract text from documents</li>
    
<li>Assertion Response, check text in documents</li>
    
<li>View Results Tree, view as a text the documents</li>

</ul>

<p>

<figure>
<a href="./images/screenshots/changes/2.9/02_document_render_view_results_tree.png"><img src="./images/screenshots/changes/2.9/02_document_render_view_results_tree.png" width="761" height="345" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h4>* A new Regex User Parameters Pre-Processor that enables injecting input parameter names and values
using a reference extracted by Regular Expression Extractor from a previous response</h4>

<p>

<figure>
<a href="./images/screenshots/changes/2.9/13_regex_user_params.png"><img src="./images/screenshots/changes/2.9/13_regex_user_params.png" width="727" height="138" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h4>* TCP Sampler: new options</h4>

<p>TCP Sampler has been enhanced with new options to allow setting <b>Close Connection</b>,
 <b>SO_LINGER</b> and  <b>End of line(EOL) byte value</b>

<figure>
<a href="./images/screenshots/changes/2.9/03_new_options_tcp_sampler.png"><img src="./images/screenshots/changes/2.9/03_new_options_tcp_sampler.png" width="1147" height="302" alt=""></a>
<figcaption></figcaption>
</figure>

</p>

<h4>* A new function <i>__escapeOroRegexpChars(,)</i> has been introduced quote ORO regexp meta characters</h4>

<h4>* ForEach Controller: new fields</h4>

<p>ForEach Controller has now 2 new fields to control start and end of loop
<figure>
<a href="./images/screenshots/changes/2.9/04_for_each_new_fields.png"><img src="./images/screenshots/changes/2.9/04_for_each_new_fields.png" width="320" height="203" alt=""></a>
<figcaption></figcaption>
</figure>

</p>

<h4>* Result Status Action Handler now has a new option to "Start next thread loop"</h4>

<p>

<figure>
<a href="./images/screenshots/changes/2.9/05_result_status_action_handler.png"><img src="./images/screenshots/changes/2.9/05_result_status_action_handler.png" width="722" height="132" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h4>* JMS Publisher: new option</h4>

<p>JMS Publisher can now send Bytes Messages</p>

<figure>
<a href="./images/screenshots/changes/2.9/11_jms_publisher_bytes.png"><img src="./images/screenshots/changes/2.9/11_jms_publisher_bytes.png" width="833" height="701" alt=""></a>
<figcaption></figcaption>
</figure>


<h4>* Memory and performance improvements</h4>

<p>Significant improvements have been done in this version on memory usage per Thread and CPU when more
than one Post Processor is used as child of a Sampler</p>

<p>JSR223 Elements (enable using Groovy, Scala, &hellip; as scripting languages) have been improved to enable caching
of Compilation results when scripts are passed in Text area</p>

<figure>
<a href="./images/screenshots/changes/2.9/12_jsr223_sampler.png"><img src="./images/screenshots/changes/2.9/12_jsr223_sampler.png" width="841" height="470" alt=""></a>
<figcaption></figcaption>
</figure>


<p>Some configuration defaults have changed to improve performances by default(see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54412">
      Bug
      54412</a>),
see description in New and Noteworthy section.
<ul>
    
<li>Distributed testing now uses MODE_STRIPPED_BATCH, which returns samples in batch mode (every 100 samples
     or every minute by default). Note also that MODE_STRIPPED_BATCH strips response data from SampleResult,
     so if you need it change to another mode (mode property in jmeter.properties)</li>
    
<li>Result data are now saved to CSV by default (jmeter.save.saveservice.output_format in jmeter.properties)</li>

</ul>

</p>


<h4>* XPath Assertion now enables using a JMeter variable as input</h4>

<p>

<figure>
<a href="./images/screenshots/changes/2.9/14_xpath_assertion.png"><img src="./images/screenshots/changes/2.9/14_xpath_assertion.png" width="800" height="317" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3>
<u>GUI and ergonomy Improvements:</u>
</h3>

<h4>* Search feature has been improved to search within more internal fields of elements and expand search results</h4>

<h4>* Copy/paste is now possible between 2 JMeter instances &gt;= 2.9 version</h4>

<p>Copy element(s) from one JMeter instance:
<figure>
<a href="./images/screenshots/changes/2.9/06_copy_paste_between_2_jmeter1.png"><img src="./images/screenshots/changes/2.9/06_copy_paste_between_2_jmeter1.png" width="618" height="262" alt=""></a>
<figcaption></figcaption>
</figure>

</p>

<p>Paste element(s) into a second JMeter instance:
<figure>
<a href="./images/screenshots/changes/2.9/06_copy_paste_between_2_jmeter2.png"><img src="./images/screenshots/changes/2.9/06_copy_paste_between_2_jmeter2.png" width="617" height="278" alt=""></a>
<figcaption></figcaption>
</figure>

</p>

<h4>* HTTP Header Manager</h4>

<p>Allow copy from clipboard to HeaderPanel, headers are supposed to be separated by new line
 and have the following form <i>name:value</i>

<figure>
<a href="./images/screenshots/changes/2.9/07_header_panel_add_from_clipboard.png"><img src="./images/screenshots/changes/2.9/07_header_panel_add_from_clipboard.png" width="661" height="263" alt=""></a>
<figcaption></figcaption>
</figure>

</p>

<h4>* Module Controller</h4>

<p>Module Controller has been improved to better render referenced controller and expand it by clicking on a new button
<figure>
<a href="./images/screenshots/changes/2.9/08_module_controller_improvements.png"><img src="./images/screenshots/changes/2.9/08_module_controller_improvements.png" width="832" height="274" alt=""></a>
<figcaption></figcaption>
</figure>

</p>

<h4>* HTTP Proxy Server</h4>

<p>HTTP Proxy Server now has a button to add a set of default exclusions for URL patterns,
this list can be configured through property : <i>proxy.excludes.suggested</i>

<figure>
<a href="./images/screenshots/changes/2.9/09_proxy_excludes_suggested.png"><img src="./images/screenshots/changes/2.9/09_proxy_excludes_suggested.png" width="811" height="214" alt=""></a>
<figcaption></figcaption>
</figure>

</p>

<h4>* Rendering of target controller has been improved in HTTP Proxy Server</h4>


<h3>
<u>HTTP Proxy Server recording:</u>
</h3>

<p>* HTTP Proxy Server now automatically uses HTTP Request with Raw Post Body mode for
samples that only have one unnamed argument (JSON, XML, GWT, &hellip;)</p>

<p>* HTTP Proxy Server does not force user to select the type of Sampler in HTTP Sampler Settings,
 this allows easier switch between implementations as Sampler do not have this information set anymore</p>
 
<p>

<figure>
<a href="./images/screenshots/changes/2.9/10_http_proxy_dont_force_http_type.png"><img src="./images/screenshots/changes/2.9/10_http_proxy_dont_force_http_type.png" width="484" height="307" alt=""></a>
<figcaption></figcaption>
</figure>

</p>

<p>* SamplerCreator interface has been enriched to meet new requirements for plug-in providers</p>

<p>* It is now possible to create binary sampler for x-www-form-urlencoded POST request by
modifying <i>proxy.binary.types</i> property to add application/x-www-form-urlencoded </p>

<p>* Improved timestamp format auto-detection when reading CSV files</p>




<h2>Known bugs</h2>


<p>The Once Only controller behaves correctly under a Thread Group or Loop Controller,
but otherwise its behaviour is not consistent (or clearly specified).</p>


<p>Listeners don't show iteration counts when a If Controller has a condition which is always false from the first iteration (see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52496">
      Bug
      52496</a>).
A workaround is to add a sampler at the same level as (or superior to) the If Controller.
For example a Test Action sampler with 0 wait time (which doesn't generate a sample),
or a Debug Sampler with all fields set to False (to reduce the sample size).
</p>


<p>Webservice sampler does not consider the HTTP response status to compute the status of a response, thus a response 500 containing a non empty body will be considered as successful, see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54006">
      Bug
      54006</a>.
To workaround this issue, ensure you always read the response and add a Response Assertion checking text inside the response.
</p>


<p>
Changing language can break part of the configuration of the following elements (see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53679">
      Bug
      53679</a>):
<ul>
    
<li>CSV Data Set Config (sharing mode will be lost)</li>
    
<li>Constant Throughput Timer (Calculate throughput based on will be lost)</li>

</ul>

</p>


<p>
The numbers that appear to the left of the green box are the number of active threads / total number of threads,
these only apply to a locally run test; they do not include any threads started on remote systems when using client-server mode, (see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54152">
      Bug
      54152</a>).
</p>


<p>
Note that there is a bug in Java on some Linux systems that manifests
itself as the following error when running the test cases or JMeter itself:
<pre>
 [java] WARNING: Couldn't flush user prefs:
 java.util.prefs.BackingStoreException:
 java.lang.IllegalArgumentException: Not supported: indent-number
</pre>
This does not affect JMeter operation.
</p>




<h2>Incompatible changes</h2>


<p>
<b>JMeter requires now a Java 6 runtime or higher.</b>
</p>


<p>Some configuration defaults have changed to improve performances by default (see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54412">
      Bug
      54412</a>),
see description in New and Noteworthy section.</p>


<p>Webservice sampler now adds to request the headers that are set through Header Manager, these were previously ignored</p>


<p>
<i>jdbcsampler.cachesize</i> property has been removed, it previously limited the size of a per connection cache of Map &lt; String,
PreparedStatement &gt; , it also limited the size of this
map which held the PreparedStatement for SQL queries. This limitation provoked a bug <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53995">
      Bug
      53995</a>.
It has been removed so now size of these 2 maps is not limited anymore. This change changes behaviour as starting from
this version no PreparedStatement will be closed during the test.</p>


<p>Starting with this version, there are some important changes on JSR223 Test Elements:
<ul>
    
<li>JSR223 Test Elements that have an invalid filename (not existing or unreadable) will make test fail instead of
    making the element silently work</li>
    
<li>In JSR223 Test Elements: responseCodeOk, responseMessageOK and successful are set before
     script is executed, if responseData is set it will not be overridden anymore by a toString() on script return value</li>

</ul>

</p>


<p>View Results Tree now considers response with missing content type as text.</p>


<p>In remote Test mode, JMeter now exits in error if one of the remote engines cannot be configured,
previously it started the test with available engines.</p>




<h2>Bug fixes</h2>


<h3>HTTP Samplers and Proxy</h3>

<ul>

<li>Don't log spurious warning messages when using concurrent pool embedded downloads with Cache Manager or CookieManager</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54057">
      Bug
      54057</a>- Proxy option to set user and password at startup (-u and -a) not working with HTTPClient 4</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54187">
      Bug
      54187</a> - Request tab does not show headers if request fails</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53840">
      Bug
      53840</a> - Proxy Recording : Response message: URLDecoder: Illegal hex characters in escape (%) pattern - For input string: "" "</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54351">
      Bug
      54351</a> - HC4 and URI fragments is failing</li>

</ul>


<h3>Other Samplers</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53997">
      Bug
      53997</a> - LDAP Extended Request: Escape ampersand (&amp;), left angle bracket (&lt;)
and right angle bracket (&gt;) in search filter tag in XML response data</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53995">
      Bug
      53995</a> - AbstractJDBCTestElement shares PreparedStatement between multi-threads</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54119">
      Bug
      54119</a> - HTTP 307 response is not redirected</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54326">
      Bug
      54326</a> - AjpSampler send file in post throws FileNotFoundException</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54331">
      Bug
      54331</a> - AjpSampler throws null pointer on GET request that are protected</li>

</ul>


<h3>Controllers</h3>

<ul>

</ul>


<h3>Listeners</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54088">
      Bug
      54088</a> - The type video/f4m is text, not binary</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54166">
      Bug
      54166</a> - ViewResultsTree could not render the HTML response: handle failure to parse HTML</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54287">
      Bug
      54287</a> - Incorrect Timestamp in Response Time Graph when using a date with time in Date format field</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54451">
      Bug
      54451</a> - Response Time Graph reports wrong times when the are many samples for same time</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54459">
      Bug
      54459</a> - CSVSaveService does not handle date parsing very well</li>

</ul>


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

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54058">
      Bug
      54058</a> - In HTTP Request Defaults, the value of field "Embedded URLs must match: is not saved if the check box "Retrieve All  Embedded Resources" is not checked.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54375">
      Bug
      54375</a> - Regular Expression Extractor : When regex syntax is wrong, post processing is stopped</li>

</ul>


<h3>Functions</h3>

<ul>

</ul>


<h3>I18N</h3>

<ul>

</ul>


<h3>General</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53975">
      Bug
      53975</a> - Variables replacement doesn't work with option "Delay thread creation until needed"</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54055">
      Bug
      54055</a> - View Results tree: = signs are stripped from parameter values at HTTP tab</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54129">
      Bug
      54129</a> - Search Feature does not find text although existing in elements </li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54023">
      Bug
      54023</a> - Unable to start JMeter from a root directory and if the full path of JMeter installation contains one or more spaces (Unix/linux)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54172">
      Bug
      54172</a> - Duplicate shortcut key not working and CTRL+C / CTRL+V / CTRL+V do not cancel default event</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54057">
      Bug
      54057</a> - Proxy option to set user and password at startup (-u and -a) not working with HTTPClient 4</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54267">
      Bug
      54267</a> - Start Next Thread Loop setting doesn't work in custom thread groups</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54413">
      Bug
      54413</a> - DataStrippingSampleSender returns 0 for number of bytes of any response</li>

</ul>




<h2>Improvements</h2>


<h3>HTTP Samplers</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54185">
      Bug
      54185</a> - Allow query strings in paths that start with HTTP or HTTPS</li>

</ul>


<h3>Other samplers</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54004">
      Bug
      54004</a> - Webservice Sampler : Allow adding headers to request with Header Manager</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54106">
      Bug
      54106</a> - JSR223TestElement should check for file existence when a filename is set instead of using Text Area content </li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54107">
      Bug
      54107</a> - JSR223TestElement : Enable compilation and caching of Script Text</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54109">
      Bug
      54109</a> - JSR223TestElement : SampleResult properties should be set before entering script to allow user setting different code</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54230">
      Bug
      54230</a> - TCP Sampler, additions of "Close Connection", "SO_LINGER" and "End of line(EOL) byte value" options</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54182">
      Bug
      54182</a> - Support sending of ByteMessage for JMS Publisher.</li>

</ul>


<h3>Controllers</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54131">
      Bug
      54131</a> - ForEach Controller : Add start and end index for looping over variables</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54132">
      Bug
      54132</a> - Module Controller GUI : Improve rendering of referenced controller</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54155">
      Bug
      54155</a> - ModuleController : Add a shortcut button to unfold the tree up to referenced controller and highlight it</li>

</ul>


<h3>Listeners</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54200">
      Bug
      54200</a> - Add support of several document types (like Apache OpenOffice's files, MS Office's files, PDF's files, etc.)
to the elements View Results Tree, Assertion Response and Regular Expression Extractor (using Apache Tika)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54226">
      Bug
      54226</a> - View Results Tree : Show response even when server does not return ContentType header</li>

</ul>


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

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54259">
      Bug
      54259</a> - Introduce a new Extractor that uses CSS or jquery-like selector syntax</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=45772">
      Bug
      45772</a> - RegEx User Parameters Post Processor</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54160">
      Bug
      54160</a> - Add support for xpath assertion to apply to a JMeter variable.</li>

</ul>


<h3>Functions</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54189">
      Bug
      54189</a> - Add a function to quote ORO regexp meta characters</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54418">
      Bug
      54418</a> - UUID Function</li>

</ul>


<h3>I18N</h3>

<ul>

</ul>


<h3>General</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54005">
      Bug
      54005</a> - HTTP Mirror Server : Add special headers "X-" to control Response status and response content</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53875">
      Bug
      53875</a> - Include suggested defaults for URL filters on HTTP Proxy</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54031">
      Bug
      54031</a> - Add tooltip to running/total threads indicator </li>

<li>Webservice (SOAP) Request has been deprecated</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54161">
      Bug
      54161</a> - Proxy : be able to create binary sampler for x-www-form-urlencoded POST request</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54154">
      Bug
      54154</a> - HTTP Proxy Server should not force user to select the type of Sampler in HTTP Sampler Settings</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54165">
      Bug
      54165</a> - Proxy Server: Improve rendering of target controller</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=46677">
      Bug
      46677</a> - Copying Test Elements between test plans</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54204">
      Bug
      54204</a> - Result Status Action Handler : Add start next thread loop option</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54232">
      Bug
      54232</a> - Search Feature : Add a button to search and expand results</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54251">
      Bug
      54251</a> - Add tristate checkbox implementation</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54257">
      Bug
      54257</a> - Enhance SamplerCreator interface to meet new requirements</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54258">
      Bug
      54258</a> - Proxy : Use Raw Post Body when Sampler has one unnamed argument, useful for Samplers using POST method by of type JSON, XML, GWT body</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54268">
      Bug
      54268</a> - Improve CPU and memory usage</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54376">
      Bug
      54376</a> - ScopePanel : Allow configuring more precisely scopes</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54412">
      Bug
      54412</a> - Changing JMeter defaults to ensure better performances by default</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54414">
      Bug
      54414</a> - Remote Test should not start if one of the engines fails to start correctly</li>

</ul>


<h2>Non-functional changes</h2>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53956">
      Bug
      53956</a> - Add ability to paste (a list of values) from clipboard for Header Manager</li>

<li>Updated to HttpComponents Client 4.2.3 (from 4.2.1)</li>

<li>Updated to HttpComponents Core 4.2.3 (from 4.2.2)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54110">
      Bug
      54110</a> - BSFTestElement and JSR223TestElement should use shared super-class for common fields</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54199">
      Bug
      54199</a> - Move to Java 6</li>

<li>Upgraded to rhino 1.7R4</li>

</ul>




<h1>Version 2.8</h1>


<h2>New and Noteworthy</h2>


<h3>Core Improvements:</h3>


<h4>Thread Group: New Option <i>Delay thread creation until needed</i>
</h4>

<p>New Option "Delay thread creation until needed" that will create and start threads when needed instead of creating them on Test startup<br>

<b>This new feature allows running tests with a huge number of short lived threads.</b>

<figure>
<a href="./images/screenshots/changes/2.8/12_delay_thread_creation.png"><img src="./images/screenshots/changes/2.8/12_delay_thread_creation.png" width="817" height="296" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h4>HTTP Cookie Manager (IPv6 support)</h4>

<p>Add HTTPClient 4 cookie implementation in JMeter. <br>
Cookie Manager has now the default HC3.1 implementation and a new choice HC4 implementation (compliant with IPv6 address)
<figure>
<a href="./images/screenshots/changes/2.8/11_hc4_cookie.png"><img src="./images/screenshots/changes/2.8/11_hc4_cookie.png" width="635" height="239" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h4>Memory and performance improvements</h4>

<p>Significant improvements have been done in this version on memory usage of JMeterThread</p>

<p>JSR223 Elements (enable using Groovy, scala, &hellip; as scripting languages) have been improved to enable:
<ul>
    
<li>usage of Compilable interface when available to boost CPU usage</li>
    
<li>caching of Compilation when scripts are used as Files</li>

</ul>
See <a href="https://cwiki.apache.org/confluence/display/JMETER/JMeterPerformance">JMeter Performances across versions</a>

</p>


<h4>OS Process Sampler</h4>

<p>Allow defining files for stdout/stderr/stdin.
<figure>
<a href="./images/screenshots/changes/2.8/06_os_sampler_stdout-err-in.png"><img src="./images/screenshots/changes/2.8/06_os_sampler_stdout-err-in.png" width="820" height="531" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h4>HTTP Request: PATCH verb</h4>

<p>Add PATCH verb to HTTP sampler
<figure>
<a href="./images/screenshots/changes/2.8/01_http_patch_verb.png"><img src="./images/screenshots/changes/2.8/01_http_patch_verb.png" width="615" height="340" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h4>HTTP Request: HTTPClient 4 is now the default implementation</h4>

<p>HTTPClient 4 is now the default HTTP Request implementation (and for Proxy element when generating HTTP requests).<br>
Previously the default was the HTTP Java implementation (i.e. the implementation provided by the JVM)
<figure>
<a href="./images/screenshots/changes/2.8/02_http_default_hc4.png"><img src="./images/screenshots/changes/2.8/02_http_default_hc4.png" width="558" height="288" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h4>HTTP Request</h4>

<p>Add Embedded URL Filter to HTTP Request Defaults Control (it was already present for HTTP Requests)
<figure>
<a href="./images/screenshots/changes/2.8/05_http_defaults_url_filter.png"><img src="./images/screenshots/changes/2.8/05_http_defaults_url_filter.png" width="586" height="682" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h4>Miscellaneous</h4>

<ul>
    
<li>CSV Dataset : Embedded new lines are now supported in quoted data</li>
    
<li>JMX files now contain the version of JMeter that created the file</li>
    
<li>JMeter Version is now available as property "jmeter.version"</li>

</ul>

<h3>Reporting Improvements:</h3>


<h4>Response Time Graph</h4>

<p>Add a new visualizer Response Time Graph to draw a line graph showing the evolution of response time for a test
<figure>
<a href="./images/screenshots/changes/2.8/09_resp_time_graph.png"><img src="./images/screenshots/changes/2.8/09_resp_time_graph.png" width="993" height="549" alt=""></a>
<figcaption></figcaption>
</figure>

</p>

<p>Settings for Response Time Graph
<figure>
<a href="./images/screenshots/changes/2.8/08_resp_time_graph_settings.png"><img src="./images/screenshots/changes/2.8/08_resp_time_graph_settings.png" width="989" height="602" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h4>View Results in Table</h4>

<p>Add latency to View Result in Table listener
<figure>
<a href="./images/screenshots/changes/2.8/10_latency_view_results_table.png"><img src="./images/screenshots/changes/2.8/10_latency_view_results_table.png" width="998" height="324" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h4>Aggregate Graph</h4>

<p>Small improvements: legend at left or right is now on 1 column (instead of 1 large line), &hellip;
<figure>
<a href="./images/screenshots/changes/2.8/07_aggregate_graph_legend_left_right.png"><img src="./images/screenshots/changes/2.8/07_aggregate_graph_legend_left_right.png" width="989" height="418" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3>GUI and ergonomy Improvements:</h3>

<h4>HTTP Proxy Server simplifications</h4>

<p>HTTPS Spoofing options have been removed from Proxy as HTTPS recording is directly available since JMeter 2.4.
<figure>
<a href="./images/screenshots/changes/2.8/03_remove_https_spoofing1.png"><img src="./images/screenshots/changes/2.8/03_remove_https_spoofing1.png" width="940" height="277" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h4>HTTP Proxy Server</h4>

<p>Allow URL Filters to be pasted from clipboard
<figure>
<a href="./images/screenshots/changes/2.8/15_add_from_clipboard_filter.png"><img src="./images/screenshots/changes/2.8/15_add_from_clipboard_filter.png" width="707" height="614" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h4>Find in JMeter</h4>

<p>CTRL + F for the new Find feature
<figure>
<a href="./images/screenshots/changes/2.8/14_ctrl_F_shortcut.png"><img src="./images/screenshots/changes/2.8/14_ctrl_F_shortcut.png" width="477" height="157" alt=""></a>
<figcaption></figcaption>
</figure>

ESC key now closes popups.
</p>


<h4>User Interface in GNOME 3</h4>

<p>Display 'Apache JMeter' title in app title bar in Gnome 3
<figure>
<a href="./images/screenshots/changes/2.8/13_gnome3_title.png"><img src="./images/screenshots/changes/2.8/13_gnome3_title.png" width="441" height="253" alt=""></a>
<figcaption></figcaption>
</figure>

</p>




<h2>Known bugs</h2>


<p>The Once Only controller behaves correctly under a Thread Group or Loop Controller,
but otherwise its behaviour is not consistent (or clearly specified).</p>


<p>Listeners don't show iteration counts when a If Controller has a condition which is always false from the first iteration (see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52496">
      Bug
      52496</a>).
A workaround is to add a sampler at the same level as (or superior to) the If Controller.
For example a Test Action sampler with 0 wait time (which doesn't generate a sample),
or a Debug Sampler with all fields set to False (to reduce the sample size).
</p>


<p>
Changing language can break part of the configuration of the following elements (see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53679">
      Bug
      53679</a>):
<ul>
    
<li>CSV Data Set Config (sharing mode will be lost)</li>
    
<li>Constant Throughput Timer (Calculate throughput based on will be lost)</li>

</ul>

</p>


<p>
Note that there is a bug in Java on some Linux systems that manifests
itself as the following error when running the test cases or JMeter itself:
<pre>
 [java] WARNING: Couldn't flush user prefs:
 java.util.prefs.BackingStoreException:
 java.lang.IllegalArgumentException: Not supported: indent-number
</pre>
This does not affect JMeter operation.
</p>




<h2>Incompatible changes</h2>


<p>
When using CacheManager, JMeter now caches responses for GET queries provided header Cache-Control is different from "no-cache" as described in specification.
Furthermore it doesn't put anymore in Cache deprecated entries for "no-cache" responses. See <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53521">
      Bug
      53521</a> and <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53522">
      Bug
      53522</a>

</p>


<p>
A major change has occurred on JSR223 Test Elements, previously variables set up before script execution where stored in ScriptEngineManager which was created once per execution,
now ScriptEngineManager is a singleton shared by all JSR223 elements and only ScriptEngine is created once per execution, variables set up before script execution are now stored
in Bindings created on each execution, see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53365">
      Bug
      53365</a>.
</p>


<p>
JSR223 Test Elements using Script file are now Compiled if ScriptEngine supports this feature, see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53520">
      Bug
      53520</a>.
</p>


<p>
Shortcut for Function Helper Dialog is now CTRL+F1 (CMD + F1 for Mac OS), CTRL+F (CMD+F1 for Mac OS) now opens Search Dialog.
</p>


<p>
By default, the TestCompiler now stores details of which pairs it has seen in Controller instances rather than in a static Set.
[<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53796">
      Bug
      53796</a>]
This gives much better memory behaviour for delayed start test plans, as memory used is proportional to the number of concurrent threads.
With the static Set memory usage was proportional to the total thread count.
This change is very unlikely to cause a problem.
The original behaviour can be restored by setting the property <span class="code">TestCompiler.useStaticSet=true</span>

</p>


<p>
HTTPS Spoofing options have been removed from Proxy as HTTPS recording is directly available since JMeter 2.4.
</p>



<h2>Bug fixes</h2>


<h3>HTTP Samplers and Proxy</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53521">
      Bug
      53521</a> - Cache Manager should cache content with Cache-control=private</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53522">
      Bug
      53522</a> - Cache Manager should not store at all response with header "no-cache" and store other types of Cache-Control having max-age value</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53838">
      Bug
      53838</a> - Pressing "Stop" does not interrupt the TCP sampler</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53911">
      Bug
      53911</a> - JmeterKeystore does not allow for key down the list of certificate</li>

</ul>


<h3>Other Samplers</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53348">
      Bug
      53348</a> - JMeter JMS Point-to-Point Request-Response sampler doesn't work when Request-queue and Receive-queue are different</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53357">
      Bug
      53357</a> - JMS Point to Point reports too high response times in Request Response Mode</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53440">
      Bug
      53440</a> - SSL connection leads to ArrayStoreException on JDK 6 with some KeyManagerFactory SPI</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53511">
      Bug
      53511</a> - access log sampler SessionFilter throws NullPointerException - cookie manager not initialized properly</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53715">
      Bug
      53715</a> - JMeter does not load WSDL</li>

</ul>


<h3>Controllers</h3>

<ul>

</ul>


<h3>Listeners</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53742">
      Bug
      53742</a> - When jmeter.save.saveservice.sample_count is set to true, elapsed time read by listener is always equal to 0</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53774">
      Bug
      53774</a> - RequestViewRaw does not show headers unless samplerData is non-null</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53802">
      Bug
      53802</a> - IdleTime values are not saved to CSV log</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53874">
      Bug
      53874</a> - View Results Tree : If some parameter containing special characters like % is not encoded, RequestViewHTTP fails with java.lang.IllegalArgumentException: URLDecoder: Illegal hex characters in escape (%) pattern and Response is not displayed</li>

</ul>


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

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51512">
      Bug
      51512</a> - Cookies aren't inserted into HTTP request with IPv6 Host header</li>

</ul>


<h3>Functions</h3>

<ul>

</ul>


<h3>I18N</h3>

<ul>

</ul>


<h3>General</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53365">
      Bug
      53365</a> - JSR223TestElement should cache ScriptEngineManager</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53520">
      Bug
      53520</a> - JSR223 Elements : Use Compilable interface to improve performances on File scripts</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53501">
      Bug
      53501</a> - Synchronization timer blocks test end.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53750">
      Bug
      53750</a> - TestCompiler saves unnecessary entries in pairing collection</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52266">
      Bug
      52266</a> - Code:Inconsistent synchronization</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53841">
      Bug
      53841</a> - CSVSaveService reads file using JVM default file encoding instead of using the one configured in saveservice.properties</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53953">
      Bug
      53953</a> New: Typo in monitor test plan documentation</li>

</ul>




<h2>Improvements</h2>


<h3>HTTP Samplers</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53675">
      Bug
      53675</a> - Add PATCH verb to HTTP sampler</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53931">
      Bug
      53931</a> - Define HTTPClient 4 for the default HTTP Request (and Proxy element to generate the HTTP requests). Before the default, it was the HTTP Java Sampler</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53934">
      Bug
      53934</a> - Removes HTTPS spoofing options in JMeter HTTP Proxy Server. Since JMeter 2.4, the HTTPS protocol is directly supported by the proxy</li>

</ul>


<h3>Other samplers</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55310">
      Bug
      55310</a> - TestAction should implement Interruptible</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53318">
      Bug
      53318</a> - Add Embedded URL Filter to HTTP Request Defaults Control </li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53782">
      Bug
      53782</a> - Enhance JavaSampler handling of JavaSamplerClient cleanup to use less memory</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53168">
      Bug
      53168</a> - OS Process - allow specification of stdout/stderr/stdin</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53844">
      Bug
      53844</a> - JDBC related elements should check class of Variable Name supposed to contain JDBC Connection Configuration to avoid ClassCastException </li>

</ul>


<h3>Controllers</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53671">
      Bug
      53671</a> - tearDown thread group to run even if shutdown test happens</li>

</ul>


<h3>Listeners</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53566">
      Bug
      53566</a> - Don't log partial responses to the jmeter log</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53716">
      Bug
      53716</a> - Small improvements in aggregate graph: legend at left or right is now on 1 column (instead of 1 large line), no border to the reference's square color, reduce width on some fields</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53718">
      Bug
      53718</a> - Add a new visualizer 'Response Time Graph' to draw a line graph showing the evolution of response time for a test</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53738">
      Bug
      53738</a> - Keep track of number of threads started and finished</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53753">
      Bug
      53753</a> -  Summariser: no point displaying fractional time in most cases</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53749">
      Bug
      53749</a> - TestListener interface could perhaps be split up.
This should reduce per-thread memory requirements and processing,
as only test elements that actually use testIterationStart functionality now need to be handled.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53941">
      Bug
      53941</a> - Add latency to View Result table listener</li>

</ul>


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

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53755">
      Bug
      53755</a> - Adding a HttpClient 4 cookie implementation in JMeter.
Cookie Manager has now the default HC3.1 implementation and a new choice HC4 implementation (compliant with IPv6 address)</li>

</ul>


<h3>Functions</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51527">
      Bug
      51527</a> - __time() function : add another option to __time() to provide *seconds* since epoch</li>

</ul>


<h3>I18N</h3>

<ul>

</ul>


<h3>General</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53364">
      Bug
      53364</a> - Sort list of Functions in Function Helper Dialog</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53418">
      Bug
      53418</a> - New Option "Delay thread creation until needed" that will create and start threads when needed instead of creating them on Test startup</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=42245">
      Bug
      42245</a> - Show clear passwords in HTTP Authorization Manager</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53616">
      Bug
      53616</a> - Display 'Apache JMeter' title in app title bar in Gnome 3</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53759">
      Bug
      53759</a> - ClientJMeterEngine performs unnecessary traverse using SearchByClass(TestListener)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52601">
      Bug
      52601</a> - CTRL + F for the new Find feature</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53796">
      Bug
      53796</a> - TestCompiler uses static Set which can grow huge</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53673">
      Bug
      53673</a> - Add JMeter version in the jmx file</li>

<li>Add support for HeapDump to the JMeter non-GUI and GUI client</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53862">
      Bug
      53862</a> - Would be nice to have the JMeter Version available as a property</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53806">
      Bug
      53806</a> -  FileServer should provide thread-safe parsing</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53807">
      Bug
      53807</a> - CSV Dataset does not handle embedded new lines in quoted data</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53879">
      Bug
      53879</a> - GUI : Allow Popups to be closed with ESC key</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53876">
      Bug
      53876</a> - Allow URL Filters (HTTP Proxy) to be pasted from clipboard</li>

</ul>


<h2>Non-functional changes</h2>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53311">
      Bug
      53311</a> - JMeterUtils#runSafe should not throw Error when interrupted</li>

<li>Updated to commons-net-3.1 (from 3.0.1)</li>

<li>Updated to HttpComponents Core 4.2.2 (from 4.1.4) and HttpComponents Client 4.2.1 (from 4.1.3)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53765">
      Bug
      53765</a> - Switch to commons-lang3-3.1</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53884">
      Bug
      53884</a> - wrong Maven groupId for commons-lang</li>

</ul>




<h1>Version 2.7</h1>


<h2>New and Noteworthy</h2>


<h3>OS Process Sampler</h3>

<p>A new System Sampler that can be used to execute commands on the local machine.
<figure>
<a href="./images/screenshots/changes/2.7/01_os_process_sampler.png"><img src="./images/screenshots/changes/2.7/01_os_process_sampler.png" width="629" height="497" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<p>OS Process Sampler results example with DNS lookup command 'dig'
<figure>
<a href="./images/screenshots/changes/2.7/02_os_process_example_results.png"><img src="./images/screenshots/changes/2.7/02_os_process_example_results.png" width="877" height="470" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3>JMS Samplers improvements</h3>

<p>Addition of a "Non Persistent Delivery" option to send "Non-Persistent" (Guaranteed to be delivered at most once. Message loss is not a concern.) JMS messages
<figure>
<a href="./images/screenshots/changes/2.7/11_jms_non_persistent_delivery_mode.png"><img src="./images/screenshots/changes/2.7/11_jms_non_persistent_delivery_mode.png" width="953" height="336" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<p>Support sending of JMS Object Messages to enable sending Objects unmarshalled from XML by XStream
<figure>
<a href="./images/screenshots/changes/2.7/12_jms_sending_objects.png"><img src="./images/screenshots/changes/2.7/12_jms_sending_objects.png" width="808" height="726" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<p>Enable setting JMS Properties through JMS Publisher sampler
<figure>
<a href="./images/screenshots/changes/2.7/13_jms_properties.png"><img src="./images/screenshots/changes/2.7/13_jms_properties.png" width="1029" height="470" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3>Test Action sampler</h3>

<p>Allow premature exit from a loop
<figure>
<a href="./images/screenshots/changes/2.7/07_test_action_next_iter.png"><img src="./images/screenshots/changes/2.7/07_test_action_next_iter.png" width="862" height="167" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3>Webservice Sampler improvements</h3>

<p>Add a jmeter property soap.document_cache to control size of Document Cache
<figure>
<a href="./images/screenshots/changes/2.7/14_ws_document_cache.png"><img src="./images/screenshots/changes/2.7/14_ws_document_cache.png" width="270" height="59" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<p>Make Maintain HTTP Session configurable
<figure>
<a href="./images/screenshots/changes/2.7/15_ws_maintain_session.png"><img src="./images/screenshots/changes/2.7/15_ws_maintain_session.png" width="833" height="505" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3>Aggregate graph: Clustered Bar char with average, median, 90% line, min and max columns</h3>

<p>Aggregate graph changes to Clustered Bar chart, add more columns (median, 90% line, min, max) and options, fixed some bugs
<figure>
<a href="./images/screenshots/changes/2.7/03_aggregate_graph_with_new_cols.png"><img src="./images/screenshots/changes/2.7/03_aggregate_graph_with_new_cols.png" width="1177" height="503" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<p>New settings for aggregate graph
<figure>
<a href="./images/screenshots/changes/2.7/04_aggregate_graph_parameters.png"><img src="./images/screenshots/changes/2.7/04_aggregate_graph_parameters.png" width="1173" height="433" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3>Improvements of HTML report design generated by JMeter Ant task in extras folder</h3>

<p>HTML report example
<figure>
<a href="./images/screenshots/changes/2.7/05_jmeter_ant_task_report_success.png"><img src="./images/screenshots/changes/2.7/05_jmeter_ant_task_report_success.png" width="1264" height="506" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<p>HTML report example with some assertion errors
<figure>
<a href="./images/screenshots/changes/2.7/06_jmeter_ant_task_report_errors.png"><img src="./images/screenshots/changes/2.7/06_jmeter_ant_task_report_errors.png" width="1267" height="550" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3>Mailer Visualizer</h3>

<p>
<ul>

<li>Enable authentication, and connection security with SSL or TLS</li>

<li>Improve GUI design</li>

<li>Add internationalisation (i18n) support</li>

</ul>

<figure>
<a href="./images/screenshots/changes/2.7/10_mailer_visualizer_gui.png"><img src="./images/screenshots/changes/2.7/10_mailer_visualizer_gui.png" width="860" height="403" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3>New Visual Indicator of number of ERROR/FATAL messages in logs</h3>

<p>Indicator shows number of ERROR/FATAL messages in logs, it can be clicked to toggle Log Viewer panel
<figure>
<a href="./images/screenshots/changes/2.7/16_log_errors_counter.png"><img src="./images/screenshots/changes/2.7/16_log_errors_counter.png" width="815" height="633" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3>Dialog box to show detail of a parameter row</h3>

<p>Add a detail button on parameters table to show detail of a Row
<figure>
<a href="./images/screenshots/changes/2.7/08_param_button_detail.png"><img src="./images/screenshots/changes/2.7/08_param_button_detail.png" width="824" height="165" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<p>Detail box example
<figure>
<a href="./images/screenshots/changes/2.7/09_detail_box.png"><img src="./images/screenshots/changes/2.7/09_detail_box.png" width="702" height="454" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3>Plugin writers</h3>

<p>
New interface org.apache.jmeter.engine.util.ConfigMergabilityIndicator has been introduced to tell whether a ConfigTestElement can be merged in Sampler (see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53042">
      Bug
      53042</a>):<br>

<pre>public boolean applies(ConfigTestElement configElement);</pre>

</p>


<p>New interface org.apache.jmeter.protocol.http.proxy.SamplerCreator to allow plugging HTTP based samplers that differ from default HTTP Samplers through Proxy during Recording Phase (see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52674">
      Bug
      52674</a>):<br>

<pre>public String[] getManagedContentTypes();</pre>

<pre>public HTTPSamplerBase createSampler(HttpRequestHdr request, Map&lt;String, String&gt; pageEncodings, Map&lt;String, String&gt; formEncodings);</pre>

<pre>public void populateSampler(HTTPSamplerBase sampler, HttpRequestHdr request, Map&lt;String, String&gt; pageEncodings, Map&lt;String, String&gt; formEncodings) throws Exception;</pre>

</p>





<h2>Known bugs</h2>


<p>The Once Only controller behaves correctly under a Thread Group or Loop Controller,
but otherwise its behaviour is not consistent (or clearly specified).</p>


<p>Listeners don't show iteration counts when a If Controller has a condition which is always false from the first iteration (see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52496">
      Bug
      52496</a>).
A workaround is to add a sampler at the same level as (or superior to) the If Controller.
For example a Test Action sampler with 0 wait time (which doesn't generate a sample),
or a Debug Sampler with all fields set to False (to reduce the sample size).
</p>




<h2>Incompatible changes</h2>


<p>
When doing replacement of User Defined Variables, Proxy will not substitute partial values anymore when "Regexp matching" is used. It will use Perl 5 word matching ("\b")
</p>


<p>
In User Defined Variables, Test Plan, HTTP Sampler Arguments Table, Java Request Defaults, JMS Sampler and Publisher, LDAP Request Defaults and LDAP Extended Request Defaults, rows with
empty Name and Value are no more saved.
</p>


<p>
JMeter now expands the Test Plan tree to the testplan level and no further and selects the root of the tree. Furthermore default value of onload.expandtree is false.
</p>


<p>
Graph Full Results Listener has been removed.
</p>


<p>
When calling "Clear All" command, if Log Viewer is displayed its content will be cleared.
</p>



<h2>Bug fixes</h2>


<h3>HTTP Samplers and Proxy</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52613">
      Bug
      52613</a> - Using Raw Post Body option, text gets encoded</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52781">
      Bug
      52781</a> - Content-Disposition header garbled even if browser compatible headers is checked (HC4) </li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52796">
      Bug
      52796</a> - MonitorHandler fails to clear variables when starting a new parse</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52871">
      Bug
      52871</a> - Multiple Certificates not working with HTTP Client 4</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52885">
      Bug
      52885</a> - Proxy : Recording issues with HTTPS, cookies starting with secure are partly truncated</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52886">
      Bug
      52886</a> - Proxy : Recording issues with HTTPS when spoofing is on, secure cookies are not always changed</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52897">
      Bug
      52897</a> - HTTPSampler : Using PUT method with HTTPClient4 and empty Content Encoding and sending files leads to NullPointerException</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53145">
      Bug
      53145</a> - HTTP Sampler - function in path evaluated too early</li>

</ul>


<h3>Other Samplers</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51737">
      Bug
      51737</a> - TCPSampler : Packet gets converted/corrupted</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52868">
      Bug
      52868</a> - BSF language list should be sorted</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52869">
      Bug
      52869</a> - JSR223 language list currently uses BSF list which is wrong</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52932">
      Bug
      52932</a> - JDBC Sampler : Sampler is not marked in error in an Exception which is not of class IOException, SQLException, IOException occurs</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52916">
      Bug
      52916</a> - JDBC Exception if there is an empty user defined variable</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52937">
      Bug
      52937</a> - Webservice Sampler : Clear Soap Documents Cache at end of Test </li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53027">
      Bug
      53027</a> - JMeter starts throwing exceptions while using SMTP Sample in a test plan with HTTP Cookie Mngr or HTTP Request Defaults</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53072">
      Bug
      53072</a> - JDBC PREPARED SELECT statements should return results in variables like non prepared SELECT</li>

</ul>


<h3>Controllers</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52968">
      Bug
      52968</a> - Option Start Next Loop in Thread Group does not mark parent Transaction Sampler in error when an error occurs</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=50898">
      Bug
      50898</a> - IncludeController : NullPointerException loading script in non-GUI mode if Includers use same element name</li>

</ul>


<h3>Listeners</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=43450">
      Bug
      43450</a> - Listeners/Savers assume SampleResult count is always 1; fixed Generate Summary Results</li>

</ul>


<h3>Assertions</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52848">
      Bug
      52848</a> - NullPointer in "XPath Assertion"</li>

</ul>


<h3>Functions</h3>

<ul>

</ul>


<h3>I18N</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52551">
      Bug
      52551</a> - Function Helper Dialog does not switch language correctly</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52552">
      Bug
      52552</a> - Help reference only works in English</li>

</ul>


<h3>General</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52639">
      Bug
      52639</a> - JSplitPane divider for log panel should be hidden if log is not activated</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52672">
      Bug
      52672</a> - Change Controller action deletes all but one child samplers</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52694">
      Bug
      52694</a> - Deadlock in GUI related to non AWT Threads updating GUI</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52678">
      Bug
      52678</a> - Proxy : When doing replacement of UserDefinedVariables, partial values should not be substituted</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52728">
      Bug
      52728</a> - CSV Data Set Config element cannot coexist with BSF Sampler in same Thread Plan</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52762">
      Bug
      52762</a> - Problem with multiples certificates: first index not used until indexes are restarted</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52741">
      Bug
      52741</a> - TestBeanGUI default values do not work at second time or later</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52783">
      Bug
      52783</a> - oro.patterncache.size property never used due to early init</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52789">
      Bug
      52789</a> - Proxy with Regexp Matching can fail with NullPointerException in Value Replacement if value is null</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52645">
      Bug
      52645</a> - Recording with Proxy leads to OutOfMemory</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52679">
      Bug
      52679</a> - User Parameters columns narrow</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52843">
      Bug
      52843</a> - Sample headerSize and bodySize not being accumulated for subsamples</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52967">
      Bug
      52967</a> - The function __P() couldn't use default value when running with remote server in GUI mode.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=50799">
      Bug
      50799</a> - Having a non-HTTP sampler in a http test plan prevents multiple header managers from working</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52997">
      Bug
      52997</a> - JMeter should not exit without saving Test Plan if saving before exit fails</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53136">
      Bug
      53136</a> - Catching Throwable needs to be carefully handled</li>

</ul>




<h2>Improvements</h2>


<h3>HTTP Samplers</h3>

<ul>

</ul>


<h3>Other samplers</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52775">
      Bug
      52775</a> - JMS Publisher : Add Non Persistent Delivery option</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52810">
      Bug
      52810</a> - Enable setting JMS Properties through JMS Publisher sampler</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52938">
      Bug
      52938</a> - Webservice Sampler : Add a jmeter property soap.document_cache to control size of Document Cache</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52939">
      Bug
      52939</a> - Webservice Sampler : Make MaintainSession configurable</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53073">
      Bug
      53073</a> - Allow to assign the OUT result of a JDBC CALLABLE to JMeter variables</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53164">
      Bug
      53164</a> - New System Sampler</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53172">
      Bug
      53172</a> - OS Process Sampler - allow specification of Environment Variables</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52936">
      Bug
      52936</a> - JMS Publisher : Support sending of JMS Object Messages</li>

</ul>


<h3>Controllers</h3>

<ul>

</ul>


<h3>Listeners</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52603">
      Bug
      52603</a> - MailerVisualizer : Enable SSL , TLS and Authentication</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52698">
      Bug
      52698</a> - Remove Graph Full Results Listener</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53070">
      Bug
      53070</a> - Change Aggregate graph to Clustered Bar chart, add more columns (median, 90% line, min, max) and options, fixed some bugs</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53246">
      Bug
      53246</a> - Mailer Visualizer: improve GUI design and I18N</li>

</ul>


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

<ul>

</ul>


<h3>Functions</h3>

<ul>

</ul>


<h3>I18N</h3>

<ul>

<li>Mailer Visualizer has been internationalized. French translation added. (see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53246">
      Bug
      53246</a>)</li>

</ul>


<h3>General</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=45839">
      Bug
      45839</a> - Test Action : Allow premature exit from a loop</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52614">
      Bug
      52614</a> - MailerModel.sendMail has strange way to calculate debug setting</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52782">
      Bug
      52782</a> - Add a detail button on parameters table to show detail of a Row</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52674">
      Bug
      52674</a> - Proxy : Add a Sampler Creator to allow plugging HTTP based samplers using potentially non textual POST Body (AMF, Silverlight, &hellip;) and customizing them for others</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52934">
      Bug
      52934</a> - GUI : Open Test plan with the tree expanded to the testplan level and no further and select the root of the tree</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52941">
      Bug
      52941</a> - Improvements of HTML report design generated by JMeter Ant task extra</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53042">
      Bug
      53042</a> - Introduce a new method in Sampler interface to allow Sampler to decide whether a config element applies to Sampler</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52771">
      Bug
      52771</a> - Documentation : Added RSS feed on JMeter Home page under link "Subscribe to What's New"</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=42784">
      Bug
      42784</a> - Show the number of errors logged in the GUI</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53256">
      Bug
      53256</a> - Make Clear All command clean LogViewer content</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53261">
      Bug
      53261</a> - Make "Error/fatal" counter added in <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=42784">
      Bug
      42784</a> open Log Viewer panel when Warn Indicator is clicked</li>

</ul>


<h2>Non-functional changes</h2>

<ul>

<li>Upgraded to rhino 1.7R3 (was js-1.7R2.jar).
Note: the Maven coordinates for the jar were changed from rhino:js to org.mozilla:rhino.
This does not affect JMeter directly, but might cause problems if using JMeter in a Maven project
with other code that depends on an earlier version of the Rhino Javascript jar.
</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52675">
      Bug
      52675</a> - Refactor Proxy and HttpRequestHdr to allow Sampler Creation by Proxy</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52680">
      Bug
      52680</a> - Mention version in which function was introduced</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52788">
      Bug
      52788</a> - HttpRequestHdr : Optimize code to avoid useless work</li>

<li>JMeter Ant (ant-jmeter-1.1.1.jar) task was upgraded from 1.0.9 to 1.1.1</li>

<li>Updated to commons-io 2.2 (from 2.1)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53129">
      Bug
      53129</a> - Upgrade XStream from 1.3.1 to 1.4.2</li>

<li>Updated to httpcomponents-client 4.1.3 (from 4.1.2)</li>

<li>Updated JMeter distributed testing guide (jmeter_distributed_testing_step_by_step.pdf). Changes source format to OpenOffice odt (from sxw)</li>

</ul>




<h1>Version 2.6</h1>


<h2>New and Noteworthy</h2>


<h3>Toolbar</h3>

<p>A new toolbar on JMeter's main window
<figure>
<a href="./images/screenshots/changes/2.6/01_toolbar.png"><img src="./images/screenshots/changes/2.6/01_toolbar.png" width="986" height="91" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3>JMeter start test button</h3>

<p>A new menu option and button allow to start a test ignoring the Pause Timers
<figure>
<a href="./images/screenshots/changes/2.6/02_ignore_pause_timers.png"><img src="./images/screenshots/changes/2.6/02_ignore_pause_timers.png" width="201" height="58" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3>JMeter GUI Look and Feel</h3>

<p>Allow System or CrossPlatform LAF to be set from options menu
<figure>
<a href="./images/screenshots/changes/2.6/03_look_and_feel.png"><img src="./images/screenshots/changes/2.6/03_look_and_feel.png" width="373" height="162" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3>JMeter GUI - duplicate node</h3>

<p>Add "duplicate node" in context menu
<figure>
<a href="./images/screenshots/changes/2.6/04_duplicate_context_menu.png"><img src="./images/screenshots/changes/2.6/04_duplicate_context_menu.png" width="323" height="136" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3>JMeter tree view - search facility</h3>

<p>Functionality to search by keyword in Samplers Tree View
<figure>
<a href="./images/screenshots/changes/2.6/05_search_tree.png"><img src="./images/screenshots/changes/2.6/05_search_tree.png" width="554" height="219" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3>HTTP Request - raw request pane</h3>

<p>Improve HTTP Request GUI to better show parameters without name (GWT RPC request or SOAP request for example)
<figure>
<a href="./images/screenshots/changes/2.6/06_post_data.png"><img src="./images/screenshots/changes/2.6/06_post_data.png" width="759" height="461" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3>HTTP Request - other changes</h3>

<p>
<ul>

<li>Allow multiple selection in arguments panel</li>

<li>Allow to add (paste) entries from the clipboard to an arguments list</li>

<li>Ability to move variables up or down in HTTP Request</li>

</ul>

<figure>
<a href="./images/screenshots/changes/2.6/07_multiple_selection_params.png"><img src="./images/screenshots/changes/2.6/07_multiple_selection_params.png" width="875" height="218" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3>HTTP Request - file protocol</h3>

<p>Better support for file: protocol in HTTP sampler
<figure>
<a href="./images/screenshots/changes/2.6/08_file_protocol.png"><img src="./images/screenshots/changes/2.6/08_file_protocol.png" width="489" height="662" alt=""></a>
<figcaption></figcaption>
</figure>

</p>

<p>Retrieve embedded resources with file: protocol
<figure>
<a href="./images/screenshots/changes/2.6/09_file_protocol_embedded.png"><img src="./images/screenshots/changes/2.6/09_file_protocol_embedded.png" width="700" height="138" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3>HTTP Request - Ignore embedded resources failed</h3>

<p>Enable "ignore failed" for embedded resources
<figure>
<a href="./images/screenshots/changes/2.6/26_ignore_child_failed.png"><img src="./images/screenshots/changes/2.6/26_ignore_child_failed.png" width="820" height="246" alt=""></a>
<figcaption></figcaption>
</figure>

</p>

<p>Parent success with a embedded resource failed
<figure>
<a href="./images/screenshots/changes/2.6/27_succes_with_child_failed.png"><img src="./images/screenshots/changes/2.6/27_succes_with_child_failed.png" width="590" height="214" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3>View Results in Table - child sample display</h3>

<p>Add option to TableVisualiser to display child samples instead of parent
<figure>
<a href="./images/screenshots/changes/2.6/10_child_sampler.png"><img src="./images/screenshots/changes/2.6/10_child_sampler.png" width="911" height="619" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3>Key Store - multiple certificates</h3>

<p>Allowing multiple certificates (JKS)
<figure>
<a href="./images/screenshots/changes/2.6/11_jks_keystore.png"><img src="./images/screenshots/changes/2.6/11_jks_keystore.png" width="324" height="166" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3>Aggregate graph improvements</h3>

<p>Some improvements on Aggregate Graph Listener:
<ul>
<li>new GUI for settings</li>

<li>dynamic graph size</li>

<li>allow to change fonts for title graph and legend</li>

<li>allow to change bar color (background and text values)</li>

<li>allow to draw or not bars outlines</li>

<li>allow to select only some samplers by a regexp filter</li>

<li>allow to define Y axis maximum scale</li>

</ul>

<figure>
<a href="./images/screenshots/changes/2.6/12_aggregate_graph_settings.png"><img src="./images/screenshots/changes/2.6/12_aggregate_graph_settings.png" width="850" height="411" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<p>Aggregate Graph bar
<figure>
<a href="./images/screenshots/changes/2.6/13_aggregate_graph_bar.png"><img src="./images/screenshots/changes/2.6/13_aggregate_graph_bar.png" width="851" height="506" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3>Counter - new reset option</h3>

<p>Add an option to reset counter on each Thread Group iteration
<figure>
<a href="./images/screenshots/changes/2.6/14_reset_counter.png"><img src="./images/screenshots/changes/2.6/14_reset_counter.png" width="345" height="257" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3>Functions</h3>

<p>
<ul>

<li>Add a new function __RandomString to generate random Strings</li>

<li>Add a new function __TestPlanName returning the name of the current "Test Plan"</li>

<li>Add a new function __machineIP returning IP address</li>

<li>Add a new function  __jexl2 to support Jexl2</li>

</ul>

<figure>
<a href="./images/screenshots/changes/2.6/15_random_string.png"><img src="./images/screenshots/changes/2.6/15_random_string.png" width="697" height="236" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3>User Defined Variable improvements</h3>

<p>
<ul>
<li>Add a comment field in User Defined Variables</li>

<li>Allow to add (paste) entries from the clipboard to an arguments list</li>

<li>Ability to move up or down variables in User Defined Variables</li>

</ul>

<figure>
<a href="./images/screenshots/changes/2.6/16_udv_comments.png"><img src="./images/screenshots/changes/2.6/16_udv_comments.png" width="543" height="237" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3>View Results Tree</h3>

<p>In View Results Tree rather than showing just a message if the results are to big, show as much of the result as are configured
<figure>
<a href="./images/screenshots/changes/2.6/17_vrt_max_size_display.png"><img src="./images/screenshots/changes/2.6/17_vrt_max_size_display.png" width="953" height="98" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3>Controllers - change elements</h3>

<p>Add ability to Change Controller elements
<figure>
<a href="./images/screenshots/changes/2.6/18_change_ctl_type.png"><img src="./images/screenshots/changes/2.6/18_change_ctl_type.png" width="643" height="112" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3>JDBC pre- and post-processor</h3>

<p>Add JDBC pre- and post-processor
<figure>
<a href="./images/screenshots/changes/2.6/19_jdbc_pre_post_proc.png"><img src="./images/screenshots/changes/2.6/19_jdbc_pre_post_proc.png" width="535" height="217" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3>JDBC transaction isolation option</h3>

<p>Allow to set the transaction isolation in the JDBC Connection Configuration
<figure>
<a href="./images/screenshots/changes/2.6/20_jdbc_trans_isolation.png"><img src="./images/screenshots/changes/2.6/20_jdbc_trans_isolation.png" width="437" height="351" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3>Poisson Timer</h3>

<p>Add a Poisson based timer
<figure>
<a href="./images/screenshots/changes/2.6/21_poisson_timer.png"><img src="./images/screenshots/changes/2.6/21_poisson_timer.png" width="358" height="156" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3>GUI and OS interaction</h3>

<p>Support for file Drag and Drop.
<figure>
<a href="./images/screenshots/changes/2.6/22_drag_and_drop.png"><img src="./images/screenshots/changes/2.6/22_drag_and_drop.png" width="776" height="508" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3>Confirm Remove Dialog box</h3>

<p>Add a dialog box to confirm removing the element(s) when Remove action is called
<figure>
<a href="./images/screenshots/changes/2.6/23_confirm_remove.png"><img src="./images/screenshots/changes/2.6/23_confirm_remove.png" width="583" height="210" alt=""></a>
<figcaption></figcaption>
</figure>
The dialogue can be skipped by setting the JMeter property <span class="code">confirm.delete.skip=true</span>

</p>


<h3>Remote batching support</h3>

<p>Use external store to hold samples during distributed testing,
Added DiskStore remote sample sender: like Hold, but saves samples to disk until end of test
<figure>
<a href="./images/screenshots/changes/2.6/24_diskstore.png"><img src="./images/screenshots/changes/2.6/24_diskstore.png" width="998" height="273" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3>JMS Subscriber sampler</h3>

<p>With JMS Subscriber, ability to use Selectors
<figure>
<a href="./images/screenshots/changes/2.6/25_selector.png"><img src="./images/screenshots/changes/2.6/25_selector.png" width="705" height="297" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3>New Logger Panel</h3>

<p>A new Log Viewer  has been added to the GUI and can be enabled from menu Options &rarr; Log Viewer:
<figure>
<a href="./images/screenshots/changes/2.6/28_loggerpanel_option.png"><img src="./images/screenshots/changes/2.6/28_loggerpanel_option.png" width="326" height="147" alt=""></a>
<figcaption></figcaption>
</figure>

</p>

<p>This Log Viewer shows the jmeter.log file, and useful (for example) to debug BeanShell/BSF scripts:
<figure>
<a href="./images/screenshots/changes/2.6/28_loggerpanel.png"><img src="./images/screenshots/changes/2.6/28_loggerpanel.png" width="953" height="466" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3>The menu item Options / Choose Language is now fully functional</h3>

<p>
The menu item Options / Choose Language now changes all the displayed text to the new language provided
all messages are translated. You can help on this by translating into your language.
</p>


<h3>Legacy JMX and JTL Avalon format support restored</h3>

<p>
Support for reading/writing the original Avalon XML format of JMX (script) and JTL (sample result) files was dropped in JMeter version 2.4.
JMeter can now read the Avalon format files again, however there is no support for saving files in the old format.
</p>


<h3>JMeter jars available from Maven repository</h3>

<p>
JMeter jars are now available from Maven repository.
</p>




<h2>Known bugs</h2>


<p>
The Include Controller has some problems in non-GUI mode (see Bugs 40671, 41286, 44973, 50898).
In particular, it can cause a NullPointerException if there are two include controllers with the same name.
</p>


<p>The Once Only controller behaves correctly under a Thread Group or Loop Controller,
but otherwise its behaviour is not consistent (or clearly specified).</p>


<p>Listeners don't show iteration counts when a If Controller has a condition which is always false from the first iteration (see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52496">
      Bug
      52496</a>).
A workaround is to add a sampler at the same level as (or superior to) the If Controller.
For example a Test Action sampler with 0 wait time (which doesn't generate a sample),
or a Debug Sampler with all fields set to False (to reduce the sample size).
</p>




<h2>Incompatible changes</h2>


<p>
JMeter versions since 2.1 failed to create a container sample when loading embedded resources.
This has been corrected; can still revert to the <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51939">
      Bug
      51939</a> behaviour by setting the following property:
<span class="code">httpsampler.separate.container=false</span>

</p>

<p>
Mirror server now uses default port 8081, was 8080 before 2.5.1.
</p>

<p>
TCP Sampler handles SocketTimeoutException, SocketException and InterruptedIOException differently since 2.6, when
these occurs, Sampler is marked as failed.
</p>

<p>
Sample Sender implementations now resolve their configuration on Client side since 2.6.
This behaviour can be changed with property sample_sender_client_configured (set it to false).
</p>


<p>
The HTTP User Parameter Modifier test element has been removed; it has been deprecated for a long time.
</p>




<h2>Bug fixes</h2>


<h3>HTTP Samplers and Proxy</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51932">
      Bug
      51932</a> - CacheManager does not handle cache-control header with any attributes after max-age</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51918">
      Bug
      51918</a> - GZIP compressed traffic produces errors, when multiple connections allowed</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51939">
      Bug
      51939</a> - Should generate new parent sample if necessary when retrieving embedded resources</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51942">
      Bug
      51942</a> - Synchronisation issue on CacheManager when Concurrent Download is used</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51957">
      Bug
      51957</a> - Concurrent get can hang if a task does not complete</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51925">
      Bug
      51925</a> - Calling Stop on Test leaks executor threads when concurrent download of resources is on</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51980">
      Bug
      51980</a> - HtmlParserHTMLParser double-counts images used in links</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52064">
      Bug
      52064</a> - OutOfMemory Risk in CacheManager</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51919">
      Bug
      51919</a> - Random ConcurrentModificationException or NoSuchElementException in CookieManager#removeMatchingCookies when using Concurrent Download</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52126">
      Bug
      52126</a> - HttpClient4 does not clear cookies between iterations</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52129">
      Bug
      52129</a> - Reported Body Size is wrong when using HTTP Client 4 and Keep Alive connection</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52137">
      Bug
      52137</a> - Problems with HTTP Cache Manager</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52221">
      Bug
      52221</a> - Nullpointer Exception with use Retrieve Embedded Resource without HTTP Cache Manager</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52310">
      Bug
      52310</a> - variable in IPSource failed HTTP request if "Concurrent Pool Size" is enabled</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52371">
      Bug
      52371</a> - API Incompatibility - Methods in HTTPSampler2 now require PostMethod instead of HttpMethod[Base]. Reverted to original types.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=49950">
      Bug
      49950</a> - Proxy : IndexOutOfBoundsException when recording with Proxy server</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52409">
      Bug
      52409</a> - HttpSamplerBase#errorResult modifies sampleResult passed as parameter;
fix code which assumes that a new instance is created (i.e. when adding a sub-sample)
</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52507">
      Bug
      52507</a> - Delete Http User Parameters modifier (deprecated, obsolete)</li>

</ul>


<h3>Other Samplers</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51996">
      Bug
      51996</a> - JMS Initial Context leak newly created Context when Multiple Thread enter InitialContextFactory#lookupContext at the same time</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51691">
      Bug
      51691</a> - Authorization does not work for JMS Publisher and JMS Subscriber</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52036">
      Bug
      52036</a> - Durable Subscription fails with ActiveMQ due to missing clientId field</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52044">
      Bug
      52044</a> - JMS Subscriber used with many threads leads to javax.naming.NamingException: Something already bound with ActiveMQ</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52072">
      Bug
      52072</a> - LengthPrefixedBinaryTcpClientImpl may end a sample prematurely</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52390">
      Bug
      52390</a> - AbstractJDBCTestElement:Memory leak and synchronization issue in perConnCache</li>

</ul>


<h3>Controllers</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51865">
      Bug
      51865</a> - Infinite loop inside thread group does not work properly if "Start next loop after a Sample error" option set</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51868">
      Bug
      51868</a> - A lot of exceptions in jmeter.log while using option "Start next loop" for thread</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51866">
      Bug
      51866</a> - Counter under loop doesn't work properly if "Start next loop on error" option set for thread group</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52296">
      Bug
      52296</a> - TransactionController + Children ThrouputController or InterleaveController leads to ERROR sampleEnd called twice java.lang.Throwable: Invalid call sequence when TPC does not run sample</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52330">
      Bug
      52330</a> - With next-Loop-On-Error after error samples are not executed in next loop</li>

</ul>


<h3>Listeners</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52357">
      Bug
      52357</a> - View results in Table does not allow for multiple result samples</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52491">
      Bug
      52491</a> - Incorrect parsing of Post data parameters in Tree Listener / Http Request view</li>

</ul>


<h3>Assertions</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52519">
      Bug
      52519</a> - XMLSchemaAssertion uses JMeter JVM file.encoding instead of response encoding</li>

</ul>


<h3>Functions</h3>

<ul>

<li>The CRLF example for the char function was wrong; CRLF=(0xD,0xA), not (0xC,0xA)</li>

</ul>


<h3>I18N</h3>

<ul>

</ul>


<h3>General</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51937">
      Bug
      51937</a> - JMeter does not handle missing TestPlan entry well</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51988">
      Bug
      51988</a> - CSV Data Set Configuration does not resolve default delimiter for header parsing when variables field is empty</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52003">
      Bug
      52003</a> - View Results Tree "Scroll automatically" does not scroll properly in case nodes are expanded</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=27112">
      Bug
      27112</a> - User Parameters should use scrollbars</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52029">
      Bug
      52029</a> - Command-line shutdown only gets sent to last engine that was started</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52093">
      Bug
      52093</a> - Toolbar ToolTips don't switch language</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51733">
      Bug
      51733</a> - SyncTimer is messed up if you a interrupt a test plan</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52118">
      Bug
      52118</a> - New toolbar : shutdown and stop buttons not disabled when no test is running</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52125">
      Bug
      52125</a> - StatCalculator.addAll(StatCalculator calc) joins incorrect if there are more samples with the same response time in one of the TreeMap</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52339">
      Bug
      52339</a> - JMeter Statistical mode in distributed testing shows wrong response time</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52215">
      Bug
      52215</a> - Confusing synchronization in StatVisualizer, SummaryReport ,Summariser and issue in StatGraphVisualizer</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52216">
      Bug
      52216</a> - TableVisualizer : currentData field is badly synchronized</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52217">
      Bug
      52217</a> - ViewResultsFullVisualizer : Synchronization issues on root and treeModel</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=43294">
      Bug
      43294</a> - XPath Extractor namespace problems</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52224">
      Bug
      52224</a> - TestBeanHelper does not support NOT_UNDEFINED == Boolean.FALSE</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52279">
      Bug
      52279</a> - Switching to another language loses icons in Tree and logs error Can't obtain GUI class from &hellip;</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52280">
      Bug
      52280</a> - The menu item Options / Choose Language does not change all the displayed text to the new language</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52376">
      Bug
      52376</a> - StatCalculator#addValue(T val, int sampleCount) should use long, not int</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=49374">
      Bug
      49374</a> - Encoding of embedded element URLs depend on the file.encoding property</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52399">
      Bug
      52399</a> - URLRewritingModifier uses default file.encoding to match text content</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=50438">
      Bug
      50438</a> - code calculates average with integer math, expecting double value</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52469">
      Bug
      52469</a> - Changes in Support of SSH-Tunneling of RMI traffic for Remote Testing</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52466">
      Bug
      52466</a> - Upgrade Test Plan feature : NameUpdater does not upgrade properties</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52503">
      Bug
      52503</a> - Unify File&rarr;Close and Window close file saving behaviour</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52537">
      Bug
      52537</a> - Help does not scroll to correct anchor when file is first loaded</li>

</ul>




<h2>Improvements</h2>


<h3>HTTP Samplers</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51981">
      Bug
      51981</a> - Better support for file: protocol in HTTP sampler</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52033">
      Bug
      52033</a> - Allowing multiple certificates (JKS)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52352">
      Bug
      52352</a> - Proxy : Support IPv6 URLs capture</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=44301">
      Bug
      44301</a> - Enable "ignore failed" for embedded resources</li>

</ul>


<h3>Other samplers</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51419">
      Bug
      51419</a> - JMS Subscriber: ability to use Selectors</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52088">
      Bug
      52088</a> - JMS Sampler : Add a selector when REQUEST / RESPONSE is chosen</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52104">
      Bug
      52104</a> - TCP Sampler handles badly errors</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52087">
      Bug
      52087</a> - TCPClient interface does not allow for partial reads</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52115">
      Bug
      52115</a> - SOAP/XML-RPC should not send a POST request when file to send is not found</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=40750">
      Bug
      40750</a> - TCPSampler : Behaviour when sockets are closed by remote host</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52396">
      Bug
      52396</a> - TCP Sampler in "reuse connection mode" reuses previous sampler's connection even if it's configured with other host, port, user or password</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52048">
      Bug
      52048</a> - BSFSampler, BSFPreProcessor and BSFPostProcessor should share the same GUI</li>

</ul>


<h3>Controllers</h3>

<ul>

</ul>


<h3>Listeners</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52022">
      Bug
      52022</a> - In View Results Tree rather than showing just a message if the results are to big, show as much of the result as are configured</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52201">
      Bug
      52201</a> - Add option to TableVisualiser to display child samples instead of parent </li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52214">
      Bug
      52214</a> - Save Responses to a file - improve naming algorithm</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52340">
      Bug
      52340</a> - Allow remote sampling mode to be changed at run-time</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52452">
      Bug
      52452</a> - Improvements on Aggregate Graph Listener (GUI and settings)</li>

<li>Resurrected OldSaveService to allow reading Avalon format JTL (result) files</li>

</ul>


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

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52128">
      Bug
      52128</a> - Add JDBC pre- and post-processor</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52183">
      Bug
      52183</a> - SyncTimer could be improved (performance+reliability)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52317">
      Bug
      52317</a> - Counter : Add option to reset counter on each Thread Group iteration</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=37073">
      Bug
      37073</a> - Add a Poisson based timer</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52497">
      Bug
      52497</a> - Improve DebugSampler and DebugPostProcessor</li>

</ul>


<h3>Functions</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52006">
      Bug
      52006</a> - Create a function RandomString to generate random Strings</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52016">
      Bug
      52016</a> - It would be useful to support Jexl2</li>

<li>__char() function now supports octal values</li>

<li>New function __machineIP returning IP address</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51091">
      Bug
      51091</a> - New function returning the name of the current "Test Plan"</li>

</ul>


<h3>I18N</h3>

<ul>

</ul>


<h3>General</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51892">
      Bug
      51892</a> - Default mirror port should be different from default proxy port</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51817">
      Bug
      51817</a> - Moving variables up and down in User Defined Variables control</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51876">
      Bug
      51876</a> - Functionality to search in Samplers TreeView</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52019">
      Bug
      52019</a> - Add menu option to Start a test ignoring Pause Timers</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52027">
      Bug
      52027</a> - Allow System or CrossPlatform LAF to be set from options menu</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52037">
      Bug
      52037</a> - Remember user-set LaF over restarts.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51861">
      Bug
      51861</a> - Improve HTTP Request GUI to better show parameters without name (GWT RPC requests for example) (UNDER DEVELOPMENT)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52040">
      Bug
      52040</a> - Add a toolbar in JMeter main window</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51816">
      Bug
      51816</a> - Comment Field in User Defined Variables control.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52052">
      Bug
      52052</a> - Using a delimiter to separate result-messages for JMS Subscriber</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52103">
      Bug
      52103</a> - Add automatic scrolling option to table visualizer</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52097">
      Bug
      52097</a> - Save As should point to same folder that was used to open a file if MRU list is used</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52085">
      Bug
      52085</a> - Allow multiple selection in arguments panel</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52099">
      Bug
      52099</a> - Allow to set the transaction isolation in the JDBC Connection Configuration</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52116">
      Bug
      52116</a> - Allow to add (paste) entries from the clipboard to an arguments list</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52160">
      Bug
      52160</a> - Don't display TestBeanGui items which are flagged as hidden</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51886">
      Bug
      51886</a> - SampleSender configuration resolved partly on client and partly on server</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52161">
      Bug
      52161</a> - Enable plugins to add own translation rules in addition to upgrade.properties.
Loads any additional properties found in META-INF/resources/org.apache.jmeter.nameupdater.properties files</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=42538">
      Bug
      42538</a> - Add "duplicate node" in context menu</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=46921">
      Bug
      46921</a> - Add Ability to Change Controller elements</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52240">
      Bug
      52240</a> - TestBeans should support Boolean, Integer and Long</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52241">
      Bug
      52241</a> - GenericTestBeanCustomizer assumes that the default value is the empty string</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52242">
      Bug
      52242</a> - FileEditor does not allow output to be saved in a File </li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51093">
      Bug
      51093</a> - when loading a selection previously stored by "Save Selection As", show the file name in the blue window bar</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=50086">
      Bug
      50086</a> - Password fields not Hidden in JMS Publisher, JMS Subscriber, Mail Reader sampler, SMTP sampler and Database Configuration</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=29352">
      Bug
      29352</a> - Use external store to hold samples during distributed testing, Added DiskStore remote sample sender: like Hold, but saves samples to disk until end of test.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52333">
      Bug
      52333</a> - Reduce overhead in calculating SampleResult#nanoTimeOffset</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52346">
      Bug
      52346</a> - Shutdown detects if there are any non-daemon threads left which prevent JVM exit.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52281">
      Bug
      52281</a> - Support for file Drag and Drop</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52471">
      Bug
      52471</a> - Improve Mirror Server performance by Using Pool of threads instead of launching a Thread for each request</li>

<li>Resurrected OldSaveService to allow reading Avalon format JMX files (removed in 2.4)</li>

<li>Add a dialog box to confirm removing the element(s) when Remove action is called</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=41788">
      Bug
      41788</a> - Log viewer (console window) needed as an option</li>

<li>Add option to change the pause time (default 2000ms) in the daemon thread which checks for successful JVM exit.
The thread is not now started unless the pause time is greater than 0.
</li>

</ul>


<h2>Non-functional changes</h2>

<ul>

<li>fixes to build.xml: support scripts; localise re-usable property names</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51923">
      Bug
      51923</a> - Counter function bug or documentation issue ? (fixed docs)</li>

<li>Update velocity.jar to 1.7 (from 1.6.2)</li>

<li>Update js.jar to 1.7R3 (from 1.6R5)</li>

<li>Update commons-codec 1.5 &rArr; 1.6</li>

<li>Update commons-io 2.0.1 &rArr; 2.1</li>

<li>Update commons-jexl 2.0.1 &rArr; 2.1.1</li>

<li>Update jdom 1.1 &rArr; 1.1.2</li>

<li>Update junit 4.9 &rArr; 4.10</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51954">
      Bug
      51954</a> - Generated documents include &lt;/br&gt; entries which cause extra blank lines </li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52075">
      Bug
      52075</a> - JMeterProperty.clone() currently returns Object; it should return JMeterProperty</li>

<li>Updated httpcore to 4.1.4</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=49753">
      Bug
      49753</a> - Please publish jMeter artifacts on Maven central repository</li>

</ul>




<h1>Version 2.5.1</h1>


<h2>Summary of main changes</h2>


<ul>

<li>HttpClient4 sampler now re-uses connections properly (previously it would use one per sample, which could quickly cause resource exhaustion).</li>

<li>Various fixes to JMS samplers</li>

<li>Functions are no longer spuriously invoked when used with a Configuration element</li>

<li>WebService sampler GUI has been re-organized for better design and more user-friendliness. Some improvements on WSDL configuration assistant</li>

<li>Better handling of test shutdown. System.exit now only called if there is no other option; even this can be disabled.</li>

</ul>



<h2>Known bugs</h2>


<p>
The Include Controller has some problems in non-GUI mode.
In particular, it can cause a NullPointerException if there are two include controllers with the same name.
</p>


<p>The Once Only controller behaves correctly under a Thread Group or Loop Controller,
but otherwise its behaviour is not consistent (or clearly specified).</p>


<p>The If Controller may cause an infinite loop if the condition is always false from the first iteration.
A workaround is to add a sampler at the same level as (or superior to) the If Controller.
For example a Test Action sampler with 0 wait time (which doesn't generate a sample),
or a Debug Sampler with all fields set to False (to reduce the sample size).
</p>


<p>
The menu item Options / Choose Language does not change all the displayed text to the new language.
[The behaviour has improved, but language change is still not fully working]
To override the default local language fully, set the JMeter property "language" before starting JMeter.
</p>


<h2>Incompatible changes</h2>


<p>
The HttpClient4 and Commons HttpClient 3.1 samplers previously used a retry count of 3.
This has been changed to default to 1, to be compatible with the Java implementation.
The retry count can be overridden by setting the relevant JMeter property, for example:
<pre>
httpclient4.retrycount=3
httpclient3.retrycount=3
</pre>

</p>


<h2>Bug fixes</h2>


<h3>HTTP Samplers and Proxy</h3>

<ul>

<li>Fix HttpClient 4 sampler so it reuses HttpClient instances and connections where possible.</li>

<li>Temporary fix to HC4 sampler to work round HTTPCLIENT-1120.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51863">
      Bug
      51863</a> - Lots of ESTABLISHED connections with HttpClient 4 implementation (vs HttpClient 3.1 impl)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51750">
      Bug
      51750</a> - Retrieve all embedded resources doesn't follow IFRAME</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51752">
      Bug
      51752</a> - HTTP Cache is broken when using "Retrieve all embedded resources" with concurrent pool</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=39219">
      Bug
      39219</a> - HTTP Server: You can't stop it after File&rarr;Open</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51775">
      Bug
      51775</a> - Port number duplicates in Host header when capturing by HttpClient (3.1 and 4.x)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=50617">
      Bug
      50617</a> - Monitor Results legend show "dead" server although values from the server are retrieved</li>

</ul>


<h3>Other Samplers</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=50424">
      Bug
      50424</a> - Web Methods drop down list box inconsistent</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=43293">
      Bug
      43293</a> - Java Request fields not cleared when creating new sampler</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51830">
      Bug
      51830</a> - Webservice Soap Request triggers too many popups when Webservice WSDL URL is down</li>

<li>WebService(SOAP) request - add a connect timeout to get the wsdl used to populate Web Methods when server doesn't response</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51841">
      Bug
      51841</a> - JMS : If an error occurs in ReceiveSubscriber constructor or Publisher, then Connections will stay open</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51691">
      Bug
      51691</a> - Authorization does not work for JMS Publisher and JMS Subscriber</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51840">
      Bug
      51840</a> - JMS : Cache of InitialContext has some issues</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=47888">
      Bug
      47888</a> - JUnit Sampler re-uses test object</li>

</ul>


<h3>Controllers</h3>

<ul>

<li>If Controller - Fixed two regressions introduced by <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=50032">
      Bug
      50032</a> (see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=50618">
      Bug
      50618</a> too)</li>

<li>If Controller - Catches a StackOverflowError when a condition returns always false (after at least one iteration with return true) See <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=50618">
      Bug
      50618</a>
</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51869">
      Bug
      51869</a> - NullPointer Exception when using Include Controller</li>

</ul>


<h3>Listeners</h3>

<ul>

</ul>


<h3>Assertions</h3>

<ul>

</ul>


<h3>Functions</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=48943">
      Bug
      48943</a> - Functions are invoked additional times when used in combination with a Config Element</li>

</ul>


<h3>I18N</h3>

<ul>

<li>WebService(SOAP) request - add I18N for some labels</li>

</ul>


<h3>General</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51831">
      Bug
      51831</a> - Cannot disable UDP server or change the maximum UDP port</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51821">
      Bug
      51821</a> - Add short-cut for Enabling / Disabling (sub)tree or branches in test plan.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=47921">
      Bug
      47921</a> - Variables not released for GC after JMeterThread exits.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51839">
      Bug
      51839</a> - "&hellip; end of run" printed prematurely</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51847">
      Bug
      51847</a> - Some JUnit tests are Locale sensitive and fail if Locale is different from US</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51855">
      Bug
      51855</a> - Parent samples may have slightly inaccurate elapsed times</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51880">
      Bug
      51880</a> - The shutdown command is not working if I invoke it before all the thread are started</li>

<li>Remote Shut host menu item was not being enabled.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51888">
      Bug
      51888</a> - Occasional deadlock when stopping a testplan</li>

</ul>




<h2>Improvements</h2>


<h3>HTTP Samplers</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51380">
      Bug
      51380</a> - Control reuse of cached SSL Context from iteration to iteration</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51882">
      Bug
      51882</a> - HTTPHC3Client uses a default retry count of 3, make it configurable; default is now 1</li>

<li>Change the default HttpClient 4 sampler retry count to 1</li>

</ul>


<h3>Other samplers</h3>

<ul>

<li>Beanshell Sampler now supports Interruptible interface</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51605">
      Bug
      51605</a> - WebService(SOAP) Request - WebMethod field value changes surreptitiously for all the requests when a value is selected in a request</li>

<li>WebService(SOAP) Request - Reorganized GUI for better design and more user-friendliness</li>

</ul>


<h3>Controllers</h3>

<ul>

</ul>


<h3>Listeners</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=42246">
      Bug
      42246</a> - Need for a 'auto-scroll' option in "View Results Tree" and "Assertion Results"</li>

<li>View Results Tree: Regexp Tester - little improvements on user interface</li>

</ul>


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

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51885">
      Bug
      51885</a> - Allow a JMeter Variable as input to XPathExtractor</li>

</ul>


<h3>Functions</h3>

<ul>

</ul>


<h3>I18N</h3>

<ul>

</ul>


<h3>General</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51822">
      Bug
      51822</a> - (part 1) save 1 invocation of GuiPackage#getCurrentGui</li>

<li>Added AsynchSampleSender which sends samples from server to client asynchronously.</li>

<li>Upgraded to htmlparser 2.1; JavaMail 1.4.4; JUnit 4.9</li>

</ul>


<h2>Non-functional changes</h2>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=49976">
      Bug
      49976</a> - FormCharSetFinder visibility is default instead of public. </li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=50917">
      Bug
      50917</a> - Property CookieManager.save.cookies not honored when set from test plan</li>

<li>Improve error logging when Javascript errors are detected.</li>

<li>Updated documentation footer</li>

</ul>




<h1>Version 2.5</h1>


<h2>Summary of main changes</h2>


<ul>

<li>The HTTP implementation can now be selected at run-time, and JMeter now also supports Apache HttpComponents HttpClient 4.x.
Note that Commons HttpClient 3.1 is no longer actively developed, and support may be removed from JMeter in a future release.
</li>

<li>The HTTP sampler now allows concurrent downloads of embedded resources in an HTML page</li>

<li>The HTTP Sampler can now report the size of a request before decompression.</li>

<li>The JMS and Mail samplers have been improved.</li>

<li>The new Test Fragment Test Element makes using Include Controllers easier</li>

<li>There are various improvements to the View Results Tree Listener</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=30563">
      Bug
      30563</a> - Thread Group should have a start next loop option on Sample Error</li>

<li>There are two new Thread Group types - setUp and tearDown - which are run before and after the main Thread groups.</li>

<li>Client-Server mode now supports external stop/shutdown via UDP<br>
multiple JMeter server instances can be started on the same host without needing to change the port property.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=50516">
      Bug
      50516</a> - "Host" header in HTTP Header Manager is not included in generated HTTP request</li>

</ul>


<p>

<ul>

</ul>

</p>





<h2>Known bugs</h2>


<p>
The Include Controller has some problems in non-GUI mode.
In particular, it can cause a NullPointerException if there are two include controllers with the same name.
</p>


<p>Once Only controller behaves correctly under a Thread Group or Loop Controller,
but otherwise its behaviour is not consistent (or clearly specified).</p>


<p>
The menu item Options / Choose Language does not change all the displayed text to the new language.
[The behaviour has improved, but language change is still not fully working]
To override the default local language fully, set the JMeter property "language" before starting JMeter.
</p>


<h2>Incompatible changes</h2>


<p>
Unsupported methods are no longer converted to GET by the Commons HttpClient sampler.
</p>


<p>
Removed method public static long currentTimeInMs().
This has been replaced by the instance method public long currentTimeInMillis().
</p>


<p>
ProxyControl.getSamplerTypeName() now returns a String rather than an int.
This is internal to the workings of the JMeter Proxy &amp; its GUI, so should not affect any user code.
</p>


<h2>Bug fixes</h2>


<h3>HTTP Samplers and Proxy</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=50178">
      Bug
      50178</a> - HeaderManager added as child of Thread Group can create concatenated HeaderManager names and OutOfMemoryException</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=50392">
      Bug
      50392</a> - value is trimmed when sending the request in Multipart</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=50686">
      Bug
      50686</a> - HeaderManager logging too verbose when merging instances</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=50963">
      Bug
      50963</a> - AjpSampler throws java.lang.StringIndexOutOfBoundsException</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=50516">
      Bug
      50516</a> - "Host" header in HTTP Header Manager is not included in generated HTTP request</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=50544">
      Bug
      50544</a> - In Apache Common Log the HEAD requests cause problems.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51268">
      Bug
      51268</a> - HTTPS request through an invalid proxy causes NullPointerException and does not show in result tree.
Rather than delegating to the JMeter thread handler for "unexpected" failures, ensure all Exceptions generate a sample error.
</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51275">
      Bug
      51275</a> - Cookie Panel clearGui() sets incorrect default policy in Java 1.6</li>

</ul>


<h3>Other Samplers</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=50173">
      Bug
      50173</a> - JDBCSampler discards ResultSet from a PreparedStatement</li>

<li>Ensure JSR223 Sampler has access to the current SampleResult</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=50977">
      Bug
      50977</a> - Unable to set TCP Sampler for individual samples</li>

</ul>


<h3>Controllers</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=50032">
      Bug
      50032</a> - Last_Sample_Ok along with other controllers doesn't work correctly when the threadgroup has multiple loops</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=50080">
      Bug
      50080</a> - Transaction controller incorrectly creates samples including timer duration</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=50134">
      Bug
      50134</a> - TransactionController : Reports bad response time when it contains other TransactionControllers</li>

</ul>


<h3>Listeners</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=50367">
      Bug
      50367</a> - Clear / Clear all in View results tree does not clear selected element</li>

</ul>


<h3>Assertions</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51488">
      Bug
      51488</a> - Assertion: Variable name scope is shared among all assertions (and <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51255">
      Bug
      51255</a>)</li>

</ul>


<h3>Functions</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=50568">
      Bug
      50568</a> - Function __FileToString(): Could not read file when encoding option is blank/empty</li>

</ul>


<h3>I18N</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=50811">
      Bug
      50811</a> - Incomplete Spanish translation</li>

</ul>


<h3>General</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=49734">
      Bug
      49734</a> - Null pointer exception on stop Threads command (Run &rarr; Stop)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=49666">
      Bug
      49666</a> - CSV Header read as data after EOF</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=45703">
      Bug
      45703</a> - Synchronizing Timer</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=50088">
      Bug
      50088</a> - fix getAvgPageBytes in SamplingStatCalculator so it returns what it should</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=50203">
      Bug
      50203</a> Cannot set property "jmeter.save.saveservice.default_delimiter=\t"</li>

<li>mirror-server.sh - fix classpath to use : separator (not ;)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=50286">
      Bug
      50286</a> - URL Re-writing Modifier: extracted jsessionid value is incorrect when is between XML tags</li>

<li>
System.nanoTime() tends to drift relative to System.currentTimeMillis().
Change SampleResult to recalculate offset each time.
Also enable reversion to using System.currentTimeMillis() only.
</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=50425">
      Bug
      50425</a> - Remove thread groups from Controller add menu</li>

<li>

<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=50675">
      Bug
      50675</a> - CVS Data Set Config incompatible with Remote Start
Fixed RMI startup to provide location of JMX file relative to user.dir.
</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=50221">
      Bug
      50221</a> - Renaming elements in the tree does not resize label</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51002">
      Bug
      51002</a> - Stop Thread if CSV file is not available. JMeter now treats IOError as EOF.</li>

<li>Define sun.net.http.allowRestrictedHeaders=true by default. This fixes <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51238">
      Bug
      51238</a>.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51645">
      Bug
      51645</a> - CSVDataSet does not read UTF-8 files when file.encoding is UTF-8</li>

</ul>




<h2>Improvements</h2>


<h3>HTTP Samplers</h3>

<ul>

<li>AJP Sampler now implements Interruptible</li>

<li>Allow HTTP implementation to be selected at run-time</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=50684">
      Bug
      50684</a> - Optionally disable Content-Type and Transfer-Encoding in Multipart POST</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=50943">
      Bug
      50943</a> - Allowing concurrent downloads of embedded resources in html page</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=50170">
      Bug
      50170</a> - Bytes reported by http sampler is after GUnZip<br>Add optional properties to allow change the method to get response size</li>

<li>Hiding the proxy password on HTTP Sampler (just on GUI, not in JMX file)</li>

</ul>


<h3>Other samplers</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=49622">
      Bug
      49622</a> - Allow sending messages without a subject (SMTP Sampler)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=49603">
      Bug
      49603</a> - Allow accepting expired certificates on Mail Reader Sampler</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=49775">
      Bug
      49775</a> - Allow sending messages without a body</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=49862">
      Bug
      49862</a> - Improve SMTPSampler Request output.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=50268">
      Bug
      50268</a> - Adds static and dynamic destinations to JMS Publisher</li>

<li>JMS Subscriber - Add dynamic destination</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=50666">
      Bug
      50666</a> - JMSSubscriber: support for durable subscriptions</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=50937">
      Bug
      50937</a> - TCP Sampler does not provide for / honor connect timeout</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=50569">
      Bug
      50569</a> - Jdbc Request Sampler to optionally store result set object data</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51011">
      Bug
      51011</a> - Mail Reader: upon authentication failure, tell what you tried</li>

</ul>


<h3>Controllers</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=50475">
      Bug
      50475</a> - Introduction of a Test Fragment Test Element for a better Include flow</li>

</ul>


<h3>Listeners</h3>

<ul>

<li>View Results Tree - Add a dialog's text box on "Sampler result tab &rarr; Parsed" to display the long value with a double click on cell</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=37156">
      Bug
      37156</a> - Formatted view of Request in Results Tree</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=49365">
      Bug
      49365</a> - Allow result set to be written to file in a path relative to the loaded script</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=50579">
      Bug
      50579</a> - Error count is long, sample count is int. Changed sample count to long.</li>

<li>View Results Tree - Add new size fields: response headers and response body (in bytes) - derived from <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=43363">
      Bug
      43363</a>
</li>

</ul>


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

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=48015">
      Bug
      48015</a> - Proposal new icons for pre-processor, post-processor and assertion elements</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=50962">
      Bug
      50962</a> - SizeAssertionGui validation prevents the use of variables for the size</li>

<li>Size Assertion - Add response size scope (full, headers, body, code, message) - derived from <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=43363">
      Bug
      43363</a>
</li>

</ul>


<h3>Functions</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=49975">
      Bug
      49975</a> - New function returning the name of the current sampler</li>

</ul>


<h3>I18N</h3>

<ul>

<li>Add French translation for the new labels and reduce size for some labels (by abbreviation) on HTTP Sample</li>

</ul>


<h3>General</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=30563">
      Bug
      30563</a> - Thread Group should have a start next loop option on Sample Error</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=50347">
      Bug
      50347</a> - Eclipse setup instructions should remind user to download dependent jars</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=50490">
      Bug
      50490</a> - Setup and Post Thread Group enhancements for better test flow.</li>

<li>All BeanShell test elements now have the script variables "prev" and "Label" defined.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=50708">
      Bug
      50708</a> - Classpath jar order in NewDriver not alphabetically</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=50659">
      Bug
      50659</a> - JMeter server does not support concurrent tests - prevent client from starting another</li>

<li>Added remote shutdown functionality</li>

<li>Client JMeter engine now supports external stop/shutdown via UDP</li>

<li>UDP shutdown can now use a range of ports, from jmeterengine.nongui.port=4445 to jmeterengine.nongui.maxport=4455,
allowing multiple JMeter instances on the same host without needing to change the port property.</li>

<li>Updated to httpcore 4.1.3 and httpclient 4.1.2</li>

</ul>


<h2>Non-functional changes</h2>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=50008">
      Bug
      50008</a> - Allow BatchSampleSender to be subclassed</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=50450">
      Bug
      50450</a> - use System.array copy in jacobi solver as, being native, is more performant.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=50487">
      Bug
      50487</a> - runSerialTest verifies objects that never need persisting</li>

<li>Use Thread.setDefaultUncaughtExceptionHandler() instead of private ThreadGroup</li>

<li>Update to Commons Net 3.0</li>

</ul>




<h1>Version 2.4</h1>


<h2>Summary of main changes</h2>


<p>

<ul>

<li>JMeter now requires at least Java 1.5.</li>

<li>HTTP Proxy can now record HTTPS sessions.</li>

<li>JUnit sampler now supports JUnit4 annotations.</li>

<li>Added JSR223 (javax.script) test elements.</li>

<li>MailReader Sampler can now use any protocol supported by the underlying implementation.</li>

<li>An SMTP Sampler has been added.</li>

<li>JMeter now allows users to provide their own Thread Group implementations.</li>

<li>View Results Tree now supports more display options, including search and Regex Testing.</li>

<li>StatCalculator performance is much improved; Aggregate Report etc. need far less memory.</li>

<li>
JMS samplers have been extensively reworked, and should no longer lose messages.
Correlation processing is improved.
JMS Publisher and Subscriber now support both Topics and Queues.
</li>

<li>Many other improvements have been made, please see below and in the manual.</li>

</ul>

</p>





<h2>Known bugs</h2>


<p>
The Include Controller has some problems in non-GUI mode.
In particular, it can cause a NullPointerException if there are two include controllers with the same name.
</p>


<p>Once Only controller behaves correctly under a Thread Group or Loop Controller,
but otherwise its behaviour is not consistent (or clearly specified).</p>


<p>
The menu item Options / Choose Language does not change all the displayed text to the new language.
[The behaviour has improved, but language change is still not fully working]
To override the default local language fully, set the JMeter property "language" before starting JMeter.
</p>


<h2>Incompatible changes</h2>


<p>
HTTP Redirect now defaults to "Follow Redirects" rather than "Redirect Automatically".
This is to enable JMeter to track cookies that may be sent during redirects.
This does not affect existing test plans; it only affects the default for new HTTP Samplers.
</p>


<p>
The Avalon file format for JMX and JTL files is no longer supported.
Any such files will need to be converted by reading them in JMeter 2.3.4 and resaving them.
</p>


<p>
The XPath Assertion and XPath Extractor elements no longer fetch external DTDs by default; this can be changed in the GUI.
</p>


<p>
JMSConfigGui has been renamed as JMSSamplerGui.
This does not affect existing test plans.
</p>


<p>
The constructor public SampleResult(SampleResult res) has been changed to become a true "copy constructor".
It no longer calls addSubResult(). This may possibly affect some 3<sup>rd</sup> party add-ons.
</p>


<h2>Bug fixes</h2>


<h3>HTTP Samplers and Proxy</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=47445">
      Bug
      47445</a> - Using Proxy with https-spoofing secure cookies need to be unsecured</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=47442">
      Bug
      47442</a> - Missing replacement of https by http for certain conditions using https-spoofing</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=48451">
      Bug
      48451</a> - Error in: SoapSampler.setPostHeaders(PostMethod post) in the else branch</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=48542">
      Bug
      48542</a> - SoapSampler uses wrong response header field to decide if response is gzip encoded</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=48568">
      Bug
      48568</a> - CookieManager broken for AjpSampler</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=48570">
      Bug
      48570</a> - AjpSampler doesn't support query parameters (GET/POST)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=46901">
      Bug
      46901</a> - HTTP Sampler does not process var/func refs correctly in first file parameter</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=43678">
      Bug
      43678</a> - Handle META tag http-equiv charset?</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=49294">
      Bug
      49294</a> - Images not downloaded from redirected-to pages</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=49560">
      Bug
      49560</a> - wrong "size in bytes" when following redirections</li>

</ul>


<h3>Other Samplers</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=47420">
      Bug
      47420</a> - LDAP extended request not closing connections during add request</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=48573">
      Bug
      48573</a> - LDAPExtSampler directory context handling</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=47870">
      Bug
      47870</a> - JMSSubscriber fails due to NPE</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=47899">
      Bug
      47899</a> - NullPointerExceptions in JMS ReceiveSubscriber constructor</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=48144">
      Bug
      48144</a> - NPE in JMS OnMessageSubscriber</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=47992">
      Bug
      47992</a> - JMS Point-to-Point Request - Response option doesn't work</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=48579">
      Bug
      48579</a> - Single Bind does not show config information when LdapExt Sampler is accessed</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=49111">
      Bug
      49111</a> - "Message With ID Not Found" Error on JMS P2P sampler.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=47949">
      Bug
      47949</a> - JMS Subscriber never receives all the messages</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=46142">
      Bug
      46142</a> - JMS Point-to-Point correlation problems</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=48747">
      Bug
      48747</a> - TCP Sampler swallows exceptions</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=48709">
      Bug
      48709</a> - TCP Sampler Config setting "classname" has no effect</li>

</ul>


<h3>Controllers</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=47385">
      Bug
      47385</a> - TransactionController should set AllThreads and GroupThreads</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=47940">
      Bug
      47940</a> - Module controller incorrectly creates the replacement Sub Tree</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=47592">
      Bug
      47592</a> - Run Thread groups consecutively with "Stop test" on error, JMeter will not mark to finished</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=48786">
      Bug
      48786</a> - Run Thread groups consecutively: with "Stop test now" on error or manual stop, JMeter leaves the green box active</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=48727">
      Bug
      48727</a> - Cannot stop test if all thread groups are disabled</li>

</ul>


<h3>Listeners</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=48603">
      Bug
      48603</a> - Mailer Visualiser sends two emails for a single failed response</li>

<li>Correct calculation of min/max/std.dev for aggregated samples (Summary Report)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=48889">
      Bug
      48889</a> - Wrong response time with mode=Statistical and num_sample_threshold &gt; 1</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=47398">
      Bug
      47398</a> - SampleEvents are sent twice over RMI in distributed testing and non gui mode</li>

</ul>


<h3>Assertions</h3>

<ul>

</ul>


<h3>Functions</h3>

<ul>

</ul>


<h3>I18N</h3>

<ul>

</ul>


<h3>General</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=47646">
      Bug
      47646</a> -  NullPointerException in the "Random Variable" element</li>

<li>Disallow adding any child elements to JDBC Configuration</li>

<li>BeanInfoSupport now caches getBeanDescriptor() - should avoid an NPE on non-Sun JVMs when using CSVDataSet (and some other TestBeans)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=48350">
      Bug
      48350</a> - Deadlock on distributed testing with 2 clients</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=48901">
      Bug
      48901</a> - Endless wait by adding Synchronizing Timer</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=49149">
      Bug
      49149</a> - usermanual/index.html has typo in link to "Regular Expressions" page</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=49394">
      Bug
      49394</a> - Classcast Exception in ActionRouter.postActionPerformed</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=48136">
      Bug
      48136</a> - Essential files missing from source tarball.<br>
Source archives now contain all source files, including source files previously only provided in the binary archives.
</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=48331">
      Bug
      48331</a> - XpathExtractor does not return XML string representations for a Nodeset</li>

</ul>




<h2>Improvements</h2>


<h3>HTTP Samplers</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=47622">
      Bug
      47622</a> - enable recording of HTTPS sessions</li>

<li>Allow Proxy Server to be specified on HTTP Sampler GUI and HTTP Config GUI</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=47461">
      Bug
      47461</a> - Update Cache Manager to handle Expires HTTP header</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=48153">
      Bug
      48153</a> - Support for Cache-Control and Expires headers</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=47946">
      Bug
      47946</a> - Proxy should enable Grouping inside a Transaction Controller</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=48300">
      Bug
      48300</a> - Allow override of IP source address for HTTP HttpClient requests</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=49083">
      Bug
      49083</a> - collapse '/pathsegment/..' in redirect URLs</li>

</ul>


<h3>Other samplers</h3>

<ul>

<li>JUnit sampler now supports JUnit4 tests (using annotations)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=47900">
      Bug
      47900</a> - Allow JMS SubscriberSampler to be interrupted</li>

<li>Added JSR223 Sampler</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=47556">
      Bug
      47556</a> - JMS-PointToPoint-Sampler Timeout field should use Strings</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=47947">
      Bug
      47947</a> - Mail Reader Sampler should allow port to be overridden</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=48155">
      Bug
      48155</a> - Multiple problems / enhancements with JMS protocol classes</li>

<li>Allow MailReader sampler to use arbitrary protocols</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=45053">
      Bug
      45053</a> - SMTP-Sampler for JMeter</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=49552">
      Bug
      49552</a> - Add Message Headers on SMTPSampler</li>

<li>
JMS Publisher and Subscriber now support both Topics and Queues.
Added read Timeout to JMS Subscriber.
General clean-up of JMS code.
</li>

</ul>


<h3>Controllers</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=47909">
      Bug
      47909</a> - TransactionController should sum the latency</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=41418">
      Bug
      41418</a> - Exclude timer duration from Transaction Controller runtime in report</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=48749">
      Bug
      48749</a> - Allowing custom Thread Groups</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=43389">
      Bug
      43389</a> - Allow Include files to be found relative to the current JMX file</li>

</ul>


<h3>Listeners</h3>

<ul>

<li>Added DataStrippingSample sender - supports "Stripped" and "StrippedBatch" modes.</li>

<li>Added Comparison Assertion Visualizer</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=47907">
      Bug
      47907</a> - Improvements (enhancements and I18N) Comparison Assertion and Comparison Visualizer</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=36726">
      Bug
      36726</a> - add search function to Tree View Listener</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=47869">
      Bug
      47869</a> - Ability to cleanup fields of SampleResult</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=47952">
      Bug
      47952</a> - Added JSR223 Listener</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=47474">
      Bug
      47474</a> - View Results Tree support for plugin renderers</li>

<li>Allow Idle Time to be saved to sample log files</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=48259">
      Bug
      48259</a> - Improve StatCalculator performance by using TreeMap</li>

<li>Listeners using SamplingStatCalculator have much reduced memory needs
as the Sample cache has been moved to the new CachingStatCalculator class.
In particular, Aggregate Report can now handle large numbers of samples.
</li>

<li>Aggregate Report and Summary Report now allow column headers to be optionally excluded</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=49506">
      Bug
      49506</a> - Add .csv File Extension in open dialog box from "read from file" functionality of listeners</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=49545">
      Bug
      49545</a> - Formatted (parsed) view of Sample Result in Results Tree</li>

</ul>


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

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=47338">
      Bug
      47338</a> - XPath Extractor forces retrieval of document DTD</li>

<li>Added Comparison Assertion</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=47952">
      Bug
      47952</a> - Added JSR223 PreProcessor and PostProcessor</li>

<li>Added JSR223 Assertion</li>

<li>Added BSF Timer and JSR223 Timer</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=48511">
      Bug
      48511</a> - add parent,child,all selection to regex extractor</li>

<li>Add Sampler scope selection to XPathExtractor</li>

<li>Regular Expression Extractor, Response Assertion and Size Assertion can now be applied to a JMeter variable</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=46790">
      Bug
      46790</a> - CSV Data Set Config should be able to parse CSV headers</li>

</ul>


<h3>Functions</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=47565">
      Bug
      47565</a> - [Function] FileToString</li>

</ul>


<h3>I18N</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=47938">
      Bug
      47938</a> -  Adding some French translations for new elements</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=48714">
      Bug
      48714</a> -  add new French messages</li>

</ul>


<h3>General</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=47223">
      Bug
      47223</a> - Slow Aggregate Report Performance (StatCalculator)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=47980">
      Bug
      47980</a> - hostname resolves to 127.0.0.1 - specifying IP not possible</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=47943">
      Bug
      47943</a> - DisabledComponentRemover is not used in Start class</li>

<li>HeapDumper class for runtime generation of dumps</li>

<li>Basic read-only JavaMail provider implementation for reading raw mail files</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=49540">
      Bug
      49540</a> - Sort "Add" menus alphabetically</li>

</ul>


<h2>Non-functional changes</h2>

<ul>

<li>Beanshell, JavaMail and JMS API (Apache Geronimo) jars are now included in the binary archive.</li>

<li>Add TestBean Table Editor support</li>

<li>Removed all external libraries from SVN; added download_jars Ant target</li>

<li>Updated various jar files:
<ul>

<li>BeanShell - 2.0b4 &rArr; 2.0b5</li>

<li>Commons Codec - 1.3 &rArr; 1.4</li>

<li>Commons-Collections - 3.2 &rArr; 3.2.1</li>

<li>JTidy &rArr; r938</li>

<li>JUnit - 3.8.2 &rArr; 4.8.1</li>

<li>Logkit - 1.2 &rArr; 2.0</li>

<li>Xalan Serializer = 2.7.1 (previously erroneously shown as 2.9.1)</li>

<li>Xerces xml-apis = 1.3.04 (previously erroneously shown as 2.9.1)</li>

<li>Some jar files were renamed.</li>

</ul>

</li>

</ul>




<h1>Version 2.3.4</h1>


<h2>Summary of main changes</h2>


<p>
This is a minor bug-fix release, mainly to correct some bugs that were accidentally added in 2.3.3.
</p>



<h2>Known bugs</h2>


<p>
The Include Controller has some problems in non-GUI mode.
In particular, it can cause a NullPointerException if there are two include controllers with the same name.
</p>


<p>Once Only controller behaves correctly under a Thread Group or Loop Controller,
but otherwise its behaviour is not consistent (or clearly specified).</p>


<p>
The menu item Options / Choose Language does not change all the displayed text to the new language.
[The behaviour has improved, but language change is still not fully working]
To override the default local language fully, set the JMeter property "language" before starting JMeter.
</p>


<h2>Bug fixes</h2>


<h3>HTTP Samplers and Proxy</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=47321">
      Bug
      47321</a> -  HTTPSampler2 response timeout not honored</li>

</ul>


<h3>Other Samplers</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=47290">
      Bug
      47290</a> -  Infinite loop on connection factory lookup (JMS)</li>

<li>JDBC Sampler should not close Prepared or Callable statements as these are cached</li>

</ul>


<h3>Controllers</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=39509">
      Bug
      39509</a> -  Once-only controller running twice</li>

</ul>


<h3>Listeners</h3>

<ul>

<li>Change ResultCollector to only warn if the directory was not created</li>

<li>Fix some synchronisation issues in ResultCollector and SampleResult (wrong locks were being used)</li>

</ul>


<h3>I18N</h3>

<ul>

<li>Fixed bug introduced in 2.3.3: JMeter does not start up if there is no messages.properties file for the default Locale.</li>

</ul>


<h3>General</h3>

<ul>

<li>Fix problems with remote clients - bug introduced in 2.3.3</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=47377">
      Bug
      47377</a> - Make ClassFinder more robust and close zipfile resources</li>

<li>Fix some errors in generating the documentation (latent bug revealed in 2.3.3 when Velocity was upgraded)</li>

</ul>


<h2>Improvements</h2>


<h3>Other samplers</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=47266">
      Bug
      47266</a> - FTP Request Sampler: allow specifying an FTP port, other than the default</li>

</ul>




<h1>Version 2.3.3</h1>


<h2>Summary of main changes</h2>


<p>
The handling of test closedown is much improved.
The gradual "Shutdown" command now waits until all threads have stopped,
and does not report an error if threads don't stop within 5 seconds.
The immediate "Stop" command can now be used if "Shutdown" takes too long.
Also the immediate "Stop" command is able to interrupt samplers which support the new Interruptible interface (e.g. HTTP and SOAP, FTP).
This allows immediate completion of pending responses.
Non-GUI mode tests can also now be sent a "Shutdown" or "Stop" message.
<a href="./usermanual/component_reference.html#Test_Action">Test Action</a> now supports a "Stop Now" action,
as do the <a href="./usermanual/component_reference.html#Thread_Group">Thread Group</a> and <a href="./usermanual/component_reference.html#Result_Status_Action_Handler">Result Status Action Handler</a> Post Processor elements.
</p>


<p>
HTTP Cookie handling is improved, and HTTP POST can now use variable file names correctly.
HTTP, SOAP/XML-RPC and WebService(SOAP) sampler character encodings updated to be more consistent.
HTTP Samplers now support connection and response timeouts (requires JVM 1.5 for the HTTP Java sampler).
Together with the closedown improvements described above, this should avoid most cases where a test run hangs.
Multiple Header Manager elements are now supported for a single HTTP sampler.
The Proxy Server is improved, and no longer stores "Host" headers by default.
</p>


<p>
JDBC Request can optionally save the results of Select statements to variables.
JDBC Request now handles quoted strings and UTF-8, and can handle arbitrary variable types.
</p>


<p>
There are several new <a href="usermanual/functions.html">functions</a>:
__char() function: allows arbitrary Unicode characters to be entered in fields.
__unescape() function: allows Java-escaped strings to be used.
_unescapeHtml() function: decodes Html-encoded text.
__escapeHtml() function: encodes text using Html-encoding.
A reference to a missing function - e.g. ${__missing(a)} - is now treated the same as a missing variable.
Previously the function name - and leading { - were dropped. This makes it easier to debug test plans.
</p>


<p>
Some Assertions can now be applied to sub-samples as well as (or instead of) just the parent sample.
There is a new <a href="./usermanual/component_reference.html#Random_Variable">Random Variable</a> Configuration element.
</p>


<p>
JMS samplers are much improved (see details below). The <a href="./usermanual/component_reference.html#TCP_Sampler">TCP Sampler</a> now supports some additional clients and is a bit more flexible.
</p>


<p>
Client-server mode has been improved, and the server can optionally use a fixed RMI port, which should help with setting up firewalls.
</p>


<p>
Various I18N changes have been made; language change works better (though not perfect yet).
There are improved French translations as well as new Polish and Brazilian Portuguese translations.
</p>


<p>
The BeanShell jar is now included with the binary archive; there is no need to download it separately.
</p>




<h2>Known bugs</h2>


<p>
The Include Controller has some problems in non-GUI mode.
In particular, it can cause a <span class="code">NullPointerException</span> if there are two include controllers with the same name.
</p>


<p>Once Only controller behaves correctly under a Thread Group or Loop Controller,
but otherwise its behaviour is not consistent (or clearly specified).</p>


<p>
The menu item <span class="menuchoice"><span class="guimenuitem">Options</span>&nbsp;&rarr;&nbsp;<span class="guimenuitem">Choose Language</span></span>
does not change all the displayed text to the new language.
[The behaviour has improved, but language change is still not fully working]
To override the default local language fully, set the JMeter property "<span class="code">language</span>" before starting JMeter.
</p>


<h2>Incompatible changes</h2>

<p>
When loading sample results from a file, previous results are no longer cleared.
This allows one to merge multiple files.
If the previous behaviour is required,
use the menu item <span class="menuchoice"><span class="guimenuitem">Run</span>&nbsp;&rarr;&nbsp;<span class="guimenuitem">Clear</span>
    (<span class="keycombo"><span class="keysym">Ctrl</span>&nbsp;+&nbsp;<span class="keysym">Shift</span>&nbsp;+&nbsp;<span class="keysym">E</span></span>)
  </span> or <span class="menuchoice"><span class="guimenuitem">Run</span>&nbsp;&rarr;&nbsp;<span class="guimenuitem">Clear All</span>
    (<span class="keycombo"><span class="keysym">Ctrl</span>&nbsp;+&nbsp;<span class="keysym">E</span></span>)
  </span> before loading the file.
</p>

<p>
The test elements "Save Results to a file" and "Generate Summary Results" are now shown as Listeners.
They were previously shown as Post-Processors, even though they are implemented as Listeners.
</p>

<p>
The Cookie Manager no longer saves incoming cookies as variables by default.
To save cookies as variables, define the property "<span class="code">CookieManager.save.cookies=true</span>".
Also, cookies names are prefixed with "<span class="code">COOKIE_</span>" before they are stored (this avoids accidental corruption of local variables)
To revert to the original behaviour, define the property "<span class="code">CookieManager.name.prefix= </span>" (one or more spaces).
</p>

<p>
The Counter element is now shown as a Configuration element.
It was previously shown as a Pre-Processor, even though it is implemented as a Config item.
</p>

<p>
The above changes only affect the icons that are displayed and the locations in the GUI pop-up menus.
They do not affect test plans or test behaviour.
</p>

<p>
The PreProcessors are now invoked directly by the JMeterThread class,
rather than by the TestCompiler#configureSampler() method. (JMeterThread handles the PostProcessors).
This does not affect test plans or behaviour, but could perhaps affect 3<sup>rd</sup> party add-ons (very unlikely).
</p>

<p>
Moved the Scoping Rules sub-section from Section 3. "Building a Test Plan"  to Section 4. "Elements of a test plan"
</p>


<p>
The While controller now trims leading and trailing spaces from the condition value before it is compared
with <span class="code">LAST</span>, blank or false.
</p>


<p>
The "threadName" variable in the _jexl() and __javaScript() functions was previously misspelt as "theadName".
</p>


<p>
The following deprecated methods were removed from JOrphanUtils: booleanToString(boolean) and valueOf(boolean).
Java 1.4+ has these methods in the Boolean class.
</p>


<p>
The TestElement interface has some new methods:
<ul>

<li>void setProperty(String key, String value, String dflt)</li>

<li>void setProperty(String key, boolean value, boolean dflt)</li>

<li>void setProperty(String key, int value)</li>

<li>void setProperty(String key, int value, int dflt)</li>

<li>int getPropertyAsInt(String key, int defaultValue)</li>

</ul>
These are implemented in the AbstractTestElement class which all elements should extend so this is unlikely to cause a problem.
</p>

<h2>Bug fixes</h2>


<h3>HTTP Samplers and Proxy</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=46332">
      Bug
      46332</a> - HTTP Cookie Manager ignores manually defined cookies (bug introduced in r707810)</li>

<li>Cookie Manager was not passing cookie policy to runtime threads so they always used compatibility mode</li>

<li>Add version attribute to JMeter Cookie class (needed for proper cookie support)</li>

<li>Cookie Manager now saves/restores cookie versions</li>

<li>Check validity of cookies before storing them.</li>


<li>HTTPSamplers can now use variables in POSTed file names</li>

<li>Fix processing of first file name in HTTP POST so functions/variables work (bug introduced with multiple file support)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=45831">
      Bug
      45831</a> - WS Sampler reports incorrect throughput if SOAP packet creation fails</li>

<li>HTTP, SOAP/XML-RPC and WebService(SOAP) sampler character encodings updated to be more consistent</li>


<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=46148">
      Bug
      46148</a> - HTTP sampler fails on SSL requests when logging for jmeter.util is set to DEBUG</li>

<li>Fix Java 1.6 https error: java.net.SocketException: Unconnected sockets not implemented</li>


<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=46838">
      Bug
      46838</a> - if there was no data, still need to set latency in HTTPSampler</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=46993">
      Bug
      46993</a> - Saving from Header Manager generates ClassCastException</li>

<li>

<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=46690">
      Bug
      46690</a> - handling of 302 redirects with invalid relative paths.
JMeter now removes extraneous leading "../" segments (as do many browsers)
</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=44521">
      Bug
      44521</a> - empty variables for a POST in the HTTP Request don't get ignored</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=46977">
      Bug
      46977</a> - JMeter does not handle HTTP headers not delimited by whitespace</li>

<li>Fix bug in HTTP file: handling - read bytes, not characters in the default encoding.</li>


<li>Remove Host from headers saved by the Proxy server, as that will normally be generated by the HTTP stack</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=45199">
      Bug
      45199</a> - don't try to replace blank variables in Proxy recording</li>

<li>Change HTTPS spoofing so https: links are replaced even when URL match fails</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=46436">
      Bug
      46436</a> - Improve error reporting in Proxy Gui</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=46435">
      Bug
      46435</a> - More verbose error msg for error 501 (Proxy Server)</li>

</ul>


<h3>Other Samplers</h3>

<ul>

<li>The "prev" and "sampler" objects are now defined for BSF test elements</li>

<li>Fix NPE (in DataSourceElement) when using JDBC in client-server mode</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=45425">
      Bug
      45425</a> - JDBC Request does not support Unicode (changed sampler to use UTF-8)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=46522">
      Bug
      46522</a> - Incorrect "Response data" in JDBC sample when column names are missing</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=46821">
      Bug
      46821</a> - JDBC select request doesn't store the first column in the variables</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=43791">
      Bug
      43791</a> - ensure QueueReceiver is closed in JMS Point to Point sampler</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=46016">
      Bug
      46016</a> - avoid possible NPE in JMSSampler</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=46142">
      Bug
      46142</a> - JMS Receiver now uses MessageID</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=45458">
      Bug
      45458</a> - Point to Point JMS in combination with authentication</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=45460">
      Bug
      45460</a> - JMS TestPlan elements depend on resource property</li>

<li>Various ReceiveSubscriber thread-safety fixes</li>

<li>JMSPublisher and Subscriber fixes: thread-safety, support dynamic locale changes, locale independence for JMX attribute values</li>

<li>FTP Sampler now logs out before disconnecting.</li>

<li>TCP sampler now calls setupTest() and teardownTest() methods</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=45887">
      Bug
      45887</a> - TCPSampler: timeout property incorrectly set</li>

</ul>


<h3>Controllers</h3>

<ul>

<li>Fix NPE when using nested Transaction Controllers with parent samples</li>

<li>Fix processing of Transaction Controller parent mode so current sampler is set to actual sampler</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=44941">
      Bug
      44941</a> - Throughput controllers should not share global counters</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=47120">
      Bug
      47120</a> - Throughput Controller: change percent executions to total executions, the value is stored in a String and interpreted as 1 execution</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=47150">
      Bug
      47150</a> - ThreadGroup with a loop count of zero causes infinite loop</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=47009">
      Bug
      47009</a> - Insert parent caused child controller name to be reset</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=47165">
      Bug
      47165</a> - Using duplicate Module Controller names in command line mode causes NPE</li>

</ul>


<h3>Listeners</h3>

<ul>

<li>Mailer Visualizer documentation now agrees with code i.e. failure/success counts need to be exceeded to trigger the mail.</li>

<li>Mailer Visualizer now shows the failure count</li>

<li>Mailer Visualiser - fix parsing of multiple e-mail address when using Test button</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=45976">
      Bug
      45976</a> - incomplete result file when using remote testing with more than 1 server</li>

<li>Fix Summariser so it works in client server mode</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=34096">
      Bug
      34096</a> - Duplicate samples not eliminated when writing to CSV files</li>

<li>Save "Include group Name in Label" setting in Aggregate and Summary reports</li>

<li>The JMeter variable "sample_variables" is sent to all server instances to ensure the data is available to the client.</li>

<li>CSVSaveService - check for EOF while reading quoted string</li>

</ul>


<h3>Assertions</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=45749">
      Bug
      45749</a> - Response Assertion does not work with a substring that happens to be an invalid RE</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=45904">
      Bug
      45904</a> - Allow 'Not' Response Assertion to succeed with null sample</li>

</ul>


<h3>Functions</h3>

<ul>

<li>Fix regex function - was failing to process $m$mid$n$ correctly</li>

<li>Protect against possible NPE in RegexFunction if called during test shutdown.</li>

<li>Avoid NPE if XPath function does not match any nodes</li>

<li>Correct the variable name "theadName" to "threadName" in the __jexl() and __javaScript() functions</li>

<li>A reference to a missing function - e.g. ${__missing(a)} - is now treated the same as a missing variable. Previously the function name - and leading { - were dropped.</li>

</ul>


<h3>I18N</h3>

<ul>

<li>Fixed language change handling for menus (does not yet work for TestBeans)</li>

<li>Add HeaderAsPropertyRenderer to support header resource names; use this to fix locale changes in various GUI elements</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=46424">
      Bug
      46424</a> - corrections to French translation</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=46844">
      Bug
      46844</a> -  "Library" label in test plan are not I18N</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=47064">
      Bug
      47064</a> - fixes for Mac LAF</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=47127">
      Bug
      47127</a> -  Unable to change language to pl_PL</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=47137">
      Bug
      47137</a> - Labels in View Results Tree aren't I18N</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=46423">
      Bug
      46423</a> - I18N of Proxy Recorder</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=45928">
      Bug
      45928</a> - AJP/1.3 Sampler doesn't retrieve its label from messages.properties</li>

</ul>


<h3>General</h3>

<ul>

<li>Prompt to overwrite an existing file when first saving a new test plan</li>

<li>Amend TestBeans to show the correct popup menu for Listeners</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=45185">
      Bug
      45185</a> - CSV dataset blank delimiter causes OOM</li>

<li>Fix incorrect GUI classifications:
"Save Results to a file" and "Generate Summary Results" are now shown as Listeners.
"Counter" is now shown as a Configuration element.
</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=41608">
      Bug
      41608</a> - misleading warning log message removed</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=46359">
      Bug
      46359</a> - BSF JavaScript Preprocessor cannot access sampler variable on first iteration (Implement temporary work-round for BSF-22)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=46407">
      Bug
      46407</a> - BSF elements do not load script files, attempt to interpret filename as script</li>

<li>Better handling of Exceptions during test shutdown</li>

<li>Fix potential thread safety issue in JMeterThread class</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=46491">
      Bug
      46491</a> - Incorrect value for the last variable in "CSV Data Set Config" (error in processing quoted strings)</li>


</ul>




<h2>Improvements</h2>


<h3>HTTP Samplers</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=45479">
      Bug
      45479</a> - Support for multiple HTTP Header Manager nodes</li>

<li>HTTP Samplers now support connection and request timeouts (requires Java 1.5 for Java Http sampler)</li>

<li>Apache SOAP 2.3.1 does not give access to HTTP response code/message, so WebService sampler now treats an empty response as an error</li>

<li>Mirror server now supports "X-Sleep" header - if this is set, the responding thread will wait for the specified number of milliseconds</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=45694">
      Bug
      45694</a> - Support GZIP compressed logs in Access Log Sampler</li>

</ul>


<h3>Other samplers</h3>

<ul>

<li>JDBC Request can optionally save the results of Select statements to variables.</li>

<li>JDBC Request now handles quoted strings.</li>

<li>JDBC Request now handles arbitrary variable types.</li>

<li>LDAP result data now formatted with line breaks</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=45200">
      Bug
      45200</a> - MailReaderSampler: store the whole MIME message in the SamplerResult</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=45571">
      Bug
      45571</a> - JMS Sampler correlation enhancement</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=46030">
      Bug
      46030</a> - Extend TCP Sampler to Support Length-Prefixed Binary Data</li>

<li>Add classname field to TCP Sampler GUIs</li>

</ul>


<h3>Controllers</h3>

<ul>

<li>Allow If Controller to use variable expressions (not just Javascript)</li>

<li>Trim spaces from While Controller condition before comparing against LAST, blank or false</li>

</ul>


<h3>Listeners</h3>

<ul>

<li>Save Responses to a file can save the generated filename(s) to variables.</li>

<li>Add option to skip suffix generation in Save Responses to a File</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=43119">
      Bug
      43119</a> - Save Responses to file: optionally omit the file number</li>

<li>Add BSF Listener element</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=47176">
      Bug
      47176</a> -  Monitor Results : improve load status graphic</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=40045">
      Bug
      40045</a> - Allow Results monitor to select a specific connector</li>

<li>Read XML JTL files more efficiently - pass samples to visualizers as they are read, rather than saving them all and then processing them</li>

</ul>


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

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=45903">
      Bug
      45903</a> - allow Assertions to apply to sub-samples</li>

<li>Add Body (unescaped) source option to Regular Expression Extractor.</li>

<li>Random Variable - new configuration element to create random numeric variables</li>

</ul>


<h3>Functions</h3>

<ul>

<li>Add OUT and log variables to __jexl() function</li>

<li>Use Script to evaluate __jexl() function so can have multiple statements.</li>

<li>Add log variable to the __javaScript() function</li>

<li>Added __char() function: allows arbitrary Unicode characters to be entered in fields.</li>

<li>Added __unescape() function: allows Java-escaped strings to be used.</li>

<li>Added __unescapeHtml() function: decodes Html-encoded text.</li>

<li>Added __escapeHtml() function: encodes text using Html-encoding.</li>

</ul>


<h3>I18N</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=45929">
      Bug
      45929</a> - improved French translations</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=47132">
      Bug
      47132</a> - Brazilian Portuguese translations</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=46900">
      Bug
      46900</a> - Polish translations</li>

<li>Added locales.add property to allow for new Locales</li>

</ul>


<h3>General</h3>

<ul>

<li>Allow spaces in JMeter path names (apply work-round for <a href="http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4496398">Java Bug 4496398</a>)</li>

<li>Process JVM_ARGS last in script files so users can override default settings</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=46636">
      Bug
      46636</a> - Allow server mode to optionally use a fixed rmi port</li>

<li>Make some samplers interruptible: HTTP (both), SoapSampler, FTPSampler</li>

<li>Test Action now supports "Stop Now" action, as do the Thread Group and Result Status Post Processor elements</li>

<li>The Menu items Stop and Shutdown now behave better. Shutdown will now wait until all threads exit.
In GUI mode it can be cancelled and Stop run instead.
Stop now reports if some threads will not exit, and exits if running in non-GUI mode</li>

<li>Add UDP server to wait for shutdown message if running in non-GUI mode; add UDP client to send the message.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=41209">
      Bug
      41209</a> - JLabeled* and ToolTips</li>

<li>Include BeanShell 2.0b4 jar in binary download.</li>

</ul>


<h2>Non-functional changes</h2>

<ul>

<li>Introduce AbstractListenerGui class to make it easier to create Listeners with no visual output</li>

<li>Assertions are run after PostProcessors; change order of pop-up menus accordingly</li>

<li>Remove unnecessary clone() methods from function classes</li>

<li>Moved PreProcessor invocation to JMeterThread class</li>

<li>Made HashTree Map field final</li>

<li>Improve performance of calling ResultCollector#isSampleWanted() for multiple samples</li>

<li>Updated to new versions of: xmlgraphics-commons (1.3.1), jdom (1.1), xstream (1.3.1), velocity (1.6.2)</li>

</ul>





<h2>Version 2.3.2</h2>


<h3>Summary of main changes</h3>


<h4>Bug fixes</h4>

<p>
Version 2.3.1 changed the way binary and text content types were determined as far as the View Results Tree Listener was concerned:
originally everything except "image/" content types were considered text, but 2.3.1 introduced a check
for specific content types. This has caused problems,
as several popular types were omitted and these were no longer shown by default in the Response tab.
Rather than try to list all the possible text types, JMeter now just checks for the following binary types:
<ul>

<li>image/*</li>

<li>audio/*</li>

<li>video/*</li>

</ul>
All other types are now assumed to be text.
</p>


<p>
JMeter 2.3.1 introduced a bug in the Cookie Manager
- if "Clear Cookie each iteration" was selected, all threads would see the same cookies.
This bug has been corrected.
</p>


<h4>Improvements</h4>


<p>
The Proxy server can now record binary requests.
By default the content types
application/x-amf and application/x-java-serialized-object
will be treated as binary and saved in a file.
To change the content types, update the property <b>proxy.binary.types</b>.
</p>


<p>
The CSV Dataset configuration element has new file sharing options: per thread group, per thread, per identifier.
This allows for more flexible file processing, e.g. each thread can process the same data in the same order.
</p>


<p>Switch Controller now works properly with functions and variables,
and the condition can now be a name instead of a number.
Simple Controller now works properly under a While Controller</p>


<p>CSV fields in JTL files can now contain delimiters.
CSV and XML files can now contain additional variables (define the JMeter property <b>sample_variables</b>).</p>


<p>Response Assertion can now match on substrings (i.e. not regular expression).
Regex extractor can operate on variables.</p>


<p>
XPath processing is improved; Tidy errors are handled better.
</p>


<p>Save Table Data buttons added to Summary and Aggregate reports to allow easy saving of the calculated data.</p>


<p>
HTTP samplers can now save just the MD5 hash of responses, rather than the entire response.
As a special case, if the HTTP Sampler path starts with "http://" or "https://" then this is used as the full URL,
overriding the host and port fields.
The HTTP Samplers can now POST multiple files.
Webservice(SOAP) Sampler can now load local WSDL files using the "file:" protocol.
</p>


<p>
A simple HTTP Cache Manager has been added. This needs further development.
</p>


<p>
View Results Tree Listener now uses Tidy to display XML.
This should allow more content to be displayed successfully.
It also avoids the need to download remote DTD files, which can slow the rendering considerably.
</p>


<p>
MailReader sampler now supports POP3S and IMAPS protocols. Individual mails are now added as sub-samples.
</p>


<p>
Various improvements to the BSF Sampler: now supports Jexl, and Javascript bug works properly.
Added BSF PreProcessor, PostProcessor and Assertion test elements.
All now have access to "props" JMeter Properties object.
</p>


<p>Number of classes loaded in non-GUI mode is much reduced.</p>


<h3>Known bugs</h3>


<p>
The Include Controller has some problems in non-GUI mode.
In particular, it can cause a NullPointerException if there are two include controllers with the same name.
</p>


<p>Once Only controller behaves OK under a Thread Group or Loop Controller,
but otherwise its behaviour is not consistent (or clearly specified).</p>


<p>
The menu item Options / Choose Language does not change all the displayed text to the new language.
To override the default local language, set the JMeter property "language" before starting JMeter.
</p>

<h3>Incompatible changes</h3>

<ul>

<li>
To reduce the number of classes loaded in non-GUI mode,
Functions will only be found if their classname contains the string
'.functions.' and does not contain the string '.gui.'.
All existing JMeter functions conform to this restriction.
To revert to earlier behaviour, comment or change the properties classfinder.functions.* in jmeter.properties.
</li>

<li>The reference value parameter for intSum() is now optional.
As a consequence, if a variable name is used, it must not be a valid integer.</li>

<li>The supplied TCPClient implementation no longer treats tcp.eolByte=0 as special.
To skip EOL checking, set tcp.eolByte=1000 (or some other value which is not a valid byte)
</li>

<li>
Leading and trailing spaces are trimmed from variable names in function calls.
For example, ${__Random(1,63,&nbsp;LOTTERY&nbsp;)} will use the variable 'LOTTERY' rather than '&nbsp;LOTTERY&nbsp;'.
</li>

<li>
Synchronization has been removed from the RunningSample class (it was not fully threadsafe anyway).
Developers of 3<sup>rd</sup> party add-ons that use the class may need to synchronize access.
</li>

</ul>


<h3>Bug fixes</h3>

<ul>

<li>Check that the CSV delimiter is reasonable.</li>

<li>Fix Switch Controller to work properly with functions and variables</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=44011">
      Bug
      44011</a> - application/soap+xml not treated as a text type</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=43427">
      Bug
      43427</a> - Simple Controller is only partly executed in While loop</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=33954">
      Bug
      33954</a> - Stack Overflow in If/While controllers (may have been fixed previously)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=44022">
      Bug
      44022</a> - Memory Leak when closing test plan</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=44042">
      Bug
      44042</a> - Regression in Cookie Manager (Bug introduced in 2.3.1)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=41028">
      Bug
      41028</a> - JMeter server doesn't alert the user when the host is defined as a loopback address</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=44142">
      Bug
      44142</a> - Function __machineName causes NPE if parameters are omitted.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=44144">
      Bug
      44144</a> - JMS point-to-point: request response test does not work</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=44314">
      Bug
      44314</a> - Not possible to add more than one SyncTimer</li>

<li>Capture Tidy console error output and log it</li>

<li>Fix problems using Tidy(tolerant parser) in XPath Assertion and XPath Extractor</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=44374">
      Bug
      44374</a> - improve timer calculation</li>

<li>Regular Expression Extractor now deletes all stale variables from previous matches.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=44707">
      Bug
      44707</a> - Running remote test changes internal test plan</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=44625">
      Bug
      44625</a> - Cannot have two or more FTP samplers with different "put" and "get" actions</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=40850">
      Bug
      40850</a> - BeanShell memory leak</li>

<li>Ensure ResponseCode and ResponseMessage are set for successful JDBC samples</li>

<li>FTPSampler now detects and reports failure to open the remote file</li>

<li>Class directories defined in search_paths and user.classpath no longer need trailing "/"</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=44852">
      Bug
      44852</a> SOAP/ XML-RPC Request does not show Request details in View Results Tree</li>

<li>WebService(SOAP) Sampler ResponseData now includes the EOLs sent by server</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=44910">
      Bug
      44910</a> - close previous socket (if any) in TCP Sampler</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=44912">
      Bug
      44912</a> - Filter not working in Log Parser</li>

<li>The BeanShell and BSF component documentation made some incorrect references to the "SampleResponse" object;
this has been corrected to "SampleResult"</li>

<li>BSF Sampler now works properly with Javascript</li>

<li>Test Action "Stop Test" now works</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=42833">
      Bug
      42833</a> - Argument class uses LinkedHashMap in getArgumentsAsMap() to preserve ordering</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=45093">
      Bug
      45093</a> - SizeAssertion did not call getBytes()</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=45007">
      Bug
      45007</a> - Rewrite Location headers when using Proxy HTTPS spoofing</li>

<li>Use CRLF rather than LF in Proxy when returning headers to the client</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=45007">
      Bug
      45007</a> - fix content length header if content may have been changed</li>

</ul>


<h3>Improvements</h3>

<ul>

<li>CSV files can now handle fields with embedded delimiters.</li>

<li>longSum() function added</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=43382">
      Bug
      43382</a> - configure Tidy output (warnings, errors) for XPath Assertion and Post-Processor</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=43984">
      Bug
      43984</a> - trim spaces from port field</li>

<li>Add optional comment to __log() function</li>

<li>Make Random function variable name optional</li>

<li>Reduce class loading in non-GUI mode by only looking for Functions in class names
that contain '.functions.' and don't contain '.gui.'</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=43379">
      Bug
      43379</a> - Switch Controller now supports selection by name as well as number</li>

<li>Can specify list of variable names to be written to JTL files (CSV and XML format)</li>

<li>Now checks that the remoteStart options -r and -R are only used with non_GUI -n option</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=44184">
      Bug
      44184</a> - Allow header to be saved with Aggregate Graph data</li>

<li>Added "Save Table Data" buttons to Aggregate and Summary Reports - save table as CSV format with header</li>

<li>Allow most functions to be used on the Test Plan.
Note __evalVar(), __split() and __regex() cannot be used on the Test Plan.</li>

<li>Allow Global properties to be loaded from a file, e.g. -Gglobal.properties</li>

<li>Add "Substring" option to Response Assertion</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=44378">
      Bug
      44378</a> - Turkish localisation</li>

<li>Add optional output variable name to Jexl function</li>

<li>Add application/vnd.wap.xhtml+xml as a text type</li>

<li>Add means to override maximum display size in View Results Tree - set the property: view.results.tree.max_size</li>

<li>Use Tidy to display XML in View Results Tree Listener (avoids fetching DTDs)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=44487">
      Bug
      44487</a> - German translation</li>

<li>
As a special case, if the HTTP Sampler path starts with "http://" or "https://" then this is used as the full URL.
</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=44575">
      Bug
      44575</a> - Result Saver can now save only successful results</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=44650">
      Bug
      44650</a> - CSV Dataset now handles quoted column values</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=44600">
      Bug
      44600</a> - 1-ms resolution timer when running with Java 1.5+</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=44632">
      Bug
      44632</a> - Text input enhancement to FTP Sampler</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=42204">
      Bug
      42204</a> - add thread group name to Aggregate and Summary reports</li>

<li>FTP Sampler sets latency = time to login</li>

<li>FTP Sampler sets a URL if it can</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=41921">
      Bug
      41921</a> - add option for samplers to store MD5 of response; done for HTTP Samplers.</li>

<li>Regex Function can now also be applied to a variable rather than just the previous sample result.</li>

<li>Remove HTML Parameter Mask,HTTP User Parameter Modifier from menus as they are deprecated</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=44807">
      Bug
      44807</a> - allow session ids to be terminated by backslash</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=44784">
      Bug
      44784</a> - allow for broken server returning additional charset</li>

<li>Added TESTSTART.MS property / variable = test start time in milliseconds</li>

<li>Add POP3S and IMAPS protocols to Mail Reader Sampler.</li>

<li>Mail Reader Sampler now creates a sub-sample for each mail.</li>

<li>The supplied TCPClient implementation no longer treats tcp.eolByte=0 as special.
To skip EOL checking, set tcp.eolByte=1000 (or some other value which is not a valid byte)
</li>

<li>JUnit sampler GUI now also finds Test classes defined in user.classpath</li>

<li>
Leading and trailing spaces are trimmed from variable names in function calls.
For example, ${__Random(1,63,&nbsp;LOTTERY&nbsp;)} will use the variable 'LOTTERY' rather than '&nbsp;LOTTERY&nbsp;'
</li>

<li>Webservice(SOAP) Sampler can now load local WSDL files using the file: protocol</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=44872">
      Bug
      44872</a> - Add "All Files" filter to Open File dialogs</li>

<li>Mirror server can now be run independently (mirror-server.cmd and mirror-server.sh)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=19128">
      Bug
      19128</a> - Added multiple file POST support to HTTP Samplers</li>

<li>Allow use of special name LAST to mean the last test run; applies to -t, -l, -j flags</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=44418">
      Bug
      44418</a>/42178 - CSV Dataset file handling improvements</li>

<li>Give BeanShell, Javascript and Jexl functions access to JMeter properties via the "props" object</li>

<li>Give BSF Sampler access to JMeter Properties via "props" object</li>

<li>Add Jexl as a supported BSF Sampler language</li>

<li>Give Beanshell test elements access to JMeter Properties via "props" object</li>

<li>Added BSF PreProcessor, PostProcessor and Assertion test elements</li>

<li>All BSF elements now have access to System.out via the variable "OUT"</li>

<li>Summariser updated to handle variable names</li>

<li>Synchronisation added to Summary and Aggregate Report to try to prevent occasional lost samples</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=44808">
      Bug
      44808</a>,<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=39641">
      Bug
      39641</a> - Proxy support for binary requests</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=28502">
      Bug
      28502</a> - HTTP Resource Cache</li>

</ul>


<h3>Non-functional changes</h3>

<ul>

<li>Better handling of MirrorServer startup problems and improved unit test.</li>

<li>Build process now detects missing 3<sup>rd</sup> party libraries and reports need for both binary and source archives</li>

<li>Skip BeanShell tests if jar is not present</li>

<li>Update to Xerces 2.9.1, Xalan 2.7.1, Commons IO 1.4, Commons Lang 2.4, Commons-Logging 1.1.1, XStream 1.3, XPP3 1.1.4c</li>

<li>Use properties for log/logn function descriptions</li>

<li>Check that all jmx files in the demos directory can be loaded OK</li>

<li>Update copyright to 2008; use copy tag instead of numeric character in HTML output</li>

<li>Methods called from constructors must not be overridable: make GUI init methods private</li>

<li>Make static variables final if possible</li>

<li>Split changes into current and previous</li>

</ul>




<h3>Version 2.3.1</h3>

<h4>Summary of changes</h4>


<h5>JMeter Proxy</h5>


<p>
The Proxy spoof function was broken in 2.3; it has been fixed.
Spoof now supports an optional parameter to limit spoofing to particular URLs.
This is useful for HTTPS pages that have insecure content - e.g. images/stylesheets may be accessed using HTTP.
Spoofed responses now drop the default port (443) from https links to make them work better.
</p>

<p>
Ignored proxy samples are now visible in Listeners - the label is enclosed in [ and ] as an indication.
Proxy documentation has been improved.
</p>


<h5>GUI changes</h5>


<p>The Add menus show element types in the order in which they are processed
- see <a href="usermanual/test_plan.html#executionorder">Test Plan Execution Order</a>.
It is no longer possible to add test elements to inappropriate parts of the tree
- e.g. samplers cannot be added directly under a test plan.
This also applies to Paste and drag and drop.
</p>


<p>
The File menu now supports a "Revert" option, which reloads the current file.
Also the last few file names used are remembered for easy reloading.
</p>


<p>
The Options Menu now supports Collapse All and Expand All items to collapse and expand the test tree.
</p>


<h5>Remote testing</h5>


<p>
The JMeter server now starts the RMI server directly (by default).
This simplifies testing, and means that the RMI server will be stopped when the server stops.
</p>


<p>
Functions can now be used in Listener filenames (variables do not work).
</p>


<p>
Command-line option -G can now be used to define properties for remote servers.
Option -X can be used to stop a remote server after a non-GUI run.
Server can be set to automatically exit after a single test (set property server.exitaftertest=true).
</p>


<h5>Other enhancements</h5>


<p>
JMeter startup no longer loads as many classes; this should reduce memory requirements.
</p>


<p>
Parameter and file support added to all BeanShell elements.
Javascript function now supports access to JMeter objects;
Jexl function always did have access, but the documentation has now been included.
New functions __eval() and __evalVar() for evaluating variables.
</p>


<p>
CSV files with the correct header column names are now automatically recognised when loaded.
There is no need to configure the properties.
</p>


<p>
The hostname can now be saved in CSV and XML output files.
New "Successes only" option added when saving result files.
Errors / Successes only option is now supported when loading XML and CSV files.
</p>


<p>
General documentation improvements.
</p>


<h5>HTTP</h5>


<p>PUT and DELETE should now work properly.
Cookie Manager no longer clears manually entered cookies.
</p>

<p>Now handles the META tag http-equiv charset</p>


<h5>JDBC</h5>


<p>JDBC Sampler now allows INOUT and OUT parameters for Called procedures.
JDBC Sampler now allows per-thread connections - set Max Connections = 0 in JDBC Config.
</p>


<hr>



<h4>Incompatible changes</h4>

<ul>

<li>JMeter server now creates the RMI registry by default.
If the RMI registry has already been started externally, this will generate a warning message, but the server will continue.
This should not affect JMeter testing.
However, if you are also using the RMI registry for other applications there may be problems.
For example, when the JMeter server shuts down it will stop the RMI registry.
Also user-written command files may need to be adjusted (the ones supplied with JMeter have been updated).
To revert to the earlier behaviour, define the JMeter property: <b>server.rmi.create=false</b>.
</li>

<li>The Proxy server removes If-Modified-Since and If-None-Match headers from generated Header Managers.
To revert to the previous behaviour, define the property proxy.headers.remove with no value</li>

</ul>


<h4>Bug fixes</h4>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=43430">
      Bug
      43430</a> - Count of active threads is incorrect for remote samples</li>

<li>Throughput Controller was not working for "all thread" counts</li>

<li>If a POST body is built from parameter values only, these are now encoded if the checkbox is set.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=43584">
      Bug
      43584</a> - Assertion Failure Message contains a comma that is also used as the delimiter for CSV files</li>

<li>HTTP Mirror Server now always returns the exact same content, it used to return incorrect data if UTF-8 encoding was used for HTTP POST body, for example</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=43612">
      Bug
      43612</a> - HTTP PUT does not honor request parameters</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=43694">
      Bug
      43694</a> - ForEach Controller (empty collection processing error)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=42012">
      Bug
      42012</a> - Variable Listener filenames do not get processed in remote tests.
Filenames can now include function references; variable references do not work.</li>

<li>Ensure Listener nodes get own save configuration when copy-pasted</li>

<li>Correct Proxy Server include and exclude matching description - port and query are included, contrary to previously documented.</li>

<li>Aggregate Graph and Aggregate Report Column Header is KB/Sec; fixed the values to be KB rather than bytes</li>

<li>
Fix SamplingStatCalculator so it no longer adds elapsed time to endTime, as this is handled by SampleResult.
This corrects discrepancies between Summary Report and Aggregate Report throughput calculation.
</li>

<li>Default HTTPSampleResult to ISO-8859-1 encoding</li>

<li>Fix default encoding for blank encoding</li>

<li>Fix Https spoofing (port problem) which was broken in 2.3</li>

<li>Fix HTTP (Java) sampler so http.java.sampler.retries means retries, i.e. does not include initial try</li>

<li>Fix SampleResult dataType checking to better detect TEXT documents</li>

</ul>


<h4>Improvements</h4>

<ul>

<li>Add run_gui Ant target, to package and then start the JMeter GUI from Ant</li>

<li>Add File&rarr;Revert to easily drop the current changes and reload the project file currently loaded</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=31366">
      Bug
      31366</a> - Remember recently opened file(s)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=43351">
      Bug
      43351</a> - Add support for Parameters and script file to all BeanShell test elements</li>

<li>SaveService no longer needs to instantiate classes</li>

<li>New functions: __eval() and __evalVar()</li>

<li>Menu items now appear in execution order</li>

<li>Test Plan items can now only be dropped/pasted/merged into parts of the tree where they are allowed</li>

<li>Property Display to show the value of System and JMeter properties and allow them to be changed</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=43451">
      Bug
      43451</a> - Allow Regex Extractor to operate on Response Code/Message</li>

<li>JDBC Sampler now allows INOUT and OUT parameters for Called procedures</li>

<li>JDBC Sampler now allows per-thread connections</li>

<li>Cookie Manager not longer clears cookies defined in the GUI</li>

<li>HTTP Parameters without names are ignored (except for POST requests with no file)</li>

<li>"Save Selection As" added to main menu; now checks only item is selected</li>

<li>Test Plan now has Paste menu item (paste was already supported via ^V)</li>

<li>If the default delimiter does not work when loading a CSV file, guess the delimiter by analysing the header line.</li>

<li>Add optional "loopback" protocol for HttpClient sampler</li>

<li>HTTP Mirror Server now supports blocking waiting for more data to appear, if content-length header is present in request</li>

<li>HTTP Mirror Server GUI now has the Start and Stop buttons in a more visible place</li>

<li>Server mode now creates the RMI registry; to disable set the JMeter property server.rmi.create=false</li>

<li>HTTP Sampler now supports using MIME Type field to specify content-type request header when body is constructed from parameter values</li>

<li>Enable exit after a single server test - define JMeter property server.exitaftertest=true</li>

<li>Added -G option to set properties in remote servers</li>

<li>Added -X option to stop remote servers after non-GUI run</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=43485">
      Bug
      43485</a> - Ability to specify keep-alive on SOAP/XML-RPC request</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=43678">
      Bug
      43678</a> - Handle META tag http-equiv charset</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=42555">
      Bug
      42555</a> - [I18N] Proposed corrections for the french translation</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=43727">
      Bug
      43727</a> - Test Action does not support variables or functions</li>

<li>The Proxy server removes If-Modified-Since and If-None-Match headers from generated Header Managers by default.
To change the list of removed headers, define the property proxy.headers.remove as a comma-separated list of headers to remove</li>

<li>The javaScript function now has access to JMeter variables and context etc. See <a href="usermanual/functions.html#__javaScript">JavaScript function</a>
</li>

<li>Use drop-down list for BSF Sampler language field</li>

<li>Add hostname to items that can be saved in CSV and XML output files.</li>

<li>Errors only flag is now supported when loading XML and CSV files</li>

<li>Ensure ResultCollector uses SaveService encoding</li>

<li>Proxy now rejects attempts to use it with https</li>

<li>Proxy spoofing can now use RE matching to determine which urls to spoof (useful if images are not https)</li>

<li>Proxy spoofing now drops the default HTTPS port (443) when converting https: links to http:</li>

<li>Add Successes Only logging and display</li>

<li>The JMeter log file name is formatted as a SimpleDateFormat (applied to the current date) if it contains paired single-quotes,  .e.g. 'jmeter_'yyyyMMddHHmmss'.log'</li>

<li>Added Collapse All and Expand All Option menu items</li>

<li>Allow optional definition of extra content-types that are viewable as text</li>

</ul>


<h4>Non-functional Improvements</h4>

<ul>

<li>Functor code tightened up; Functor can now be used with interfaces, as well as pre-defined targets and parameters.</li>

<li>Save graphics function now prompts before overwriting an existing file</li>

<li>Debug Sampler and Debug PostProcessor added.</li>

<li>Fixed up method names in Calculator and SamplingStatCalculator</li>

<li>Tidied up Listener documentation.</li>

</ul>




<h3>Version 2.3</h3>


<h3>Fixes since 2.3RC4</h3>


<h4>Bug fixes</h4>

<ul>

<li>Fix NPE in SampleResultConverter - XStream PrettyPrintWriter cannot handle nulls</li>

<li>If Java HTTP sampler sees null ResponseMessage, replace with HTTP header</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=43332">
      Bug
      43332</a> - 2.3RC4 does not clear Guis based on TestBean</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=42948">
      Bug
      42948</a> - Problems with Proxy gui table fields in Java 1.6</li>

<li>Fixup broken jmeter-server script</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=43364">
      Bug
      43364</a> - option to revert If Controller to pre 2.3RC3 behaviour</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=43449">
      Bug
      43449</a> - Statistical Remote mode does not handle Latency</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=43450">
      Bug
      43450</a> (partial fix) - Allow SampleCount and ErrorCount to be saved to/restored from files</li>

</ul>


<h4>Improvements</h4>

<ul>

<li>Add nameSpace option to XPath extractor</li>

<li>Add NULL parameter option to JDBC sampler</li>

<li>Add documentation links for Rhino and BeanShell to functions; clarify variables and properties</li>

<li>Ensure uncaught exceptions are logged</li>

<li>Look for user.properties and system.properties in JMeter bin directory if not found locally</li>

</ul>


<h4>Fixes since 2.3RC3</h4>

<ul>

<li>Fixed NPE in Summariser (bug introduced in 2.3RC3)</li>

<li>Fixed setup of proxy port (bug introduced in 2.3RC3)</li>

<li>Fixed errors when running non-GUI on a headless host (bug introduced in 2.3RC3)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=43054">
      Bug
      43054</a> - SSLManager causes stress tests to saturate and crash (bug introduced in 2.3RC3)</li>

<li>Clarified HTTP Request Defaults usage of the port field</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=43006">
      Bug
      43006</a> - NPE if icon.properties file not found</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=42918">
      Bug
      42918</a> - Size Assertion now treats an empty response as having zero length</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=43007">
      Bug
      43007</a> - Test ends before all threadgroups started</li>

<li>Fix possible NPE in HTTPSampler2 if 302 does not have Location header.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=42919">
      Bug
      42919</a> - Failure Message blank in CSV output [now records first non-blank message]</li>

<li>Add link to Extending JMeter PDF</li>

<li>Allow for quoted charset in Content-Type parsing</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=39792">
      Bug
      39792</a> - ClientJMeter synchronisation needed</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=43122">
      Bug
      43122</a> - GUI changes not always picked up when short-cut keys used (bug introduced in 2.3RC3)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=42947">
      Bug
      42947</a> - TestBeanGUI changes not picked up when short-cut keys used</li>

<li>Added serializer.jar (needed for update to xalan 2.7.0)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=38687">
      Bug
      38687</a> - Module controller does not work in non-GUI mode</li>

</ul>


<h4>Improvements since 2.3RC3</h4>

<ul>

<li>Add stop thread option to CSV Dataset</li>

<li>Updated commons-httpclient to 3.1</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=28715">
      Bug
      28715</a> - allow variable cookie values (set CookieManager.allow_variable_cookies=false to disable)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=40873">
      Bug
      40873</a> - add JMS point-to-point non-persistent delivery option</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=43283">
      Bug
      43283</a> - Save action adds .jmx if not present; checks for existing file on Save As</li>

<li>
<span class="keycombo"><span class="keysym">Control</span>&nbsp;+&nbsp;<span class="keysym">A</span></span> key does not work for Save All As;
    changed to <span class="keycombo"><span class="keysym">Control</span>&nbsp;+&nbsp;<span class="keysym">Shift</span>&nbsp;+&nbsp;<span class="keysym">S</span></span>
</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=40991">
      Bug
      40991</a> - Allow Assertions to check Headers</li>

</ul>


<h3>Version 2.3RC3</h3>


<h4>Known problems/restrictions:</h4>

<p>
The JMeter remote server does not support multiple concurrent tests - each remote test should be run in a separate server.
Otherwise tests may fail with random Exceptions, e.g. ConcurrentModification Exception in StandardJMeterEngine.
See <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=43168">
      Bug
      43168</a>.
</p>

<p>
The default HTTP Request (not HTTPClient) sampler may not work for HTTPS connections via a proxy.
This appears to be due to a Java bug, see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=39337">
      Bug
      39337</a>.
To avoid the problem, try a more recent version of Java, or switch to the HTTPClient version of the HTTP Request sampler.
</p>

<p>Transaction Controller parent mode does not support nested Transaction Controllers.
Doing so may cause a Null Pointer Exception in TestCompiler.
</p>

<p>Thread active counts are always zero in CSV and XML files when running remote tests.
</p>

<p>The property file_format.testlog=2.1 is treated the same as 2.2.
However JMeter does honour the 3 testplan versions.</p>

<p>

<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=22510">
      Bug
      22510</a> - JMeter always uses the first entry in the keystore.
</p>

<p>
Remote mode does not work if JMeter is installed in a directory where the path name contains spaces.
</p>

<p>
BeanShell test elements leak memory.
This can be reduced by using a file instead of including the script in the test element.
</p>

<p>
Variables and functions do not work in Listeners in client-server (remote) mode so they cannot be used
to name log files in client-server mode.
</p>

<p>
CSV Dataset variables are defined after configuration processing is completed,
so they cannot be used for other configuration items such as JDBC Config.
(see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=40394">
      Bug
      40394</a>)
</p>


<h4>Summary of changes (for more details, see below)</h4>

<p>
Some of the main enhancements are:
</p>

<ul>

<li>Htmlparser 2.0 now used for parsing</li>

<li>HTTP Authorization now supports domain and realm</li>

<li>HttpClient options can be specified via httpclient.parameters file</li>

<li>HttpClient now behaves the same as Java Http for SSL certificates</li>

<li>HTTP Mirror Server to allow local testing of HTTP samplers</li>

<li>HTTP Proxy supports XML-RPC recording, and other proxy improvements</li>

<li>__V() function allows support of nested variable references</li>

<li>LDAP Ext sampler optionally parses result sets and supports secure mode</li>

<li>FTP Sampler supports Ascii/Binary mode and upload</li>

<li>Transaction Controller now optionally generates a Sample with subresults</li>

<li>HTTPS session contexts are now per-thread, rather than shared. This gives better emulation of multiple users</li>

<li>BeanShell elements now support ThreadListener and TestListener interfaces</li>

<li>Coloured icons in Tree View Listener and elsewhere to better differentiate failed samples.</li>

</ul>

<p>
The main bug fixes are:
</p>

<ul>

<li>HTTPS (SSL) handling now much improved</li>

<li>Various Remote mode bugs fixed</li>

<li>
<span class="keycombo"><span class="keysym">Control</span>&nbsp;+&nbsp;<span class="keysym">C</span></span>
    and <span class="keycombo"><span class="keysym">Control</span>&nbsp;+&nbsp;<span class="keysym">V</span></span> now work in the test tree</li>

<li>Latency and Encoding now available in CSV log output</li>

<li>Test elements no longer default to previous contents; test elements no longer cleared when changing language.</li>

</ul>


<h4>Incompatible changes (usage):</h4>

<p>

<b>N.B. The javax.net.ssl properties have been moved from jmeter.properties to system.properties,
and will no longer work if defined in jmeter.properties.</b>

<br>
The new arrangement is more flexible, as it allows arbitrary system properties to be defined.
</p>

<p>
SSL session contexts are now created per-thread, rather than being shared.
This generates a more realistic load for HTTPS tests.
The change is likely to slow down tests with many SSL threads.
The original behaviour can be enabled by setting the JMeter property:
<pre>
https.sessioncontext.shared=true
</pre>

</p>

<p>
The LDAP Extended Sampler now uses the same panel for both Thread Bind and Single-Bind tests.
This means that any tests using the Single-bind test will need to be updated to set the username and password.
</p>

<p>

<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=41140">
      Bug
      41140</a>: JMeterThread behaviour was changed so that PostProcessors are run in forward order
(as they appear in the test plan) rather than reverse order as previously.
The original behaviour can be restored by setting the following JMeter property:
<br>
jmeterthread.reversePostProcessors=true
</p>

<p>
The HTTP Authorization Manager now has extra columns for domain and realm,
so the temporary work-round of using '\' and '@' in the username to delimit the domain and realm
has been removed.
</p>

<p>

<span class="keycombo"><span class="keysym">Control</span>&nbsp;+&nbsp;<span class="keysym">Z</span></span> no longer used for Remote Start All - this
now uses <span class="keycombo"><span class="keysym">Control</span>&nbsp;+&nbsp;<span class="keysym">Shift</span>&nbsp;+&nbsp;<span class="keysym">R</span></span>

</p>

<p>
HttpClient now uses pre-emptive authentication.
This can be changed by setting the following:
<pre>
jmeter.properties:
httpclient.parameters.file=httpclient.parameters

httpclient.parameters:
http.authentication.preemptive$Boolean=false
</pre>

</p>


<p>
The port field in HTTP Request Defaults is no longer ignored for https samplers if it is set to 80.
</p>


<h4>Incompatible changes (development):</h4>

<p>

<b>N.B.</b>The clear() method was defined in the following interfaces: Clearable, JMeterGUIComponent and TestElement.
The methods serve different purposes, so two of them were renamed:
the Clearable method is now clearData() and the JMeterGUIComponent method is now clearGui().
3<sup>rd</sup> party add-ons may need to be rebuilt.
</p>

<p>
Calculator and SamplingStatCalculator classes no longer provide any formatting of their data.
Formatting should now be done using the jorphan.gui Renderer classes.
</p>

<p>
Removed deprecated method JMeterUtils.split() - use JOrphanUtils version instead.
</p>

<p>
Removed method saveUsingJPEGEncoder() from SaveGraphicsService.
It was unused so far, and used the only Sun-specific class in JMeter.
</p>



<h4>New functionality/improvements:</h4>

<ul>

<li>Add Domain and Realm support to HTTP Authorization Manager</li>

<li>HttpClient now behaves the same as the JDK http sampler for invalid certificates etc</li>

<li>Added httpclient.parameters.file to allow HttpClient parameters to be defined</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=33964">
      Bug
      33964</a> - Http Requests can send a file as the entire post body if name/type are omitted</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=41705">
      Bug
      41705</a> - add content-encoding option to HTTP samplers for POST requests</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=40933">
      Bug
      40933</a>,<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=40945">
      Bug
      40945</a> - optional RE matching when retrieving embedded resource URLs</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=27780">
      Bug
      27780</a> - (patch 19936) create multipart/form-data HTTP request without uploading file</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=42098">
      Bug
      42098</a> - Use specified encoding for parameter values in HTTP GET</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=42506">
      Bug
      42506</a> - JMeter threads now use independent SSL sessions</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=41707">
      Bug
      41707</a> - HTTP Proxy XML-RPC support</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=41880">
      Bug
      41880</a> - Add content-type filtering to HTTP Proxy Server</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=41876">
      Bug
      41876</a> - Add more options to control what the HTTP Proxy generates</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=42158">
      Bug
      42158</a> - Improve support for multipart/form-data requests in HTTP Proxy server</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=42173">
      Bug
      42173</a> - Let HTTP Proxy handle encoding of request, and undecode parameter values</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=42674">
      Bug
      42674</a> - default to pre-emptive HTTP authorisation if not specified</li>

<li>Support "file" protocol in HTTP Samplers</li>

<li>Http Autoredirects are now enabled by default when creating new samplers</li>


<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=40103">
      Bug
      40103</a> - various LDAP enhancements</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=40369">
      Bug
      40369</a> - LDAP: Stable search results in sampler</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=40381">
      Bug
      40381</a> - LDAP: more descriptive strings</li>


<li>BeanShell Post-Processor no longer ignores samples with zero-length result data</li>

<li>Added beanshell.init.file property to run a BeanShell script at startup</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=39864">
      Bug
      39864</a> - BeanShell init files now found from current or bin directory</li>

<li>BeanShell elements now support ThreadListener and TestListener interfaces</li>

<li>BSF Sampler passes additional variables to the script</li>


<li>Added timeout for WebService (SOAP) Sampler</li>


<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=40825">
      Bug
      40825</a> - Add JDBC prepared statement support</li>

<li>Extend JDBC Sampler: Commit, Rollback, AutoCommit</li>


<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=41457">
      Bug
      41457</a> - Add TCP Sampler option to not re-use connections</li>


<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=41522">
      Bug
      41522</a> - Use JUnit sampler name in sample results</li>


<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=42223">
      Bug
      42223</a> - FTP Sampler can now upload files</li>


<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=40804">
      Bug
      40804</a> - Change Counter default to max = Long.MAX_VALUE</li>


<li>Use property jmeter.home (if present) to override user.dir when starting JMeter</li>

<li>New -j option to easily change jmeter log file</li>


<li>HTTP Mirror Server Workbench element</li>


<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=41253">
      Bug
      41253</a> - extend XPathExtractor to work with non-NodeList XPath expressions</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=42088">
      Bug
      42088</a> - Add XPath Assertion for booleans</li>


<li>Added __V variable function to resolve nested variable names</li>


<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=40369">
      Bug
      40369</a> - Equals Response Assertion</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=41704">
      Bug
      41704</a> - Allow charset encoding to be specified for CSV DataSet</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=41259">
      Bug
      41259</a> - Comment field added to all test elements</li>

<li>Add standard deviation to Summary Report</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=41873">
      Bug
      41873</a> - Add name to AssertionResult and display AssertionResult in ViewResultsFullVisualizer</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=36755">
      Bug
      36755</a> - Save XML test files with UTF-8 encoding</li>

<li>Use ISO date-time format for Tree View Listener (previously the year was not shown)</li>

<li>Improve loading of CSV files: if possible, use header to determine format; guess timestamp format if not milliseconds</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=41913">
      Bug
      41913</a> - TransactionController now creates samples as sub-samples of the transaction</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=42582">
      Bug
      42582</a> - JSON pretty printing in Tree View Listener</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=40099">
      Bug
      40099</a> - Enable use of object variable in ForEachController</li>


<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=39693">
      Bug
      39693</a> - View Result Table uses icon instead of check box</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=39717">
      Bug
      39717</a> - use icons in the results tree</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=42247">
      Bug
      42247</a> - improve HCI</li>

<li>Allow user to cancel out of Close dialogue</li>

</ul>


<h4>Non-functional improvements:</h4>

<ul>

<li>Functor calls can now be unit tested</li>

<li>Replace com.sun.net classes with javax.net</li>

<li>Extract external jar definitions into build.properties file</li>

<li>Use specific jar names in build classpaths so errors are detected sooner</li>

<li>Tidied up ORO calls; now only one cache, size given by oro.patterncache.size, default 1000</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=42326">
      Bug
      42326</a> - Order of elements in .jmx files changes</li>

</ul>


<h4>External jar updates:</h4>

<ul>

<li>Htmlparser 2.0-20060923</li>

<li>xstream 1.2.1/xpp3_min-1.1.3.4.O</li>

<li>Batik 1.6</li>

<li>BSF 2.4.0</li>

<li>commons-collections 3.2</li>

<li>commons-httpclient-3.1-rc1</li>

<li>commons-jexl 1.1</li>

<li>commons-lang-2.3 (added)</li>

<li>JUnit 3.8.2</li>

<li>velocity 1.5</li>

<li>commons-io 1.3.1 (added)</li>

</ul>


<h4>Bug fixes:</h4>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=39773">
      Bug
      39773</a> - NTLM now needs local host name - fix other call</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=40438">
      Bug
      40438</a> - setting "httpclient.localaddress" has no effect</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=40419">
      Bug
      40419</a> - Chinese messages translation fix</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=39861">
      Bug
      39861</a> - fix typo</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=40562">
      Bug
      40562</a> - redirects no longer invoke RE post processors</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=40451">
      Bug
      40451</a> - set label if not set by sampler</li>

<li>Fix NPE in CounterConfig.java in Remote mode</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=40791">
      Bug
      40791</a> - Calculator used by Summary Report</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=40772">
      Bug
      40772</a> - correctly parse missing fields in CSV log files</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=40773">
      Bug
      40773</a> - XML log file timestamp not parsed correctly</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=41029">
      Bug
      41029</a> - JMeter -t fails to close input JMX file</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=40954">
      Bug
      40954</a> - Statistical mode in distributed testing shows wrong results</li>

<li>Fix ClassCast Exception when using sampler that returns null, e..g TestAction</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=41140">
      Bug
      41140</a> - Post-processors are run in reverse order</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=41277">
      Bug
      41277</a> - add Latency and Encoding to CSV output</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=41414">
      Bug
      41414</a> - Mac OS X may add extra item to -jar classpath</li>

<li>Fix NPE when saving thread counts in remote testing</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=34261">
      Bug
      34261</a> - NPE in HtmlParser (allow for missing attributes)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=40100">
      Bug
      40100</a> - check FileServer type before calling close</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=39887">
      Bug
      39887</a> - jmeter.util.SSLManager: Couldn't load keystore error message</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=41543">
      Bug
      41543</a> - exception when webserver returns "500 Internal Server Error" and content-length is 0</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=41416">
      Bug
      41416</a> - don't use chunked input for text-box input in SOAP-RPC sampler</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=39827">
      Bug
      39827</a> - SOAP Sampler content length for files</li>

<li>Fix Class cast exception in Clear.java</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=40383">
      Bug
      40383</a> - don't set content-type if already set</li>

<li>Mailer Visualiser test button now works if test plan has not yet been saved</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=36959">
      Bug
      36959</a> - Shortcuts "ctrl c" and "ctrl v" don't work on the tree elements</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=40696">
      Bug
      40696</a> - retrieve embedded resources from STYLE URL() attributes</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=41568">
      Bug
      41568</a> - Problem when running tests remotely when using a 'Counter'</li>

<li>Fixed various classes that assumed timestamps were always end time stamps:
<ul>

<li>SamplingStatCalculator</li>

<li>JTLData</li>

<li>RunningSample</li>

</ul>

</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=40325">
      Bug
      40325</a> - allow specification of proxyuser and proxypassword for WebServiceSampler</li>

<li>Change HttpClient proxy definition to use NTCredentials; added http.proxyDomain property for this</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=40371">
      Bug
      40371</a> - response assertion "pattern to test" scrollbar problem</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=40589">
      Bug
      40589</a> - Unescape XML entities in embedded URLs</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=41902">
      Bug
      41902</a> - NPE in HTTPSampler when responseCode = -1</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=41903">
      Bug
      41903</a> - ViewResultsFullVisualizer : status column looks bad when you do copy and paste</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=41837">
      Bug
      41837</a> - Parameter value corruption in proxy</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=41905">
      Bug
      41905</a> - Can't cut/paste/select Header Manager fields in Java 1.6</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=41928">
      Bug
      41928</a> - Make all request headers sent by HTTP Request sampler appear in sample result</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=41944">
      Bug
      41944</a> - Subresults not handled recursively by ResultSaver</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=42022">
      Bug
      42022</a> - HTTPSampler does not allow multiple headers of same name</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=42019">
      Bug
      42019</a> - Content type not stored in redirected HTTP request with subresults</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=42057">
      Bug
      42057</a> - connection can be null if method is null</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=41518">
      Bug
      41518</a> - JMeter changes the HTTP header Content Type for POST request</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=42156">
      Bug
      42156</a> - HTTPRequest HTTPClient incorrectly urlencodes parameter value in POST</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=42184">
      Bug
      42184</a> - Number of bytes for subsamples not added to sample when sub samples are added</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=42185">
      Bug
      42185</a> - If a HTTP Sampler follows a redirect, and is set up to download images, then images are downloaded multiple times</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=39808">
      Bug
      39808</a> - Invalid redirect causes incorrect sample time</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=42267">
      Bug
      42267</a> - Concurrent GUI update failure in Proxy Recording</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=30120">
      Bug
      30120</a> - Name of simple controller is resetted if a new simple controller is added as child</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=41078">
      Bug
      41078</a> - merge results in name change of test plan</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=40077">
      Bug
      40077</a> - Creating new Elements copies values from Existing elements</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=42325">
      Bug
      42325</a> - Implement the "clear" method for the LogicControllers</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=25441">
      Bug
      25441</a> - TestPlan changes sometimes detected incorrectly (isDirty)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=39734">
      Bug
      39734</a> - Listeners shared after copy/paste operation</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=40851">
      Bug
      40851</a> - Loop controller with 0 iterations, stops evaluating the iterations field</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=24684">
      Bug
      24684</a> - remote startup problems if spaces in the path of the jmeter</li>

<li>Use Listener configuration when loading CSV data files</li>

<li>Function methods setParameters() need to be synchronized</li>

<li>Fix CLI long optional argument to require "=" (as for short options)</li>

<li>Fix SlowSocket to work properly with Httpclient (both http and https)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=41612">
      Bug
      41612</a> - Loop nested in If Controller behaves erratically</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=42232">
      Bug
      42232</a> - changing language clears UDV contents</li>

<li>Jexl function did not allow variables</li>

</ul>


<h3>Version 2.2</h3>


<h4>Incompatible changes:</h4>

<p>
The time stamp is now set to the sampler start time (it was the end).
To revert to the previous behaviour, change the property <b>sampleresult.timestamp.start</b> to false (or comment it)
</p>

<p>The JMX output format has been simplified and files are not backwards compatible</p>

<p>
The JMeter.BAT file no longer changes directory to JMeter home, but runs from the current working directory.
The jmeter-n.bat and jmeter-t.bat files change to the directory containing the input file.
</p>

<p>
Listeners are now started slightly later in order to allow variable names to be used.
This may cause some problems; if so define the following in jmeter.properties:
<br>
jmeterengine.startlistenerslater=false
</p>


<p>
The GUI now expands the tree by default when loading a test plan.
This can be disabled by setting the JMeter property <b>onload.expandtree=false</b>

</p>


<h4>Known problems:</h4>

<ul>

<li>Post-processors run in reverse order (see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=41140">
      Bug
      41140</a>)</li>

<li>Module Controller does not work in non-GUI mode</li>

<li>Aggregate Report and some other listeners use increasing amounts of memory as a test progresses</li>

<li>Does not always handle non-default encoding properly</li>

<li>Spaces in the installation path cause problems for client-server mode</li>

<li>Change of Language does not propagate to all test elements</li>

<li>SamplingStatCalculator keeps a List of all samples for calculation purposes;
this can cause memory exhaustion in long-running tests</li>

<li>Does not properly handle server certificates if they are expired or not installed locally</li>

</ul>


<h4>New functionality:</h4>

<ul>

<li>Report function</li>

<li>XPath Extractor Post-Processor. Handles single and multiple matches.</li>

<li>Simpler JMX file format (2.2)</li>

<li>BeanshellSampler code can update ResponseData directly</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=37490">
      Bug
      37490</a> - Allow UDV as delay in Duration Assertion</li>

<li>Slow connection emulation for HttpClient</li>

<li>Enhanced JUnitSampler so that by default assert errors and exceptions are not appended to the error message.
Users must explicitly check append in the sampler</li>

<li>Enhanced the documentation for webservice sampler to explain how it works with CSVDataSet</li>

<li>Enhanced the documentation for javascript function to explain escaping comma</li>

<li>Allow CSV Data Set file names to be absolute</li>

<li>Report Tree compiler errors better</li>

<li>Don't reset Regex Extractor variable if default is empty</li>

<li>includecontroller.prefix property added</li>

<li>Regular Expression Extractor sets group count</li>

<li>Can now save entire screen as an image, not just the right-hand pane</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=38901">
      Bug
      38901</a> - Add optional SOAPAction header to SOAP Sampler</li>

<li>New BeanShell test elements: Timer, PreProcessor, PostProcessor, Listener</li>

<li>__split() function now clears next variable, so it can be used with ForEach Controller</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=38682">
      Bug
      38682</a> - add CallableStatement functionality to JDBC Sampler</li>

<li>Make it easier to change the RMI/Server port</li>

<li>Add property jmeter.save.saveservice.xml_pi to provide optional xml processing instruction in JTL files</li>

<li>Add bytes and URL to items that can be saved in sample log files (XML and CSV)</li>

<li>The Post-Processor "Save Responses to a File" now saves the generated file name with the
sample, and the file name can be included in the sample log file.
</li>

<li>Change jmeter.bat DOS script so it works from any directory</li>

<li>New -N option to define nonProxyHosts from command-line</li>

<li>New -S option to define system properties from input file</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=26136">
      Bug
      26136</a> - allow configuration of local address</li>

<li>Expand tree by default when loading a test plan - can be disabled by setting property onload.expandtree=false</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=11843">
      Bug
      11843</a> - URL Rewriter can now cache the session id</li>

<li>Counter Pre-Processor now supports formatted numbers</li>

<li>Add support for HEAD PUT OPTIONS TRACE and DELETE methods</li>

<li>Allow default HTTP implementation to be changed</li>

<li>Optionally save active thread counts (group and all) to result files</li>

<li>Variables/functions can now be used in Listener file names</li>

<li>New __time() function; define START.MS/START.YMD/START.HMS properties and variables</li>

<li>Add Thread Name to Tree and Table Views</li>

<li>Add debug functions: What class, debug on, debug off</li>

<li>Non-caching Calculator - used by Table Visualiser to reduce memory footprint</li>

<li>Summary Report - similar to Aggregate Report, but uses less memory</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=39580">
      Bug
      39580</a> - recycle option for CSV Dataset</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=37652">
      Bug
      37652</a> - support for Ajp Tomcat protocol</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=39626">
      Bug
      39626</a> - Loading SOAP/XML-RPC requests from file</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=39652">
      Bug
      39652</a> - Allow truncation of labels on AxisGraph</li>

<li>Allow use of htmlparser 1.6</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=39656">
      Bug
      39656</a> - always use SOAP action if it is provided</li>

<li>Automatically include properties from user.properties file</li>

<li>Add __jexl() function - evaluates Commons JEXL expressions</li>

<li>Optionally load JMeter properties from user.properties and system properties from system.properties.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=39707">
      Bug
      39707</a> - allow Regex match against URL</li>

<li>Add start time to Table Visualiser</li>

<li>HTTP Samplers can now extract embedded resources for any required media types</li>

</ul>


<h4>Bug fixes:</h4>

<ul>

<li>Fix NPE when no module selected in Module Controller</li>

<li>Fix NPE in XStream when no ResponseData present</li>

<li>Remove ?xml prefix when running with Java 1.5 and no x-jars</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=37117">
      Bug
      37117</a> - setProperty() function should return ""; added optional return of original setting</li>

<li>Fix CSV output time format</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=37140">
      Bug
      37140</a> - handle encoding better in RegexFunction</li>

<li>Load all cookies, not just the first; fix class cast exception</li>

<li>Fix default Cookie path name (remove page name)</li>

<li>Fixed resultcode attribute name</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=36898">
      Bug
      36898</a> - apply encoding to RegexExtractor</li>

<li>Add properties for saving subresults, assertions, latency, samplerData, responseHeaders, requestHeaders &amp; encoding</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=37705">
      Bug
      37705</a> - Synch Timer now works OK after run is stopped</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=37716">
      Bug
      37716</a> - Proxy request now handles file Post correctly</li>

<li>HttpClient Sampler now saves latency</li>

<li>Fix NPE when using JavaScript function on Test Plan</li>

<li>Fix Base Href parsing in htmlparser</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=38256">
      Bug
      38256</a> - handle cookie with no path</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=38391">
      Bug
      38391</a> - use long when accumulating timer delays</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=38554">
      Bug
      38554</a> - Random function now uses long numbers</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=35224">
      Bug
      35224</a> - allow duplicate attributes for LDAP sampler</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=38693">
      Bug
      38693</a> - Webservice sampler can now use https protocol</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=38646">
      Bug
      38646</a> - Regex Extractor now clears old variables on match failure</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=38640">
      Bug
      38640</a> - fix WebService Sampler pooling</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=38474">
      Bug
      38474</a> - HTML Link Parser doesn't follow frame links</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=36430">
      Bug
      36430</a> - Counter now uses long rather than int to increase the range</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=38302">
      Bug
      38302</a> - fix XPath function</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=38748">
      Bug
      38748</a> - JDBC DataSourceElement fails with remote testing</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=38902">
      Bug
      38902</a> - sometimes -1 seems to be returned unnecessarily for response code</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=38840">
      Bug
      38840</a> - make XML Assertion thread-safe</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=38681">
      Bug
      38681</a> - Include controller now works in non-GUI mode</li>

<li>Add write(OS,IS) implementation to TCPClientImpl</li>

<li>Sample Result converter saves response code as "rc". Previously it saved as "rs" but read with "rc"; it will now also read with "rc".
The XSL stylesheets also now accept either "rc" or "rs"</li>

<li>Fix counter function so each counter instance is independent (previously the per-user counters were shared between instances of the function)</li>

<li>Fix TestBean Examples so that they work</li>

<li>Fix JTidy parser so it does not skip body tags with background images</li>

<li>Fix HtmlParser parser so it catches all background images</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=39252">
      Bug
      39252</a> set SoapSampler sample result from XML data</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=38694">
      Bug
      38694</a> - WebServiceSampler not setting data encoding correctly</li>

<li>Result Collector now closes input files read by listeners</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=25505">
      Bug
      25505</a> - First HTTP sampling fails with "HTTPS hostname wrong: should be 'localhost'"</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=25236">
      Bug
      25236</a> - remove double scrollbar from Assertion Result Listener</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=38234">
      Bug
      38234</a> - Graph Listener divide by zero problem</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=38824">
      Bug
      38824</a> - clarify behaviour of Ignore Status</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=38250">
      Bug
      38250</a> - jmeter.properties "language" now supports country suffix, for zh_CN and zh_TW etc</li>

<li>jmeter.properties file is now closed after it has been read</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=39533">
      Bug
      39533</a> - StatCalculator added wrong items</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=39599">
      Bug
      39599</a> - ConcurrentModificationException</li>

<li>HTTPSampler2 now handles Auto and Follow redirects correctly</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=29481">
      Bug
      29481</a> - fix reloading sample results so subresults not counted twice</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=30267">
      Bug
      30267</a> - handle AutoRedirects properly</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=39677">
      Bug
      39677</a> - allow for space in JMETER_BIN variable</li>

<li>Use Commons HttpClient cookie parsing and management. Fix various problems with cookie handling.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=39773">
      Bug
      39773</a> - NTCredentials needs host name</li>

</ul>


<h4>Other changes</h4>

<ul>

<li>Updated to HTTPClient 3.0 (from 2.0)</li>

<li>Updated to Commons Collections 3.1</li>

<li>Improved formatting of Request Data in Tree View</li>

<li>Expanded user documentation</li>

<li>Added MANIFEST, NOTICE and LICENSE to all jars</li>

<li>Extract htmlparser interface into separate jarfile to make it possible to replace the parser</li>

<li>Removed SQL Config GUI as no longer needed (or working!)</li>

<li>HTTPSampler no longer logs a warning for Page not found (404)</li>

<li>StringFromFile now callable as __StringFromFile (as well as _StringFromFile)</li>

<li>Updated to Commons Logging 1.1</li>

</ul>





<hr>

<h3>Version 2.1.1</h3>

<h4>New functionality:</h4>

<ul>

<li>New Include Controller allows a test plan to reference an external jmx file</li>

<li>New JUnitSampler added for using JUnit Test classes</li>

<li>New Aggregate Graph listener is capable of graphing aggregate statistics</li>

<li>Can provide additional classpath entries using the property user.classpath and on the Test Plan element</li>

</ul>

<h4>Bug fixes:</h4>

<ul>

<li>AccessLog Sampler and JDBC test elements populated correctly from 2.0 test plans</li>

<li>BSF Sampler now populates filename and parameters from saved test plan</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=36500">
      Bug
      36500</a> - handle missing data more gracefully in WebServiceSampler</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=35546">
      Bug
      35546</a> - add merge to right-click menu</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=36642">
      Bug
      36642</a> - Summariser stopped working in 2.1</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=36618">
      Bug
      36618</a> - CSV header line did not match saved data</li>

<li>JMeter should now run under JVM 1.3 (but does not build with 1.3)</li>

</ul>





<h3>Version 2.1</h3>

<h4>New functionality:</h4>

<ul>

<li>New Test Script file format - smaller, more compact, more readable</li>

<li>New Sample Result file format - smaller, more compact</li>

<li>XSchema Assertion</li>

<li>XML Tree display</li>

<li>CSV DataSet Config item</li>

<li>New JDBC Connection Pool Config Element</li>

<li>Synchronisation Timer</li>

<li>setProperty function</li>

<li>Save response data on error</li>

<li>Ant JMeter XSLT now optionally shows failed responses and has internal links</li>

<li>Allow JavaScript variable name to be omitted</li>

<li>Changed following Samplers to set sample label from sampler name</li>

<li>All Test elements can be saved as a graphics image to a file</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=35026">
      Bug
      35026</a> - add RE pattern matching to Proxy</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=34739">
      Bug
      34739</a> - Enhance constant Throughput timer</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=25052">
      Bug
      25052</a> - use response encoding to create comparison string in Response Assertion</li>

<li>New optional icons</li>

<li>Allow icons to be defined via property files</li>

<li>New stylesheets for 2.1 format XML test output</li>

<li>Save samplers, config element and listeners as PNG</li>

<li>Enhanced support for WSDL processing</li>

<li>New JMS sampler for topic and queue messages</li>

<li>How-to for JMS samplers</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=35525">
      Bug
      35525</a> - Added Spanish localisation</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=30379">
      Bug
      30379</a> - allow server.rmi.port to be overridden</li>

<li>enhanced the monitor listener to save the calculated stats</li>

<li>Functions and variables now work at top level of test plan</li>

</ul>

<h4>Bug fixes:</h4>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=34586">
      Bug
      34586</a> - XPath always remained as /</li>

<li>BeanShellInterpreter did not handle null objects properly</li>

<li>Fix Chinese resource bundle names</li>

<li>Save field names if required to CSV files</li>

<li>Ensure XML file is closed</li>

<li>Correct icons now displayed for TestBean components</li>

<li>Allow for missing optional jar(s) in creating menus</li>

<li>Changed Samplers to set sample label from sampler name as was the case for HTTP</li>

<li>Fix various samplers to avoid NPEs when incomplete data is provided</li>

<li>Fix Cookie Manager to use seconds; add debug</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=35067">
      Bug
      35067</a> - set up filename when using -t option</li>

<li>Don't substitute TestElement.* properties by UDVs in Proxy</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=35065">
      Bug
      35065</a> - don't save old extensions in File Saver</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=25413">
      Bug
      25413</a> - don't enable Restart button unnecessarily</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=35059">
      Bug
      35059</a> - Runtime Controller stopped working</li>

<li>Clear up any left-over connections created by LDAP Extended Sampler</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=23248">
      Bug
      23248</a> - module controller didn't remember stuff between save and reload</li>

<li>Fix Chinese locales</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=29920">
      Bug
      29920</a> - change default locale if necessary to ensure default properties are picked up when English is selected.</li>

<li>Bug fixes for Tomcat monitor captions</li>

<li>Fixed webservice sampler so it works with user defined variables</li>

<li>Fixed screen borders for LDAP config GUI elements</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=31184">
      Bug
      31184</a> - make sure encoding is specified in JDBC sampler</li>

<li>TCP sampler - only share sockets with same host:port details; correct the manual</li>

<li>Extract src attribute for embed tags in JTidy and Html Parsers</li>

</ul>




<h3>Version 2.0.3</h3>

<h4>New functionality:</h4>

<ul>

<li>XPath Assertion and XPath Function</li>

<li>Switch Controller</li>

<li>ForEach Controller can now loop through sets of groups</li>

<li>Allow CSVRead delimiter to be changed (see jmeter.properties)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=33920">
      Bug
      33920</a> - allow additional property files</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=33845">
      Bug
      33845</a> - allow direct override of Home dir</li>

</ul>

<h4>Bug fixes:</h4>

<ul>

<li>Regex Extractor nested constant not put in correct place <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=32395">
      Bug
      32395</a>
</li>

<li>Start time reset to now if necessary so that delay works OK.</li>

<li>Missing start/end times in scheduler are assumed to be now, not 1970</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=28661">
      Bug
      28661</a> - 304 responses not appearing in listeners</li>

<li>DOS scripts now handle different disks better</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=32345">
      Bug
      32345</a> - HTTP Rewriter does not work with HTTP Request default</li>

<li>Catch Runtime Exceptions so an error in one Listener does not affect others</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=33467">
      Bug
      33467</a> - __threadNum() extracted number wrongly </li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=29186">
      Bug
      29186</a>,33299 - fix CLI parsing of "-" in second argument</li>

<li>Fix CLI parse bug: -D arg1=arg2. Log more startup parameters.</li>

<li>Fix JTidy and HTMLParser parsers to handle form src= and link rel=stylesheet</li>

<li>JMeterThread now logs Errors to jmeter.log which were appearing on console</li>

<li>Ensure WhileController condition is dynamically checked</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=32790">
      Bug
      32790</a> ensure If Controller condition is re-evaluated each time</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=30266">
      Bug
      30266</a> - document how to display proxy recording responses</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=33921">
      Bug
      33921</a> - merge should not change file name</li>

<li>Close file now gives chance to save changes</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=33559">
      Bug
      33559</a> - fixes to Runtime Controller</li>

</ul>

<h4>Other changes:</h4>

<ul>

<li>To help with variable evaluation, JMeterThread sets "sampling started" a bit earlier (see jmeter.properties)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=33796">
      Bug
      33796</a> - delete cookies with null/empty values</li>

<li>Better checking of parameter count in JavaScript function</li>

<li>Thread Group now defaults to 1 loop instead of forever</li>

<li>All Beanshell access is now via a single class; only need BSH jar at run-time</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=32464">
      Bug
      32464</a> - document Direct Draw settings in jmeter.bat</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=33919">
      Bug
      33919</a> - increase Counter field sizes</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=32252">
      Bug
      32252</a> - ForEach was not initialising counters</li>

</ul>




<h3>Version 2.0.2</h3>

<h4>New functionality:</h4>

<ul>

<li>While Controller</li>

<li>BeanShell initialisation scripts</li>

<li>Result Saver can optionally save failed results only</li>

<li>Display as HTML has option not to download frames and images etc</li>

<li>Multiple Tree elements can now be enabled/disabled/copied/pasted at once</li>

<li>__split() function added</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=28699">
      Bug
      28699</a> allow Assertion to regard unsuccessful responses - e.g. 404 - as successful</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=29075">
      Bug
      29075</a> Regex Extractor can now extract data out of http response header as well as the body</li>

<li>__log() functions can now write to stdout and stderr</li>

<li>URL Modifier can now optionally ignore query parameters</li>

</ul>

<h4>Bug fixes:</h4>

<ul>

<li>If controller now works after the first false condition <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=31390">
      Bug
      31390</a>
</li>

<li>Regex GUI was losing track of Header/Body checkbox <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=29853">
      Bug
      29853</a>
</li>

<li>Display as HTML now handles frames and relative images</li>

<li>Right-click open replaced by merge</li>

<li>Fix some drag and drop problems</li>

<li>Fixed foreach demo example so it works</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=30741">
      Bug
      30741</a> SSL password prompt now works again </li>

<li>StringFromFile now closes files at end of test; start and end now optional as intended</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=31342">
      Bug
      31342</a> Fixed text of SOAP Sampler headers</li>

<li>Proxy must now be stopped before it can be removed <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=25145">
      Bug
      25145</a>
</li>

<li>Link Parser now supports BASE href <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=25490">
      Bug
      25490</a>
</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=30917">
      Bug
      30917</a> Classfinder ignores duplicate names</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=22820">
      Bug
      22820</a> Allow Counter value to be cleared</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=28230">
      Bug
      28230</a> Fix NPE in HTTP Sampler retrieving embedded resources</li>

<li>Improve handling of StopTest; catch and log some more errors</li>

<li>ForEach Controller no longer runs any samples if first variable is not defined</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=28663">
      Bug
      28663</a> NPE in remote JDBC execution</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=30110">
      Bug
      30110</a> Deadlock in stopTest processing</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=31696">
      Bug
      31696</a> Duration not working correctly when using Scheduler</li>

<li>JMeterContext now uses ThreadLocal - should fix some potential NPE errors</li>

</ul>

<h3>Version 2.0.1</h3>

<p>Bug fix release. TBA.</p>

<h3>Version 2.0</h3>

<ul>
    
<li>HTML parsing improved; now has choice of 3 parsers, and most embedded elements can now be detected and downloaded.</li>

<li>Redirects can now be delegated to URLConnection by defining the JMeter property HTTPSamper.delegateRedirects=true (default is false) </li>

<li>Stop Thread and Stop Test methods added for Samplers and Assertions etc. Samplers can call setStopThread(true) or setStopTest(true) if they detect an error that needs to stop the thread of the test after the sample has been processed </li>

<li>Thread Group Gui now has an extra pane to specify what happens after a Sampler error: Continue (as now), Stop Thread or Stop Test.
    This needs to be extended to a lower level at some stage. </li>

<li>Added Shutdown to Run Menu. This is the same as Stop except that it lets the Threads finish normally (i.e. after the next sample has been completed) </li>

<li>Remote samples can be cached until the end of a test by defining the property hold_samples=true when running the server.
More work is needed to be able to control this from the GUI </li>

<li>Proxy server has option to skip recording browser headers </li>

<li>Proxy restart works better (stop waits for daemon to finish) </li>

<li>Scheduler ignores start if it has already passed </li>

<li>Scheduler now has delay function </li>

<li>added Summariser test element (mainly for non-GUI) testing. This prints summary statistics to System.out and/or the log file every so often (3 minutes by default). Multiple summarisers can be used; samples are accumulated by summariser name. </li>

<li>Extra Proxy Server options:
Create all samplers with keep-alive disabled
Add Separator markers between sets of samples
Add Response Assertion to first sampler in each set </li>

<li>Test Plan has a comment field</li>

    
<li>Help Page can now be pushed to background</li>
    
<li>Separate Function help page</li>
    
<li>New / amended functions</li>
    
<ul>
      
<li>__property() and __P() functions</li>
      
<li>__log() and __logn() - for writing to the log file</li>
      
<li>_StringFromFile can now process a sequence of files, e.g. dir/file01.txt, dir/file02.txt etc </li>
      
<li>_StringFromFile() function can now use a variable or function for the file name </li>
    
</ul>
    
<li>New / amended Assertions</li>
    
<ul>
        
<li>Response Assertion now works for URLs, and it handles null data better </li>
        
<li>Response Assertion can now match on Response Code and Response message as well </li>
        
<li>HTML Assertion using JTidy to check for well-formed HTML</li>
    
</ul>
    
<li>If Controller (not fully functional yet)</li>
    
<li>Transaction Controller (aggregates the times of its children)</li>
    
<li>New Samplers</li>
        
<ul>
            
<li>Basic BSF Sampler (optional)</li>
            
<li>BeanShell Sampler (optional, needs to be downloaded from www.beanshell.org</li>
            
<li>Basic TCP Sampler</li>
        
</ul>
     
<li>Optionally start BeanShell server (allows remote access to JMeter variables and methods) </li>

</ul>

<h3>Version 1.9.1</h3>

<p>TBA</p>

<h3>Version 1.9</h3>

<ul>

<li>Sample result log files can now be in CSV or XML format</li>

<li>New Event model for notification of iteration events during test plan run</li>

<li>New Javascript function for executing arbitrary javascript statements</li>

<li>Many GUI improvements</li>

<li>New Pre-processors and Post-processors replace Modifiers and Response-Based Modifiers. </li>

<li>Compatible with jdk1.3</li>

<li>JMeter functions are now fully recursive and universal (can use functions as parameters to functions)</li>

<li>Integrated help window now supports hypertext links</li>

<li>New Random Function</li>

<li>New XML Assertion</li>

<li>New LDAP Sampler (alpha code)</li>

<li>New Ant Task to run JMeter (in extras folder)</li>

<li>New Java Sampler test implementation (to assist developers)</li>

<li>More efficient use of memory, faster loading of .jmx files</li>

<li>New SOAP Sampler (alpha code)</li>

<li>New Median calculation in Graph Results visualizer</li>

<li>Default config element added for developer benefit</li>

<li>Various performance enhancements during test run</li>

<li>New Simple File recorder for minimal GUI overhead during test run</li>

<li>New Function: StringFromFile - grabs values from a file</li>

<li>New Function: CSVRead - grabs multiple values from a file</li>

<li>Functions now longer need to be encoded - special values should be escaped
with "\" if they are literal values</li>

<li>New cut/copy/paste functionality</li>

<li>SSL testing should work with less user-fudging, and in non-gui mode</li>

<li>Mailer Model works in non-gui mode</li>

<li>New Throughput Controller</li>

<li>New Module Controller</li>

<li>Tests can now be scheduled to run from a certain time till a certain time</li>

<li>Remote JMeter servers can be started from a non-gui client.  Also, in gui mode, all remote servers can be started with a single click</li>

<li>ThreadGroups can now be run either serially or in parallel (default)</li>

<li>New command line options to override properties</li>

<li>New Size Assertion</li>


</ul>


<h3>Version 1.8.1</h3>

<ul>

<li>Bug Fix Release.  Many bugs were fixed.</li>

<li>Removed redundant "Root" node from test tree.</li>

<li>Re-introduced Icons in test tree.</li>

<li>Some re-organization of code to improve build process.</li>

<li>View Results Tree has added option to view results as web document (still buggy at this point).</li>

<li>New Total line in Aggregate Listener (still buggy at this point).</li>

<li>Improvements to ability to change JMeter's Locale settings.</li>

<li>Improvements to SSL Manager.</li>

</ul>


<h3>Version 1.8</h3>

<ul>

<li>Improvement to Aggregate report's calculations.</li>

<li>Simplified application logging.</li>

<li>New Duration Assertion.</li>

<li>Fixed and improved Mailer Visualizer.</li>

<li>Improvements to HTTP Sampler's recovery of resources (sockets and file handles).</li>

<li>Improving JMeter's internal handling of test start/stop.</li>

<li>Fixing and adding options to behavior of Interleave and Random Controllers.</li>

<li>New Counter config element.</li>

<li>New User Parameters config element.</li>

<li>Improved performance of file opener.</li>

<li>Functions and other elements can access global variables.</li>

<li>Help system available within JMeter's GUI.</li>

<li>Test Elements can be disabled.</li>

<li>Language/Locale can be changed while running JMeter (mostly).</li>

<li>View Results Tree can be configured to record only errors.</li>

<li>Various bug fixes.</li>

</ul>


<h3>Version 1.7.3</h3>

<ul>

<li>New Functions that provide more ability to change requests dynamically during test runs.</li>

<li>New language translations in Japanese and German.</li>

<li>Removed annoying Log4J error messages.</li>

<li>Improved support for loading JMeter 1.7 version test plan files (.jmx files).</li>

<li>JMeter now supports proxy servers that require username/password authentication.</li>

<li>Dialog box indicating test stopping doesn't hang JMeter on problems with stopping test.</li>

<li>GUI can run multiple remote JMeter servers (fixes GUI bug that prevented this).</li>

<li>Dialog box to help created function calls in GUI.</li>

<li>New Keep-alive switch in HTTP Requests to indicate JMeter should or should not use Keep-Alive for sockets.</li>

<li>HTTP Post requests can have GET style arguments in Path field.  Proxy records them correctly now.</li>

<li>New User-defined test-wide static variables.</li>

<li>View Results Tree now displays more information, including name of request (matching the name
in the test tree) and full request and POST data.</li>

<li>Removed obsolete View Results Visualizer (use View Results Tree instead).</li>

<li>Performance enhancements.</li>

<li>Memory use enhancements.</li>

<li>Graph visualizer GUI improvements.</li>

<li>Updates and fixes to Mailer Visualizer.</li>

</ul>


<h3>Version 1.7.2</h3>

<ul>

<li>JMeter now notifies user when test has stopped running.</li>

<li>HTTP Proxy server records HTTP Requests with re-direct turned off.</li>

<li>HTTP Requests can be instructed to either follow redirects or ignore them.</li>

<li>Various GUI improvements.</li>

<li>New Random Controller.</li>

<li>New SOAP/XML-RPC Sampler.</li>

</ul>


<h3>Version 1.7.1</h3>

<ul>

<li>JMeter's architecture revamped for a more complete separation between GUI code and
test engine code.</li>

<li>Use of Avalon code to save test plans to XML as Configuration Objects</li>

<li>All listeners can save data to file and load same data at later date.</li>

</ul>


<h3>Version 1.7Beta</h3>

<ul>
    
<li>Better XML support for special characters (Tushar Bhatia) </li>
    
<li>Non-GUI functioning  &amp; Non-GUI test plan execution  (Tushar Bhatia)</li>
    
<li>Removing Swing dependence from base JMeter classes</li>
    
<li>Internationalization (Takashi Okamoto)</li>
    
<li>AllTests bug fix (neth6@atozasia.com)</li>
    
<li>ClassFinder bug fix (neth6@atozasia.com)</li>
    
<li>New Loop Controller</li>
    
<li>Proxy Server records HTTP samples from browser
        (and documented in the user manual)</li> 
<li>Multipart Form support</li>
    
<li>HTTP Header class for Header customization</li>
    
<li>Extracting HTTP Header information from responses (Jamie Davidson)</li>
    
<li>Mailer Visualizer re-added to JMeter</li>
    
<li>JMeter now url encodes parameter names and values</li>
    
<li>listeners no longer give exceptions if their gui's haven't been initialized</li>
    
<li>HTTPS and Authorization working together</li>
    
<li>New Http sampling that automatically parses HTML response
        for images to download, and includes the downloading of these
        images in total time for request (Neth neth6@atozasia.com) </li>
    
<li>HTTP responses from server can be parsed for links and forms,
        and dynamic data can be extracted and added to test samples
        at run-time (documented)</li>
    
<li>New Ramp-up feature (Jonathan O'Keefe)</li>
    
<li>New visualizers (Neth)</li>
    
<li>New Assertions for functional testing</li>

</ul>


<h3>Version 1.6.1</h3>

<ul>
    
<li>Fixed saving and loading of test scripts (no more extra lines)</li>
    
<li>Can save and load special characters (such as "&amp;" and "&lt;").</li>
    
<li>Can save and load timers and listeners.</li>
    
<li>Minor bug fix for cookies (if you cookie value
        contained an "=", then it broke).</li>
    
<li>URL's can sample ports other than 80, and can test HTTPS,
        provided you have the necessary jars (JSSE)</li>

</ul>


<h3>Version 1.6 Alpha</h3>

<ul>
    
<li>New UI</li>
    
<li>Separation of GUI and Logic code</li>
    
<li>New Plug-in framework for new modules</li>
    
<li>Enhanced performance</li>
    
<li>Layering of test logic for greater flexibility</li>
    
<li>Added support for saving of test elements</li>
    
<li>Added support for distributed testing using a single client</li>


</ul>

<h3>Version 1.5.1</h3>

<ul>
    
<li>Fixed bug that caused cookies not to be read if header name case not as expected.</li>
    
<li>Clone entries before sending to sampler - prevents relocations from messing up
        information across threads</li>
    
<li>Minor bug fix to convenience dialog for adding parameters to test sample.
        Bug prevented entries in dialog from appearing in test sample.</li>
    
<li>Added xerces.jar to distribution</li>
    
<li>Added junit.jar to distribution and created a few tests.</li>
    
<li>Started work on new framework.  New files in cvs, but do not effect program yet.</li>
    
<li>Fixed bug that prevent HTTPJMeterThread from delaying according to chosen timer.</li>

</ul>

<p>

<h3>Version 1.5</h3>

<ul>
    
<li>Abstracted out the concept of the Sampler, SamplerController, and TestSample.
        A Sampler represents code that understands a protocol (such as HTTP,
        or FTP, RMI,   SMTP, etc..).  It is the code that actually makes the
        connection to whatever is   being tested.   A SamplerController
        represents code that understands how to organize and run a group
        of test samples.  It is what binds together a Sampler and its test
        samples and runs them.   A TestSample represents code that understands
        how to gather information from the   user about a particular test.
        For a website, it would represent a URL and any   information to be sent
        with the URL.</li>
    
<li>The UI has been updated to make entering test samples more convenient.</li>
    
<li>Thread groups have been added, allowing a user to setup multiple test to run
        concurrently, and to allow sharing of test samples between those tests.</li>
    
<li>It is now possible to save and load test samples.</li>
    
<li>&hellip; and many more minor changes/improvements &hellip;</li>

</ul>

</p>

<p>

<b>Apache JMeter 1.4.1-dev</b>

<ul>
   
<li>Cleaned up URLSampler code after tons of patches for better readability. (SM)</li>
   
<li>Made JMeter send a special "user-agent" identifier. (SM)</li>
   
<li>Fixed problems with redirection not sending cookies and authentication info and removed
     a warning with jikes compilation. Thanks to Wesley Tanaka for the patches (SM)</li>
   
<li>Fixed a bug in the URLSampler that caused to skip one URL when testing lists of URLs and
     a problem with Cookie handling. Thanks to Graham Johnson for the patches (SM)</li>
   
<li>Fixed a problem with POST actions. Thanks to Stephen Schaub for the patch (SM)</li>
 
</ul>
 
</p>
 
<p>
 
<b>Apache JMeter 1.4</b> - Jul 11 1999
  <ul>
   
<li>Fixed a problem with POST actions. Thanks to Brendan Burns for the patch (SM)</li>
   
<li>Added close button to the About box for those window managers who don't provide it.
     Thanks to Jan-Henrik Haukeland for pointing it out. (SM)</li>
   
<li>Added the simple Spline sample visualizer (JPN)</li>

</ul> 
</p>
  
<p>
<b>Apache JMeter 1.3</b> - Apr 16 1999
<ul>
   
<li>Run the Garbage Collector and run finalization before starting to sampling to ensure
     same state every time (SM)</li>
   
<li>Fixed some NullPointerExceptions here and there (SM)</li>
   
<li>Added HTTP authentication capabilities (RL)</li>
   
<li>Added windowed sample visualizer (SM)</li>
   
<li>Fixed stupid bug for command line arguments. Thanks to Jorge Bracer for pointing this out (SM)</li>

</ul> 
</p>
  
<p>
<b>Apache JMeter 1.2</b> - Mar 17 1999
<ul>
   
<li>Integrated cookie capabilities with JMeter (SM)</li>
   
<li>Added the Cookie manager and Netscape file parser (SD)</li>
   
<li>Fixed compilation error for JDK 1.1 (SD)</li> 
</ul> 
</p>

<p> 
<b>Apache JMeter 1.1</b> - Feb 24 1999
<ul>
   
<li>Created the opportunity to create URL aliasing from the properties file as well as the
     ability to associate aliases to URL sequences instead of single URLs (SM) Thanks to
     Simon Chatfield for the very nice suggestions
     and code examples.</li>
   
<li>Removed the TextVisualizer and replaced it with the much more useful FileVisualizer (SM)</li>
   
<li>Added the known bug list (SM)</li>
   
<li>Removed the Java Apache logo (SM)</li>
   
<li>Fixed a couple of typos (SM)</li>
   
<li>Added UNIX makefile (SD)</li> 
</ul> 
</p>

<p> 
<b>Apache JMeter 1.0.1</b> - Jan 25 1999
<ul>
   
<li>Removed pending issues doc issues (SM)</li>
   
<li>Fixed the unix script (SM)</li>
   
<li>Added the possibility of running the JAR directly using "java -jar
     ApacheJMeter.jar" with Java 2 (SM)</li>
   
<li>Some small updates: fixed Swing location after Java 2(tm) release, license update and
     small cleanups (SM)</li>

</ul> 
</p>

<p> 
<b>Apache JMeter 1.0</b> - Dec 15 1998
<ul>
   
<li>Initial version. (SM)</li>

</ul> 
</p>

</div>
<div class="share-links">
      Share this page:
      <ul>
<li class="fb">
<a data-social-url="https://facebook.com/sharer/sharer.php?u=" title="Share on facebook"><i class="fa fa-facebook" aria-hidden="true"></i>share</a>
</li>
<li class="twitter">
<a data-social-url="https://twitter.com/intent/tweet?url=" title="Tweet on twitter"><i class="fa fa-twitter" aria-hidden="true"></i>tweet</a>
</li>
</ul>
</div>
<a href="#top" id="topButton">Go to top</a>
</div>
<div class="footer">
<div class="copyright">
            Copyright &copy;
            1999 &ndash;
            2020
            , 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>
