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

</ul>


<h3>Listeners</h3>

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

</ul>


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

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

</ul>


<h3>Functions</h3>

<ul>

</ul>


<h3>I18N</h3>

<ul>

</ul>


<h3>Report / Dashboard</h3>

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

</ul>


<h3>Documentation</h3>

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

</ul>


<h3>General</h3>

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

</ul>

 


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

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

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

</ul>

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

<ul>

</ul>

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


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

<ul>

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


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


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


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


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


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


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

</ul>




<h1>Version 5.0</h1>

<p>
Summary
</p>

<ul>

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

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

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

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

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

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

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


</ul>


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

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

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

</ul>

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

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

</p>

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

</p>

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

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

</p>

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

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

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


</p>

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


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

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

</p>

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

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

</p>

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

</p>

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

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

</p>


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

</p> 

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

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

</p>

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

</p>


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


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

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




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

<ul>

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

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

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

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

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

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


</ul>



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


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

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

</ul>


<h3>Other samplers</h3>

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

</ul>


<h3>Controllers</h3>

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

</ul>


<h3>Listeners</h3>

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

</ul>


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

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

</ul>


<h3>Functions</h3>

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

</ul>

<h3>I18N</h3>

<ul>

</ul>


<h3>Report / Dashboard</h3>

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

</ul>


<h3>General</h3>

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

</ul>


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

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

</ul>

 


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


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

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

</ul>


<h3>Other Samplers</h3>

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

</ul>


<h3>Controllers</h3>

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

</ul>


<h3>Listeners</h3>

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

</ul>


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

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

</ul>


<h3>Functions</h3>

<ul>

</ul>


<h3>I18N</h3>

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

</ul>


<h3>Report / Dashboard</h3>

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

</ul>


<h3>Documentation</h3>

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

</ul>


<h3>General</h3>

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

</ul>

 


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

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

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

</ul>

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

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


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

<ul>

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

</ul>

<ul>

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


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


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


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


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


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


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

</ul>




<h1>Version 4.0</h1>

<p>
Summary
</p>

<ul>

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

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

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

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

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

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

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


</ul>


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




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

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

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

</p>

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

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

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

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

</p>

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

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

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

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

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

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

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

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

<p></p>

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

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

</ul>


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

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

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

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

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

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

</p>


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

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

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

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

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


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

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

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

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


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

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





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

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

</ul>



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


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

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

</ul>


<h3>Other samplers</h3>

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

</ul>


<h3>Controllers</h3>

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

</ul>


<h3>Listeners</h3>

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

</ul>


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

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

</ul>


<h3>Functions</h3>

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

</ul>


<h3>I18N</h3>

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

</ul>


<h3>Report / Dashboard</h3>

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

</ul>


<h3>General</h3>

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

</ul>


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

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

</ul>

 


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


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

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

</ul>


<h3>Other Samplers</h3>

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

</ul>


<h3>Controllers</h3>

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

</ul>


<h3>Listeners</h3>

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

</ul>


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

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

</ul>


<h3>Functions</h3>

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

</ul>


<h3>I18N</h3>

<ul>

</ul>


<h3>Report / Dashboard</h3>

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

</ul>


<h3>General</h3>

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

</ul>

 


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

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

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

</ul>

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

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

</ul>

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


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

<ul>

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

</ul>

<ul>

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


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


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


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


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


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


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

</ul>




<h1>Version 3.3</h1>

<p>
Summary
</p>

<ul>

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

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

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

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

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

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

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


</ul>


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

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

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




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

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

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

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

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

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

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

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

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

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

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

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

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

</p>

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

</p>

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

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

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

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

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

</p>

<p>New functions:</p>

<ul>

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

</li>

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

</li>

</ul>




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

<ul>

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

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

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

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

</ul>

<h3>Removed elements or functions</h3>

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

</ul>




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


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

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

</ul>


<h3>Other samplers</h3>

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

</ul>


<h3>Controllers</h3>

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

</ul>


<h3>Listeners</h3>

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

</ul>


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

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

</ul>


<h3>Functions</h3>

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

</ul>


<h3>I18N</h3>

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

</ul>


<h3>Report / Dashboard</h3>

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

</ul>


<h3>General</h3>

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

</ul>


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

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

</ul>

 


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


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

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

</ul>


<h3>Other Samplers</h3>

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

</ul>


<h3>Controllers</h3>

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

</ul>


<h3>Listeners</h3>

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

</ul>


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

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

</ul>


<h3>Functions</h3>

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

</ul>


<h3>I18N</h3>

<ul>

</ul>


<h3>Report / Dashboard</h3>

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

</ul>


<h3>General</h3>

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

</ul>

 


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

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

<ul>

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

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

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

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

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

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

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

</ul>

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

<ul>

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

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

</ul>

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


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

<ul>

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

</ul>

<ul>

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


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


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


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


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


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


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

</ul>




<h1>Version 3.2</h1>

<p>
Summary
</p>

<ul>

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

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

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

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

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

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

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


</ul>


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






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

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

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

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

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

<ul>

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

</li>

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

</li>

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

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

</li>

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

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

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

</li>

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

</li>

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

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

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

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

</ul>


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

<ul>

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

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

</li>

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

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

</li>

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

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

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

</li>

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

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

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

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

</li>

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

</li>

</ul>


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

<ul>

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

</li>

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

</li>

</ul>


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

<ul>

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

</ul>




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


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

</ul>


<h3>Removed elements or functions</h3>

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

</ul>


<h3>Logging changes</h3>

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


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

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

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

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

</p>


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

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

</p>



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


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

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

</ul>


<h3>Other samplers</h3>

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

</ul>


<h3>Controllers</h3>

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

</ul>


<h3>Listeners</h3>

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

</ul>


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

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

</ul>


<h3>Functions</h3>

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

</ul>


<h3>I18N</h3>

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

</ul>


<h3>Report / Dashboard</h3>

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

</ul>


<h3>General</h3>

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

</ul>


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

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

</ul>

 


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


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

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

</ul>


<h3>Other Samplers</h3>

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

</ul>


<h3>Controllers</h3>

<ul>

</ul>


<h3>Listeners</h3>

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

</ul>


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

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

</ul>


<h3>Functions</h3>

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

</ul>


<h3>I18N</h3>

<ul>

</ul>


<h3>Report / Dashboard</h3>

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

</ul>
    

<h3>General</h3>

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

</ul>

 


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

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

<ul>

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

</ul>

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

<ul>

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

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

</ul>

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


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

<ul>

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

</ul>

<ul>

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


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


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


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


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


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


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

</ul>




<h1>Version 3.1</h1>

<p>
Summary
</p>

<ul>

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

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

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

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

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

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

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


</ul>


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


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

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

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

</ul>


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

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


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

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


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

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


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

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

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


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

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

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


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

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


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

<ul>

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

<li>Memory usage improvements</li>

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

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

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

</ul>


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

<ul>

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

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

</ul>







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


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

</ul>


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

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

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

</ul>




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


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

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

</ul>


<h3>Other samplers</h3>

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

</ul>


<h3>Controllers</h3>

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

</ul>


<h3>Listeners</h3>

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

</ul>


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

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

</ul>


<h3>Functions</h3>

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

</ul>


<h3>I18N</h3>

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

</ul>


<h3>Report / Dashboard</h3>

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

</ul>

<h3>General</h3>

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

</ul>


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

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

</ul>

 


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


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

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


<h3>Other Samplers</h3>

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

</ul>


<h3>Controllers</h3>

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

</ul>


<h3>Listeners</h3>

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

</ul>


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

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

</ul>


<h3>Functions</h3>

<ul>

</ul>


<h3>I18N</h3>

<ul>

</ul>


<h3>General</h3>

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

</ul>

 


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

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

<ul>

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

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

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

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

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

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

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

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

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

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

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

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

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

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

</ul>

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

<ul>

</ul>

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


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


<ul>

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


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


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


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


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


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


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


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


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

</ul>




<h1>Version 3.0</h1>

<p>
Summary
</p>

<ul>

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

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

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

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

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

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

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


</ul>


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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

<ul>

<li>IfController</li>

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

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

</ul>

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

<p>

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

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

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

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

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


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

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

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


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


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

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

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

</ul>



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

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

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

</p>

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

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

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

</p>

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

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

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

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

<ul>

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

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

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

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

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

</ul>

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

<ul>

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

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

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

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

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

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

</ul>

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

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

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


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

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

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

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


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

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

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

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

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

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

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

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

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

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

<ul>

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

<li>Shortcuts to expand nodes</li>

</ul>

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


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

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

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

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

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

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

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

<ul>

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

<li>Major code cleanups</li>

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

</ul>

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

<ul>

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

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

<li>More Unit Tests</li>

</ul>

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

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

<ul>

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

<li>htmllexer, htmlparser removed</li>

<li>soap removed</li>

<li>jdom removed</li>

</ul>

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

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



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


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

</ul>

<h3>Deprecated and removed elements</h3>

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

</ul>




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


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

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

</ul>


<h3>Other samplers</h3>

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

</ul>


<h3>Controllers</h3>

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

</ul>


<h3>Listeners</h3>

<ul>

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

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

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

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

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

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

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

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

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

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

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

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

</ul>


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

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

</ul>


<h3>Functions</h3>

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

</ul>


<h3>I18N</h3>

<ul>

</ul>


<h3>General</h3>

<ul>

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

</ul>

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

<ul>

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

</ul>
 
 


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


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

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

</ul>


<h3>Other Samplers</h3>

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

</ul>


<h3>Controllers</h3>

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

</ul>


<h3>Listeners</h3>

<ul>

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

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

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

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

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

</ul>


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

<ul>

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

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

</ul>


<h3>Functions</h3>

<ul>

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

</ul>


<h3>I18N</h3>

<ul>

</ul>


<h3>General</h3>

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

</ul>

 


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

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

<ul>

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

</ul>

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

<ul>

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

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

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

</ul>

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

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


<ul>

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


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


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


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


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


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


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


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


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

</ul>




<h1>Version 2.13</h1>

<p>
Summary
</p>

<ul>

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

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

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

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

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

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

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


</ul>


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





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


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

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

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

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

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


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


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

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

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

</p>

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

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


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

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

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

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

</p>


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

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


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

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

</p>


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

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

</p>


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

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

</p>


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

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


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

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

</ul>

</p>


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


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

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

</p>


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

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

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

</p>


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

</p>


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

</p>
 

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

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

</p>




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


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

</ul>




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


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

<ul>

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

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

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

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

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

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

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

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

</ul>


<h3>Other samplers</h3>

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

</ul>


<h3>Controllers</h3>

<ul>

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

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

</ul>


<h3>Listeners</h3>

<ul>

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

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

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

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

</ul>


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

<ul>

</ul>


<h3>Functions</h3>

<ul>

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

</ul>


<h3>I18N</h3>

<ul>

</ul>


<h3>General</h3>

<ul>

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

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

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

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

</ul>

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

<ul>

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

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

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

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

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

<li>Updated to junit-4.12.jar (from 4.11)</li>

<li>Updated to rhino-1.7R5 (from 1.7R4)</li>

<li>Updated to rsyntaxtextarea-2.5.6 (from 2.5.3)</li>

<li>Updated to slf4j-1.7.10 (from 1.7.5)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57276">
      Bug
      57276</a>
    -
  RMIC no longer needed since Java 5</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57310">
      Bug
      57310</a>
    -
  Replace <span class="code">System.getProperty("file.separator")</span> with <span class="code">File.separator</span> throughout (Also "<span class="code">path.separator"</span> with <span class="code">File.pathSeparator</span>)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57389">
      Bug
      57389</a>
    -
  Fix potential NPE in converters</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57417">
      Bug
      57417</a>
    -
  Remove unused method <span class="code">isTemporary</span> from <span class="code">NullProperty</span>. This was a leftover from a refactoring done in 2003.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57418">
      Bug
      57418</a>
    -
  Remove unused constructor from Workbench</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57419">
      Bug
      57419</a>
    -
  Remove unused interface ModelListener.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57466">
      Bug
      57466</a>
    -
  IncludeController : Remove an unneeded set creation. Contributed by Benoit Wiart (benoit.wiart at gmail.com)</li>

<li>Added property <span class="code">loggerpanel.usejsyntaxtext</span> to disable the use of JSyntaxTextArea for the Console Logger (in case of memory or other issues)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57586">
      Bug
      57586</a>
    -
  HttpTestSampleGui: Remove interface ItemListener implementation</li>

</ul>
 
 


<h2 class="ch_section" id="Bug fixes">Bug fixes</h2>


<h3>HTTP Samplers and Test Script Recorder</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57385">
      Bug
      57385</a>
    -
  Getting empty thread name in xml result for HTTP requests with "Follow Redirects" set. Contributed by Ubik Load Pack (support at ubikloadpack.com)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57579">
      Bug
      57579</a>
    -
  NullPointerException error is raised on main sample if "RETURN_NO_SAMPLE" is used (default) and "Use Cache-Control / Expires header&hellip;" is checked in HTTP Cache Manager</li>

</ul>


<h3>Other Samplers</h3>

<ul>

</ul>


<h3>Controllers</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57447">
      Bug
      57447</a>
    -
  Use only the user listed DNS Servers, when "use custom DNS resolver" option is enabled.</li>

</ul>


<h3>Listeners</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57262">
      Bug
      57262</a>
    -
  Aggregate Report, Aggregate Graph and Summary Report export : headers use keys instead of labels</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57346">
      Bug
      57346</a>
    -
  Summariser : The + (difference) reports show wrong elapsed time and throughput</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57449">
      Bug
      57449</a>
    -
  Distributed Testing: Stripped modes do not strip responses from SubResults (affects load tests that use Download of embedded resources). Contributed by Ubik Load Pack (support at ubikloadpack.com)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57562">
      Bug
      57562</a>
    -
  View Results Tree CSS/JQuery Tester : Nothing happens when there is an error in syntax and an exception occurs in jmeter.log</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57514">
      Bug
      57514</a>
    -
  Aggregate Graph, Summary Report and Aggregate Report show wrong percentage reporting in saved file</li>

</ul>


<h3>Timers, Assertions, Config, Pre- &amp; Post-Processors</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57607">
      Bug
      57607</a>
    -
  Constant Throughput Timer : Wrong throughput computed in shared modes due to rounding error </li>

</ul>


<h3>General</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57365">
      Bug
      57365</a>
    -
  Selected LAF is not correctly setup due to call of <span class="code">UIManager.setLookAndFeel</span> too late. Contributed by Ubik Load Pack (support at ubikloadpack.com)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57364">
      Bug
      57364</a>
    -
  Options &lt; Look And Feel does not update all windows LAF. Contributed by Ubik Load Pack (support at ubikloadpack.com)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57394">
      Bug
      57394</a>
    -
  When constructing an instance with ClassTools#construct(String, int) the integer was ignored and the default constructor was used instead.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57440">
      Bug
      57440</a>
    -
  OutOfMemoryError after introduction of JSyntaxTextArea in LoggerPanel due to disableUndo not being taken into account.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57569">
      Bug
      57569</a>
    -
  FileServer.reserveFile - inconsistent behaviour when hasHeader is true</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57555">
      Bug
      57555</a>
    -
  Cannot use JMeter 2.12 as a maven dependency. Contributed by Pascal Schumacher (pascal.schumacher at t-systems.com)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57608">
      Bug
      57608</a>
    -
  Fix start script compatibility with old Unix shells, e.g. on Solaris</li>

</ul>

 


<h2 class="ch_section" id="Thanks">Thanks</h2>

<p>We thank all contributors mentioned in bug and improvement sections above:
<ul>

<li>
<a href="http://ubikloadpack.com">Ubik Load Pack</a>
</li>

<li>Yngvi &THORN;&oacute;r Sigurj&oacute;nsson (blitzkopf at gmail.com)</li>

<li>Dzmitry Kashlach (dzmitrykashlach at gmail.com)</li>

<li>
<a href="http://blazemeter.com">BlazeMeter Ltd.</a>
</li>

<li>Benoit Wiart (benoit.wiart at gmail.com)</li>

<li>Pascal Schumacher (pascal.schumacher at t-systems.com)</li>

<li>Maciej Franek (maciej.franek at gmail.com)</li>

<li>Richard Brigham (richard.brigham at teamaol.com)</li>

<li>Pieter Ennes (apache.org at spam.ennes.nl)</li>

</ul>


<br>
We also thank bug reporters who helped us improve JMeter. <br>
For this release we want to give special thanks to the following reporters for the clear reports and tests made after our fixes:
<ul>

<li>Chaitanya Bhatt (bhatt.chaitanya at gmail.com) for his thorough testing of new BackendListener and Graphite Client implementation.</li>

<li>Marcelo Jara (marcelojara at hotmail.com) for his clear report on <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57607">
      Bug
      57607</a>.</li>

</ul>

Apologies if we have omitted anyone else.
 </p>
 
 

<h2 class="ch_section" id="Known bugs">Known bugs</h2>


<ul>

<li>The Once Only controller behaves correctly under a Thread Group or Loop Controller,
but otherwise its behaviour is not consistent (or clearly specified).</li>


<li>
The numbers that appear to the left of the green box are the number of active threads / total number of threads, 
the total number of threads only applies to a locally run test, otherwise it will show 0 (see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55510">
      Bug
      55510</a>).
</li>


<li>
Note that there is a <a href="http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6396599 ">bug in Java</a>
on some Linux systems that manifests itself as the following error when running the test cases or JMeter itself:
<pre>
 [java] WARNING: Couldn't flush user prefs:
 java.util.prefs.BackingStoreException:
 java.lang.IllegalArgumentException: Not supported: indent-number
</pre>
This does not affect JMeter operation. This issue is fixed since Java 7b05.
</li>


<li>
Note that under some windows systems you may have this WARNING:
<pre class="source">
java.util.prefs.WindowsPreferences 
WARNING: Could not open/create prefs root node Software\JavaSoft\Prefs at root 0
x80000002. Windows RegCreateKeyEx(&hellip;) returned error code 5.
</pre>
The fix is to run JMeter as Administrator, it will create the registry key for you, then you can restart JMeter as a normal user and you won't have the warning anymore.
</li>


<li>
With Java 1.6 and Gnome 3 on Linux systems, the JMeter menu may not work correctly (shift between mouse's click and the menu). 
This is a known Java bug (see  <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54477">
      Bug
      54477</a>). 
A workaround is to use a Java 7 runtime (OpenJDK or Oracle JDK).
</li>


<li>
With Oracle Java 7 and Mac Book Pro Retina Display, the JMeter GUI may look blurry. 
This is a known Java bug, see Bug <a href="http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=8000629">JDK-8000629</a>.
A workaround is to use a Java 7 update 40 runtime which fixes this issue.
</li>


<li>
You may encounter the following error: <i>java.security.cert.CertificateException: Certificates does not conform to algorithm constraints</i>
 if you run a HTTPS request on a web site with a SSL certificate (itself or one of SSL certificates in its chain of trust) with a signature
 algorithm using MD2 (like md2WithRSAEncryption) or with a SSL certificate with a size lower than 1024 bits.
This error is related to increased security in Java 7 version u16 (MD2) and version u40 (Certificate size lower than 1024 bits), and Java 8 too.
<br>
To allow you to perform your HTTPS request, you can downgrade the security of your Java installation by editing 
the Java <b>jdk.certpath.disabledAlgorithms</b> property. Remove the MD2 value or the constraint on size, depending on your case.
<br>
This property is in this file:
<pre>JAVA_HOME/jre/lib/security/java.security</pre>
See  <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56357">
      Bug
      56357</a> for details.
</li>


</ul>




<h1>Version 2.12</h1>

<p>
Summary
</p>

<ul>

<li>
<a href="#New and Noteworthy">New and Noteworthy</a>
</li>

<li>
<a href="#Known bugs">Known bugs</a>
</li>

<li>
<a href="#Incompatible changes">Incompatible changes</a>
</li>

<li>
<a href="#Bug fixes">Bug fixes</a>
</li>

<li>
<a href="#Improvements">Improvements</a>
</li>

<li>
<a href="#Non-functional changes">Non-functional changes</a>
</li>

<li>
<a href="#Thanks">Thanks</a>
</li>


</ul>


<h2 class="ch_section" id="New and Noteworthy">New and Noteworthy</h2>





<h3 class="ch_title">Java 8 support</h3>

<p>Now, JMeter 2.12 is compliant with Java 8.</p>


<h2 class="ch_category">New Elements</h2>

<h3 class="ch_title">Critical Section Controller</h3>

<p>The Critical Section Controller allow to serialize the execution of a section in your tree. 
Only one instance of the section will be executed at the same time during the test.</p>

<figure>
<a href="./images/screenshots/changes/2.12/01_critical_section_controller.png"><img src="./images/screenshots/changes/2.12/01_critical_section_controller.png" width="683" height="240" alt=""></a>
<figcaption></figcaption>
</figure>


<h3 class="ch_title">DNS Cache Manager</h3>

<p>The new configuration element <b>DNS Cache Manager</b>(see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56841">
      Bug
      56841</a>) improves the testing of:
<ul>

<li>CDN (Content Delivery Network)</li> 

<li>DNS load balancing.</li>

<li>Load Balancers like Amazon Elastic Load Balancer</li>

</ul>

</p>

<figure>
<a href="./images/screenshots/changes/2.12/02_dns_cache_manager.png"><img src="./images/screenshots/changes/2.12/02_dns_cache_manager.png" width="573" height="359" alt=""></a>
<figcaption></figcaption>
</figure>

<h2 class="ch_category">Core Improvements</h2>


<h3 class="ch_title">Smarter Recording of Http Test Plans</h3>

<p>Test Script Recorder has been improved in many ways</p>

<ul>
    
<li>Better matching of Variables in Requests, making Test Script Recorder variabilize your sampler during recording more versatile</li>
    
<li>Ability to filter from View Results Tree the Samples that are excluded from recording, this lets you concentrate on recorded Samplers analysis and not bother with useless Sample Results
    <figure>
<a href="./images/screenshots/changes/2.12/14_recorder_filter.png"><img src="./images/screenshots/changes/2.12/14_recorder_filter.png" width="1094" height="647" alt=""></a>
<figcaption></figcaption>
</figure>
    
</li>
    
<li>Better defaults for recording, since this version Recorder will number created Samplers letting you find them much easily in View Results Tree. 
    Grouping of Samplers under Transaction Controller will be smarter making all requests emitted by a web page be children as new Transaction Controller</li>

</ul>


<h3 class="ch_title">Support of Webdav requests</h3>

<p>You can now test against WebDav server using HttpClient4 Implementation of Http Request</p>

<figure>
<a href="./images/screenshots/changes/2.12/13_webdav.png"><img src="./images/screenshots/changes/2.12/13_webdav.png" width="989" height="406" alt=""></a>
<figcaption></figcaption>
</figure>


<h3 class="ch_title">Better handling of embedded resources</h3>

<p>When download embedded resources is checked, JMeter now uses User Agent header to download or not resources embedded within conditional comments as per <a href="http://msdn.microsoft.com/en-us/library/ms537512%28v=vs.85%29.aspx" target="_blank">About conditional comments</a>.</p>


<h3 class="ch_title">Ability to customize Cache Manager (Browser cache simulation) handling of cached resources</h3>

<p>You can now configure the behaviour of JMeter when a resource is found in Cache, this can be controlled with <i>cache_manager.cached_resource_mode</i> property</p>

<figure>
<a href="./images/screenshots/changes/2.12/12_cache_resource_mode.png"><img src="./images/screenshots/changes/2.12/12_cache_resource_mode.png" width="1024" height="314" alt=""></a>
<figcaption></figcaption>
</figure>



<h3 class="ch_title">JMS Publisher / JMS Point-to-Point</h3>

<p> Add JMSPriority and JMSExpiration fields for these samplers.</p>

<figure>
<a href="./images/screenshots/changes/2.12/04_jms_publisher.png"><img src="./images/screenshots/changes/2.12/04_jms_publisher.png" width="877" height="314" alt=""></a>
<figcaption></figcaption>
</figure>


<figure>
<a href="./images/screenshots/changes/2.12/05_jms_point_to_point.png"><img src="./images/screenshots/changes/2.12/05_jms_point_to_point.png" width="877" height="293" alt=""></a>
<figcaption></figcaption>
</figure>


<h3 class="ch_title">Mail Reader Sampler</h3>

<p>You can now specify the number of messages that want you retrieve (before all messages were retrieved). 
In addition, you can fetch only the message header now.</p>

<figure>
<a href="./images/screenshots/changes/2.12/03_mail_reader_sampler.png"><img src="./images/screenshots/changes/2.12/03_mail_reader_sampler.png" width="814" height="416" alt=""></a>
<figcaption></figcaption>
</figure>


<h3 class="ch_title">SMTP Sampler</h3>

<p>Adding the Connection timeout and the Read timeout to the <b>SMTP Sampler.</b>
</p>

<figure>
<a href="./images/screenshots/changes/2.12/06_smtp_sampler.png"><img src="./images/screenshots/changes/2.12/06_smtp_sampler.png" width="796" height="192" alt=""></a>
<figcaption></figcaption>
</figure>


<h3 class="ch_title">Synchronizing Timer </h3>

<p>Adding a timeout to define the maximum time to waiting of the group of virtual users.</p>

<figure>
<a href="./images/screenshots/changes/2.12/09_synchronizing_timer.png"><img src="./images/screenshots/changes/2.12/09_synchronizing_timer.png" width="546" height="144" alt=""></a>
<figcaption></figcaption>
</figure>


<h3 class="ch_title">Performance improvements</h3>

<p>A big improvement in performances of Functions has been made by lifting useless synchronization. It concerns all functions except __StringFromFile, __XPath and __BeanShell, see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57114">
      Bug
      57114</a>
</p>

<p>__jexl2 performances have been improved to avoid contention point, see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56708">
      Bug
      56708</a>
</p>


<h2 class="ch_category">GUI Improvements</h2>


<h3 class="ch_title">Undo/Redo support</h3>

<p>Undo / Redo has been introduced and allows user to undo/redo changes made on Test Plan Tree. This feature (ALPHA MODE) is disabled by default, to enable it set property <b>undo.history.size=25</b> 
</p>

<figure>
<a href="./images/screenshots/changes/2.12/10_undo_redo.png"><img src="./images/screenshots/changes/2.12/10_undo_redo.png" width="1024" height="56" alt=""></a>
<figcaption></figcaption>
</figure>


<h3 class="ch_title">View Results Tree</h3>

<p>Improve the ergonomics of View Results Tree by changing placement of Renderers and allowing custom ordering 
(with the property <i>view.results.tree.renderers_order</i>).</p>

<figure>
<a href="./images/screenshots/changes/2.12/07_view_results_tree.png"><img src="./images/screenshots/changes/2.12/07_view_results_tree.png" width="900" height="329" alt=""></a>
<figcaption></figcaption>
</figure>


<h3 class="ch_title">Response Time Graph</h3>

<p>Adding the ability for the <b>Response Time Graph</b> listener to save/restore format its settings in/from the jmx file.</p>

<figure>
<a href="./images/screenshots/changes/2.12/08_response_time_graph.png"><img src="./images/screenshots/changes/2.12/08_response_time_graph.png" width="997" height="574" alt=""></a>
<figcaption></figcaption>
</figure>


<h3 class="ch_title">Log Viewer</h3>

<p>Starting with this version, the last lines of JMeter's log file (jmeter.log) can be viewed directly in GUI by clicking on Warning icon in the upper right corner. 
This will unfold the Log Viewer panel and show logs.</p>

<figure>
<a href="./images/screenshots/changes/2.12/11_log_viewer.png"><img src="./images/screenshots/changes/2.12/11_log_viewer.png" width="1024" height="437" alt=""></a>
<figcaption></figcaption>
</figure>


<h3 class="ch_title">File Opening</h3>

<p>Now, "Open File dialog" uses last opened file folder as start folder, see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52707">
      Bug
      52707</a>
</p>




<h2 class="ch_section" id="Known bugs">Known bugs</h2>


<ul>

<li>The Once Only controller behaves correctly under a Thread Group or Loop Controller,
but otherwise its behaviour is not consistent (or clearly specified).</li>


<li>
The numbers that appear to the left of the green box are the number of active threads / total number of threads, 
the total number of threads only applies to a locally run test, otherwise it will show 0 (see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55510">
      Bug
      55510</a>).
</li>


<li>
Note that there is a <a href="http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6396599 ">bug in Java</a>
on some Linux systems that manifests itself as the following error when running the test cases or JMeter itself:
<pre>
 [java] WARNING: Couldn't flush user prefs:
 java.util.prefs.BackingStoreException:
 java.lang.IllegalArgumentException: Not supported: indent-number
</pre>
This does not affect JMeter operation. This issue is fixed since Java 7b05.
</li>


<li>
Note that under some windows systems you may have this WARNING:
<pre class="source">
java.util.prefs.WindowsPreferences 
WARNING: Could not open/create prefs root node Software\JavaSoft\Prefs at root 0
x80000002. Windows RegCreateKeyEx(&hellip;) returned error code 5.
</pre>
The fix is to run JMeter as Administrator, it will create the registry key for you, then you can restart JMeter as a normal user and you won't have the warning anymore.
</li>


<li>
With Java 1.6 and Gnome 3 on Linux systems, the JMeter menu may not work correctly (shift between mouse's click and the menu). 
This is a known Java bug (see  <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54477 ">
      Bug
      54477 </a>). 
A workaround is to use a Java 7 runtime (OpenJDK or Oracle JDK).
</li>


<li>
With Oracle Java 7 and Mac Book Pro Retina Display, the JMeter GUI may look blurry. 
This is a known Java bug, see Bug <a href="http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=8000629">JDK-8000629</a>.
A workaround is to use a Java 7 update 40 runtime which fixes this issue.
</li>


<li>
You may encounter the following error: <i>java.security.cert.CertificateException: Certificates does not conform to algorithm constraints</i>
 if you run a HTTPS request on a web site with a SSL certificate (itself or one of SSL certificates in its chain of trust) with a signature
 algorithm using MD2 (like md2WithRSAEncryption) or with a SSL certificate with a size lower than 1024 bits.
This error is related to increased security in Java 7 version u16 (MD2) and version u40 (Certificate size lower than 1024 bits), and Java 8 too.
<br>
To allow you to perform your HTTPS request, you can downgrade the security of your Java installation by editing 
the Java <b>jdk.certpath.disabledAlgorithms</b> property. Remove the MD2 value or the constraint on size, depending on your case.
<br>
This property is in this file:
<pre>JAVA_HOME/jre/lib/security/java.security</pre>
See  <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56357">
      Bug
      56357</a> for details.
</li>


</ul>




<h2 class="ch_section" id="Incompatible changes">Incompatible changes</h2>


<ul>

<li>Since JMeter 2.12, active threads in all thread groups and active threads in current thread group are saved by default to CSV or XML results, see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57025">
      Bug
      57025</a>. 
This is usually the expected behaviour as you want to have the number of running threads during the test. But if you want to revert to previous behaviour, set property <b>jmeter.save.saveservice.thread_counts=false</b>
</li>

<li>Since JMeter 2.12, Mail Reader Sampler will show 1 for number of samples instead of number of messages retrieved, see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56539">
      Bug
      56539</a>
</li>

<li>Since JMeter 2.12, when using Cache Manager, if resource is found in cache no SampleResult will be created, in previous version a SampleResult with empty content and 204 return code was returned, see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54778">
      Bug
      54778</a>.
You can choose between different ways to handle this case, see <span class="code">cache_manager.cached_resource_mode</span> in <span class="code">jmeter.properties</span>.</li>

<li>Since JMeter 2.12, Log Viewer will no more clear logs when closed and will have logs available even if closed. See <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56920">
      Bug
      56920</a>. Read <a href="./usermanual/hints_and_tips.html#debug_logging">Hints and Tips &gt; Enabling Debug logging</a>
for details on configuring this component.</li>

</ul>




<h2 class="ch_section" id="Bug fixes">Bug fixes</h2>


<h3>HTTP Samplers and Test Script Recorder</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55998">
      Bug
      55998</a> - HTTP recording &ndash; Replacing port value by user defined variable does not work</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56178">
      Bug
      56178</a> - keytool error: Invalid escaped character in AVA: - some characters must be escaped</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56222">
      Bug
      56222</a> - NPE if jmeter.httpclient.strict_rfc2616=true and location is not absolute</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56263">
      Bug
      56263</a> - DefaultSamplerCreator should set BrowserCompatible Multipart true</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56231">
      Bug
      56231</a> - Move redirect location processing from HC3/HC4 samplers to HTTPSamplerBase#followRedirects()</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56207">
      Bug
      56207</a> - URLs get encoded on redirects in HC3.1 &amp; HC4 samplers</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56303">
      Bug
      56303</a> - The width of target controller's combo list should be set to the current panel size, not on label size of the controllers</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54778">
      Bug
      54778</a> - HTTP Sampler should not return 204 when resource is found in Cache, make it configurable with new property cache_manager.cached_resource_mode</li> 

</ul>


<h3>Other Samplers</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55977">
      Bug
      55977</a> - JDBC pool keepalive flooding</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55999">
      Bug
      55999</a> - Scroll bar on jms point-to-point sampler does not work when content exceeds display</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56198">
      Bug
      56198</a> - JMSSampler : NullPointerException is thrown when JNDI underlying implementation of JMS provider does not comply with <span class="code">Context.getEnvironment</span> contract</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56428">
      Bug
      56428</a> - MailReaderSampler - should it use mail.pop3s.* properties?</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=46932">
      Bug
      46932</a> - Alias given in select statement is not used as column header in response data for a JDBC request. Based on report and analysis of Nicola Ambrosetti</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56539">
      Bug
      56539</a> - Mail reader sampler: When Number of messages to retrieve is superior to 1, Number of samples should only show 1 not the number of messages retrieved</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56809">
      Bug
      56809</a> - JMSSampler closes InitialContext too early. Contributed by Bradford Hovinen (hovinen at gmail.com)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56761">
      Bug
      56761</a> - JMeter tries to stop already stopped JMS connection and displays "The connection is closed"</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57068">
      Bug
      57068</a> - No error thrown when negative duration is entered in Test Action</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57078">
      Bug
      57078</a> - LagartoBasedHTMLParser fails to parse page that contains input with no type</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57183">
      Bug
      57183</a> - JMSSampler: For input string: "" java.lang.NumberFormatException (for Expiration or Priority fields)</li>

</ul>


<h3>Controllers</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56243">
      Bug
      56243</a> - Foreach works incorrectly with indexes on subsequent iterations </li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56276">
      Bug
      56276</a> - Loop controller becomes broken once loop count evaluates to zero </li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56160">
      Bug
      56160</a> - StackOverflowError when using WhileController within IfController</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56811">
      Bug
      56811</a> - "Start Next Thread Loop" in Result Status Action Handler or on Thread Group and "Go to next Loop iteration" in Test Action behave incorrectly with TransactionController that has "Generate Parent Sampler" checked</li>

</ul>


<h3>Listeners</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56706">
      Bug
      56706</a> - SampleResult#getResponseDataAsString() does not use encoding in response body impacting PostProcessors and ViewResultsTree. Contributed by Ubik Load Pack (support at ubikloadpack.com)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57052">
      Bug
      57052</a> - ArithmeticException: / by zero when sampleCount is equal to 0</li>

</ul>


<h3>Timers, Assertions, Config, Pre- &amp; Post-Processors</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56162">
      Bug
      56162</a> -  HTTP Cache Manager should not cache PUT/POST etc.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56227">
      Bug
      56227</a> - AssertionGUI : NPE in assertion on mouse selection</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=41319">
      Bug
      41319</a> - URLRewritingModifier : Allow Parameter value to be url encoded</li>

</ul>


<h3>Functions</h3>

<ul>

</ul>


<h3>I18N</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56111">
      Bug
      56111</a> - "comments" in german translation is not correct</li>

</ul>


<h3>General</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56059">
      Bug
      56059</a> - Older TestBeans incompatible with 2.11 when using TextAreaEditor</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56080">
      Bug
      56080</a> - Conversion error com.thoughtworks.xstream.converters.ConversionException with Java 8 Early Access Build</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56182">
      Bug
      56182</a> - Can't trigger bsh script using bshclient.jar; socket is closed unexpectedly </li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56360">
      Bug
      56360</a> - HashTree and ListedHashTree fail to compile with Java 8</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56419">
      Bug
      56419</a> - JMeter silently fails to save results</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56662">
      Bug
      56662</a> - Save as xml in a listener is not remembered</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56367">
      Bug
      56367</a> - JMeter 2.11 on maven central triggers a not existing dependency rsyntaxtextarea 2.5.1, upgrade to 2.5.3</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56743">
      Bug
      56743</a> - Wrong mailing list archives on mail2.xml. Contributed by Felix Schumacher (felix.schumacher at internetallee.de)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56763">
      Bug
      56763</a> - Removing the Oracle icons, not used by JMeter (and missing license)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54100">
      Bug
      54100</a> - Switching languages fails to preserve toolbar button states (enabled/disabled)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54648">
      Bug
      54648</a> - JMeter GUI on OS X crashes when using CMD+C (keyboard shortcut or UI menu entry) on an element from the tree</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56962">
      Bug
      56962</a> - JMS GUIs should disable all fields affected by jndi.properties checkbox</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57061">
      Bug
      57061</a> - Save as Test Fragment fails to clone deeply selected node. Contributed by Ubik Load Pack (support at ubikloadpack.com)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57075">
      Bug
      57075</a> - BeanInfoSupport.MULTILINE attribute is not processed</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57076">
      Bug
      57076</a> - BooleanPropertyEditor#getAsText() must return a value that is in getTags()</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57088">
      Bug
      57088</a> - NPE in ResultCollector.testEnded</li>

</ul>




<h2 class="ch_section" id="Improvements">Improvements</h2>


<h3>HTTP Samplers and Test Script Recorder</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55959">
      Bug
      55959</a> - Improve error message when Test Script Recorder fails due to I/O problem</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52013">
      Bug
      52013</a> - Test Script Recorder's Child View Results Tree does not take into account Test Script Recorder excluded/included URLs. Based on report and analysis of James Liang</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56119">
      Bug
      56119</a> - File uploads fail every other attempt using timers. Enable idle timeouts for servers that don't send Keep-Alive headers.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56272">
      Bug
      56272</a> - MirrorServer should support query parameters for status and redirects</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56772">
      Bug
      56772</a> - Handle IE Conditional comments when parsing embedded resources</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57026">
      Bug
      57026</a> - HTTP(S) Test Script Recorder : Better default settings. Contributed by Ubik Load Pack (support at ubikloadpack.com)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57107">
      Bug
      57107</a> - Patch proposal: Add DAV verbs to HTTP Sampler. Contributed by Philippe Jung (apache at famille-jung.fr)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56357">
      Bug
      56357</a> - Certificates does not conform to algorithm constraints: Adding a note to indicate how to remove of the Java installation these new security constraints</li>

</ul>


<h3>Other samplers</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56033">
      Bug
      56033</a> - Add Connection timeout and Read timeout to SMTP Sampler</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56429">
      Bug
      56429</a> - MailReaderSampler - no need to fetch all Messages if not all wanted</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56427">
      Bug
      56427</a> - MailReaderSampler enhancement: read message header only</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56510">
      Bug
      56510</a> - JMS Publisher/Point to Point: Add JMSPriority and JMSExpiration</li>

</ul>


<h3>Controllers</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56728">
      Bug
      56728</a> - New Critical Section Controller to serialize blocks of a Test. Based partly on a patch contributed by Mikhail Epikhin(epihin-m at yandex.ru)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57145">
      Bug
      57145</a> - RandomController : Use ThreadLocalRandom instead of Random for better performances</li>

</ul>


<h3>Listeners</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56228">
      Bug
      56228</a> - View Results Tree : Improve ergonomy by changing placement of Renderers and allowing custom ordering</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56349">
      Bug
      56349</a> - "summary" is a bad name for a Generate Summary Results component, documentation clarified</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56769">
      Bug
      56769</a> - Adds the ability for the Response Time Graph listener to save/restore format settings in/from the jmx file</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57025">
      Bug
      57025</a> - SaveService : Better defaults, save thread counts by default</li>

</ul>


<h3>Timers, Assertions, Config, Pre- &amp; Post-Processors</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56691">
      Bug
      56691</a> - Synchronizing Timer : Add timeout on waiting</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56701">
      Bug
      56701</a> - HTTP Authorization Manager/ Kerberos Authentication: add port to SPN when server port is neither 80 nor 443. Based on patches from Dan Haughey (dan.haughey at swinton.co.uk) and Felix Schumacher (felix.schumacher at internetallee.de)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56841">
      Bug
      56841</a> - New configuration element: DNS Cache Manager to improve the testing of CDN. Based on patch from Dzmitry Kashlach (dzmitrykashlach at gmail.com), and contributed by BlazeMeter Ltd.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52061">
      Bug
      52061</a> - Allow access to Request Headers in Regex Extractor. Based on patch from Dzmitry Kashlach (dzmitrykashlach at gmail.com), and contributed by BlazeMeter Ltd.</li>

</ul>


<h3>Functions</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56708">
      Bug
      56708</a> - __jexl2 doesn't scale with multiple CPU cores. Based on analysis and patch contributed by Mikhail Epikhin(epihin-m at yandex.ru)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57114">
      Bug
      57114</a> - Performance : Functions that only have values as instance variable should not synchronize execute. Based on analysis by Ubik Load Pack support and Vladimir Sitnikov, patch contributed by Vladimir Sitnikov (sitnikov.vladimir at gmail.com)</li>

</ul>


<h3>I18N</h3>

<ul>

</ul>


<h3>General</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=21695">
      Bug
      21695</a> - Unix jmeter start script assumes it is on PATH, not a link</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56292">
      Bug
      56292</a> - Add the check of the Java's version in startup files and disable some options when is Java v8 engine</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56298">
      Bug
      56298</a> - JSR223 language display does not show which engine will be used</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56455">
      Bug
      56455</a> - Batch files: drop support for non-NT Windows shell scripts</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52707">
      Bug
      52707</a> - Make Open File dialog use last opened file folder as start folder. Based on patch from Dzmitry Kashlach (dzmitrykashlach at gmail.com), and contributed by BlazeMeter Ltd.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56807">
      Bug
      56807</a> - Ability to force flush of ResultCollector file. Contributed by Andrey Pohilko (apc4 at ya.ru)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56921">
      Bug
      56921</a> - Templates : Improve Recording template to ignore embedded resources case and URL parameters. Contributed by Ubik Load Pack (support at ubikloadpack.com)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=42248">
      Bug
      42248</a> - Undo-redo support on Test Plan tree modification. Developed by Andrey Pohilko (apc4 at ya.ru) and contributed by BlazeMeter Ltd. Additional contribution by Ubik Load Pack (support at ubikloadpack.com)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56920">
      Bug
      56920</a> - LogViewer : Make it receive all log events even when it is closed. Contributed by Ubik Load Pack (support at ubikloadpack.com)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57083">
      Bug
      57083</a> - simplified the CachedResourceMode enum. Contributed by Graham Russel (graham at ham1.co.uk)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57082">
      Bug
      57082</a> - ComboStringEditor : Added hashCode to an inner class which overwrote equals. Contributed by Graham Russel (graham at ham1.co.uk)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57081">
      Bug
      57081</a> - Updating checkstyle to only check for tabs in java, xml, xsd, dtd, htm, html and txt files (not images!). Contributed by Graham Russell (graham at ham1.co.uk)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56178">
      Bug
      56178</a> - Really replace backslashes in user name before generating proxy certificate. Contributed by Graham Russel (graham at ham1.co.uk)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57084">
      Bug
      57084</a> - Close socket after usage in BeanShellClient. Contributed by Graham Russel (graham at ham1.co.uk)</li>

</ul>

<h2 class="ch_section" id="Non-functional changes">Non-functional changes</h2>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57117">
      Bug
      57117</a> - Increase the default cipher for HTTPS Test Script Recorder from SSLv3 to TLS</li>

<li>Updated to commons-lang3 3.3.2 (from 3.1)</li>

<li>Updated to commons-codec 1.9 (from 1.8)</li>

<li>Updated to commons-logging 1.2 (from 1.1.3)</li>

<li>Updated to tika 1.6 (from 1.4)</li>

<li>Updated to xercesImpl 2.11.0 (from 2.9.1)</li>

<li>Updated to xml-apis 1.4.01 (from 1.3.04)</li>

<li>Updated to xstream 1.4.8 (from 1.4.4)</li>

<li>Updated to jodd 3.6.1 (from 3.4.10)</li>

<li>Updated to rsyntaxtextarea 2.5.3 (from 2.5.1)</li>

<li>Updated xalan and serializer to 2.7.2 (from 2.7.1)</li>

<li>Updated to jsoup-1.8.1.jar (from 1.7.3)</li>

</ul>


<h2 class="ch_section" id="Thanks">Thanks</h2>

<p>We thank all contributors mentioned in bug and improvement sections above:
<ul>

<li>James Liang (jliang at andera.com)</li>

<li>Emmanuel Bourg (ebourg at apache.org)</li>

<li>Nicola Ambrosetti (ambrosetti.nicola at gmail.com)</li>

<li>
<a href="http://ubikloadpack.com">Ubik Load Pack</a>
</li>

<li>Mikhail Epikhin (epihin-m at yandex.ru)</li>

<li>Dan Haughey (dan.haughey at swinton.co.uk)</li>

<li>Felix Schumacher (felix.schumacher at internetallee.de)</li>

<li>Dzmitry Kashlach (dzmitrykashlach at gmail.com)</li>

<li>Andrey Pohilko (apc4 at ya.ru)</li>

<li>Bradford Hovinen (hovinen at gmail.com)</li>

<li>
<a href="http://blazemeter.com">BlazeMeter Ltd.</a>
</li>

<li>Graham Russell (graham at ham1.co.uk)</li>

<li>Philippe Jung (apache at famille-jung.fr)</li>

<li>Vladimir Sitnikov (sitnikov.vladimir at gmail.com)</li>

</ul>


<br>
We also thank bug reporters who helped us improve JMeter. <br>
For this release we want to give special thanks to the following reporters for the clear reports and tests made after our fixes:
<ul>

<li>Oliver LLoyd (email at oliverlloyd.com) for his help on <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56119">
      Bug
      56119</a>
</li>

<li>Vladimir Ryabtsev (greatvovan at gmail.com) for his help on <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56243">
      Bug
      56243</a> and <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56276">
      Bug
      56276</a>
</li>

<li>Adrian Speteanu (asp.adieu at gmail.com) and Matt Kilbride (matt.kilbride at gmail.com) for their feedback and tests on <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54648">
      Bug
      54648</a>
</li>

<li>Shmuel Krakower (shmulikk at gmail.com) for his tests and reports on Undo/Redo feature</li>

</ul>

Apologies if we have omitted anyone else.
 </p>
 



<h1>Version 2.11</h1>

<p>
Summary
</p>

<ul>

<li>
<a href="#New and Noteworthy">New and Noteworthy</a>
</li>

<li>
<a href="#Known bugs">Known bugs</a>
</li>

<li>
<a href="#Incompatible changes">Incompatible changes</a>
</li>

<li>
<a href="#Bug fixes">Bug fixes</a>
</li>

<li>
<a href="#Improvements">Improvements</a>
</li>

<li>
<a href="#Non-functional changes">Non-functional changes</a>
</li>

<li>
<a href="#Thanks">Thanks</a>
</li>


</ul>


<h2 class="ch_section" id="New and Noteworthy">New and Noteworthy</h2>



<h3 class="ch_title">HTTP(S) Test Script Recorder improvements</h3>

<p>
Following improvements have been made since major changes introduced in JMeter 2.10 on HTTP(S) Test Script Recorder:
<ul>

<li>Better detection of missing or invalid configuration of keytool utility</li>

<li>New system property <span class="code">keytool.directory</span> (see <span class="code">system.properties</span>) lets you configure directory containing keytool in case on non-standard installation</li>

</ul>

</p>


<h3 class="ch_title">JMS Publisher/Point to Point : Add ability to set typed values in JMS header properties</h3>

<p>In the samplers JMS Publisher and JMS Point-to-Point, you can now set up the class of values for the JMS header properties. Previously only String was possible.</p>

<p>

<figure>
<a href="./images/screenshots/changes/2.11/01_jms_properties_typed_values.png"><img src="./images/screenshots/changes/2.11/01_jms_properties_typed_values.png" width="928" height="796" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3 class="ch_title">View Results Tree : Add an XPath Tester </h3>

<p>In View Results Tree listener, a new XPath tester can be used to test XPATH expressions.</p>

<p>

<figure>
<a href="./images/screenshots/changes/2.11/03_xpath_tester.png"><img src="./images/screenshots/changes/2.11/03_xpath_tester.png" width="990" height="765" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3 class="ch_title">Ability to choose the client alias for the cert key in JsseSslManager such that Mutual SSL auth testing can be made more flexible</h3>

<p>When testing client based certificate authentications you have now better control on certificate you use through a new field "Variable name holding certificate alias", this 
field lets you select the certificate you want to send to server to authenticate. You can use a CSV Data Set as a holder for the variable value.</p>

<p>

<figure>
<a href="./images/screenshots/changes/2.11/07_keystore_config.png"><img src="./images/screenshots/changes/2.11/07_keystore_config.png" width="471" height="189" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3 class="ch_title">Add a "Save as Test Fragment" option </h3>

<p>In the file menu, a new option allow to save a group of elements as a Test fragment.</p>

<p>

<figure>
<a href="./images/screenshots/changes/2.11/05_save_as_fragement.png"><img src="./images/screenshots/changes/2.11/05_save_as_fragement.png" width="295" height="242" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3 class="ch_title">Summariser is be enabled by default in Non GUI mode</h3>

<p>When you run JMeter from command line, now JMeter displays some statistics from the Summariser mode.</p>

<p>

<figure>
<a href="./images/screenshots/changes/2.11/06_summariser.png"><img src="./images/screenshots/changes/2.11/06_summariser.png" width="1287" height="386" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3 class="ch_title">Transaction Controller:Change default property "Include duration of timer&hellip;" for newly created element</h3>

<p>Starting from 2.11, Transaction Controller is configured by default to exclude processing time of pre/post processors as long as timers pause.</p>

<p>

<figure>
<a href="./images/screenshots/changes/2.11/02_transaction_controller.png"><img src="./images/screenshots/changes/2.11/02_transaction_controller.png" width="628" height="140" alt=""></a>
<figcaption></figcaption>
</figure>

</p>








<h2 class="ch_section" id="Known bugs">Known bugs</h2>


<ul>

<li>The Once Only controller behaves correctly under a Thread Group or Loop Controller,
but otherwise its behaviour is not consistent (or clearly specified).</li>


<li>Listeners don't show iteration counts when a If Controller has a condition which is always false from the first iteration (see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52496">
      Bug
      52496</a>).  
A workaround is to add a sampler at the same level as (or superior to) the If Controller.
For example a Test Action sampler with 0 wait time (which doesn't generate a sample),
or a Debug Sampler with all fields set to False (to reduce the sample size).
</li>


<li>
The numbers that appear to the left of the green box are the number of active threads / total number of threads, 
the total number of threads only applies to a locally run test, otherwise it will show 0 (see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55510">
      Bug
      55510</a>).
</li>


<li>
Note that there is a <a href="http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6396599 ">bug in Java</a>
on some Linux systems that manifests itself as the following error when running the test cases or JMeter itself:
<pre>
 [java] WARNING: Couldn't flush user prefs:
 java.util.prefs.BackingStoreException:
 java.lang.IllegalArgumentException: Not supported: indent-number
</pre>
This does not affect JMeter operation. This issue is fixed since Java 7b05.
</li>


<li>
With Java 1.6 and Gnome 3 on Linux systems, the JMeter menu may not work correctly (shift between mouse's click and the menu). 
This is a known Java bug (see  <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54477 ">
      Bug
      54477 </a>). 
A workaround is to use a Java 7 runtime (OpenJDK or Oracle JDK).
</li>


<li>
With Oracle Java 7 and Mac Book Pro Retina Display, the JMeter GUI may look blurry. 
This is a known Java bug, see Bug <a href="http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=8000629">JDK-8000629</a>.
A workaround is to use a Java 7 update 40 runtime which fixes this issue.
</li>

</ul>




<h2 class="ch_section" id="Incompatible changes">Incompatible changes</h2>


<ul>

<li>When creating a new Transaction Controller, property "Include duration of timer and pre-post processors in generated sample" will be unchecked starting from version 2.11</li>

<li>In Non GUI mode, since 2.11 summariser is enabled with a 30 seconds frequency</li>

<li>JMeter is more lenient with redirect handling and relaxes on RFC2616 by allowing relative locations. See property "<span class="code">jmeter.httpclient.strict_rfc2616</span>" in <span class="code">jmeter.properties</span> to change this behaviour, see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55717">
      Bug
      55717</a>
</li>

<li>When creating a new Response Assertion, property "Pattern Matching Rules" now defaults to Substring starting from version 2.11</li>

</ul>




<h2 class="ch_section" id="Bug fixes">Bug fixes</h2>


<h3>HTTP Samplers and Test Script Recorder</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55815">
      Bug
      55815</a> - Proxy#getDomainMatch does not handle wildcards correctly</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55717">
      Bug
      55717</a> - Bad handling of Redirect when URLs are in relative format by HttpClient4 and HttpClient3.1</li>

</ul>


<h3>Other Samplers</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55685">
      Bug
      55685</a> - OS Sampler: timeout option don't save and restore correctly value and don't init correctly timeout</li>

</ul>


<h3>Controllers</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55816">
      Bug
      55816</a> - Transaction Controller with "Include duration of timer&hellip;" unchecked does not ignore processing time of last child sampler</li>

</ul>


<h3>Listeners</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55826">
      Bug
      55826</a> - Unsynchronised concurrent accesses to list in field RespTimeGraphVisualizer.internalList </li>

</ul>


<h3>Timers, Assertions, Config, Pre- &amp; Post-Processors</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55694">
      Bug
      55694</a> - Assertions and Extractors : Avoid NullPointerException when scope is variable and variable is missing</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55721">
      Bug
      55721</a> - HTTP Cache Manager - no-store directive is wrongly interpreted</li>

</ul>


<h3>Functions</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55871">
      Bug
      55871</a> - Wrong result with intSum() function when a space character is present before/after the number. Contributed by Milamber based on a proposal by James Liang.</li>

</ul>


<h3>I18N</h3>

<ul>

</ul>


<h3>General</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55739">
      Bug
      55739</a> - Remote Test : Total threads in GUI mode shows invalid total number of threads</li>

</ul>




<h2 class="ch_section" id="Improvements">Improvements</h2>


<h3>HTTP Samplers and Proxy</h3>

<ul>

</ul>


<h3>Other samplers</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55589">
      Bug
      55589</a> - JMS Publisher/Point to Point : Add ability to set typed values in JMS header properties.</li>

</ul>


<h3>Controllers</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55854">
      Bug
      55854</a> - Transaction Controller:Change default property "Include duration of timer&hellip;" for newly created element</li>

</ul>


<h3>Listeners</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55610">
      Bug
      55610</a> - View Results Tree : Add an XPath Tester</li>

</ul>


<h3>Timers, Assertions, Config, Pre- &amp; Post-Processors</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55908">
      Bug
      55908</a> - Response assertion : Change Pattern Matching Rules default to Substring on creation for better performances</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54977">
      Bug
      54977</a> - Ability to choose the client alias for the cert key in JsseSslManager such that Mutual SSL auth testing can be made more flexible. Contributed by UBIK Load Pack (support at ubikloadpack.com)</li>

</ul>


<h3>Functions</h3>

<ul>

</ul>


<h3>I18N</h3>

<ul>

</ul>


<h3>General</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55693">
      Bug
      55693</a> - Add a "Save as Test Fragment" option</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55753">
      Bug
      55753</a> - Improve FilePanel behaviour to start from the value set in Filename field if any. Contributed by UBIK Load Pack (support at ubikloadpack.com)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55756">
      Bug
      55756</a> - HTTP Mirror Server : Add ability to set Headers</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55852">
      Bug
      55852</a> - Be more lenient in parsing when charset value is surrounded with single quotes</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55857">
      Bug
      55857</a> - Performance : AbstractProperty should test for emptiness to avoid Exception throwing</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55858">
      Bug
      55858</a> - Startup Performance : On Startup, BeanInfoSupport should test for key availability instead of throwing</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55865">
      Bug
      55865</a> - Performance :Disable stale check by default in HttpClient 4 and 3.1</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55512">
      Bug
      55512</a> - Summariser should be enabled by default in Non GUI mode</li>

</ul>


<h2 class="ch_section" id="Non-functional changes">Non-functional changes</h2>

<ul>

<li>Updated to rsyntaxtextarea-2.5.1.jar (from 2.5.0)</li>

<li>Updated to jodd-core-3.4.9.jar from (3.4.8) and jodd-lagarto-3.4.9.jar (from 3.4.9)</li>

<li>Updated to jsoup-1.7.3.jar (from 1.7.2)</li>

<li>Updated to mail-1.5.0-b01 (from 1.4.4)</li>

<li>Updated to mongo-java-driver-2.11.3 (from 2.11.2)</li>

</ul>


<h2 class="ch_section" id="Thanks">Thanks</h2>

<p>We thank all contributors mentioned in bug and improvement sections above:
<ul>

<li>James Liang (jliang at andera.com)</li>

<li>UBIK Load Pack (support at ubikloadpack.com)</li>

</ul>

<br>
We also thank bug reporters who helped us improve JMeter. <br>
For this release we want to give special thanks to the following reporters for the clear reports and tests made after our fixes:
<ul>

<li>John Natsioulas (john_natsioulas at yahoo.com.au)</li>

<li>Antonio Gomes Rodrigues (ra0077 at gmail.com)</li>

</ul>

Apologies if we have omitted anyone else.
 </p>





<h1>Version 2.10</h1>

<p>
Summary
</p>

<ul>

<li>
<a href="#New and Noteworthy">New and Noteworthy</a>
</li>

<li>
<a href="#Known bugs">Known bugs</a>
</li>

<li>
<a href="#Incompatible changes">Incompatible changes</a>
</li>

<li>
<a href="#Bug fixes">Bug fixes</a>
</li>

<li>
<a href="#Improvements">Improvements</a>
</li>

<li>
<a href="#Non-functional changes">Non-functional changes</a>
</li>

<li>
<a href="#Thanks">Thanks</a>
</li>


</ul>


<h2 class="ch_section" id="New and Noteworthy">New and Noteworthy</h2>


<h2 class="ch_category">Core Improvements</h2>


<h3 class="ch_title">New Performance improvements</h3>

<p>

<ul>

<li>A Huge performance improvement has been made on High Throughput Tests (no pause), see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54777">
      Bug
      54777</a>
</li>

<li>An issue with unnecessary SSL Context reset has been fixed which improves performances of pure HTTP tests, see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55023">
      Bug
      55023</a>
</li>

<li>Important performance improvement in parsing of Embedded resource in HTML pages thanks to a switch to JODD/Lagarto HTML Parser, see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55632">
      Bug
      55632</a>
</li>

</ul>

</p>


<h3 class="ch_title">New CSS/JQuery Tester in View Tree Results</h3>

<p>A new CSS/JQuery Tester in View Tree Results that makes CSS/JQuery Extractor a first class
citizen in JMeter, you can now test your expressions very easily</p>

<p>

<figure>
<a href="./images/screenshots/changes/2.10/01_css_jquery_tester.png"><img src="./images/screenshots/changes/2.10/01_css_jquery_tester.png" width="1144" height="638" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3 class="ch_title">Many improvements in HTTP(S) Recording have been made</h3>

<p>

<figure>
<a href="./images/screenshots/changes/2.10/18_https_test_script_recorder.png"><img src="./images/screenshots/changes/2.10/18_https_test_script_recorder.png" width="691" height="215" alt=""></a>
<figcaption></figcaption>
</figure>

<div class="clear"></div>
<div class="note">
The "HTTP Proxy Server" test element has been renamed as "HTTP(S) Test Script Recorder".
</div>
<div class="clear"></div>

<ul>

<li>Better recording of HTTPS sites, embedded resources using subdomains will more easily be recorded when using JDK 7. See <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55507">
      Bug
      55507</a>.
See updated documentation: <a href="./usermanual/component_reference.html#HTTP(S)_Test_Script_Recorder">HTTP(S) Test Script Recorder</a>

</li>

<li>Redirection are now more smartly detected by HTTP Proxy Server, see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55531">
      Bug
      55531</a>
</li>

<li>Many fixes on edge cases with HTTPS have been made, see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55502">
      Bug
      55502</a>, <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55504">
      Bug
      55504</a>, <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55506">
      Bug
      55506</a>
</li>

<li>Many encoding fixes have been made, see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54482">
      Bug
      54482</a>, <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54142">
      Bug
      54142</a>, <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54293">
      Bug
      54293</a>
</li>

</ul>

</p>


<h3 class="ch_title">You can now load test MongoDB through new MongoDB Source Config</h3>

<p>

<figure>
<a href="./images/screenshots/changes/2.10/02_mongodb_source_config.png"><img src="./images/screenshots/changes/2.10/02_mongodb_source_config.png" width="912" height="486" alt=""></a>
<figcaption></figcaption>
</figure>

</p>

<p>

<figure>
<a href="./images/screenshots/changes/2.10/14_mongodb_jsr223.png"><img src="./images/screenshots/changes/2.10/14_mongodb_jsr223.png" width="850" height="687" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3 class="ch_title">Kerberos authentication has been added to Auth Manager</h3>

<p>

<figure>
<a href="./images/screenshots/changes/2.10/15_kerberos.png"><img src="./images/screenshots/changes/2.10/15_kerberos.png" width="1005" height="364" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3 class="ch_title">Device can now be used in addition to source IP address</h3>


<p>

<figure>
<a href="./images/screenshots/changes/2.10/16_device.png"><img src="./images/screenshots/changes/2.10/16_device.png" width="1087" height="699" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3 class="ch_title">You can now do functional testing of MongoDB scripts through new MongoDB Script</h3>

<p>

<figure>
<a href="./images/screenshots/changes/2.10/03_mongodb_script_alpha.png"><img src="./images/screenshots/changes/2.10/03_mongodb_script_alpha.png" width="906" height="313" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3 class="ch_title">Timeout has been added to OS Process Sampler</h3>

<p>

<figure>
<a href="./images/screenshots/changes/2.10/17_os_process_timeout.png"><img src="./images/screenshots/changes/2.10/17_os_process_timeout.png" width="684" height="586" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3 class="ch_title">Query timeout has been added to JDBC Request</h3>

<p>

<figure>
<a href="./images/screenshots/changes/2.10/04_jdbc_request_timeout.png"><img src="./images/screenshots/changes/2.10/04_jdbc_request_timeout.png" width="540" height="600" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3 class="ch_title">New functions (__urlencode and __urldecode) are now available to encode/decode URL encoded chars</h3>

<p>

<figure>
<a href="./images/screenshots/changes/2.10/05_urlencode_function.png"><img src="./images/screenshots/changes/2.10/05_urlencode_function.png" width="512" height="240" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3 class="ch_title">Continuous Integration is now eased by addition of a new flag that forces NON-GUI JVM to exit after test end</h3>

<p>See jmeter property:</p>

<span class="code">jmeterengine.force.system.exit</span>

<p></p>


<h3 class="ch_title">HttpSampler now allows DELETE Http Method to have a body (works for HC4 and HC31 implementations). This allows for example to test Elastic Search APIs</h3>

<p>

<figure>
<a href="./images/screenshots/changes/2.10/06_http_request_delete_method.png"><img src="./images/screenshots/changes/2.10/06_http_request_delete_method.png" width="573" height="444" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3 class="ch_title">2 implementations of HtmlParser have been added to improve Embedded resources parsing</h3>

<p>
You can choose the implementation to use for parsing Embedded resources in HTML pages:
See jmeter.properties and look at property "htmlParser.className".
<ul>

<li>org.apache.jmeter.protocol.http.parser.LagartoBasedHtmlParser for optimal performances</li>

<li>org.apache.jmeter.protocol.http.parser.JSoupBasedHtmlParser for most accurate parsing and functional testing</li>

</ul>

</p>


<h3 class="ch_title">Distributed testing has been improved</h3>

<p>

<ul>

<li>
Number of threads on each node are now reported to controller.
<p>

<figure>
<a href="./images/screenshots/changes/2.10/17_threads_summariser.png"><img src="./images/screenshots/changes/2.10/17_threads_summariser.png" width="988" height="355" alt=""></a>
<figcaption></figcaption>
</figure>

</p>

<p>

<figure>
<a href="./images/screenshots/changes/2.10/17_threads_gui.png"><img src="./images/screenshots/changes/2.10/17_threads_gui.png" width="125" height="33" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


</li>

<li>Performance improvement on BatchSampleSender(<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55423">
      Bug
      55423</a>)</li>

<li>Addition of 2 SampleSender modes (StrippedAsynch and StrippedDiskStore), see jmeter.properties</li>

</ul>

</p>


<h3 class="ch_title">ModuleController has been improved to better handle changes to referenced controllers</h3>


<h3 class="ch_title">Improved class loader configuration, see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55503">
      Bug
      55503</a>
</h3>

<p>

<ul>

<li>New property "plugin_dependency_paths" for plugin dependencies</li>

<li>Properties "search_paths", "user.classpath" and "plugin_dependency_paths"
    now automatically add all jars from configured directories</li>

</ul>

</p>


<h3 class="ch_title">Best-practices section has been improved, ensure you read it to get the most out of JMeter</h3>

<p>See <a href="usermanual/best-practices.html">Best Practices</a>

</p>

<h2 class="ch_category">GUI and ergonomy Improvements</h2>



<h3 class="ch_title">New Templates feature that allows you to create test plan from existing template or merge
template into your Test Plan</h3>

<p>

<figure>
<a href="./images/screenshots/changes/2.10/07_jmeter_templates_icon.png"><img src="./images/screenshots/changes/2.10/07_jmeter_templates_icon.png" width="428" height="130" alt=""></a>
<figcaption></figcaption>
</figure>

</p>

<p>

<figure>
<a href="./images/screenshots/changes/2.10/08_jmeter_templates_box.png"><img src="./images/screenshots/changes/2.10/08_jmeter_templates_box.png" width="781" height="472" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3 class="ch_title">Workbench can now be saved</h3>

<p>

<figure>
<a href="./images/screenshots/changes/2.10/09_save_workbench.png"><img src="./images/screenshots/changes/2.10/09_save_workbench.png" width="489" height="198" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3 class="ch_title">Syntax color has been added to scripts elements (BeanShell, BSF, and JSR223), MongoDB and JDBC elements making code much more readable and allowing UNDO/REDO through CTRL+Z/CTRL+Y</h3>

<p>BSF Sampler with syntax color
<figure>
<a href="./images/screenshots/changes/2.10/10_color_syntax_bsf_sampler.png"><img src="./images/screenshots/changes/2.10/10_color_syntax_bsf_sampler.png" width="915" height="620" alt=""></a>
<figcaption></figcaption>
</figure>

</p>

<p>JSR223 Pre Processor with syntax color
<figure>
<a href="./images/screenshots/changes/2.10/11_color_syntax_jsr223_preprocessor.png"><img src="./images/screenshots/changes/2.10/11_color_syntax_jsr223_preprocessor.png" width="911" height="614" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3 class="ch_title">Better editors are now available for Test Elements with large text content, like HTTP Sampler, and JMS related Test Element providing line numbering and allowing UNDO/REDO through CTRL+Z/CTRL+Y</h3>


<h3 class="ch_title">JMeter GUI can now be fully Internationalized, all remaining issues have been fixed</h3>

<h5>Currently French has all its labels translated. Other languages are partly translated, feel free to 
contribute translations by reading <a href="localising/index.html">Localisation (Translator's Guide)</a>
</h5>


<h3 class="ch_title">Moving elements in Test plan has been improved in many ways</h3>

<h5>Drag and drop of elements in Test Plan tree is now much easier and possible on multiple nodes</h5>

<p>

<figure>
<a href="./images/screenshots/changes/2.10/12_drap_n-drop_multiple.png"><img src="./images/screenshots/changes/2.10/12_drap_n-drop_multiple.png" width="894" height="236" alt=""></a>
<figcaption></figcaption>
</figure>

</p>

<p>

<b>Note that due to this <a href="http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6560955">bug in Java</a>,
you cannot drop a node after last node. The workaround is to drop it before this last node and then Drag and Drop the last node 
before the one you just dropped.</b>

</p>

<h5>New shortcuts have been added to move elements in the tree. </h5>

<p>(alt + Arrow Up) and (alt + Arrow Down) move the element within the parent node<br>
(alt + Arrow Left) and (alt + Arrow Right) move the element up and down in the tree depth</p>


<h3 class="ch_title">Response Time Graph Y axis can now be scaled</h3>

<p>

<figure>
<a href="./images/screenshots/changes/2.10/13_response_time_graph_y_scale.png"><img src="./images/screenshots/changes/2.10/13_response_time_graph_y_scale.png" width="947" height="596" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3 class="ch_title">JUnit Sampler gives now more details on configuration errors</h3>





<h2 class="ch_section" id="Known bugs">Known bugs</h2>


<ul>

<li>The Once Only controller behaves correctly under a Thread Group or Loop Controller,
but otherwise its behaviour is not consistent (or clearly specified).</li>


<li>Listeners don't show iteration counts when a If Controller has a condition which is always false from the first iteration (see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52496">
      Bug
      52496</a>).  
A workaround is to add a sampler at the same level as (or superior to) the If Controller.
For example a Test Action sampler with 0 wait time (which doesn't generate a sample),
or a Debug Sampler with all fields set to False (to reduce the sample size).
</li>


<li>Webservice sampler does not consider the HTTP response status to compute the status of a response, thus a response 500 containing a non empty body will be considered as successful, see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54006">
      Bug
      54006</a>.
To workaround this issue, ensure you always read the response and add a Response Assertion checking text inside the response.
</li>


<li>
The numbers that appear to the left of the green box are the number of active threads / total number of threads, 
these only apply to a locally run test; they do not include any threads started on remote systems when using client-server mode, (see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54152">
      Bug
      54152</a>).
</li>


<li>
Note that there is a <a href="http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6396599 ">bug in Java</a>
on some Linux systems that manifests itself as the following error when running the test cases or JMeter itself:
<pre>
 [java] WARNING: Couldn't flush user prefs:
 java.util.prefs.BackingStoreException:
 java.lang.IllegalArgumentException: Not supported: indent-number
</pre>
This does not affect JMeter operation. This issue is fixed since Java 7b05.
</li>


<li>
With Java 1.6 and Gnome 3 on Linux systems, the JMeter menu may not work correctly (shift between mouse's click and the menu). 
This is a known Java bug (see  <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54477 ">
      Bug
      54477 </a>). 
A workaround is to use a Java 7 runtime (OpenJDK or Oracle JDK).
</li>


<li>
With Oracle Java 7 and Mac Book Pro Retina Display, the JMeter GUI may look blurry. 
This is a known Java bug, see Bug <a href="http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=8000629">JDK-8000629</a>.
A workaround is to use a Java 7 update 40 runtime which fixes this issue.
</li>

</ul>




<h2 class="ch_section" id="Incompatible changes">Incompatible changes</h2>


<ul>

<li>
<b>SMTP Sampler</b> now uses eml file subject if subject field is empty</li>


<li>With this version autoFlush has been turned off on PrintWriter in charge of writing test results. 
This results in improved throughput for intensive tests but can result in more test data loss in case
of JMeter crash (extremely rare). To revert to previous behaviour set <span class="code">jmeter.save.saveservice.autoflush</span> property to <span class="code">true</span>.</li>


<li>
Shortcut for <b>Function Helper Dialog</b> is now <i>CTRL+SHIFT+F1 (CMD + SHIFT + F1 for Mac OS)</i>.
The original key sequence <i>(Ctrl+F1)</i> did not work in some locations (it is consumed by the Java Swing ToolTipManager).
It was therefore necessary to change the shortcut.
</li>


<li>

<b>Webservice (SOAP) Request</b> has been removed by default from GUI as Element is deprecated. (Use <b>HTTP Request</b> 
with <i>Body Data</i>, see also the Template <i>Building a SOAP Webservice Test Plan</i>), if you need to show it, see property <span class="code">not_in_menu</span> in <i>jmeter.properties</i>

</li>


<li>

<b>Transaction Controller</b> now sets <i>Response Code</i> of <i>Generated Parent Sampler</i> 
(if <i>Generated Parent Sampler</i> is checked) to response code of first failing child in case of failure of one of the children, in previous versions <i>Response Code</i> was empty.
</li>


<li>
In previous versions, <b>IncludeController</b> could run Test Elements located inside a <b>Thread Group</b>, this behaviour (<i>which was not documented</i>) 
could result in weird behaviour, it has been removed in this version (see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55464">
      Bug
      55464</a>). 
The correct way to include Test Elements is to use <b>Test Fragment</b> as stated in documentation of <b>Include Controller</b>.
</li>


<li>
The retry count for the HttpClient 3.1 and HttpClient 4.x samplers has been changed to <b>0</b>.
Previously the default was 1, which could cause unexpected additional traffic.
</li>


<li>Starting with this version, the <b>HTTP(S) Test Script Recorder</b> tries to detect when a sample is the result of a previous
redirect. If the current response is a redirect, JMeter will save the redirect URL. When the next request is received, 
it is compared with the saved redirect URL and if there is a match, JMeter will disable the generated sample.
To revert to previous behaviour, set the property <span class="code">proxy.redirect.disabling=false</span>

</li>


<li>Starting with this version, in <b>HTTP(S) Test Script Recorder</b> if Grouping is set to <i>Put each group in a new Transaction Controller</i>, 
the Recorder will create <b>Transaction Controller</b> instances with <i>Include duration of timer and pre-post processors in generated sample</i> set 
to false. This default value reflect more accurately response time.
</li>


<li>
<span class="code">__escapeOroRegexpChars</span> function (which escapes ORO reserved characters) no longer trims the value (see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55328">
      Bug
      55328</a>)
</li>


<li>The <i>commons-lang-2.6.jar</i> has been removed from embedded libraries in <span class="code">jmeter/lib</span> folder as it is not needed by JMeter at run-time
(it is only used by Apache Velocity for generating documentation).
If you use any plugin or third-party code that depends on it, you need to add it in <span class="code">jmeter/lib</span> folder
</li>

</ul>




<h2 class="ch_section" id="Bug fixes">Bug fixes</h2>


<h3>HTTP Samplers and Proxy</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54627">
      Bug
      54627</a> - JMeter Proxy GUI: Type of sampler setting takes the whole screen when there are samplers with long names.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54629">
      Bug
      54629</a> - HTMLParser does not extract &lt;object&gt; tag urls.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55023">
      Bug
      55023</a> - SSL Context reuse feature (51380) adversely affects non-ssl request performance/throughput. based on analysis by Brent Cromarty (brent.cromarty at yahoo.ca)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55092">
      Bug
      55092</a> - Log message "WARN - jmeter.protocol.http.sampler.HTTPSamplerBase: Null URL detected (should not happen)" displayed when embedded resource URL is malformed.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55161">
      Bug
      55161</a> - Useless processing in SoapSampler.setPostHeaders. Contributed by Adrian Nistor (nistor1 at illinois.edu)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54482">
      Bug
      54482</a> - HC fails to follow redirects with non-encoded chars.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54142">
      Bug
      54142</a> - HTTP Proxy Server throws an exception when path contains "|" character.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55388">
      Bug
      55388</a> - HC3 does not allow IP Source field to override httpclient.localaddress.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55450">
      Bug
      55450</a> - HEAD redirects should remain as HEAD</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55455">
      Bug
      55455</a> - HTTPS with HTTPClient4 ignores cps setting</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55502">
      Bug
      55502</a> - Proxy generates empty http:/ entries when recording</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55504">
      Bug
      55504</a> - Proxy incorrectly issues CONNECT requests when browser prompts for certificate override</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55506">
      Bug
      55506</a> - Proxy should deliver failed requests to any configured Listeners</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55545">
      Bug
      55545</a> - HTTP Proxy Server GUI should not allow both Follow and Auto redirect to be selected</li>

</ul>


<h3>Other Samplers</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54913">
      Bug
      54913</a> - JMSPublisherGui incorrectly restores its state. Contributed by Benoit Wiart (benoit.wiart at gmail.com)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55027">
      Bug
      55027</a> - Test Action regression, duration value is not recorded (nightly build).</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55163">
      Bug
      55163</a> - BeanShellTestElement fails to quote string when calling testStarted(String)/testEnded(String).</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55349">
      Bug
      55349</a> - NativeCommand hangs if no input file is specified and the application requests input.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55462">
      Bug
      55462</a> - System Sampler should not change the sampler label if a sample fails</li>

</ul>


<h3>Controllers</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54467">
      Bug
      54467</a> - Loop Controller: compute loop value only once per parent iteration.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54985">
      Bug
      54985</a> - Make Transaction Controller set Response Code of Generated Parent Sampler to response code of first failing child in case of failure of one of its children. Contributed by Mikhail Epikhin (epihin-m at yandex.ru)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54950">
      Bug
      54950</a> - ModuleController : Changes to referenced Module are not taken into account if changes occur after first run and referenced node is disabled.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55201">
      Bug
      55201</a> - ForEach controller excludes start index and includes end index (clarified documentation).</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55334">
      Bug
      55334</a> - Adding Include Controller to test plan (made of Include Controllers) without saving TestPlan leads to included code not being taken into account until save.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55375">
      Bug
      55375</a> -  StackOverflowError with ModuleController in Non-GUI mode if its name is the same as the target node.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55464">
      Bug
      55464</a> - Include Controller running included thread group</li>

</ul>


<h3>Listeners</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54589">
      Bug
      54589</a> - View Results Tree have a lot of Garbage characters if html page uses double-byte charset.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54753">
      Bug
      54753</a> - StringIndexOutOfBoundsException at SampleResult.getSampleLabel() if key_on_threadname=false when using Statistical mode.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54685">
      Bug
      54685</a> - ArrayIndexOutOfBoundsException if "sample_variable" is set in client but not server.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55111">
      Bug
      55111</a> - ViewResultsTree: text not refitted if vertical scrollbar is required. Contributed by Milamber</li>

</ul>


<h3>Timers, Assertions, Config, Pre- &amp; Post-Processors</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54540">
      Bug
      54540</a> - "HTML Parameter Mask" are not marked deprecated in the IHM.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54575">
      Bug
      54575</a> - CSS/JQuery Extractor : Choosing JODD Implementation always uses JSOUP.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54901">
      Bug
      54901</a> - Response Assertion GUI behaves weirdly.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54924">
      Bug
      54924</a> - XMLAssertion uses JMeter JVM file.encoding instead of response encoding and does not clean threadlocal variable.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53679">
      Bug
      53679</a> -  Constant Throughput Timer bug with localization. Reported by Ludovic Garcia</li>

</ul>


<h3>Functions</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55328">
      Bug
      55328</a> - __escapeOroRegexpChars trims spaces.</li>

</ul>


<h3>I18N</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55437">
      Bug
      55437</a> - ComboStringEditor does not translate EDIT and UNDEFINED strings on language change</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55501">
      Bug
      55501</a> - Incorrect encoding for French description of __char function. Contributed by Antonio Gomes Rodrigues (ra0077 at gmail.com)</li>

</ul>


<h3>General</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54504">
      Bug
      54504</a> - Resource string not found: [clipboard_node_read_error].</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54538">
      Bug
      54538</a> - GUI: context menu is too big.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54847">
      Bug
      54847</a> - Cut &amp; Paste is broken with tree multi-selection. Contributed by Benoit Wiart (benoit.wiart at gmail.com)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54870">
      Bug
      54870</a> - Tree drag and drop may lose leaf nodes (affected nightly build). Contributed by Benoit Wiart (benoit.wiart at gmail.com)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55056">
      Bug
      55056</a> - wasted work in Data.append(). Contributed by Adrian Nistor (nistor1 at illinois.edu)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55129">
      Bug
      55129</a> -  Change Javadoc generation per CVE-2013-1571, VU#225657.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55187">
      Bug
      55187</a> - Integer overflow when computing ONE_YEAR_MS in HTTP CacheManager.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55208">
      Bug
      55208</a> - JSR223 language entries are duplicated; fold to lower case.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55203">
      Bug
      55203</a> - TestBeanGUI - wrong language settings found.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55065">
      Bug
      55065</a> - Useless processing in Spline3.converge(). Contributed by Adrian Nistor (nistor1 at illinois.edu)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55064">
      Bug
      55064</a> - Useless processing in ReportTreeListener.isValidDragAction(). Contributed by Adrian Nistor (nistor1 at illinois.edu)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55242">
      Bug
      55242</a> - BeanShell Client jar throws exceptions after upgrading to 2.8.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55288">
      Bug
      55288</a> - JMeter should default to 0 retries for HTTP requests.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55405">
      Bug
      55405</a> - ant download_jars task fails if lib/api or lib/doc are missing. Contributed by Antonio Gomes Rodrigues.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55427">
      Bug
      55427</a> - TestBeanHelper should ignore properties not supported by GenericTestBeanCustomizer</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55459">
      Bug
      55459</a> - Elements using ComboStringEditor lose the input value if user selects another Test Element</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54152">
      Bug
      54152</a> - In distributed testing : activeThreads always show 0 in GUI and Summariser</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55509">
      Bug
      55509</a> - Allow Plugins to be notified of remote thread number progression</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55572">
      Bug
      55572</a> - Detail popup of parameter does not show a Scrollbar when content exceeds display</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55580">
      Bug
      55580</a> -  Help pane does not scroll to start for &lt;a href="#"&gt; links</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55600">
      Bug
      55600</a> - JSyntaxTextArea : Strange behaviour on first undo</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55655">
      Bug
      55655</a> - NullPointerException when Remote stopping /shutdown all if one engine did not start correctly. Contributed by UBIK Load Pack (support at ubikloadpack.com)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55657">
      Bug
      55657</a> - Remote and Local Stop/Shutdown buttons state does not take into account local / remote status </li>

</ul>




<h2 class="ch_section" id="Improvements">Improvements</h2>


<h3>HTTP Samplers and Proxy</h3>

<ul>

<li>HTTP Request: Small user interaction improvements in Row parameter Detail Box. Contributed by Milamber</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55255">
      Bug
      55255</a> - Allow Body in HTTP DELETE method to support API that use it (like ElasticSearch).</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53480">
      Bug
      53480</a> - Add Kerberos support to Http Sampler (HttpClient4). Based on patch by Felix Schumacher (felix.schumacher at internetallee.de)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54874">
      Bug
      54874</a> - Support device in addition to source IP address. Based on patch by Dan Fruehauf (malkodan at gmail.com)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55488">
      Bug
      55488</a> - Add .ico and .woff file extension to default suggested exclusions in proxy recorder. Contributed by Antonio Gomes Rodrigues</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55525">
      Bug
      55525</a> - Proxy should support alias for keyserver entry</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55531">
      Bug
      55531</a> - Proxy recording and redirects. Added code to disable redirected samples.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55507">
      Bug
      55507</a> - Proxy SSL recording does not handle external embedded resources well</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55632">
      Bug
      55632</a> - Have a new implementation of htmlParser for embedded resources parsing with better performances</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55653">
      Bug
      55653</a> - HTTP(S) Test Script Recorder should set TransactionController property "Include duration of timer and pre-post processors in generated sample" to false</li>

</ul>


<h3>Other samplers</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54788">
      Bug
      54788</a> - JMS Point-to-Point Sampler - GUI enhancements to increase readability and ease of use. Contributed by Bruno Antunes (b.m.antunes at gmail.com)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54798">
      Bug
      54798</a> - Using subject from EML-file for SMTP Sampler. Contributed by Mikhail Epikhin (epihin-m at yandex.ru)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54759">
      Bug
      54759</a> - SSLPeerUnverifiedException using HTTPS , property documented.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54896">
      Bug
      54896</a> - JUnit sampler gives only "failed to create an instance of the class" message with constructor problems.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55084">
      Bug
      55084</a> - Add timeout support for JDBC Request. Contributed by Mikhail Epikhin (epihin-m at yandex.ru)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55403">
      Bug
      55403</a> - Enhancement to OS sampler: Support for timeout</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55518">
      Bug
      55518</a> - Add ability to limit number of cached PreparedStatements per connection when "Prepared Select Statement", "Prepared Update Statement" or "Callable Statement" query type is selected</li>

</ul>


<h3>Controllers</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54271">
      Bug
      54271</a> - Module Controller breaks if test plan is renamed.</li>

</ul>


<h3>Listeners</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54532">
      Bug
      54532</a> - Improve Response Time Graph Y axis scale with huge values or small values (&lt; 1000ms). Add a new field to define increment scale. Contributed by Milamber based on patch by Luca Maragnani (luca.maragnani at gmail.com)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54576">
      Bug
      54576</a> - View Results Tree : Add a CSS/JQuery Tester.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54777">
      Bug
      54777</a> - Improve Performance of default ResultCollector. Based on patch by Mikhail Epikhin (epihin-m at yandex.ru)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55389">
      Bug
      55389</a> - Show IP source address in request data</li>

</ul>


<h3>Timers, Assertions, Config, Pre- &amp; Post-Processors</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54789">
      Bug
      54789</a> - XPath Assertion - GUI enhancements to increase readability and ease of use.</li>

</ul>


<h3>Functions</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54991">
      Bug
      54991</a> - Add functions to encode/decode URL encoded chars (__urlencode and __urldecode). Contributed by Milamber.</li>

</ul>


<h3>I18N</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55241">
      Bug
      55241</a> - Need GUI Editor to process fields which are based on Enums with localised display strings</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55440">
      Bug
      55440</a> - ComboStringEditor should allow tags to be language dependent</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55432">
      Bug
      55432</a> - CSV Dataset Config loses sharing mode when switching languages</li>

</ul>


<h3>General</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54584">
      Bug
      54584</a> - MongoDB plugin. Based on patch by Jan Paul Ettles (janpaulettles at gmail.com)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54669">
      Bug
      54669</a> - Add flag forcing non-GUI JVM to exit after test. Contributed by Scott Emmons</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=42428">
      Bug
      42428</a> - Workbench not saved with Test Plan. Contributed by Dzmitry Kashlach (dzmitrykashlach at gmail.com)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54825">
      Bug
      54825</a> - Add shortcuts to move elements in the tree. Contributed by Benoit Wiart (benoit.wiart at gmail.com)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54834">
      Bug
      54834</a> - Improve Drag &amp; Drop in the jmeter tree. Contributed by Benoit Wiart (benoit.wiart at gmail.com)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54839">
      Bug
      54839</a> - Set the application name on Mac. Contributed by Benoit Wiart (benoit.wiart at gmail.com)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54841">
      Bug
      54841</a> - Correctly handle the quit shortcut on Mac Os (CMD-Q). Contributed by Benoit Wiart (benoit.wiart at gmail.com)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54844">
      Bug
      54844</a> - Set the application icon on Mac Os. Contributed by Benoit Wiart (benoit.wiart at gmail.com)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54864">
      Bug
      54864</a> - Enable multi selection drag &amp; drop in the tree without having to start dragging before releasing Shift or Control. Contributed by Benoit Wiart (benoit.wiart at gmail.com)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54945">
      Bug
      54945</a> - Add Shutdown Hook to enable trapping kill or CTRL+C signals.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54990">
      Bug
      54990</a> - Download large files avoiding outOfMemory.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55085">
      Bug
      55085</a> - UX Improvement : Ability to create New Test Plan from Templates. Contributed by UBIK Load Pack (support at ubikloadpack.com)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55172">
      Bug
      55172</a> - Provide plugins a way to add Top Menu and menu items.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55202">
      Bug
      55202</a> - Add syntax color for scripts elements (BeanShell, BSF, and JSR223) and JDBC elements with RSyntaxTextArea. Contributed by Milamber based on patch by Marko Vlahovic (vlahovic74 at gmail.com)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55175">
      Bug
      55175</a> - HTTPHC4Impl refactoring to allow better inheritance.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55236">
      Bug
      55236</a> - Templates - provide button to reload template details.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55237">
      Bug
      55237</a> - Template system should support relative fileName entries.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55423">
      Bug
      55423</a> - BatchSampleSender: Reduce locking granularity by moving listener.processBatch outside of synchronized block</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55424">
      Bug
      55424</a> - Add Stripping to existing SampleSenders</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55451">
      Bug
      55451</a> - Test Element GUI with JSyntaxTextArea scroll down when text content is long enough to add a Scrollbar</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55513">
      Bug
      55513</a> - StreamCopier cannot be used with System.err or System.out as it closes the output stream</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55514">
      Bug
      55514</a> - SystemCommand should support arbitrary input and output streams</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55515">
      Bug
      55515</a> - SystemCommand should support chaining of commands</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55606">
      Bug
      55606</a> - Use JSyntaxtTextArea for Http Request, JMS Test Elements</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55651">
      Bug
      55651</a> - Change JMeter application icon to Apache plume icon</li>

</ul>


<h2 class="ch_section" id="Non-functional changes">Non-functional changes</h2>

<ul>

<li>Updated to jsoup-1.7.2</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54776">
      Bug
      54776</a> - Update the dependency on Bouncy Castle to 1.48. Contributed by Emmanuel Bourg (ebourg at apache.org)</li>

<li>Updated to HttpComponents Client 4.2.6 (from 4.2.3)</li>

<li>Updated to HttpComponents Core 4.2.5 (from 4.2.3)</li>

<li>Updated to commons-codec 1.8 (from 1.6)</li>

<li>Updated to commons-io 2.4 (from 2.2)</li>

<li>Updated to commons-logging 1.1.3 (from 1.1.1)</li>

<li>Updated to commons-net 3.3 (from 3.1)</li>

<li>Updated to jdom-1.1.3 (from 1.1.2)</li>

<li>Updated to jodd-lagarto and jodd-core 3.4.8 (from 3.4.1)</li>

<li>Updated to junit 4.11 (from 4.10)</li>

<li>Updated to slf4j-api 1.7.5 (from 1.7.2)</li>

<li>Updated to tika 1.4 (from 1.3)</li>

<li>Updated to xmlgraphics-commons 1.5 (from 1.3.1)</li>

<li>Updated to xstream 1.4.4 (from 1.4.2)</li>

<li>Updated to BouncyCastle 1.49 (from 1.48)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54912">
      Bug
      54912</a> - JMeterTreeListener should use constants. Contributed by Benoit Wiart (benoit.wiart at gmail.com)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54903">
      Bug
      54903</a> - Remove the dependency on the Activation Framework. Contributed by Emmanuel Bourg (ebourg at apache.org)</li>

<li>Moved commons-lang (2.6) to lib/doc as it's only needed by Velocity.</li>

<li>Re-organised and simplified NOTICE and LICENSE files.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55411">
      Bug
      55411</a> -  NativeCommand could be useful elsewhere. Copied code to o.a.jorphan.exec.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55435">
      Bug
      55435</a> - ComboStringEditor could be simplified to make most settings final</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55436">
      Bug
      55436</a> - ComboStringEditor should implement ClearGui</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55463">
      Bug
      55463</a> - Component.requestFocus() is discouraged; use requestFocusInWindow() instead</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55486">
      Bug
      55486</a> - New JMeter Logo. Contributed by UBIK Load Pack (support at ubikloadpack.com)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55548">
      Bug
      55548</a> - Tidy up use of TestElement.ENABLED; use TestElement.isEnabled()/setEnabled() throughout</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55617">
      Bug
      55617</a> - Improvements to jorphan collection. Contributed by Benoit Wiart (benoit.wiart at gmail.com)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55623">
      Bug
      55623</a> - Invalid/unexpected configuration values should not be silently ignored</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55626">
      Bug
      55626</a> - Rename HTTP Proxy Server as HTTP(S) Test Script Recorder</li>

</ul>


<h2 class="ch_section" id="Thanks">Thanks</h2>

<p>We thank all contributors mentioned in bug and improvement sections above:
<ul>

<li>Bruno Antunes (b.m.antunes at gmail.com)</li>

<li>Emmanuel Bourg (ebourg at apache.org)</li>

<li>Scott Emmons</li>

<li>Mikhail Epikhin (epihin-m at yandex.ru)</li>

<li>Dzmitry Kashlach (dzmitrykashlach at gmail.com)</li>

<li>Luca Maragnani (luca.maragnani at gmail.com)</li>

<li>Milamber</li>

<li>Adrian Nistor (nistor1 at illinois.edu)</li>

<li>Antonio Gomes Rodrigues (ra0077 at gmail.com)</li>

<li>UBIK Load Pack (support at ubikloadpack.com)</li>

<li>Benoit Wiart (benoit.wiart at gmail.com)</li>

</ul>

<br>
We also thank bug reporters who helped us improve JMeter. <br>
For this release we want to give special thanks to the following reporters for the clear reports and tests made after our fixes:
<ul>

<li>Immanuel Hayden (immanuel.hayden at gmail.com)</li>

<li>Danny Lade (dlade at web.de)</li>

<li>Brent Cromarty (brent.cromarty at yahoo.ca)</li>

<li>Wolfgang Heider (wolfgang.heider at racon.at)</li>

<li>Shmuel Krakower (shmulikk at gmail.com)</li>

</ul>


Apologies if we have omitted anyone else.
 </p>
 



<h1>Version 2.9</h1>


<h2>New and Noteworthy</h2>


<h3>
<u>Core Improvements:</u>
</h3>


<h4>* A new Extractor that uses CSS or jquery-like selector syntax has been introduced, 
it allows using either JODD or JSOUP implementations</h4>

<p>

<figure>
<a href="./images/screenshots/changes/2.9/01_css_jquery_extractor.png"><img src="./images/screenshots/changes/2.9/01_css_jquery_extractor.png" width="762" height="277" alt=""></a>
<figcaption></figcaption>
</figure>

</p>

<p>Result: the title of the page in a JMeter variable
<figure>
<a href="./images/screenshots/changes/2.9/01_css_jquery_extractor_resul.png"><img src="./images/screenshots/changes/2.9/01_css_jquery_extractor_resul.png" width="719" height="171" alt=""></a>
<figcaption></figcaption>
</figure>

</p>

<h4>* JMeter can now handle different types of documents (PDF, MsOffice files, Apache OpenOffice's files, &hellip;)
 within different elements </h4>

<ul>
    
<li>Regular Expression Extractor, extract text from documents</li>
    
<li>Assertion Response, check text in documents</li>
    
<li>View Results Tree, view as a text the documents</li>

</ul>

<p>

<figure>
<a href="./images/screenshots/changes/2.9/02_document_render_view_results_tree.png"><img src="./images/screenshots/changes/2.9/02_document_render_view_results_tree.png" width="761" height="345" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h4>* A new Regex User Parameters Pre-Processor that enables injecting input parameter names and values 
using a reference extracted by Regular Expression Extractor from a previous response</h4>

<p>

<figure>
<a href="./images/screenshots/changes/2.9/13_regex_user_params.png"><img src="./images/screenshots/changes/2.9/13_regex_user_params.png" width="727" height="138" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h4>* TCP Sampler: new options</h4>

<p>TCP Sampler has been enhanced with new options to allow setting <b>Close Connection</b>, 
 <b>SO_LINGER</b> and  <b>End of line(EOL) byte value</b>

<figure>
<a href="./images/screenshots/changes/2.9/03_new_options_tcp_sampler.png"><img src="./images/screenshots/changes/2.9/03_new_options_tcp_sampler.png" width="1147" height="302" alt=""></a>
<figcaption></figcaption>
</figure>

</p>

<h4>* A new function <i>__escapeOroRegexpChars(,)</i> has been introduced quote ORO regexp meta characters</h4>

<h4>* ForEach Controller: new fields</h4>

<p>ForEach Controller has now 2 new fields to control start and end of loop
<figure>
<a href="./images/screenshots/changes/2.9/04_for_each_new_fields.png"><img src="./images/screenshots/changes/2.9/04_for_each_new_fields.png" width="320" height="203" alt=""></a>
<figcaption></figcaption>
</figure>

</p>

<h4>* Result Status Action Handler now has a new option to "Start next thread loop"</h4>

<p>

<figure>
<a href="./images/screenshots/changes/2.9/05_result_status_action_handler.png"><img src="./images/screenshots/changes/2.9/05_result_status_action_handler.png" width="722" height="132" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h4>* JMS Publisher: new option</h4>

<p>JMS Publisher can now send Bytes Messages</p>

<figure>
<a href="./images/screenshots/changes/2.9/11_jms_publisher_bytes.png"><img src="./images/screenshots/changes/2.9/11_jms_publisher_bytes.png" width="833" height="701" alt=""></a>
<figcaption></figcaption>
</figure>


<h4>* Memory and performance improvements</h4>

<p>Significant improvements have been done in this version on memory usage per Thread and CPU when more 
than one Post Processor is used as child of a Sampler</p>

<p>JSR223 Elements (enable using Groovy, Scala, &hellip; as scripting languages) have been improved to enable caching 
of Compilation results when scripts are passed in Text area</p>

<figure>
<a href="./images/screenshots/changes/2.9/12_jsr223_sampler.png"><img src="./images/screenshots/changes/2.9/12_jsr223_sampler.png" width="841" height="470" alt=""></a>
<figcaption></figcaption>
</figure>


<p>Some configuration defaults have changed to improve performances by default(see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54412">
      Bug
      54412</a>), 
see description in New and Noteworthy section.
<ul>
    
<li>Distributed testing now uses MODE_STRIPPED_BATCH, which returns samples in batch mode (every 100 samples
     or every minute by default). Note also that MODE_STRIPPED_BATCH strips response data from SampleResult, 
     so if you need it change to another mode (mode property in jmeter.properties)</li>
    
<li>Result data are now saved to CSV by default (jmeter.save.saveservice.output_format in jmeter.properties)</li>

</ul>

</p>


<h4>* XPath Assertion now enables using a JMeter variable as input</h4>

<p>

<figure>
<a href="./images/screenshots/changes/2.9/14_xpath_assertion.png"><img src="./images/screenshots/changes/2.9/14_xpath_assertion.png" width="800" height="317" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3>
<u>GUI and ergonomy Improvements:</u>
</h3>

<h4>* Search feature has been improved to search within more internal fields of elements and expand search results</h4>

<h4>* Copy/paste is now possible between 2 JMeter instances &gt;= 2.9 version</h4>

<p>Copy element(s) from one JMeter instance:
<figure>
<a href="./images/screenshots/changes/2.9/06_copy_paste_between_2_jmeter1.png"><img src="./images/screenshots/changes/2.9/06_copy_paste_between_2_jmeter1.png" width="618" height="262" alt=""></a>
<figcaption></figcaption>
</figure>

</p>

<p>Paste element(s) into a second JMeter instance:
<figure>
<a href="./images/screenshots/changes/2.9/06_copy_paste_between_2_jmeter2.png"><img src="./images/screenshots/changes/2.9/06_copy_paste_between_2_jmeter2.png" width="617" height="278" alt=""></a>
<figcaption></figcaption>
</figure>

</p>

<h4>* HTTP Header Manager</h4>

<p>Allow copy from clipboard to HeaderPanel, headers are supposed to be separated by new line
 and have the following form <i>name:value</i>

<figure>
<a href="./images/screenshots/changes/2.9/07_header_panel_add_from_clipboard.png"><img src="./images/screenshots/changes/2.9/07_header_panel_add_from_clipboard.png" width="661" height="263" alt=""></a>
<figcaption></figcaption>
</figure>

</p>

<h4>* Module Controller</h4>

<p>Module Controller has been improved to better render referenced controller and expand it by clicking on a new button
<figure>
<a href="./images/screenshots/changes/2.9/08_module_controller_improvements.png"><img src="./images/screenshots/changes/2.9/08_module_controller_improvements.png" width="832" height="274" alt=""></a>
<figcaption></figcaption>
</figure>

</p>

<h4>* HTTP Proxy Server</h4>

<p>HTTP Proxy Server now has a button to add a set of default exclusions for URL patterns, 
this list can be configured through property : <i>proxy.excludes.suggested</i>

<figure>
<a href="./images/screenshots/changes/2.9/09_proxy_excludes_suggested.png"><img src="./images/screenshots/changes/2.9/09_proxy_excludes_suggested.png" width="811" height="214" alt=""></a>
<figcaption></figcaption>
</figure>

</p>

<h4>* Rendering of target controller has been improved in HTTP Proxy Server</h4>


<h3>
<u>HTTP Proxy Server recording:</u>
</h3>

<p>* HTTP Proxy Server now automatically uses HTTP Request with Raw Post Body mode for 
samples that only have one unnamed argument (JSON, XML, GWT, &hellip;)</p>

<p>* HTTP Proxy Server does not force user to select the type of Sampler in HTTP Sampler Settings,
 this allows easier switch between implementations as Sampler do not have this information set anymore</p>
 
<p>

<figure>
<a href="./images/screenshots/changes/2.9/10_http_proxy_dont_force_http_type.png"><img src="./images/screenshots/changes/2.9/10_http_proxy_dont_force_http_type.png" width="484" height="307" alt=""></a>
<figcaption></figcaption>
</figure>

</p>

<p>* SamplerCreator interface has been enriched to meet new requirements for plug-in providers</p>

<p>* It is now possible to create binary sampler for x-www-form-urlencoded POST request by 
modifying <i>proxy.binary.types</i> property to add application/x-www-form-urlencoded </p>

<p>* Improved timestamp format auto-detection when reading CSV files</p>




<h2>Known bugs</h2>


<p>The Once Only controller behaves correctly under a Thread Group or Loop Controller,
but otherwise its behaviour is not consistent (or clearly specified).</p>


<p>Listeners don't show iteration counts when a If Controller has a condition which is always false from the first iteration (see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52496">
      Bug
      52496</a>).  
A workaround is to add a sampler at the same level as (or superior to) the If Controller.
For example a Test Action sampler with 0 wait time (which doesn't generate a sample),
or a Debug Sampler with all fields set to False (to reduce the sample size).
</p>


<p>Webservice sampler does not consider the HTTP response status to compute the status of a response, thus a response 500 containing a non empty body will be considered as successful, see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54006">
      Bug
      54006</a>.
To workaround this issue, ensure you always read the response and add a Response Assertion checking text inside the response.
</p>


<p>
Changing language can break part of the configuration of the following elements (see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53679">
      Bug
      53679</a>):
<ul>
    
<li>CSV Data Set Config (sharing mode will be lost)</li>
    
<li>Constant Throughput Timer (Calculate throughput based on will be lost)</li>

</ul>

</p>


<p>
The numbers that appear to the left of the green box are the number of active threads / total number of threads, 
these only apply to a locally run test; they do not include any threads started on remote systems when using client-server mode, (see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54152">
      Bug
      54152</a>).
</p>


<p>
Note that there is a bug in Java on some Linux systems that manifests
itself as the following error when running the test cases or JMeter itself:
<pre>
 [java] WARNING: Couldn't flush user prefs:
 java.util.prefs.BackingStoreException:
 java.lang.IllegalArgumentException: Not supported: indent-number
</pre>
This does not affect JMeter operation.
</p>




<h2>Incompatible changes</h2>


<p>
<b>JMeter requires now a Java 6 runtime or higher.</b>
</p>


<p>Some configuration defaults have changed to improve performances by default (see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54412">
      Bug
      54412</a>), 
see description in New and Noteworthy section.</p>


<p>Webservice sampler now adds to request the headers that are set through Header Manager, these were previously ignored</p>


<p>
<i>jdbcsampler.cachesize</i> property has been removed, it previously limited the size of a per connection cache of Map &lt; String, 
PreparedStatement &gt; , it also limited the size of this
map which held the PreparedStatement for SQL queries. This limitation provoked a bug <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53995">
      Bug
      53995</a>. 
It has been removed so now size of these 2 maps is not limited anymore. This change changes behaviour as starting from 
this version no PreparedStatement will be closed during the test.</p>


<p>Starting with this version, there are some important changes on JSR223 Test Elements:
<ul>
    
<li>JSR223 Test Elements that have an invalid filename (not existing or unreadable) will make test fail instead of 
    making the element silently work</li>
    
<li>In JSR223 Test Elements: responseCodeOk, responseMessageOK and successful are set before
     script is executed, if responseData is set it will not be overridden anymore by a toString() on script return value</li>

</ul>

</p>


<p>View Results Tree now considers response with missing content type as text.</p>


<p>In remote Test mode, JMeter now exits in error if one of the remote engines cannot be configured, 
previously it started the test with available engines.</p>




<h2>Bug fixes</h2>


<h3>HTTP Samplers and Proxy</h3>

<ul>

<li>Don't log spurious warning messages when using concurrent pool embedded downloads with Cache Manager or CookieManager</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54057">
      Bug
      54057</a>- Proxy option to set user and password at startup (-u and -a) not working with HTTPClient 4</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54187">
      Bug
      54187</a> - Request tab does not show headers if request fails</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53840">
      Bug
      53840</a> - Proxy Recording : Response message: URLDecoder: Illegal hex characters in escape (%) pattern - For input string: "" "</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54351">
      Bug
      54351</a> - HC4 and URI fragments is failing</li>

</ul>


<h3>Other Samplers</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53997">
      Bug
      53997</a> - LDAP Extended Request: Escape ampersand (&amp;), left angle bracket (&lt;) 
and right angle bracket (&gt;) in search filter tag in XML response data</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53995">
      Bug
      53995</a> - AbstractJDBCTestElement shares PreparedStatement between multi-threads</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54119">
      Bug
      54119</a> - HTTP 307 response is not redirected</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54326">
      Bug
      54326</a> - AjpSampler send file in post throws FileNotFoundException</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54331">
      Bug
      54331</a> - AjpSampler throws null pointer on GET request that are protected</li>

</ul>


<h3>Controllers</h3>

<ul>

</ul>


<h3>Listeners</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54088">
      Bug
      54088</a> - The type video/f4m is text, not binary</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54166">
      Bug
      54166</a> - ViewResultsTree could not render the HTML response: handle failure to parse HTML</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54287">
      Bug
      54287</a> - Incorrect Timestamp in Response Time Graph when using a date with time in Date format field</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54451">
      Bug
      54451</a> - Response Time Graph reports wrong times when the are many samples for same time</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54459">
      Bug
      54459</a> - CSVSaveService does not handle date parsing very well</li>

</ul>


<h3>Timers, Assertions, Config, Pre- &amp; Post-Processors</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54058">
      Bug
      54058</a> - In HTTP Request Defaults, the value of field "Embedded URLs must match: is not saved if the check box "Retrieve All  Embedded Resources" is not checked.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54375">
      Bug
      54375</a> - Regular Expression Extractor : When regex syntax is wrong, post processing is stopped</li>

</ul>


<h3>Functions</h3>

<ul>

</ul>


<h3>I18N</h3>

<ul>

</ul>


<h3>General</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53975">
      Bug
      53975</a> - Variables replacement doesn't work with option "Delay thread creation until needed"</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54055">
      Bug
      54055</a> - View Results tree: = signs are stripped from parameter values at HTTP tab</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54129">
      Bug
      54129</a> - Search Feature does not find text although existing in elements </li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54023">
      Bug
      54023</a> - Unable to start JMeter from a root directory and if the full path of JMeter installation contains one or more spaces (Unix/linux)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54172">
      Bug
      54172</a> - Duplicate shortcut key not working and CTRL+C / CTRL+V / CTRL+V do not cancel default event</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54057">
      Bug
      54057</a> - Proxy option to set user and password at startup (-u and -a) not working with HTTPClient 4</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54267">
      Bug
      54267</a> - Start Next Thread Loop setting doesn't work in custom thread groups</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54413">
      Bug
      54413</a> - DataStrippingSampleSender returns 0 for number of bytes of any response</li>

</ul>




<h2>Improvements</h2>


<h3>HTTP Samplers</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54185">
      Bug
      54185</a> - Allow query strings in paths that start with HTTP or HTTPS</li>

</ul>


<h3>Other samplers</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54004">
      Bug
      54004</a> - Webservice Sampler : Allow adding headers to request with Header Manager</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54106">
      Bug
      54106</a> - JSR223TestElement should check for file existence when a filename is set instead of using Text Area content </li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54107">
      Bug
      54107</a> - JSR223TestElement : Enable compilation and caching of Script Text</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54109">
      Bug
      54109</a> - JSR223TestElement : SampleResult properties should be set before entering script to allow user setting different code</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54230">
      Bug
      54230</a> - TCP Sampler, additions of "Close Connection", "SO_LINGER" and "End of line(EOL) byte value" options</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54182">
      Bug
      54182</a> - Support sending of ByteMessage for JMS Publisher.</li>

</ul>


<h3>Controllers</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54131">
      Bug
      54131</a> - ForEach Controller : Add start and end index for looping over variables</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54132">
      Bug
      54132</a> - Module Controller GUI : Improve rendering of referenced controller</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54155">
      Bug
      54155</a> - ModuleController : Add a shortcut button to unfold the tree up to referenced controller and highlight it</li>

</ul>


<h3>Listeners</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54200">
      Bug
      54200</a> - Add support of several document types (like Apache OpenOffice's files, MS Office's files, PDF's files, etc.) 
to the elements View Results Tree, Assertion Response and Regular Expression Extractor (using Apache Tika)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54226">
      Bug
      54226</a> - View Results Tree : Show response even when server does not return ContentType header</li>

</ul>


<h3>Timers, Assertions, Config, Pre- &amp; Post-Processors</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54259">
      Bug
      54259</a> - Introduce a new Extractor that uses CSS or jquery-like selector syntax</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=45772">
      Bug
      45772</a> - RegEx User Parameters Post Processor</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54160">
      Bug
      54160</a> - Add support for xpath assertion to apply to a JMeter variable.</li>

</ul>


<h3>Functions</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54189">
      Bug
      54189</a> - Add a function to quote ORO regexp meta characters</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54418">
      Bug
      54418</a> - UUID Function</li>

</ul>


<h3>I18N</h3>

<ul>

</ul>


<h3>General</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54005">
      Bug
      54005</a> - HTTP Mirror Server : Add special headers "X-" to control Response status and response content</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53875">
      Bug
      53875</a> - Include suggested defaults for URL filters on HTTP Proxy</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54031">
      Bug
      54031</a> - Add tooltip to running/total threads indicator </li>

<li>Webservice (SOAP) Request has been deprecated</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54161">
      Bug
      54161</a> - Proxy : be able to create binary sampler for x-www-form-urlencoded POST request</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54154">
      Bug
      54154</a> - HTTP Proxy Server should not force user to select the type of Sampler in HTTP Sampler Settings</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54165">
      Bug
      54165</a> - Proxy Server: Improve rendering of target controller</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=46677">
      Bug
      46677</a> - Copying Test Elements between test plans</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54204">
      Bug
      54204</a> - Result Status Action Handler : Add start next thread loop option</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54232">
      Bug
      54232</a> - Search Feature : Add a button to search and expand results</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54251">
      Bug
      54251</a> - Add tristate checkbox implementation</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54257">
      Bug
      54257</a> - Enhance SamplerCreator interface to meet new requirements</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54258">
      Bug
      54258</a> - Proxy : Use Raw Post Body when Sampler has one unnamed argument, useful for Samplers using POST method by of type JSON, XML, GWT body</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54268">
      Bug
      54268</a> - Improve CPU and memory usage</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54376">
      Bug
      54376</a> - ScopePanel : Allow configuring more precisely scopes</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54412">
      Bug
      54412</a> - Changing JMeter defaults to ensure better performances by default</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54414">
      Bug
      54414</a> - Remote Test should not start if one of the engines fails to start correctly</li>

</ul>


<h2>Non-functional changes</h2>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53956">
      Bug
      53956</a> - Add ability to paste (a list of values) from clipboard for Header Manager</li>

<li>Updated to HttpComponents Client 4.2.3 (from 4.2.1)</li>

<li>Updated to HttpComponents Core 4.2.3 (from 4.2.2)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54110">
      Bug
      54110</a> - BSFTestElement and JSR223TestElement should use shared super-class for common fields</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54199">
      Bug
      54199</a> - Move to Java 6</li>

<li>Upgraded to rhino 1.7R4</li>

</ul>




<h1>Version 2.8</h1>


<h2>New and Noteworthy</h2>


<h3>Core Improvements:</h3>


<h4>Thread Group: New Option <i>Delay thread creation until needed</i>
</h4>

<p>New Option "Delay thread creation until needed" that will create and start threads when needed instead of creating them on Test startup<br>

<b>This new feature allows running tests with a huge number of short lived threads.</b>

<figure>
<a href="./images/screenshots/changes/2.8/12_delay_thread_creation.png"><img src="./images/screenshots/changes/2.8/12_delay_thread_creation.png" width="817" height="296" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h4>HTTP Cookie Manager (IPv6 support)</h4>

<p>Add HTTPClient 4 cookie implementation in JMeter. <br>
Cookie Manager has now the default HC3.1 implementation and a new choice HC4 implementation (compliant with IPv6 address) 
<figure>
<a href="./images/screenshots/changes/2.8/11_hc4_cookie.png"><img src="./images/screenshots/changes/2.8/11_hc4_cookie.png" width="635" height="239" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h4>Memory and performance improvements</h4>

<p>Significant improvements have been done in this version on memory usage of JMeterThread</p>

<p>JSR223 Elements (enable using Groovy, scala, &hellip; as scripting languages) have been improved to enable:
<ul>
    
<li>usage of Compilable interface when available to boost CPU usage</li>
    
<li>caching of Compilation when scripts are used as Files</li>

</ul>
See <a href="https://cwiki.apache.org/confluence/display/JMETER/JMeterPerformance">JMeter Performances across versions</a>

</p>


<h4>OS Process Sampler</h4>

<p>Allow defining files for stdout/stderr/stdin. 
<figure>
<a href="./images/screenshots/changes/2.8/06_os_sampler_stdout-err-in.png"><img src="./images/screenshots/changes/2.8/06_os_sampler_stdout-err-in.png" width="820" height="531" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h4>HTTP Request: PATCH verb</h4>

<p>Add PATCH verb to HTTP sampler
<figure>
<a href="./images/screenshots/changes/2.8/01_http_patch_verb.png"><img src="./images/screenshots/changes/2.8/01_http_patch_verb.png" width="615" height="340" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h4>HTTP Request: HTTPClient 4 is now the default implementation</h4>

<p>HTTPClient 4 is now the default HTTP Request implementation (and for Proxy element when generating HTTP requests).<br>
Previously the default was the HTTP Java implementation (i.e. the implementation provided by the JVM) 
<figure>
<a href="./images/screenshots/changes/2.8/02_http_default_hc4.png"><img src="./images/screenshots/changes/2.8/02_http_default_hc4.png" width="558" height="288" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h4>HTTP Request</h4>

<p>Add Embedded URL Filter to HTTP Request Defaults Control (it was already present for HTTP Requests)
<figure>
<a href="./images/screenshots/changes/2.8/05_http_defaults_url_filter.png"><img src="./images/screenshots/changes/2.8/05_http_defaults_url_filter.png" width="586" height="682" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h4>Miscellaneous</h4>

<ul>
    
<li>CSV Dataset : Embedded new lines are now supported in quoted data</li> 
    
<li>JMX files now contain the version of JMeter that created the file</li> 
    
<li>JMeter Version is now available as property "jmeter.version"</li> 

</ul>

<h3>Reporting Improvements:</h3>


<h4>Response Time Graph</h4>

<p>Add a new visualizer Response Time Graph to draw a line graph showing the evolution of response time for a test
<figure>
<a href="./images/screenshots/changes/2.8/09_resp_time_graph.png"><img src="./images/screenshots/changes/2.8/09_resp_time_graph.png" width="993" height="549" alt=""></a>
<figcaption></figcaption>
</figure>

</p>

<p>Settings for Response Time Graph
<figure>
<a href="./images/screenshots/changes/2.8/08_resp_time_graph_settings.png"><img src="./images/screenshots/changes/2.8/08_resp_time_graph_settings.png" width="989" height="602" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h4>View Results in Table</h4>

<p>Add latency to View Result in Table listener
<figure>
<a href="./images/screenshots/changes/2.8/10_latency_view_results_table.png"><img src="./images/screenshots/changes/2.8/10_latency_view_results_table.png" width="998" height="324" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h4>Aggregate Graph</h4>

<p>Small improvements: legend at left or right is now on 1 column (instead of 1 large line), &hellip;
<figure>
<a href="./images/screenshots/changes/2.8/07_aggregate_graph_legend_left_right.png"><img src="./images/screenshots/changes/2.8/07_aggregate_graph_legend_left_right.png" width="989" height="418" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3>GUI and ergonomy Improvements:</h3>

<h4>HTTP Proxy Server simplifications</h4>

<p>HTTPS Spoofing options have been removed from Proxy as HTTPS recording is directly available since JMeter 2.4.
<figure>
<a href="./images/screenshots/changes/2.8/03_remove_https_spoofing1.png"><img src="./images/screenshots/changes/2.8/03_remove_https_spoofing1.png" width="940" height="277" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h4>HTTP Proxy Server</h4>

<p>Allow URL Filters to be pasted from clipboard 
<figure>
<a href="./images/screenshots/changes/2.8/15_add_from_clipboard_filter.png"><img src="./images/screenshots/changes/2.8/15_add_from_clipboard_filter.png" width="707" height="614" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h4>Find in JMeter</h4>

<p>CTRL + F for the new Find feature 
<figure>
<a href="./images/screenshots/changes/2.8/14_ctrl_F_shortcut.png"><img src="./images/screenshots/changes/2.8/14_ctrl_F_shortcut.png" width="477" height="157" alt=""></a>
<figcaption></figcaption>
</figure>

ESC key now closes popups.
</p>


<h4>User Interface in GNOME 3</h4>

<p>Display 'Apache JMeter' title in app title bar in Gnome 3
<figure>
<a href="./images/screenshots/changes/2.8/13_gnome3_title.png"><img src="./images/screenshots/changes/2.8/13_gnome3_title.png" width="441" height="253" alt=""></a>
<figcaption></figcaption>
</figure>

</p>




<h2>Known bugs</h2>


<p>The Once Only controller behaves correctly under a Thread Group or Loop Controller,
but otherwise its behaviour is not consistent (or clearly specified).</p>


<p>Listeners don't show iteration counts when a If Controller has a condition which is always false from the first iteration (see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52496">
      Bug
      52496</a>).  
A workaround is to add a sampler at the same level as (or superior to) the If Controller.
For example a Test Action sampler with 0 wait time (which doesn't generate a sample),
or a Debug Sampler with all fields set to False (to reduce the sample size).
</p>


<p>
Changing language can break part of the configuration of the following elements (see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53679">
      Bug
      53679</a>):
<ul>
    
<li>CSV Data Set Config (sharing mode will be lost)</li>
    
<li>Constant Throughput Timer (Calculate throughput based on will be lost)</li>

</ul>

</p>


<p>
Note that there is a bug in Java on some Linux systems that manifests
itself as the following error when running the test cases or JMeter itself:
<pre>
 [java] WARNING: Couldn't flush user prefs:
 java.util.prefs.BackingStoreException:
 java.lang.IllegalArgumentException: Not supported: indent-number
</pre>
This does not affect JMeter operation.
</p>




<h2>Incompatible changes</h2>


<p>
When using CacheManager, JMeter now caches responses for GET queries provided header Cache-Control is different from "no-cache" as described in specification.
Furthermore it doesn't put anymore in Cache deprecated entries for "no-cache" responses. See <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53521">
      Bug
      53521</a> and <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53522">
      Bug
      53522</a> 

</p>


<p>
A major change has occurred on JSR223 Test Elements, previously variables set up before script execution where stored in ScriptEngineManager which was created once per execution, 
now ScriptEngineManager is a singleton shared by all JSR223 elements and only ScriptEngine is created once per execution, variables set up before script execution are now stored 
in Bindings created on each execution, see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53365">
      Bug
      53365</a>.
</p>


<p>
JSR223 Test Elements using Script file are now Compiled if ScriptEngine supports this feature, see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53520">
      Bug
      53520</a>.
</p>


<p>
Shortcut for Function Helper Dialog is now CTRL+F1 (CMD + F1 for Mac OS), CTRL+F (CMD+F1 for Mac OS) now opens Search Dialog.
</p>


<p>
By default, the TestCompiler now stores details of which pairs it has seen in Controller instances rather than in a static Set.
[<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53796">
      Bug
      53796</a>]
This gives much better memory behaviour for delayed start test plans, as memory used is proportional to the number of concurrent threads.
With the static Set memory usage was proportional to the total thread count.
This change is very unlikely to cause a problem.
The original behaviour can be restored by setting the property <span class="code">TestCompiler.useStaticSet=true</span>

</p>


<p>
HTTPS Spoofing options have been removed from Proxy as HTTPS recording is directly available since JMeter 2.4.
</p>



<h2>Bug fixes</h2>


<h3>HTTP Samplers and Proxy</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53521">
      Bug
      53521</a> - Cache Manager should cache content with Cache-control=private</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53522">
      Bug
      53522</a> - Cache Manager should not store at all response with header "no-cache" and store other types of Cache-Control having max-age value</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53838">
      Bug
      53838</a> - Pressing "Stop" does not interrupt the TCP sampler</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53911">
      Bug
      53911</a> - JmeterKeystore does not allow for key down the list of certificate</li>

</ul>


<h3>Other Samplers</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53348">
      Bug
      53348</a> - JMeter JMS Point-to-Point Request-Response sampler doesn't work when Request-queue and Receive-queue are different</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53357">
      Bug
      53357</a> - JMS Point to Point reports too high response times in Request Response Mode</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53440">
      Bug
      53440</a> - SSL connection leads to ArrayStoreException on JDK 6 with some KeyManagerFactory SPI</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53511">
      Bug
      53511</a> - access log sampler SessionFilter throws NullPointerException - cookie manager not initialized properly</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53715">
      Bug
      53715</a> - JMeter does not load WSDL</li>

</ul>


<h3>Controllers</h3>

<ul>

</ul>


<h3>Listeners</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53742">
      Bug
      53742</a> - When jmeter.save.saveservice.sample_count is set to true, elapsed time read by listener is always equal to 0</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53774">
      Bug
      53774</a> - RequestViewRaw does not show headers unless samplerData is non-null</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53802">
      Bug
      53802</a> - IdleTime values are not saved to CSV log</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53874">
      Bug
      53874</a> - View Results Tree : If some parameter containing special characters like % is not encoded, RequestViewHTTP fails with java.lang.IllegalArgumentException: URLDecoder: Illegal hex characters in escape (%) pattern and Response is not displayed</li>

</ul>


<h3>Timers, Assertions, Config, Pre- &amp; Post-Processors</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51512">
      Bug
      51512</a> - Cookies aren't inserted into HTTP request with IPv6 Host header</li>

</ul>


<h3>Functions</h3>

<ul>

</ul>


<h3>I18N</h3>

<ul>

</ul>


<h3>General</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53365">
      Bug
      53365</a> - JSR223TestElement should cache ScriptEngineManager</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53520">
      Bug
      53520</a> - JSR223 Elements : Use Compilable interface to improve performances on File scripts</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53501">
      Bug
      53501</a> - Synchronization timer blocks test end.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53750">
      Bug
      53750</a> - TestCompiler saves unnecessary entries in pairing collection</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52266">
      Bug
      52266</a> - Code:Inconsistent synchronization</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53841">
      Bug
      53841</a> - CSVSaveService reads file using JVM default file encoding instead of using the one configured in saveservice.properties</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53953">
      Bug
      53953</a> New: Typo in monitor test plan documentation</li>

</ul>




<h2>Improvements</h2>


<h3>HTTP Samplers</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53675">
      Bug
      53675</a> - Add PATCH verb to HTTP sampler</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53931">
      Bug
      53931</a> - Define HTTPClient 4 for the default HTTP Request (and Proxy element to generate the HTTP requests). Before the default, it was the HTTP Java Sampler</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53934">
      Bug
      53934</a> - Removes HTTPS spoofing options in JMeter HTTP Proxy Server. Since JMeter 2.4, the HTTPS protocol is directly supported by the proxy</li>

</ul>


<h3>Other samplers</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55310">
      Bug
      55310</a> - TestAction should implement Interruptible</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53318">
      Bug
      53318</a> - Add Embedded URL Filter to HTTP Request Defaults Control </li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53782">
      Bug
      53782</a> - Enhance JavaSampler handling of JavaSamplerClient cleanup to use less memory</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53168">
      Bug
      53168</a> - OS Process - allow specification of stdout/stderr/stdin</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53844">
      Bug
      53844</a> - JDBC related elements should check class of Variable Name supposed to contain JDBC Connection Configuration to avoid ClassCastException </li>

</ul>


<h3>Controllers</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53671">
      Bug
      53671</a> - tearDown thread group to run even if shutdown test happens</li>

</ul>


<h3>Listeners</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53566">
      Bug
      53566</a> - Don't log partial responses to the jmeter log</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53716">
      Bug
      53716</a> - Small improvements in aggregate graph: legend at left or right is now on 1 column (instead of 1 large line), no border to the reference's square color, reduce width on some fields</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53718">
      Bug
      53718</a> - Add a new visualizer 'Response Time Graph' to draw a line graph showing the evolution of response time for a test</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53738">
      Bug
      53738</a> - Keep track of number of threads started and finished</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53753">
      Bug
      53753</a> -  Summariser: no point displaying fractional time in most cases</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53749">
      Bug
      53749</a> - TestListener interface could perhaps be split up. 
This should reduce per-thread memory requirements and processing, 
as only test elements that actually use testIterationStart functionality now need to be handled.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53941">
      Bug
      53941</a> - Add latency to View Result table listener</li>

</ul>


<h3>Timers, Assertions, Config, Pre- &amp; Post-Processors</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53755">
      Bug
      53755</a> - Adding a HttpClient 4 cookie implementation in JMeter. 
Cookie Manager has now the default HC3.1 implementation and a new choice HC4 implementation (compliant with IPv6 address)</li>

</ul>


<h3>Functions</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51527">
      Bug
      51527</a> - __time() function : add another option to __time() to provide *seconds* since epoch</li>

</ul>


<h3>I18N</h3>

<ul>

</ul>


<h3>General</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53364">
      Bug
      53364</a> - Sort list of Functions in Function Helper Dialog</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53418">
      Bug
      53418</a> - New Option "Delay thread creation until needed" that will create and start threads when needed instead of creating them on Test startup</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=42245">
      Bug
      42245</a> - Show clear passwords in HTTP Authorization Manager</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53616">
      Bug
      53616</a> - Display 'Apache JMeter' title in app title bar in Gnome 3</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53759">
      Bug
      53759</a> - ClientJMeterEngine performs unnecessary traverse using SearchByClass(TestListener)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52601">
      Bug
      52601</a> - CTRL + F for the new Find feature</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53796">
      Bug
      53796</a> - TestCompiler uses static Set which can grow huge</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53673">
      Bug
      53673</a> - Add JMeter version in the jmx file</li>

<li>Add support for HeapDump to the JMeter non-GUI and GUI client</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53862">
      Bug
      53862</a> - Would be nice to have the JMeter Version available as a property</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53806">
      Bug
      53806</a> -  FileServer should provide thread-safe parsing</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53807">
      Bug
      53807</a> - CSV Dataset does not handle embedded new lines in quoted data</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53879">
      Bug
      53879</a> - GUI : Allow Popups to be closed with ESC key</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53876">
      Bug
      53876</a> - Allow URL Filters (HTTP Proxy) to be pasted from clipboard</li>

</ul>


<h2>Non-functional changes</h2>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53311">
      Bug
      53311</a> - JMeterUtils#runSafe should not throw Error when interrupted</li>

<li>Updated to commons-net-3.1 (from 3.0.1)</li>

<li>Updated to HttpComponents Core 4.2.2 (from 4.1.4) and HttpComponents Client 4.2.1 (from 4.1.3)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53765">
      Bug
      53765</a> - Switch to commons-lang3-3.1</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53884">
      Bug
      53884</a> - wrong Maven groupId for commons-lang</li>

</ul>




<h1>Version 2.7</h1>


<h2>New and Noteworthy</h2>


<h3>OS Process Sampler</h3>

<p>A new System Sampler that can be used to execute commands on the local machine.
<figure>
<a href="./images/screenshots/changes/2.7/01_os_process_sampler.png"><img src="./images/screenshots/changes/2.7/01_os_process_sampler.png" width="629" height="497" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<p>OS Process Sampler results example with DNS lookup command 'dig'
<figure>
<a href="./images/screenshots/changes/2.7/02_os_process_example_results.png"><img src="./images/screenshots/changes/2.7/02_os_process_example_results.png" width="877" height="470" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3>JMS Samplers improvements</h3>

<p>Addition of a "Non Persistent Delivery" option to send "Non-Persistent" (Guaranteed to be delivered at most once. Message loss is not a concern.) JMS messages
<figure>
<a href="./images/screenshots/changes/2.7/11_jms_non_persistent_delivery_mode.png"><img src="./images/screenshots/changes/2.7/11_jms_non_persistent_delivery_mode.png" width="953" height="336" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<p>Support sending of JMS Object Messages to enable sending Objects unmarshalled from XML by XStream
<figure>
<a href="./images/screenshots/changes/2.7/12_jms_sending_objects.png"><img src="./images/screenshots/changes/2.7/12_jms_sending_objects.png" width="808" height="726" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<p>Enable setting JMS Properties through JMS Publisher sampler
<figure>
<a href="./images/screenshots/changes/2.7/13_jms_properties.png"><img src="./images/screenshots/changes/2.7/13_jms_properties.png" width="1029" height="470" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3>Test Action sampler</h3>

<p>Allow premature exit from a loop
<figure>
<a href="./images/screenshots/changes/2.7/07_test_action_next_iter.png"><img src="./images/screenshots/changes/2.7/07_test_action_next_iter.png" width="862" height="167" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3>Webservice Sampler improvements</h3>

<p>Add a jmeter property soap.document_cache to control size of Document Cache
<figure>
<a href="./images/screenshots/changes/2.7/14_ws_document_cache.png"><img src="./images/screenshots/changes/2.7/14_ws_document_cache.png" width="270" height="59" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<p>Make Maintain HTTP Session configurable
<figure>
<a href="./images/screenshots/changes/2.7/15_ws_maintain_session.png"><img src="./images/screenshots/changes/2.7/15_ws_maintain_session.png" width="833" height="505" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3>Aggregate graph: Clustered Bar char with average, median, 90% line, min and max columns</h3>

<p>Aggregate graph changes to Clustered Bar chart, add more columns (median, 90% line, min, max) and options, fixed some bugs 
<figure>
<a href="./images/screenshots/changes/2.7/03_aggregate_graph_with_new_cols.png"><img src="./images/screenshots/changes/2.7/03_aggregate_graph_with_new_cols.png" width="1177" height="503" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<p>New settings for aggregate graph
<figure>
<a href="./images/screenshots/changes/2.7/04_aggregate_graph_parameters.png"><img src="./images/screenshots/changes/2.7/04_aggregate_graph_parameters.png" width="1173" height="433" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3>Improvements of HTML report design generated by JMeter Ant task in extras folder</h3>

<p>HTML report example 
<figure>
<a href="./images/screenshots/changes/2.7/05_jmeter_ant_task_report_success.png"><img src="./images/screenshots/changes/2.7/05_jmeter_ant_task_report_success.png" width="1264" height="506" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<p>HTML report example with some assertion errors
<figure>
<a href="./images/screenshots/changes/2.7/06_jmeter_ant_task_report_errors.png"><img src="./images/screenshots/changes/2.7/06_jmeter_ant_task_report_errors.png" width="1267" height="550" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3>Mailer Visualizer</h3>

<p>
<ul>

<li>Enable authentication, and connection security with SSL or TLS</li>

<li>Improve GUI design</li>

<li>Add internationalisation (i18n) support</li>

</ul>

<figure>
<a href="./images/screenshots/changes/2.7/10_mailer_visualizer_gui.png"><img src="./images/screenshots/changes/2.7/10_mailer_visualizer_gui.png" width="860" height="403" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3>New Visual Indicator of number of ERROR/FATAL messages in logs</h3>

<p>Indicator shows number of ERROR/FATAL messages in logs, it can be clicked to toggle Log Viewer panel
<figure>
<a href="./images/screenshots/changes/2.7/16_log_errors_counter.png"><img src="./images/screenshots/changes/2.7/16_log_errors_counter.png" width="815" height="633" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3>Dialog box to show detail of a parameter row</h3>

<p>Add a detail button on parameters table to show detail of a Row 
<figure>
<a href="./images/screenshots/changes/2.7/08_param_button_detail.png"><img src="./images/screenshots/changes/2.7/08_param_button_detail.png" width="824" height="165" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<p>Detail box example
<figure>
<a href="./images/screenshots/changes/2.7/09_detail_box.png"><img src="./images/screenshots/changes/2.7/09_detail_box.png" width="702" height="454" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3>Plugin writers</h3>

<p>
New interface org.apache.jmeter.engine.util.ConfigMergabilityIndicator has been introduced to tell whether a ConfigTestElement can be merged in Sampler (see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53042">
      Bug
      53042</a>):<br>

<pre>public boolean applies(ConfigTestElement configElement);</pre>

</p>


<p>New interface org.apache.jmeter.protocol.http.proxy.SamplerCreator to allow plugging HTTP based samplers that differ from default HTTP Samplers through Proxy during Recording Phase (see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52674">
      Bug
      52674</a>):<br> 

<pre>public String[] getManagedContentTypes();</pre>

<pre>public HTTPSamplerBase createSampler(HttpRequestHdr request, Map&lt;String, String&gt; pageEncodings, Map&lt;String, String&gt; formEncodings);</pre>

<pre>public void populateSampler(HTTPSamplerBase sampler, HttpRequestHdr request, Map&lt;String, String&gt; pageEncodings, Map&lt;String, String&gt; formEncodings) throws Exception;</pre>

</p>





<h2>Known bugs</h2>


<p>The Once Only controller behaves correctly under a Thread Group or Loop Controller,
but otherwise its behaviour is not consistent (or clearly specified).</p>


<p>Listeners don't show iteration counts when a If Controller has a condition which is always false from the first iteration (see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52496">
      Bug
      52496</a>).  
A workaround is to add a sampler at the same level as (or superior to) the If Controller.
For example a Test Action sampler with 0 wait time (which doesn't generate a sample),
or a Debug Sampler with all fields set to False (to reduce the sample size).
</p>




<h2>Incompatible changes</h2>


<p>
When doing replacement of User Defined Variables, Proxy will not substitute partial values anymore when "Regexp matching" is used. It will use Perl 5 word matching ("\b")
</p>


<p>
In User Defined Variables, Test Plan, HTTP Sampler Arguments Table, Java Request Defaults, JMS Sampler and Publisher, LDAP Request Defaults and LDAP Extended Request Defaults, rows with
empty Name and Value are no more saved.
</p>


<p>
JMeter now expands the Test Plan tree to the testplan level and no further and selects the root of the tree. Furthermore default value of onload.expandtree is false.
</p>


<p>
Graph Full Results Listener has been removed.
</p>


<p>
When calling "Clear All" command, if Log Viewer is displayed its content will be cleared.
</p>



<h2>Bug fixes</h2>


<h3>HTTP Samplers and Proxy</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52613">
      Bug
      52613</a> - Using Raw Post Body option, text gets encoded</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52781">
      Bug
      52781</a> - Content-Disposition header garbled even if browser compatible headers is checked (HC4) </li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52796">
      Bug
      52796</a> - MonitorHandler fails to clear variables when starting a new parse</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52871">
      Bug
      52871</a> - Multiple Certificates not working with HTTP Client 4</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52885">
      Bug
      52885</a> - Proxy : Recording issues with HTTPS, cookies starting with secure are partly truncated</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52886">
      Bug
      52886</a> - Proxy : Recording issues with HTTPS when spoofing is on, secure cookies are not always changed</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52897">
      Bug
      52897</a> - HTTPSampler : Using PUT method with HTTPClient4 and empty Content Encoding and sending files leads to NullPointerException</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53145">
      Bug
      53145</a> - HTTP Sampler - function in path evaluated too early</li>

</ul>


<h3>Other Samplers</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51737">
      Bug
      51737</a> - TCPSampler : Packet gets converted/corrupted</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52868">
      Bug
      52868</a> - BSF language list should be sorted</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52869">
      Bug
      52869</a> - JSR223 language list currently uses BSF list which is wrong</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52932">
      Bug
      52932</a> - JDBC Sampler : Sampler is not marked in error in an Exception which is not of class IOException, SQLException, IOException occurs</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52916">
      Bug
      52916</a> - JDBC Exception if there is an empty user defined variable</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52937">
      Bug
      52937</a> - Webservice Sampler : Clear Soap Documents Cache at end of Test </li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53027">
      Bug
      53027</a> - JMeter starts throwing exceptions while using SMTP Sample in a test plan with HTTP Cookie Mngr or HTTP Request Defaults</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53072">
      Bug
      53072</a> - JDBC PREPARED SELECT statements should return results in variables like non prepared SELECT</li>

</ul>


<h3>Controllers</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52968">
      Bug
      52968</a> - Option Start Next Loop in Thread Group does not mark parent Transaction Sampler in error when an error occurs</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=50898">
      Bug
      50898</a> - IncludeController : NullPointerException loading script in non-GUI mode if Includers use same element name</li>

</ul>


<h3>Listeners</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=43450">
      Bug
      43450</a> - Listeners/Savers assume SampleResult count is always 1; fixed Generate Summary Results</li>

</ul>


<h3>Assertions</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52848">
      Bug
      52848</a> - NullPointer in "XPath Assertion"</li>

</ul>


<h3>Functions</h3>

<ul>

</ul>


<h3>I18N</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52551">
      Bug
      52551</a> - Function Helper Dialog does not switch language correctly</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52552">
      Bug
      52552</a> - Help reference only works in English</li>

</ul>


<h3>General</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52639">
      Bug
      52639</a> - JSplitPane divider for log panel should be hidden if log is not activated</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52672">
      Bug
      52672</a> - Change Controller action deletes all but one child samplers</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52694">
      Bug
      52694</a> - Deadlock in GUI related to non AWT Threads updating GUI</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52678">
      Bug
      52678</a> - Proxy : When doing replacement of UserDefinedVariables, partial values should not be substituted</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52728">
      Bug
      52728</a> - CSV Data Set Config element cannot coexist with BSF Sampler in same Thread Plan</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52762">
      Bug
      52762</a> - Problem with multiples certificates: first index not used until indexes are restarted</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52741">
      Bug
      52741</a> - TestBeanGUI default values do not work at second time or later</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52783">
      Bug
      52783</a> - oro.patterncache.size property never used due to early init</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52789">
      Bug
      52789</a> - Proxy with Regexp Matching can fail with NullPointerException in Value Replacement if value is null</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52645">
      Bug
      52645</a> - Recording with Proxy leads to OutOfMemory</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52679">
      Bug
      52679</a> - User Parameters columns narrow</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52843">
      Bug
      52843</a> - Sample headerSize and bodySize not being accumulated for subsamples</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52967">
      Bug
      52967</a> - The function __P() couldn't use default value when running with remote server in GUI mode.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=50799">
      Bug
      50799</a> - Having a non-HTTP sampler in a http test plan prevents multiple header managers from working</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52997">
      Bug
      52997</a> - JMeter should not exit without saving Test Plan if saving before exit fails</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53136">
      Bug
      53136</a> - Catching Throwable needs to be carefully handled</li>

</ul>




<h2>Improvements</h2>


<h3>HTTP Samplers</h3>

<ul>

</ul>


<h3>Other samplers</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52775">
      Bug
      52775</a> - JMS Publisher : Add Non Persistent Delivery option</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52810">
      Bug
      52810</a> - Enable setting JMS Properties through JMS Publisher sampler</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52938">
      Bug
      52938</a> - Webservice Sampler : Add a jmeter property soap.document_cache to control size of Document Cache</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52939">
      Bug
      52939</a> - Webservice Sampler : Make MaintainSession configurable</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53073">
      Bug
      53073</a> - Allow to assign the OUT result of a JDBC CALLABLE to JMeter variables</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53164">
      Bug
      53164</a> - New System Sampler</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53172">
      Bug
      53172</a> - OS Process Sampler - allow specification of Environment Variables</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52936">
      Bug
      52936</a> - JMS Publisher : Support sending of JMS Object Messages</li>

</ul>


<h3>Controllers</h3>

<ul>

</ul>


<h3>Listeners</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52603">
      Bug
      52603</a> - MailerVisualizer : Enable SSL , TLS and Authentication</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52698">
      Bug
      52698</a> - Remove Graph Full Results Listener</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53070">
      Bug
      53070</a> - Change Aggregate graph to Clustered Bar chart, add more columns (median, 90% line, min, max) and options, fixed some bugs</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53246">
      Bug
      53246</a> - Mailer Visualizer: improve GUI design and I18N</li>

</ul>


<h3>Timers, Assertions, Config, Pre- &amp; Post-Processors</h3>

<ul>

</ul>


<h3>Functions</h3>

<ul>

</ul>


<h3>I18N</h3>

<ul>

<li>Mailer Visualizer has been internationalized. French translation added. (see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53246">
      Bug
      53246</a>)</li>

</ul>


<h3>General</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=45839">
      Bug
      45839</a> - Test Action : Allow premature exit from a loop</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52614">
      Bug
      52614</a> - MailerModel.sendMail has strange way to calculate debug setting</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52782">
      Bug
      52782</a> - Add a detail button on parameters table to show detail of a Row</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52674">
      Bug
      52674</a> - Proxy : Add a Sampler Creator to allow plugging HTTP based samplers using potentially non textual POST Body (AMF, Silverlight, &hellip;) and customizing them for others</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52934">
      Bug
      52934</a> - GUI : Open Test plan with the tree expanded to the testplan level and no further and select the root of the tree</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52941">
      Bug
      52941</a> - Improvements of HTML report design generated by JMeter Ant task extra</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53042">
      Bug
      53042</a> - Introduce a new method in Sampler interface to allow Sampler to decide wether a config element applies to Sampler</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52771">
      Bug
      52771</a> - Documentation : Added RSS feed on JMeter Home page under link "Subscribe to What's New"</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=42784">
      Bug
      42784</a> - Show the number of errors logged in the GUI</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53256">
      Bug
      53256</a> - Make Clear All command clean LogViewer content</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53261">
      Bug
      53261</a> - Make "Error/fatal" counter added in <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=42784">
      Bug
      42784</a> open Log Viewer panel when Warn Indicator is clicked</li>

</ul>


<h2>Non-functional changes</h2>

<ul>

<li>Upgraded to rhino 1.7R3 (was js-1.7R2.jar). 
Note: the Maven coordinates for the jar were changed from rhino:js to org.mozilla:rhino.
This does not affect JMeter directly, but might cause problems if using JMeter in a Maven project
with other code that depends on an earlier version of the Rhino Javascript jar.
</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52675">
      Bug
      52675</a> - Refactor Proxy and HttpRequestHdr to allow Sampler Creation by Proxy</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52680">
      Bug
      52680</a> - Mention version in which function was introduced</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52788">
      Bug
      52788</a> - HttpRequestHdr : Optimize code to avoid useless work</li>

<li>JMeter Ant (ant-jmeter-1.1.1.jar) task was upgraded from 1.0.9 to 1.1.1</li>

<li>Updated to commons-io 2.2 (from 2.1)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53129">
      Bug
      53129</a> - Upgrade XStream from 1.3.1 to 1.4.2</li>

<li>Updated to httpcomponents-client 4.1.3 (from 4.1.2)</li>

<li>Updated JMeter distributed testing guide (jmeter_distributed_testing_step_by_step.pdf). Changes source format to OpenOffice odt (from sxw)</li>

</ul>




<h1>Version 2.6</h1>


<h2>New and Noteworthy</h2>


<h3>Toolbar</h3>

<p>A new toolbar on JMeter's main window
<figure>
<a href="./images/screenshots/changes/2.6/01_toolbar.png"><img src="./images/screenshots/changes/2.6/01_toolbar.png" width="986" height="91" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3>JMeter start test button</h3>

<p>A new menu option and button allow to start a test ignoring the Pause Timers
<figure>
<a href="./images/screenshots/changes/2.6/02_ignore_pause_timers.png"><img src="./images/screenshots/changes/2.6/02_ignore_pause_timers.png" width="201" height="58" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3>JMeter GUI Look and Feel</h3>

<p>Allow System or CrossPlatform LAF to be set from options menu
<figure>
<a href="./images/screenshots/changes/2.6/03_look_and_feel.png"><img src="./images/screenshots/changes/2.6/03_look_and_feel.png" width="373" height="162" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3>JMeter GUI - duplicate node</h3>

<p>Add "duplicate node" in context menu
<figure>
<a href="./images/screenshots/changes/2.6/04_duplicate_context_menu.png"><img src="./images/screenshots/changes/2.6/04_duplicate_context_menu.png" width="323" height="136" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3>JMeter tree view - search facility</h3>

<p>Functionality to search by keyword in Samplers Tree View
<figure>
<a href="./images/screenshots/changes/2.6/05_search_tree.png"><img src="./images/screenshots/changes/2.6/05_search_tree.png" width="554" height="219" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3>HTTP Request - raw request pane</h3>

<p>Improve HTTP Request GUI to better show parameters without name (GWT RPC request or SOAP request for example)
<figure>
<a href="./images/screenshots/changes/2.6/06_post_data.png"><img src="./images/screenshots/changes/2.6/06_post_data.png" width="759" height="461" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3>HTTP Request - other changes</h3>

<p>
<ul>

<li>Allow multiple selection in arguments panel</li>

<li>Allow to add (paste) entries from the clipboard to an arguments list</li>

<li>Ability to move variables up or down in HTTP Request</li>

</ul>

<figure>
<a href="./images/screenshots/changes/2.6/07_multiple_selection_params.png"><img src="./images/screenshots/changes/2.6/07_multiple_selection_params.png" width="875" height="218" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3>HTTP Request - file protocol</h3>

<p>Better support for file: protocol in HTTP sampler
<figure>
<a href="./images/screenshots/changes/2.6/08_file_protocol.png"><img src="./images/screenshots/changes/2.6/08_file_protocol.png" width="489" height="662" alt=""></a>
<figcaption></figcaption>
</figure>

</p>

<p>Retrieve embedded resources with file: protocol
<figure>
<a href="./images/screenshots/changes/2.6/09_file_protocol_embedded.png"><img src="./images/screenshots/changes/2.6/09_file_protocol_embedded.png" width="700" height="138" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3>HTTP Request - Ignore embedded resources failed</h3>

<p>Enable "ignore failed" for embedded resources
<figure>
<a href="./images/screenshots/changes/2.6/26_ignore_child_failed.png"><img src="./images/screenshots/changes/2.6/26_ignore_child_failed.png" width="820" height="246" alt=""></a>
<figcaption></figcaption>
</figure>

</p>

<p>Parent success with a embedded resource failed
<figure>
<a href="./images/screenshots/changes/2.6/27_succes_with_child_failed.png"><img src="./images/screenshots/changes/2.6/27_succes_with_child_failed.png" width="590" height="214" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3>View Results in Table - child sample display</h3>

<p>Add option to TableVisualiser to display child samples instead of parent
<figure>
<a href="./images/screenshots/changes/2.6/10_child_sampler.png"><img src="./images/screenshots/changes/2.6/10_child_sampler.png" width="911" height="619" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3>Key Store - multiple certificates</h3>

<p>Allowing multiple certificates (JKS)
<figure>
<a href="./images/screenshots/changes/2.6/11_jks_keystore.png"><img src="./images/screenshots/changes/2.6/11_jks_keystore.png" width="324" height="166" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3>Aggregate graph improvements</h3>

<p>Some improvements on Aggregate Graph Listener: 
<ul>
<li>new GUI for settings</li>

<li>dynamic graph size</li>

<li>allow to change fonts for title graph and legend</li>

<li>allow to change bar color (background and text values)</li>

<li>allow to draw or not bars outlines</li>

<li>allow to select only some samplers by a regexp filter</li>

<li>allow to define Y axis maximum scale</li>

</ul>

<figure>
<a href="./images/screenshots/changes/2.6/12_aggregate_graph_settings.png"><img src="./images/screenshots/changes/2.6/12_aggregate_graph_settings.png" width="850" height="411" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<p>Aggregate Graph bar
<figure>
<a href="./images/screenshots/changes/2.6/13_aggregate_graph_bar.png"><img src="./images/screenshots/changes/2.6/13_aggregate_graph_bar.png" width="851" height="506" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3>Counter - new reset option</h3>

<p>Add an option to reset counter on each Thread Group iteration
<figure>
<a href="./images/screenshots/changes/2.6/14_reset_counter.png"><img src="./images/screenshots/changes/2.6/14_reset_counter.png" width="345" height="257" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3>Functions</h3>

<p>
<ul>

<li>Add a new function __RandomString to generate random Strings</li>

<li>Add a new function __TestPlanName returning the name of the current "Test Plan"</li>

<li>Add a new function __machineIP returning IP address</li>

<li>Add a new function  __jexl2 to support Jexl2</li>

</ul>

<figure>
<a href="./images/screenshots/changes/2.6/15_random_string.png"><img src="./images/screenshots/changes/2.6/15_random_string.png" width="697" height="236" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3>User Defined Variable improvements</h3>

<p>
<ul>
<li>Add a comment field in User Defined Variables</li>

<li>Allow to add (paste) entries from the clipboard to an arguments list</li>

<li>Ability to move up or down variables in User Defined Variables</li>

</ul>

<figure>
<a href="./images/screenshots/changes/2.6/16_udv_comments.png"><img src="./images/screenshots/changes/2.6/16_udv_comments.png" width="543" height="237" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3>View Results Tree</h3>

<p>In View Results Tree rather than showing just a message if the results are to big, show as much of the result as are configured
<figure>
<a href="./images/screenshots/changes/2.6/17_vrt_max_size_display.png"><img src="./images/screenshots/changes/2.6/17_vrt_max_size_display.png" width="953" height="98" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3>Controllers - change elements</h3>

<p>Add ability to Change Controller elements
<figure>
<a href="./images/screenshots/changes/2.6/18_change_ctl_type.png"><img src="./images/screenshots/changes/2.6/18_change_ctl_type.png" width="643" height="112" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3>JDBC pre- and post-processor</h3>

<p>Add JDBC pre- and post-processor
<figure>
<a href="./images/screenshots/changes/2.6/19_jdbc_pre_post_proc.png"><img src="./images/screenshots/changes/2.6/19_jdbc_pre_post_proc.png" width="535" height="217" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3>JDBC transaction isolation option</h3>

<p>Allow to set the transaction isolation in the JDBC Connection Configuration
<figure>
<a href="./images/screenshots/changes/2.6/20_jdbc_trans_isolation.png"><img src="./images/screenshots/changes/2.6/20_jdbc_trans_isolation.png" width="437" height="351" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3>Poisson Timer</h3>

<p>Add a Poisson based timer
<figure>
<a href="./images/screenshots/changes/2.6/21_poisson_timer.png"><img src="./images/screenshots/changes/2.6/21_poisson_timer.png" width="358" height="156" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3>GUI and OS interaction</h3>

<p>Support for file Drag and Drop. 
<figure>
<a href="./images/screenshots/changes/2.6/22_drag_and_drop.png"><img src="./images/screenshots/changes/2.6/22_drag_and_drop.png" width="776" height="508" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3>Confirm Remove Dialog box</h3>

<p>Add a dialog box to confirm removing the element(s) when Remove action is called
<figure>
<a href="./images/screenshots/changes/2.6/23_confirm_remove.png"><img src="./images/screenshots/changes/2.6/23_confirm_remove.png" width="583" height="210" alt=""></a>
<figcaption></figcaption>
</figure>
The dialogue can be skipped by setting the JMeter property <span class="code">confirm.delete.skip=true</span> 

</p>


<h3>Remote batching support</h3>

<p>Use external store to hold samples during distributed testing, 
Added DiskStore remote sample sender: like Hold, but saves samples to disk until end of test
<figure>
<a href="./images/screenshots/changes/2.6/24_diskstore.png"><img src="./images/screenshots/changes/2.6/24_diskstore.png" width="998" height="273" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3>JMS Subscriber sampler</h3>

<p>With JMS Subscriber, ability to use Selectors
<figure>
<a href="./images/screenshots/changes/2.6/25_selector.png"><img src="./images/screenshots/changes/2.6/25_selector.png" width="705" height="297" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3>New Logger Panel</h3>

<p>A new Log Viewer  has been added to the GUI and can be enabled from menu Options &rarr; Log Viewer:
<figure>
<a href="./images/screenshots/changes/2.6/28_loggerpanel_option.png"><img src="./images/screenshots/changes/2.6/28_loggerpanel_option.png" width="326" height="147" alt=""></a>
<figcaption></figcaption>
</figure>

</p>

<p>This Log Viewer shows the jmeter.log file, and useful (for example) to debug BeanShell/BSF scripts:
<figure>
<a href="./images/screenshots/changes/2.6/28_loggerpanel.png"><img src="./images/screenshots/changes/2.6/28_loggerpanel.png" width="953" height="466" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3>The menu item Options / Choose Language is now fully functional</h3>

<p>
The menu item Options / Choose Language now changes all the displayed text to the new language provided 
all messages are translated. You can help on this by translating into your language.
</p>


<h3>Legacy JMX and JTL Avalon format support restored</h3>

<p>
Support for reading/writing the original Avalon XML format of JMX (script) and JTL (sample result) files was dropped in JMeter version 2.4.
JMeter can now read the Avalon format files again, however there is no support for saving files in the old format.
</p>


<h3>JMeter jars available from Maven repository</h3>

<p>
JMeter jars are now available from Maven repository.
</p>




<h2>Known bugs</h2>


<p>
The Include Controller has some problems in non-GUI mode (see Bugs 40671, 41286, 44973, 50898). 
In particular, it can cause a NullPointerException if there are two include controllers with the same name.
</p>


<p>The Once Only controller behaves correctly under a Thread Group or Loop Controller,
but otherwise its behaviour is not consistent (or clearly specified).</p>


<p>Listeners don't show iteration counts when a If Controller has a condition which is always false from the first iteration (see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52496">
      Bug
      52496</a>).  
A workaround is to add a sampler at the same level as (or superior to) the If Controller.
For example a Test Action sampler with 0 wait time (which doesn't generate a sample),
or a Debug Sampler with all fields set to False (to reduce the sample size).
</p>




<h2>Incompatible changes</h2>


<p>
JMeter versions since 2.1 failed to create a container sample when loading embedded resources.
This has been corrected; can still revert to the <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51939">
      Bug
      51939</a> behaviour by setting the following property:
<span class="code">httpsampler.separate.container=false</span>

</p>

<p>
Mirror server now uses default port 8081, was 8080 before 2.5.1.
</p>

<p>
TCP Sampler handles SocketTimeoutException, SocketException and InterruptedIOException differently since 2.6, when
these occurs, Sampler is marked as failed.
</p>

<p>
Sample Sender implementations now resolve their configuration on Client side since 2.6.
This behaviour can be changed with property sample_sender_client_configured (set it to false).
</p>


<p>
The HTTP User Parameter Modifier test element has been removed; it has been deprecated for a long time.
</p>




<h2>Bug fixes</h2>


<h3>HTTP Samplers and Proxy</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51932">
      Bug
      51932</a> - CacheManager does not handle cache-control header with any attributes after max-age</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51918">
      Bug
      51918</a> - GZIP compressed traffic produces errors, when multiple connections allowed</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51939">
      Bug
      51939</a> - Should generate new parent sample if necessary when retrieving embedded resources</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51942">
      Bug
      51942</a> - Synchronisation issue on CacheManager when Concurrent Download is used</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51957">
      Bug
      51957</a> - Concurrent get can hang if a task does not complete</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51925">
      Bug
      51925</a> - Calling Stop on Test leaks executor threads when concurrent download of resources is on</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51980">
      Bug
      51980</a> - HtmlParserHTMLParser double-counts images used in links</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52064">
      Bug
      52064</a> - OutOfMemory Risk in CacheManager</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51919">
      Bug
      51919</a> - Random ConcurrentModificationException or NoSuchElementException in CookieManager#removeMatchingCookies when using Concurrent Download</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52126">
      Bug
      52126</a> - HttpClient4 does not clear cookies between iterations</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52129">
      Bug
      52129</a> - Reported Body Size is wrong when using HTTP Client 4 and Keep Alive connection</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52137">
      Bug
      52137</a> - Problems with HTTP Cache Manager</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52221">
      Bug
      52221</a> - Nullpointer Exception with use Retrieve Embedded Resource without HTTP Cache Manager</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52310">
      Bug
      52310</a> - variable in IPSource failed HTTP request if "Concurrent Pool Size" is enabled</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52371">
      Bug
      52371</a> - API Incompatibility - Methods in HTTPSampler2 now require PostMethod instead of HttpMethod[Base]. Reverted to original types.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=49950">
      Bug
      49950</a> - Proxy : IndexOutOfBoundsException when recording with Proxy server</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52409">
      Bug
      52409</a> - HttpSamplerBase#errorResult modifies sampleResult passed as parameter;
fix code which assumes that a new instance is created (i.e. when adding a sub-sample)
</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52507">
      Bug
      52507</a> - Delete Http User Parameters modifier (deprecated, obsolete)</li>

</ul>


<h3>Other Samplers</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51996">
      Bug
      51996</a> - JMS Initial Context leak newly created Context when Multiple Thread enter InitialContextFactory#lookupContext at the same time</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51691">
      Bug
      51691</a> - Authorization does not work for JMS Publisher and JMS Subscriber</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52036">
      Bug
      52036</a> - Durable Subscription fails with ActiveMQ due to missing clientId field</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52044">
      Bug
      52044</a> - JMS Subscriber used with many threads leads to javax.naming.NamingException: Something already bound with ActiveMQ</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52072">
      Bug
      52072</a> - LengthPrefixedBinaryTcpClientImpl may end a sample prematurely</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52390">
      Bug
      52390</a> - AbstractJDBCTestElement:Memory leak and synchronization issue in perConnCache</li>

</ul>


<h3>Controllers</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51865">
      Bug
      51865</a> - Infinite loop inside thread group does not work properly if "Start next loop after a Sample error" option set</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51868">
      Bug
      51868</a> - A lot of exceptions in jmeter.log while using option "Start next loop" for thread</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51866">
      Bug
      51866</a> - Counter under loop doesn't work properly if "Start next loop on error" option set for thread group</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52296">
      Bug
      52296</a> - TransactionController + Children ThrouputController or InterleaveController leads to ERROR sampleEnd called twice java.lang.Throwable: Invalid call sequence when TPC does not run sample</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52330">
      Bug
      52330</a> - With next-Loop-On-Error after error samples are not executed in next loop</li>

</ul>


<h3>Listeners</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52357">
      Bug
      52357</a> - View results in Table does not allow for multiple result samples</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52491">
      Bug
      52491</a> - Incorrect parsing of Post data parameters in Tree Listener / Http Request view</li>

</ul>


<h3>Assertions</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52519">
      Bug
      52519</a> - XMLSchemaAssertion uses JMeter JVM file.encoding instead of response encoding</li>

</ul>


<h3>Functions</h3>

<ul>

<li>The CRLF example for the char function was wrong; CRLF=(0xD,0xA), not (0xC,0xA)</li>

</ul>


<h3>I18N</h3>

<ul>

</ul>


<h3>General</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51937">
      Bug
      51937</a> - JMeter does not handle missing TestPlan entry well</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51988">
      Bug
      51988</a> - CSV Data Set Configuration does not resolve default delimiter for header parsing when variables field is empty</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52003">
      Bug
      52003</a> - View Results Tree "Scroll automatically" does not scroll properly in case nodes are expanded</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=27112">
      Bug
      27112</a> - User Parameters should use scrollbars</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52029">
      Bug
      52029</a> - Command-line shutdown only gets sent to last engine that was started</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52093">
      Bug
      52093</a> - Toolbar ToolTips don't switch language</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51733">
      Bug
      51733</a> - SyncTimer is messed up if you a interrupt a test plan</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52118">
      Bug
      52118</a> - New toolbar : shutdown and stop buttons not disabled when no test is running</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52125">
      Bug
      52125</a> - StatCalculator.addAll(StatCalculator calc) joins incorrect if there are more samples with the same response time in one of the TreeMap</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52339">
      Bug
      52339</a> - JMeter Statistical mode in distributed testing shows wrong response time</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52215">
      Bug
      52215</a> - Confusing synchronization in StatVisualizer, SummaryReport ,Summariser and issue in StatGraphVisualizer</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52216">
      Bug
      52216</a> - TableVisualizer : currentData field is badly synchronized</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52217">
      Bug
      52217</a> - ViewResultsFullVisualizer : Synchronization issues on root and treeModel</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=43294">
      Bug
      43294</a> - XPath Extractor namespace problems</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52224">
      Bug
      52224</a> - TestBeanHelper does not support NOT_UNDEFINED == Boolean.FALSE</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52279">
      Bug
      52279</a> - Switching to another language loses icons in Tree and logs error Can't obtain GUI class from &hellip;</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52280">
      Bug
      52280</a> - The menu item Options / Choose Language does not change all the displayed text to the new language</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52376">
      Bug
      52376</a> - StatCalculator#addValue(T val, int sampleCount) should use long, not int</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=49374">
      Bug
      49374</a> - Encoding of embedded element URLs depend on the file.encoding property</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52399">
      Bug
      52399</a> - URLRewritingModifier uses default file.encoding to match text content</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=50438">
      Bug
      50438</a> - code calculates average with integer math, expecting double value</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52469">
      Bug
      52469</a> - Changes in Support of SSH-Tunneling of RMI traffic for Remote Testing</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52466">
      Bug
      52466</a> - Upgrade Test Plan feature : NameUpdater does not upgrade properties</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52503">
      Bug
      52503</a> - Unify File&rarr;Close and Window close file saving behaviour</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52537">
      Bug
      52537</a> - Help does not scroll to correct anchor when file is first loaded</li>

</ul>




<h2>Improvements</h2>


<h3>HTTP Samplers</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51981">
      Bug
      51981</a> - Better support for file: protocol in HTTP sampler</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52033">
      Bug
      52033</a> - Allowing multiple certificates (JKS)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52352">
      Bug
      52352</a> - Proxy : Support IPv6 URLs capture</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=44301">
      Bug
      44301</a> - Enable "ignore failed" for embedded resources</li>

</ul>


<h3>Other samplers</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51419">
      Bug
      51419</a> - JMS Subscriber: ability to use Selectors</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52088">
      Bug
      52088</a> - JMS Sampler : Add a selector when REQUEST / RESPONSE is chosen</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52104">
      Bug
      52104</a> - TCP Sampler handles badly errors</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52087">
      Bug
      52087</a> - TCPClient interface does not allow for partial reads</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52115">
      Bug
      52115</a> - SOAP/XML-RPC should not send a POST request when file to send is not found</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=40750">
      Bug
      40750</a> - TCPSampler : Behaviour when sockets are closed by remote host</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52396">
      Bug
      52396</a> - TCP Sampler in "reuse connection mode" reuses previous sampler's connection even if it's configured with other host, port, user or password</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52048">
      Bug
      52048</a> - BSFSampler, BSFPreProcessor and BSFPostProcessor should share the same GUI</li>

</ul>


<h3>Controllers</h3>

<ul>

</ul>


<h3>Listeners</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52022">
      Bug
      52022</a> - In View Results Tree rather than showing just a message if the results are to big, show as much of the result as are configured</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52201">
      Bug
      52201</a> - Add option to TableVisualiser to display child samples instead of parent </li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52214">
      Bug
      52214</a> - Save Responses to a file - improve naming algorithm</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52340">
      Bug
      52340</a> - Allow remote sampling mode to be changed at run-time</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52452">
      Bug
      52452</a> - Improvements on Aggregate Graph Listener (GUI and settings)</li>

<li>Resurrected OldSaveService to allow reading Avalon format JTL (result) files</li>

</ul>


<h3>Timers, Assertions, Config, Pre- &amp; Post-Processors</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52128">
      Bug
      52128</a> - Add JDBC pre- and post-processor</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52183">
      Bug
      52183</a> - SyncTimer could be improved (performance+reliability)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52317">
      Bug
      52317</a> - Counter : Add option to reset counter on each Thread Group iteration</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=37073">
      Bug
      37073</a> - Add a Poisson based timer</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52497">
      Bug
      52497</a> - Improve DebugSampler and DebugPostProcessor</li>

</ul>


<h3>Functions</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52006">
      Bug
      52006</a> - Create a function RandomString to generate random Strings</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52016">
      Bug
      52016</a> - It would be useful to support Jexl2</li>

<li>__char() function now supports octal values</li>

<li>New function __machineIP returning IP address</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51091">
      Bug
      51091</a> - New function returning the name of the current "Test Plan"</li>

</ul>


<h3>I18N</h3>

<ul>

</ul>


<h3>General</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51892">
      Bug
      51892</a> - Default mirror port should be different from default proxy port</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51817">
      Bug
      51817</a> - Moving variables up and down in User Defined Variables control</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51876">
      Bug
      51876</a> - Functionality to search in Samplers TreeView</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52019">
      Bug
      52019</a> - Add menu option to Start a test ignoring Pause Timers</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52027">
      Bug
      52027</a> - Allow System or CrossPlatform LAF to be set from options menu</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52037">
      Bug
      52037</a> - Remember user-set LaF over restarts.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51861">
      Bug
      51861</a> - Improve HTTP Request GUI to better show parameters without name (GWT RPC requests for example) (UNDER DEVELOPMENT)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52040">
      Bug
      52040</a> - Add a toolbar in JMeter main window</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51816">
      Bug
      51816</a> - Comment Field in User Defined Variables control.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52052">
      Bug
      52052</a> - Using a delimiter to separate result-messages for JMS Subscriber</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52103">
      Bug
      52103</a> - Add automatic scrolling option to table visualizer</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52097">
      Bug
      52097</a> - Save As should point to same folder that was used to open a file if MRU list is used</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52085">
      Bug
      52085</a> - Allow multiple selection in arguments panel</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52099">
      Bug
      52099</a> - Allow to set the transaction isolation in the JDBC Connection Configuration</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52116">
      Bug
      52116</a> - Allow to add (paste) entries from the clipboard to an arguments list</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52160">
      Bug
      52160</a> - Don't display TestBeanGui items which are flagged as hidden</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51886">
      Bug
      51886</a> - SampleSender configuration resolved partly on client and partly on server</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52161">
      Bug
      52161</a> - Enable plugins to add own translation rules in addition to upgrade.properties.
Loads any additional properties found in META-INF/resources/org.apache.jmeter.nameupdater.properties files</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=42538">
      Bug
      42538</a> - Add "duplicate node" in context menu</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=46921">
      Bug
      46921</a> - Add Ability to Change Controller elements</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52240">
      Bug
      52240</a> - TestBeans should support Boolean, Integer and Long</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52241">
      Bug
      52241</a> - GenericTestBeanCustomizer assumes that the default value is the empty string</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52242">
      Bug
      52242</a> - FileEditor does not allow output to be saved in a File </li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51093">
      Bug
      51093</a> - when loading a selection previously stored by "Save Selection As", show the file name in the blue window bar</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=50086">
      Bug
      50086</a> - Password fields not Hidden in JMS Publisher, JMS Subscriber, Mail Reader sampler, SMTP sampler and Database Configuration</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=29352">
      Bug
      29352</a> - Use external store to hold samples during distributed testing, Added DiskStore remote sample sender: like Hold, but saves samples to disk until end of test.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52333">
      Bug
      52333</a> - Reduce overhead in calculating SampleResult#nanoTimeOffset</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52346">
      Bug
      52346</a> - Shutdown detects if there are any non-daemon threads left which prevent JVM exit.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52281">
      Bug
      52281</a> - Support for file Drag and Drop</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52471">
      Bug
      52471</a> - Improve Mirror Server performance by Using Pool of threads instead of launching a Thread for each request</li>

<li>Resurrected OldSaveService to allow reading Avalon format JMX files (removed in 2.4)</li>

<li>Add a dialog box to confirm removing the element(s) when Remove action is called</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=41788">
      Bug
      41788</a> - Log viewer (console window) needed as an option</li>

<li>Add option to change the pause time (default 2000ms) in the daemon thread which checks for successful JVM exit.
The thread is not now started unless the pause time is greater than 0.
</li>

</ul>


<h2>Non-functional changes</h2>

<ul>

<li>fixes to build.xml: support scripts; localise re-usable property names</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51923">
      Bug
      51923</a> - Counter function bug or documentation issue ? (fixed docs)</li>

<li>Update velocity.jar to 1.7 (from 1.6.2)</li>

<li>Update js.jar to 1.7R3 (from 1.6R5)</li>

<li>Update commons-codec 1.5 &rArr; 1.6</li>

<li>Update commons-io 2.0.1 &rArr; 2.1</li>

<li>Update commons-jexl 2.0.1 &rArr; 2.1.1</li>

<li>Update jdom 1.1 &rArr; 1.1.2</li>

<li>Update junit 4.9 &rArr; 4.10</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51954">
      Bug
      51954</a> - Generated documents include &lt;/br&gt; entries which cause extra blank lines </li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52075">
      Bug
      52075</a> - JMeterProperty.clone() currently returns Object; it should return JMeterProperty</li>

<li>Updated httpcore to 4.1.4</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=49753">
      Bug
      49753</a> - Please publish jMeter artifacts on Maven central repository</li>

</ul>




<h1>Version 2.5.1</h1>


<h2>Summary of main changes</h2>


<ul>

<li>HttpClient4 sampler now re-uses connections properly (previously it would use one per sample, which could quickly cause resource exhaustion).</li>

<li>Various fixes to JMS samplers</li>

<li>Functions are no longer spuriously invoked when used with a Configuration element</li>

<li>WebService sampler GUI has been re-organized for better design and more user-friendliness. Some improvements on WSDL configuration assistant</li>

<li>Better handling of test shutdown. System.exit now only called if there is no other option; even this can be disabled.</li>

</ul>



<h2>Known bugs</h2>


<p>
The Include Controller has some problems in non-GUI mode. 
In particular, it can cause a NullPointerException if there are two include controllers with the same name.
</p>


<p>The Once Only controller behaves correctly under a Thread Group or Loop Controller,
but otherwise its behaviour is not consistent (or clearly specified).</p>


<p>The If Controller may cause an infinite loop if the condition is always false from the first iteration. 
A workaround is to add a sampler at the same level as (or superior to) the If Controller.
For example a Test Action sampler with 0 wait time (which doesn't generate a sample),
or a Debug Sampler with all fields set to False (to reduce the sample size).
</p>


<p>
The menu item Options / Choose Language does not change all the displayed text to the new language.
[The behaviour has improved, but language change is still not fully working]
To override the default local language fully, set the JMeter property "language" before starting JMeter. 
</p>


<h2>Incompatible changes</h2>


<p>
The HttpClient4 and Commons HttpClient 3.1 samplers previously used a retry count of 3.
This has been changed to default to 1, to be compatible with the Java implementation.
The retry count can be overridden by setting the relevant JMeter property, for example:
<pre>
httpclient4.retrycount=3
httpclient3.retrycount=3
</pre>

</p>


<h2>Bug fixes</h2>


<h3>HTTP Samplers and Proxy</h3>

<ul>

<li>Fix HttpClient 4 sampler so it reuses HttpClient instances and connections where possible.</li>

<li>Temporary fix to HC4 sampler to work round HTTPCLIENT-1120.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51863">
      Bug
      51863</a> - Lots of ESTABLISHED connections with HttpClient 4 implementation (vs HttpClient 3.1 impl)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51750">
      Bug
      51750</a> - Retrieve all embedded resources doesn't follow IFRAME</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51752">
      Bug
      51752</a> - HTTP Cache is broken when using "Retrieve all embedded resources" with concurrent pool</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=39219">
      Bug
      39219</a> - HTTP Server: You can't stop it after File&rarr;Open</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51775">
      Bug
      51775</a> - Port number duplicates in Host header when capturing by HttpClient (3.1 and 4.x)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=50617">
      Bug
      50617</a> - Monitor Results legend show "dead" server although values from the server are retrieved</li>

</ul>


<h3>Other Samplers</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=50424">
      Bug
      50424</a> - Web Methods drop down list box inconsistent</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=43293">
      Bug
      43293</a> - Java Request fields not cleared when creating new sampler</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51830">
      Bug
      51830</a> - Webservice Soap Request triggers too many popups when Webservice WSDL URL is down</li>

<li>WebService(SOAP) request - add a connect timeout to get the wsdl used to populate Web Methods when server doesn't response</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51841">
      Bug
      51841</a> - JMS : If an error occurs in ReceiveSubscriber constructor or Publisher, then Connections will stay open</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51691">
      Bug
      51691</a> - Authorization does not work for JMS Publisher and JMS Subscriber</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51840">
      Bug
      51840</a> - JMS : Cache of InitialContext has some issues</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=47888">
      Bug
      47888</a> - JUnit Sampler re-uses test object</li>

</ul>


<h3>Controllers</h3>

<ul>

<li>If Controller - Fixed two regressions introduced by <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=50032">
      Bug
      50032</a> (see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=50618">
      Bug
      50618</a> too)</li>

<li>If Controller - Catches a StackOverflowError when a condition returns always false (after at least one iteration with return true) See <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=50618">
      Bug
      50618</a>
</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51869">
      Bug
      51869</a> - NullPointer Exception when using Include Controller</li>

</ul>


<h3>Listeners</h3>

<ul>

</ul>


<h3>Assertions</h3>

<ul>

</ul>


<h3>Functions</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=48943">
      Bug
      48943</a> - Functions are invoked additional times when used in combination with a Config Element</li>

</ul>


<h3>I18N</h3>

<ul>

<li>WebService(SOAP) request - add I18N for some labels</li>

</ul>


<h3>General</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51831">
      Bug
      51831</a> - Cannot disable UDP server or change the maximum UDP port</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51821">
      Bug
      51821</a> - Add short-cut for Enabling / Disabling (sub)tree or branches in test plan.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=47921">
      Bug
      47921</a> - Variables not released for GC after JMeterThread exits.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51839">
      Bug
      51839</a> - "&hellip; end of run" printed prematurely</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51847">
      Bug
      51847</a> - Some JUnit tests are Locale sensitive and fail if Locale is different from US</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51855">
      Bug
      51855</a> - Parent samples may have slightly inaccurate elapsed times</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51880">
      Bug
      51880</a> - The shutdown command is not working if I invoke it before all the thread are started</li>

<li>Remote Shut host menu item was not being enabled.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51888">
      Bug
      51888</a> - Occasional deadlock when stopping a testplan</li>

</ul>




<h2>Improvements</h2>


<h3>HTTP Samplers</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51380">
      Bug
      51380</a> - Control reuse of cached SSL Context from iteration to iteration</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51882">
      Bug
      51882</a> - HTTPHC3Client uses a default retry count of 3, make it configurable; default is now 1</li>

<li>Change the default HttpClient 4 sampler retry count to 1</li>

</ul>


<h3>Other samplers</h3>

<ul>

<li>Beanshell Sampler now supports Interruptible interface</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51605">
      Bug
      51605</a> - WebService(SOAP) Request - WebMethod field value changes surreptitiously for all the requests when a value is selected in a request</li>

<li>WebService(SOAP) Request - Reorganized GUI for better design and more user-friendliness</li>

</ul>


<h3>Controllers</h3>

<ul>

</ul>


<h3>Listeners</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=42246">
      Bug
      42246</a> - Need for a 'auto-scroll' option in "View Results Tree" and "Assertion Results"</li>

<li>View Results Tree: Regexp Tester - little improvements on user interface</li>

</ul>


<h3>Timers, Assertions, Config, Pre- &amp; Post-Processors</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51885">
      Bug
      51885</a> - Allow a JMeter Variable as input to XPathExtractor</li>

</ul>


<h3>Functions</h3>

<ul>

</ul>


<h3>I18N</h3>

<ul>

</ul>


<h3>General</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51822">
      Bug
      51822</a> - (part 1) save 1 invocation of GuiPackage#getCurrentGui</li>

<li>Added AsynchSampleSender which sends samples from server to client asynchronously.</li>

<li>Upgraded to htmlparser 2.1; JavaMail 1.4.4; JUnit 4.9</li>

</ul>


<h2>Non-functional changes</h2>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=49976">
      Bug
      49976</a> - FormCharSetFinder visibility is default instead of public. </li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=50917">
      Bug
      50917</a> - Property CookieManager.save.cookies not honored when set from test plan</li>

<li>Improve error logging when Javascript errors are detected.</li>

<li>Updated documentation footer</li>

</ul>




<h1>Version 2.5</h1>


<h2>Summary of main changes</h2>


<ul>

<li>The HTTP implementation can now be selected at run-time, and JMeter now also supports Apache HttpComponents HttpClient 4.x.
Note that Commons HttpClient 3.1 is no longer actively developed, and support may be removed from JMeter in a future release.
</li>

<li>The HTTP sampler now allows concurrent downloads of embedded resources in an HTML page</li>

<li>The HTTP Sampler can now report the size of a request before decompression.</li>

<li>The JMS and Mail samplers have been improved.</li>

<li>The new Test Fragment Test Element makes using Include Controllers easier</li>

<li>There are various improvements to the View Results Tree Listener</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=30563">
      Bug
      30563</a> - Thread Group should have a start next loop option on Sample Error</li>

<li>There are two new Thread Group types - setUp and tearDown - which are run before and after the main Thread groups.</li>

<li>Client-Server mode now supports external stop/shutdown via UDP<br> 
multiple JMeter server instances can be started on the same host without needing to change the port property.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=50516">
      Bug
      50516</a> - "Host" header in HTTP Header Manager is not included in generated HTTP request</li>

</ul>


<p>

<ul>

</ul>

</p>





<h2>Known bugs</h2>


<p>
The Include Controller has some problems in non-GUI mode. 
In particular, it can cause a NullPointerException if there are two include controllers with the same name.
</p>


<p>Once Only controller behaves correctly under a Thread Group or Loop Controller,
but otherwise its behaviour is not consistent (or clearly specified).</p>


<p>
The menu item Options / Choose Language does not change all the displayed text to the new language.
[The behaviour has improved, but language change is still not fully working]
To override the default local language fully, set the JMeter property "language" before starting JMeter. 
</p>


<h2>Incompatible changes</h2>


<p>
Unsupported methods are no longer converted to GET by the Commons HttpClient sampler.
</p>


<p>
Removed method public static long currentTimeInMs().
This has been replaced by the instance method public long currentTimeInMillis().
</p>


<p>
ProxyControl.getSamplerTypeName() now returns a String rather than an int.
This is internal to the workings of the JMeter Proxy &amp; its GUI, so should not affect any user code.
</p>


<h2>Bug fixes</h2>


<h3>HTTP Samplers and Proxy</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=50178">
      Bug
      50178</a> - HeaderManager added as child of Thread Group can create concatenated HeaderManager names and OutOfMemoryException</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=50392">
      Bug
      50392</a> - value is trimmed when sending the request in Multipart</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=50686">
      Bug
      50686</a> - HeaderManager logging too verbose when merging instances</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=50963">
      Bug
      50963</a> - AjpSampler throws java.lang.StringIndexOutOfBoundsException</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=50516">
      Bug
      50516</a> - "Host" header in HTTP Header Manager is not included in generated HTTP request</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=50544">
      Bug
      50544</a> - In Apache Common Log the HEAD requests cause problems.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51268">
      Bug
      51268</a> - HTTPS request through an invalid proxy causes NullPointerException and does not show in result tree.
Rather than delegating to the JMeter thread handler for "unexpected" failures, ensure all Exceptions generate a sample error.
</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51275">
      Bug
      51275</a> - Cookie Panel clearGui() sets incorrect default policy in Java 1.6</li>

</ul>


<h3>Other Samplers</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=50173">
      Bug
      50173</a> - JDBCSampler discards ResultSet from a PreparedStatement</li>

<li>Ensure JSR223 Sampler has access to the current SampleResult</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=50977">
      Bug
      50977</a> - Unable to set TCP Sampler for individual samples</li>

</ul>


<h3>Controllers</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=50032">
      Bug
      50032</a> - Last_Sample_Ok along with other controllers doesn't work correctly when the threadgroup has multiple loops</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=50080">
      Bug
      50080</a> - Transaction controller incorrectly creates samples including timer duration</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=50134">
      Bug
      50134</a> - TransactionController : Reports bad response time when it contains other TransactionControllers</li>

</ul>


<h3>Listeners</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=50367">
      Bug
      50367</a> - Clear / Clear all in View results tree does not clear selected element</li>

</ul>


<h3>Assertions</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51488">
      Bug
      51488</a> - Assertion: Variable name scope is shared among all assertions (and <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51255">
      Bug
      51255</a>)</li>

</ul>


<h3>Functions</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=50568">
      Bug
      50568</a> - Function __FileToString(): Could not read file when encoding option is blank/empty</li>

</ul>


<h3>I18N</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=50811">
      Bug
      50811</a> - Incomplete Spanish translation</li>

</ul>


<h3>General</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=49734">
      Bug
      49734</a> - Null pointer exception on stop Threads command (Run &rarr; Stop)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=49666">
      Bug
      49666</a> - CSV Header read as data after EOF</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=45703">
      Bug
      45703</a> - Synchronizing Timer</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=50088">
      Bug
      50088</a> - fix getAvgPageBytes in SamplingStatCalculator so it returns what it should</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=50203">
      Bug
      50203</a> Cannot set property "jmeter.save.saveservice.default_delimiter=\t"</li>

<li>mirror-server.sh - fix classpath to use : separator (not ;)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=50286">
      Bug
      50286</a> - URL Re-writing Modifier: extracted jsessionid value is incorrect when is between XML tags</li>

<li>
System.nanoTime() tends to drift relative to System.currentTimeMillis().
Change SampleResult to recalculate offset each time.
Also enable reversion to using System.currentTimeMillis() only.
</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=50425">
      Bug
      50425</a> - Remove thread groups from Controller add menu</li>

<li>

<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=50675">
      Bug
      50675</a> - CVS Data Set Config incompatible with Remote Start
Fixed RMI startup to provide location of JMX file relative to user.dir.
</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=50221">
      Bug
      50221</a> - Renaming elements in the tree does not resize label</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51002">
      Bug
      51002</a> - Stop Thread if CSV file is not available. JMeter now treats IOError as EOF.</li>

<li>Define sun.net.http.allowRestrictedHeaders=true by default. This fixes <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51238">
      Bug
      51238</a>.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51645">
      Bug
      51645</a> - CSVDataSet does not read UTF-8 files when file.encoding is UTF-8</li>

</ul>




<h2>Improvements</h2>


<h3>HTTP Samplers</h3>

<ul>

<li>AJP Sampler now implements Interruptible</li>

<li>Allow HTTP implementation to be selected at run-time</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=50684">
      Bug
      50684</a> - Optionally disable Content-Type and Transfer-Encoding in Multipart POST</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=50943">
      Bug
      50943</a> - Allowing concurrent downloads of embedded resources in html page</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=50170">
      Bug
      50170</a> - Bytes reported by http sampler is after GUnZip<br>Add optional properties to allow change the method to get response size</li>

<li>Hiding the proxy password on HTTP Sampler (just on GUI, not in JMX file)</li>

</ul>


<h3>Other samplers</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=49622">
      Bug
      49622</a> - Allow sending messages without a subject (SMTP Sampler)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=49603">
      Bug
      49603</a> - Allow accepting expired certificates on Mail Reader Sampler</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=49775">
      Bug
      49775</a> - Allow sending messages without a body</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=49862">
      Bug
      49862</a> - Improve SMTPSampler Request output.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=50268">
      Bug
      50268</a> - Adds static and dynamic destinations to JMS Publisher</li>

<li>JMS Subscriber - Add dynamic destination</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=50666">
      Bug
      50666</a> - JMSSubscriber: support for durable subscriptions</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=50937">
      Bug
      50937</a> - TCP Sampler does not provide for / honor connect timeout</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=50569">
      Bug
      50569</a> - Jdbc Request Sampler to optionally store result set object data</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51011">
      Bug
      51011</a> - Mail Reader: upon authentication failure, tell what you tried</li>

</ul>


<h3>Controllers</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=50475">
      Bug
      50475</a> - Introduction of a Test Fragment Test Element for a better Include flow</li>

</ul>


<h3>Listeners</h3>

<ul>

<li>View Results Tree - Add a dialog's text box on "Sampler result tab &rarr; Parsed" to display the long value with a double click on cell</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=37156">
      Bug
      37156</a> - Formatted view of Request in Results Tree</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=49365">
      Bug
      49365</a> - Allow result set to be written to file in a path relative to the loaded script</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=50579">
      Bug
      50579</a> - Error count is long, sample count is int. Changed sample count to long.</li>

<li>View Results Tree - Add new size fields: response headers and response body (in bytes) - derived from <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=43363">
      Bug
      43363</a>
</li>

</ul>


<h3>Timers, Assertions, Config, Pre- &amp; Post-Processors</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=48015">
      Bug
      48015</a> - Proposal new icons for pre-processor, post-processor and assertion elements</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=50962">
      Bug
      50962</a> - SizeAssertionGui validation prevents the use of variables for the size</li>

<li>Size Assertion - Add response size scope (full, headers, body, code, message) - derived from <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=43363">
      Bug
      43363</a>
</li>

</ul>


<h3>Functions</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=49975">
      Bug
      49975</a> - New function returning the name of the current sampler</li>

</ul>


<h3>I18N</h3>

<ul>

<li>Add French translation for the new labels and reduce size for some labels (by abbreviation) on HTTP Sample</li>

</ul>


<h3>General</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=30563">
      Bug
      30563</a> - Thread Group should have a start next loop option on Sample Error</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=50347">
      Bug
      50347</a> - Eclipse setup instructions should remind user to download dependent jars</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=50490">
      Bug
      50490</a> - Setup and Post Thread Group enhancements for better test flow.</li>

<li>All BeanShell test elements now have the script variables "prev" and "Label" defined.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=50708">
      Bug
      50708</a> - Classpath jar order in NewDriver not alphabetically</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=50659">
      Bug
      50659</a> - JMeter server does not support concurrent tests - prevent client from starting another</li>

<li>Added remote shutdown functionality</li>

<li>Client JMeter engine now supports external stop/shutdown via UDP</li>

<li>UDP shutdown can now use a range of ports, from jmeterengine.nongui.port=4445 to jmeterengine.nongui.maxport=4455,
allowing multiple JMeter instances on the same host without needing to change the port property.</li>

<li>Updated to httpcore 4.1.3 and httpclient 4.1.2</li>

</ul>


<h2>Non-functional changes</h2>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=50008">
      Bug
      50008</a> - Allow BatchSampleSender to be subclassed</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=50450">
      Bug
      50450</a> - use System.array copy in jacobi solver as, being native, is more performant.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=50487">
      Bug
      50487</a> - runSerialTest verifies objects that never need persisting</li>

<li>Use Thread.setDefaultUncaughtExceptionHandler() instead of private ThreadGroup</li>

<li>Update to Commons Net 3.0</li>

</ul>




<h1>Version 2.4</h1>


<h2>Summary of main changes</h2>


<p>

<ul>

<li>JMeter now requires at least Java 1.5.</li>

<li>HTTP Proxy can now record HTTPS sessions.</li>

<li>JUnit sampler now supports JUnit4 annotations.</li>

<li>Added JSR223 (javax.script) test elements.</li>

<li>MailReader Sampler can now use any protocol supported by the underlying implementation.</li>

<li>An SMTP Sampler has been added.</li>

<li>JMeter now allows users to provide their own Thread Group implementations.</li>

<li>View Results Tree now supports more display options, including search and Regex Testing.</li>

<li>StatCalculator performance is much improved; Aggregate Report etc. need far less memory.</li>

<li>
JMS samplers have been extensively reworked, and should no longer lose messages.
Correlation processing is improved.
JMS Publisher and Subscriber now support both Topics and Queues.
</li>

<li>Many other improvements have been made, please see below and in the manual.</li>

</ul>

</p>





<h2>Known bugs</h2>


<p>
The Include Controller has some problems in non-GUI mode. 
In particular, it can cause a NullPointerException if there are two include controllers with the same name.
</p>


<p>Once Only controller behaves correctly under a Thread Group or Loop Controller,
but otherwise its behaviour is not consistent (or clearly specified).</p>


<p>
The menu item Options / Choose Language does not change all the displayed text to the new language.
[The behaviour has improved, but language change is still not fully working]
To override the default local language fully, set the JMeter property "language" before starting JMeter. 
</p>


<h2>Incompatible changes</h2>


<p>
HTTP Redirect now defaults to "Follow Redirects" rather than "Redirect Automatically".
This is to enable JMeter to track cookies that may be sent during redirects.
This does not affect existing test plans; it only affects the default for new HTTP Samplers.
</p>


<p>
The Avalon file format for JMX and JTL files is no longer supported.
Any such files will need to be converted by reading them in JMeter 2.3.4 and resaving them.
</p>


<p>
The XPath Assertion and XPath Extractor elements no longer fetch external DTDs by default; this can be changed in the GUI.
</p>


<p>
JMSConfigGui has been renamed as JMSSamplerGui.
This does not affect existing test plans.
</p>


<p>
The constructor public SampleResult(SampleResult res) has been changed to become a true "copy constructor".
It no longer calls addSubResult(). This may possibly affect some 3<sup>rd</sup> party add-ons.
</p>


<h2>Bug fixes</h2>


<h3>HTTP Samplers and Proxy</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=47445">
      Bug
      47445</a> - Using Proxy with https-spoofing secure cookies need to be unsecured</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=47442">
      Bug
      47442</a> - Missing replacement of https by http for certain conditions using https-spoofing</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=48451">
      Bug
      48451</a> - Error in: SoapSampler.setPostHeaders(PostMethod post) in the else branch</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=48542">
      Bug
      48542</a> - SoapSampler uses wrong response header field to decide if response is gzip encoded</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=48568">
      Bug
      48568</a> - CookieManager broken for AjpSampler</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=48570">
      Bug
      48570</a> - AjpSampler doesn't support query parameters (GET/POST)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=46901">
      Bug
      46901</a> - HTTP Sampler does not process var/func refs correctly in first file parameter</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=43678">
      Bug
      43678</a> - Handle META tag http-equiv charset?</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=49294">
      Bug
      49294</a> - Images not downloaded from redirected-to pages</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=49560">
      Bug
      49560</a> - wrong "size in bytes" when following redirections</li>

</ul>


<h3>Other Samplers</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=47420">
      Bug
      47420</a> - LDAP extended request not closing connections during add request</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=48573">
      Bug
      48573</a> - LDAPExtSampler directory context handling</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=47870">
      Bug
      47870</a> - JMSSubscriber fails due to NPE</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=47899">
      Bug
      47899</a> - NullPointerExceptions in JMS ReceiveSubscriber constructor</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=48144">
      Bug
      48144</a> - NPE in JMS OnMessageSubscriber</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=47992">
      Bug
      47992</a> - JMS Point-to-Point Request - Response option doesn't work</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=48579">
      Bug
      48579</a> - Single Bind does not show config information when LdapExt Sampler is accessed</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=49111">
      Bug
      49111</a> - "Message With ID Not Found" Error on JMS P2P sampler.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=47949">
      Bug
      47949</a> - JMS Subscriber never receives all the messages</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=46142">
      Bug
      46142</a> - JMS Point-to-Point correlation problems</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=48747">
      Bug
      48747</a> - TCP Sampler swallows exceptions</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=48709">
      Bug
      48709</a> - TCP Sampler Config setting "classname" has no effect</li>

</ul>


<h3>Controllers</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=47385">
      Bug
      47385</a> - TransactionController should set AllThreads and GroupThreads</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=47940">
      Bug
      47940</a> - Module controller incorrectly creates the replacement Sub Tree</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=47592">
      Bug
      47592</a> - Run Thread groups consecutively with "Stop test" on error, JMeter will not mark to finished</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=48786">
      Bug
      48786</a> - Run Thread groups consecutively: with "Stop test now" on error or manual stop, JMeter leaves the green box active</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=48727">
      Bug
      48727</a> - Cannot stop test if all thread groups are disabled</li>

</ul>


<h3>Listeners</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=48603">
      Bug
      48603</a> - Mailer Visualiser sends two emails for a single failed response</li>

<li>Correct calculation of min/max/std.dev for aggregated samples (Summary Report)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=48889">
      Bug
      48889</a> - Wrong response time with mode=Statistical and num_sample_threshold &gt; 1</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=47398">
      Bug
      47398</a> - SampleEvents are sent twice over RMI in distributed testing and non gui mode</li>

</ul>


<h3>Assertions</h3>

<ul>

</ul>


<h3>Functions</h3>

<ul>

</ul>


<h3>I18N</h3>

<ul>

</ul>


<h3>General</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=47646">
      Bug
      47646</a> -  NullPointerException in the "Random Variable" element</li>

<li>Disallow adding any child elements to JDBC Configuration</li>

<li>BeanInfoSupport now caches getBeanDescriptor() - should avoid an NPE on non-Sun JVMs when using CSVDataSet (and some other TestBeans)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=48350">
      Bug
      48350</a> - Deadlock on distributed testing with 2 clients</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=48901">
      Bug
      48901</a> - Endless wait by adding Synchronizing Timer</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=49149">
      Bug
      49149</a> - usermanual/index.html has typo in link to "Regular Expressions" page</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=49394">
      Bug
      49394</a> - Classcast Exception in ActionRouter.postActionPerformed</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=48136">
      Bug
      48136</a> - Essential files missing from source tarball.<br>
Source archives now contain all source files, including source files previously only provided in the binary archives.
</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=48331">
      Bug
      48331</a> - XpathExtractor does not return XML string representations for a Nodeset</li>

</ul>




<h2>Improvements</h2>


<h3>HTTP Samplers</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=47622">
      Bug
      47622</a> - enable recording of HTTPS sessions</li>

<li>Allow Proxy Server to be specified on HTTP Sampler GUI and HTTP Config GUI</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=47461">
      Bug
      47461</a> - Update Cache Manager to handle Expires HTTP header</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=48153">
      Bug
      48153</a> - Support for Cache-Control and Expires headers</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=47946">
      Bug
      47946</a> - Proxy should enable Grouping inside a Transaction Controller</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=48300">
      Bug
      48300</a> - Allow override of IP source address for HTTP HttpClient requests</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=49083">
      Bug
      49083</a> - collapse '/pathsegment/..' in redirect URLs</li>

</ul>


<h3>Other samplers</h3>

<ul>

<li>JUnit sampler now supports JUnit4 tests (using annotations)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=47900">
      Bug
      47900</a> - Allow JMS SubscriberSampler to be interrupted</li>

<li>Added JSR223 Sampler</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=47556">
      Bug
      47556</a> - JMS-PointToPoint-Sampler Timeout field should use Strings</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=47947">
      Bug
      47947</a> - Mail Reader Sampler should allow port to be overridden</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=48155">
      Bug
      48155</a> - Multiple problems / enhancements with JMS protocol classes</li>

<li>Allow MailReader sampler to use arbitrary protocols</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=45053">
      Bug
      45053</a> - SMTP-Sampler for JMeter</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=49552">
      Bug
      49552</a> - Add Message Headers on SMTPSampler</li>

<li>
JMS Publisher and Subscriber now support both Topics and Queues.
Added read Timeout to JMS Subscriber.
General clean-up of JMS code.
</li>

</ul>


<h3>Controllers</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=47909">
      Bug
      47909</a> - TransactionController should sum the latency</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=41418">
      Bug
      41418</a> - Exclude timer duration from Transaction Controller runtime in report</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=48749">
      Bug
      48749</a> - Allowing custom Thread Groups</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=43389">
      Bug
      43389</a> - Allow Include files to be found relative to the current JMX file</li>

</ul>


<h3>Listeners</h3>

<ul>

<li>Added DataStrippingSample sender - supports "Stripped" and "StrippedBatch" modes.</li>

<li>Added Comparison Assertion Visualizer</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=47907">
      Bug
      47907</a> - Improvements (enhancements and I18N) Comparison Assertion and Comparison Visualizer</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=36726">
      Bug
      36726</a> - add search function to Tree View Listener</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=47869">
      Bug
      47869</a> - Ability to cleanup fields of SampleResult</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=47952">
      Bug
      47952</a> - Added JSR223 Listener</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=47474">
      Bug
      47474</a> - View Results Tree support for plugin renderers</li>

<li>Allow Idle Time to be saved to sample log files</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=48259">
      Bug
      48259</a> - Improve StatCalculator performance by using TreeMap</li>

<li>Listeners using SamplingStatCalculator have much reduced memory needs 
as the Sample cache has been moved to the new CachingStatCalculator class.
In particular, Aggregate Report can now handle large numbers of samples.
</li>

<li>Aggregate Report and Summary Report now allow column headers to be optionally excluded</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=49506">
      Bug
      49506</a> - Add .csv File Extension in open dialog box from "read from file" functionality of listeners</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=49545">
      Bug
      49545</a> - Formatted (parsed) view of Sample Result in Results Tree</li>

</ul>


<h3>Timers, Assertions, Config, Pre- &amp; Post-Processors</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=47338">
      Bug
      47338</a> - XPath Extractor forces retrieval of document DTD</li>

<li>Added Comparison Assertion</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=47952">
      Bug
      47952</a> - Added JSR223 PreProcessor and PostProcessor</li>

<li>Added JSR223 Assertion</li>

<li>Added BSF Timer and JSR223 Timer</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=48511">
      Bug
      48511</a> - add parent,child,all selection to regex extractor</li>

<li>Add Sampler scope selection to XPathExtractor</li>

<li>Regular Expression Extractor, Response Assertion and Size Assertion can now be applied to a JMeter variable</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=46790">
      Bug
      46790</a> - CSV Data Set Config should be able to parse CSV headers</li>

</ul>


<h3>Functions</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=47565">
      Bug
      47565</a> - [Function] FileToString</li>

</ul>


<h3>I18N</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=47938">
      Bug
      47938</a> -  Adding some French translations for new elements</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=48714">
      Bug
      48714</a> -  add new French messages</li>

</ul>


<h3>General</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=47223">
      Bug
      47223</a> - Slow Aggregate Report Performance (StatCalculator)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=47980">
      Bug
      47980</a> - hostname resolves to 127.0.0.1 - specifying IP not possible</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=47943">
      Bug
      47943</a> - DisabledComponentRemover is not used in Start class</li>

<li>HeapDumper class for runtime generation of dumps</li>

<li>Basic read-only JavaMail provider implementation for reading raw mail files</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=49540">
      Bug
      49540</a> - Sort "Add" menus alphabetically</li>

</ul>


<h2>Non-functional changes</h2>

<ul>

<li>Beanshell, JavaMail and JMS API (Apache Geronimo) jars are now included in the binary archive.</li>

<li>Add TestBean Table Editor support</li>

<li>Removed all external libraries from SVN; added download_jars Ant target</li>

<li>Updated various jar files:
<ul>

<li>BeanShell - 2.0b4 &rArr; 2.0b5</li>

<li>Commons Codec - 1.3 &rArr; 1.4</li>

<li>Commons-Collections - 3.2 &rArr; 3.2.1</li>

<li>JTidy &rArr; r938</li>

<li>JUnit - 3.8.2 &rArr; 4.8.1</li>

<li>Logkit - 1.2 &rArr; 2.0</li>

<li>Xalan Serializer = 2.7.1 (previously erroneously shown as 2.9.1)</li>

<li>Xerces xml-apis = 1.3.04 (previously erroneously shown as 2.9.1)</li>

<li>Some jar files were renamed.</li>

</ul>

</li>

</ul>




<h1>Version 2.3.4</h1>


<h2>Summary of main changes</h2>


<p>
This is a minor bug-fix release, mainly to correct some bugs that were accidentally added in 2.3.3.
</p>



<h2>Known bugs</h2>


<p>
The Include Controller has some problems in non-GUI mode. 
In particular, it can cause a NullPointerException if there are two include controllers with the same name.
</p>


<p>Once Only controller behaves correctly under a Thread Group or Loop Controller,
but otherwise its behaviour is not consistent (or clearly specified).</p>


<p>
The menu item Options / Choose Language does not change all the displayed text to the new language.
[The behaviour has improved, but language change is still not fully working]
To override the default local language fully, set the JMeter property "language" before starting JMeter. 
</p>


<h2>Bug fixes</h2>


<h3>HTTP Samplers and Proxy</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=47321">
      Bug
      47321</a> -  HTTPSampler2 response timeout not honored</li>

</ul>


<h3>Other Samplers</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=47290">
      Bug
      47290</a> -  Infinite loop on connection factory lookup (JMS)</li>

<li>JDBC Sampler should not close Prepared or Callable statements as these are cached</li>

</ul>


<h3>Controllers</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=39509">
      Bug
      39509</a> -  Once-only controller running twice</li>

</ul>


<h3>Listeners</h3>

<ul>

<li>Change ResultCollector to only warn if the directory was not created</li>

<li>Fix some synchronisation issues in ResultCollector and SampleResult (wrong locks were being used)</li>

</ul>


<h3>I18N</h3>

<ul>

<li>Fixed bug introduced in 2.3.3: JMeter does not start up if there is no messages.properties file for the default Locale.</li>

</ul>


<h3>General</h3>

<ul>

<li>Fix problems with remote clients - bug introduced in 2.3.3</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=47377">
      Bug
      47377</a> - Make ClassFinder more robust and close zipfile resources</li>

<li>Fix some errors in generating the documentation (latent bug revealed in 2.3.3 when Velocity was upgraded)</li>

</ul>


<h2>Improvements</h2>


<h3>Other samplers</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=47266">
      Bug
      47266</a> - FTP Request Sampler: allow specifying an FTP port, other than the default</li>

</ul>




<h1>Version 2.3.3</h1>


<h2>Summary of main changes</h2>


<p>
The handling of test closedown is much improved. 
The gradual "Shutdown" command now waits until all threads have stopped,
and does not report an error if threads don't stop within 5 seconds.
The immediate "Stop" command can now be used if "Shutdown" takes too long.
Also the immediate "Stop" command is able to interrupt samplers which support the new Interruptible interface (e.g. HTTP and SOAP, FTP).
This allows immediate completion of pending responses.
Non-GUI mode tests can also now be sent a "Shutdown" or "Stop" message.
<a href="./usermanual/component_reference.html#Test_Action">Test Action</a> now supports a "Stop Now" action, 
as do the <a href="./usermanual/component_reference.html#Thread_Group">Thread Group</a> and <a href="./usermanual/component_reference.html#Result_Status_Action_Handler">Result Status Action Handler</a> Post Processor elements.
</p>


<p>
HTTP Cookie handling is improved, and HTTP POST can now use variable file names correctly.
HTTP, SOAP/XML-RPC and WebService(SOAP) sampler character encodings updated to be more consistent.
HTTP Samplers now support connection and response timeouts (requires JVM 1.5 for the HTTP Java sampler).
Together with the closedown improvements described above, this should avoid most cases where a test run hangs.
Multiple Header Manager elements are now supported for a single HTTP sampler.
The Proxy Server is improved, and no longer stores "Host" headers by default.
</p>


<p>
JDBC Request can optionally save the results of Select statements to variables.
JDBC Request now handles quoted strings and UTF-8, and can handle arbitrary variable types.
</p>


<p>
There are several new <a href="usermanual/functions.html">functions</a>:
__char() function: allows arbitrary Unicode characters to be entered in fields.
__unescape() function: allows Java-escaped strings to be used.
_unescapeHtml() function: decodes Html-encoded text.
__escapeHtml() function: encodes text using Html-encoding. 
A reference to a missing function - e.g. ${__missing(a)} - is now treated the same as a missing variable.
Previously the function name - and leading { - were dropped. This makes it easier to debug test plans.
</p>


<p>
Some Assertions can now be applied to sub-samples as well as (or instead of) just the parent sample.
There is a new <a href="./usermanual/component_reference.html#Random_Variable">Random Variable</a> Configuration element.
</p>


<p>
JMS samplers are much improved (see details below). The <a href="./usermanual/component_reference.html#TCP_Sampler">TCP Sampler</a> now supports some additional clients and is a bit more flexible.
</p>


<p>
Client-server mode has been improved, and the server can optionally use a fixed RMI port, which should help with setting up firewalls. 
</p>


<p>
Various I18N changes have been made; language change works better (though not perfect yet).
There are improved French translations as well as new Polish and Brazilian Portuguese translations.
</p>


<p>
The BeanShell jar is now included with the binary archive; there is no need to download it separately. 
</p>




<h2>Known bugs</h2>


<p>
The Include Controller has some problems in non-GUI mode. 
In particular, it can cause a <span class="code">NullPointerException</span> if there are two include controllers with the same name.
</p>


<p>Once Only controller behaves correctly under a Thread Group or Loop Controller,
but otherwise its behaviour is not consistent (or clearly specified).</p>


<p>
The menu item <span class="menuchoice"><span class="guimenuitem">Options</span>&nbsp;&rarr;&nbsp;<span class="guimenuitem">Choose Language</span></span>
does not change all the displayed text to the new language.
[The behaviour has improved, but language change is still not fully working]
To override the default local language fully, set the JMeter property "<span class="code">language</span>" before starting JMeter. 
</p>


<h2>Incompatible changes</h2>

<p>
When loading sample results from a file, previous results are no longer cleared.
This allows one to merge multiple files.
If the previous behaviour is required,
use the menu item <span class="menuchoice"><span class="guimenuitem">Run</span>&nbsp;&rarr;&nbsp;<span class="guimenuitem">Clear</span>
    (<span class="keycombo"><span class="keysym">Ctrl</span>&nbsp;+&nbsp;<span class="keysym">Shift</span>&nbsp;+&nbsp;<span class="keysym">E</span></span>)
  </span> or <span class="menuchoice"><span class="guimenuitem">Run</span>&nbsp;&rarr;&nbsp;<span class="guimenuitem">Clear All</span>
    (<span class="keycombo"><span class="keysym">Ctrl</span>&nbsp;+&nbsp;<span class="keysym">E</span></span>)
  </span> before loading the file.
</p>

<p>
The test elements "Save Results to a file" and "Generate Summary Results" are now shown as Listeners.
They were previously shown as Post-Processors, even though they are implemented as Listeners.
</p>

<p>
The Cookie Manager no longer saves incoming cookies as variables by default.
To save cookies as variables, define the property "<span class="code">CookieManager.save.cookies=true</span>".
Also, cookies names are prefixed with "<span class="code">COOKIE_</span>" before they are stored (this avoids accidental corruption of local variables)
To revert to the original behaviour, define the property "<span class="code">CookieManager.name.prefix= </span>" (one or more spaces).
</p>

<p>
The Counter element is now shown as a Configuration element.
It was previously shown as a Pre-Processor, even though it is implemented as a Config item.
</p>

<p>
The above changes only affect the icons that are displayed and the locations in the GUI pop-up menus.
They do not affect test plans or test behaviour.
</p>

<p>
The PreProcessors are now invoked directly by the JMeterThread class,
rather than by the TestCompiler#configureSampler() method. (JMeterThread handles the PostProcessors).
This does not affect test plans or behaviour, but could perhaps affect 3<sup>rd</sup> party add-ons (very unlikely).
</p>

<p>
Moved the Scoping Rules sub-section from Section 3. "Building a Test Plan"  to Section 4. "Elements of a test plan"
</p>


<p>
The While controller now trims leading and trailing spaces from the condition value before it is compared
with <span class="code">LAST</span>, blank or false.
</p>


<p>
The "threadName" variable in the _jexl() and __javaScript() functions was previously misspelt as "theadName".
</p>


<p>
The following deprecated methods were removed from JOrphanUtils: booleanToString(boolean) and valueOf(boolean).
Java 1.4+ has these methods in the Boolean class.
</p>


<p>
The TestElement interface has some new methods:
<ul>

<li>void setProperty(String key, String value, String dflt)</li>

<li>void setProperty(String key, boolean value, boolean dflt)</li>

<li>void setProperty(String key, int value)</li>

<li>void setProperty(String key, int value, int dflt)</li>

<li>int getPropertyAsInt(String key, int defaultValue)</li>

</ul>
These are implemented in the AbstractTestElement class which all elements should extend so this is unlikely to cause a problem.
</p>

<h2>Bug fixes</h2>


<h3>HTTP Samplers and Proxy</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=46332">
      Bug
      46332</a> - HTTP Cookie Manager ignores manually defined cookies (bug introduced in r707810)</li>

<li>Cookie Manager was not passing cookie policy to runtime threads so they always used compatibility mode</li>

<li>Add version attribute to JMeter Cookie class (needed for proper cookie support)</li>

<li>Cookie Manager now saves/restores cookie versions</li>

<li>Check validity of cookies before storing them.</li>


<li>HTTPSamplers can now use variables in POSTed file names</li>

<li>Fix processing of first file name in HTTP POST so functions/variables work (bug introduced with multiple file support)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=45831">
      Bug
      45831</a> - WS Sampler reports incorrect throughput if SOAP packet creation fails</li>

<li>HTTP, SOAP/XML-RPC and WebService(SOAP) sampler character encodings updated to be more consistent</li>


<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=46148">
      Bug
      46148</a> - HTTP sampler fails on SSL requests when logging for jmeter.util is set to DEBUG</li>

<li>Fix Java 1.6 https error: java.net.SocketException: Unconnected sockets not implemented</li>


<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=46838">
      Bug
      46838</a> - if there was no data, still need to set latency in HTTPSampler</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=46993">
      Bug
      46993</a> - Saving from Header Manager generates ClassCastException</li>

<li>

<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=46690">
      Bug
      46690</a> - handling of 302 redirects with invalid relative paths.
JMeter now removes extraneous leading "../" segments (as do many browsers)
</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=44521">
      Bug
      44521</a> - empty variables for a POST in the HTTP Request don't get ignored</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=46977">
      Bug
      46977</a> - JMeter does not handle HTTP headers not delimited by whitespace</li>

<li>Fix bug in HTTP file: handling - read bytes, not characters in the default encoding.</li>


<li>Remove Host from headers saved by the Proxy server, as that will normally be generated by the HTTP stack</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=45199">
      Bug
      45199</a> - don't try to replace blank variables in Proxy recording</li>

<li>Change HTTPS spoofing so https: links are replaced even when URL match fails</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=46436">
      Bug
      46436</a> - Improve error reporting in Proxy Gui</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=46435">
      Bug
      46435</a> - More verbose error msg for error 501 (Proxy Server)</li>

</ul>


<h3>Other Samplers</h3>

<ul>

<li>The "prev" and "sampler" objects are now defined for BSF test elements</li>

<li>Fix NPE (in DataSourceElement) when using JDBC in client-server mode</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=45425">
      Bug
      45425</a> - JDBC Request does not support Unicode (changed sampler to use UTF-8)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=46522">
      Bug
      46522</a> - Incorrect "Response data" in JDBC sample when column names are missing</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=46821">
      Bug
      46821</a> - JDBC select request doesn't store the first column in the variables</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=43791">
      Bug
      43791</a> - ensure QueueReceiver is closed in JMS Point to Point sampler</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=46016">
      Bug
      46016</a> - avoid possible NPE in JMSSampler</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=46142">
      Bug
      46142</a> - JMS Receiver now uses MessageID</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=45458">
      Bug
      45458</a> - Point to Point JMS in combination with authentication</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=45460">
      Bug
      45460</a> - JMS TestPlan elements depend on resource property</li>

<li>Various ReceiveSubscriber thread-safety fixes</li>

<li>JMSPublisher and Subscriber fixes: thread-safety, support dynamic locale changes, locale independence for JMX attribute values</li>

<li>FTP Sampler now logs out before disconnecting.</li>

<li>TCP sampler now calls setupTest() and teardownTest() methods</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=45887">
      Bug
      45887</a> - TCPSampler: timeout property incorrectly set</li>

</ul>


<h3>Controllers</h3>

<ul>

<li>Fix NPE when using nested Transaction Controllers with parent samples</li>

<li>Fix processing of Transaction Controller parent mode so current sampler is set to actual sampler</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=44941">
      Bug
      44941</a> - Throughput controllers should not share global counters</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=47120">
      Bug
      47120</a> - Throughput Controller: change percent executions to total executions, the value is stored in a String and interpreted as 1 execution</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=47150">
      Bug
      47150</a> - ThreadGroup with a loop count of zero causes infinite loop</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=47009">
      Bug
      47009</a> - Insert parent caused child controller name to be reset</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=47165">
      Bug
      47165</a> - Using duplicate Module Controller names in command line mode causes NPE</li>

</ul>


<h3>Listeners</h3>

<ul>

<li>Mailer Visualizer documentation now agrees with code i.e. failure/success counts need to be exceeded to trigger the mail.</li>

<li>Mailer Visualizer now shows the failure count</li>

<li>Mailer Visualiser - fix parsing of multiple e-mail address when using Test button</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=45976">
      Bug
      45976</a> - incomplete result file when using remote testing with more than 1 server</li>

<li>Fix Summariser so it works in client server mode</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=34096">
      Bug
      34096</a> - Duplicate samples not eliminated when writing to CSV files</li>

<li>Save "Include group Name in Label" setting in Aggregate and Summary reports</li>

<li>The JMeter variable "sample_variables" is sent to all server instances to ensure the data is available to the client.</li>

<li>CSVSaveService - check for EOF while reading quoted string</li>

</ul>


<h3>Assertions</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=45749">
      Bug
      45749</a> - Response Assertion does not work with a substring that happens to be an invalid RE</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=45904">
      Bug
      45904</a> - Allow 'Not' Response Assertion to succeed with null sample</li>

</ul>


<h3>Functions</h3>

<ul>

<li>Fix regex function - was failing to process $m$mid$n$ correctly</li>

<li>Protect against possible NPE in RegexFunction if called during test shutdown.</li>

<li>Avoid NPE if XPath function does not match any nodes</li>

<li>Correct the variable name "theadName" to "threadName" in the __jexl() and __javaScript() functions</li>

<li>A reference to a missing function - e.g. ${__missing(a)} - is now treated the same as a missing variable. Previously the function name - and leading { - were dropped.</li>

</ul>


<h3>I18N</h3>

<ul>

<li>Fixed language change handling for menus (does not yet work for TestBeans)</li>

<li>Add HeaderAsPropertyRenderer to support header resource names; use this to fix locale changes in various GUI elements</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=46424">
      Bug
      46424</a> - corrections to French translation</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=46844">
      Bug
      46844</a> -  "Library" label in test plan are not I18N</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=47064">
      Bug
      47064</a> - fixes for Mac LAF</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=47127">
      Bug
      47127</a> -  Unable to change language to pl_PL</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=47137">
      Bug
      47137</a> - Labels in View Results Tree aren't I18N</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=46423">
      Bug
      46423</a> - I18N of Proxy Recorder</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=45928">
      Bug
      45928</a> - AJP/1.3 Sampler doesn't retrieve its label from messages.properties</li>

</ul>


<h3>General</h3>

<ul>

<li>Prompt to overwrite an existing file when first saving a new test plan</li>

<li>Amend TestBeans to show the correct popup menu for Listeners</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=45185">
      Bug
      45185</a> - CSV dataset blank delimiter causes OOM</li>

<li>Fix incorrect GUI classifications: 
"Save Results to a file" and "Generate Summary Results" are now shown as Listeners.
"Counter" is now shown as a Configuration element.
</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=41608">
      Bug
      41608</a> - misleading warning log message removed</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=46359">
      Bug
      46359</a> - BSF JavaScript Preprocessor cannot access sampler variable on first iteration (Implement temporary work-round for BSF-22)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=46407">
      Bug
      46407</a> - BSF elements do not load script files, attempt to interpret filename as script</li>

<li>Better handling of Exceptions during test shutdown</li>

<li>Fix potential thread safety issue in JMeterThread class</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=46491">
      Bug
      46491</a> - Incorrect value for the last variable in "CSV Data Set Config" (error in processing quoted strings)</li>


</ul>




<h2>Improvements</h2>


<h3>HTTP Samplers</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=45479">
      Bug
      45479</a> - Support for multiple HTTP Header Manager nodes</li>

<li>HTTP Samplers now support connection and request timeouts (requires Java 1.5 for Java Http sampler)</li>

<li>Apache SOAP 2.3.1 does not give access to HTTP response code/message, so WebService sampler now treats an empty response as an error</li>

<li>Mirror server now supports "X-Sleep" header - if this is set, the responding thread will wait for the specified number of milliseconds</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=45694">
      Bug
      45694</a> - Support GZIP compressed logs in Access Log Sampler</li>

</ul>


<h3>Other samplers</h3>

<ul>

<li>JDBC Request can optionally save the results of Select statements to variables.</li>

<li>JDBC Request now handles quoted strings.</li>

<li>JDBC Request now handles arbitrary variable types.</li>

<li>LDAP result data now formatted with line breaks</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=45200">
      Bug
      45200</a> - MailReaderSampler: store the whole MIME message in the SamplerResult</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=45571">
      Bug
      45571</a> - JMS Sampler correlation enhancement</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=46030">
      Bug
      46030</a> - Extend TCP Sampler to Support Length-Prefixed Binary Data</li>

<li>Add classname field to TCP Sampler GUIs</li>

</ul>


<h3>Controllers</h3>

<ul>

<li>Allow If Controller to use variable expressions (not just Javascript)</li>

<li>Trim spaces from While Controller condition before comparing against LAST, blank or false</li>

</ul>


<h3>Listeners</h3>

<ul>

<li>Save Responses to a file can save the generated filename(s) to variables.</li>

<li>Add option to skip suffix generation in Save Responses to a File</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=43119">
      Bug
      43119</a> - Save Responses to file: optionally omit the file number</li>

<li>Add BSF Listener element</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=47176">
      Bug
      47176</a> -  Monitor Results : improve load status graphic</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=40045">
      Bug
      40045</a> - Allow Results monitor to select a specific connector</li>

<li>Read XML JTL files more efficiently - pass samples to visualizers as they are read, rather than saving them all and then processing them</li>

</ul>


<h3>Assertions, Config, Pre- &amp; Post-Processors</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=45903">
      Bug
      45903</a> - allow Assertions to apply to sub-samples</li>

<li>Add Body (unescaped) source option to Regular Expression Extractor.</li>

<li>Random Variable - new configuration element to create random numeric variables</li>

</ul>


<h3>Functions</h3>

<ul>

<li>Add OUT and log variables to __jexl() function</li>

<li>Use Script to evaluate __jexl() function so can have multiple statements.</li>

<li>Add log variable to the __javaScript() function</li>

<li>Added __char() function: allows arbitrary Unicode characters to be entered in fields.</li>

<li>Added __unescape() function: allows Java-escaped strings to be used.</li>

<li>Added __unescapeHtml() function: decodes Html-encoded text.</li>

<li>Added __escapeHtml() function: encodes text using Html-encoding.</li>

</ul>


<h3>I18N</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=45929">
      Bug
      45929</a> - improved French translations</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=47132">
      Bug
      47132</a> - Brazilian Portuguese translations</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=46900">
      Bug
      46900</a> - Polish translations</li>

<li>Added locales.add property to allow for new Locales</li>

</ul>


<h3>General</h3>

<ul>

<li>Allow spaces in JMeter path names (apply work-round for <a href="http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4496398">Java Bug 4496398</a>)</li>

<li>Process JVM_ARGS last in script files so users can override default settings</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=46636">
      Bug
      46636</a> - Allow server mode to optionally use a fixed rmi port</li>

<li>Make some samplers interruptible: HTTP (both), SoapSampler, FTPSampler</li>

<li>Test Action now supports "Stop Now" action, as do the Thread Group and Result Status Post Processor elements</li>

<li>The Menu items Stop and Shutdown now behave better. Shutdown will now wait until all threads exit. 
In GUI mode it can be cancelled and Stop run instead. 
Stop now reports if some threads will not exit, and exits if running in non-GUI mode</li>

<li>Add UDP server to wait for shutdown message if running in non-GUI mode; add UDP client to send the message.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=41209">
      Bug
      41209</a> - JLabeled* and ToolTips</li>

<li>Include BeanShell 2.0b4 jar in binary download.</li>

</ul>


<h2>Non-functional changes</h2>

<ul>

<li>Introduce AbstractListenerGui class to make it easier to create Listeners with no visual output</li>

<li>Assertions are run after PostProcessors; change order of pop-up menus accordingly</li>

<li>Remove unnecessary clone() methods from function classes</li>

<li>Moved PreProcessor invocation to JMeterThread class</li>

<li>Made HashTree Map field final</li>

<li>Improve performance of calling ResultCollector#isSampleWanted() for multiple samples</li>

<li>Updated to new versions of: xmlgraphics-commons (1.3.1), jdom (1.1), xstream (1.3.1), velocity (1.6.2)</li>

</ul>





<h2>Version 2.3.2</h2>


<h3>Summary of main changes</h3>


<h4>Bug fixes</h4>

<p>
Version 2.3.1 changed the way binary and text content types were determined as far as the View Results Tree Listener was concerned:
originally everything except "image/" content types were considered text, but 2.3.1 introduced a check
for specific content types. This has caused problems,
as several popular types were omitted and these were no longer shown by default in the Response tab.
Rather than try to list all the possible text types, JMeter now just checks for the following binary types:
<ul>

<li>image/*</li>

<li>audio/*</li>

<li>video/*</li>

</ul>
All other types are now assumed to be text.
</p>


<p>
JMeter 2.3.1 introduced a bug in the Cookie Manager 
- if "Clear Cookie each iteration" was selected, all threads would see the same cookies.
This bug has been corrected.
</p>


<h4>Improvements</h4>


<p>
The Proxy server can now record binary requests.
By default the content types
application/x-amf and application/x-java-serialized-object
will be treated as binary and saved in a file.
To change the content types, update the property <b>proxy.binary.types</b>.
</p>


<p>
The CSV Dataset configuration element has new file sharing options: per thread group, per thread, per identifier.
This allows for more flexible file processing, e.g. each thread can process the same data in the same order.
</p>


<p>Switch Controller now works properly with functions and variables, 
and the condition can now be a name instead of a number.
Simple Controller now works properly under a While Controller</p>


<p>CSV fields in JTL files can now contain delimiters. 
CSV and XML files can now contain additional variables (define the JMeter property <b>sample_variables</b>).</p>


<p>Response Assertion can now match on substrings (i.e. not regular expression). 
Regex extractor can operate on variables.</p>


<p>
XPath processing is improved; Tidy errors are handled better.
</p>


<p>Save Table Data buttons added to Summary and Aggregate reports to allow easy saving of the calculated data.</p>


<p>
HTTP samplers can now save just the MD5 hash of responses, rather than the entire response.
As a special case, if the HTTP Sampler path starts with "http://" or "https://" then this is used as the full URL,
overriding the host and port fields.
The HTTP Samplers can now POST multiple files.
Webservice(SOAP) Sampler can now load local WSDL files using the "file:" protocol.
</p>


<p>
A simple HTTP Cache Manager has been added. This needs further development.
</p>


<p>
View Results Tree Listener now uses Tidy to display XML.
This should allow more content to be displayed successfully.
It also avoids the need to download remote DTD files, which can slow the rendering considerably.
</p>


<p>
MailReader sampler now supports POP3S and IMAPS protocols. Individual mails are now added as sub-samples.
</p>


<p>
Various improvements to the BSF Sampler: now supports Jexl, and Javascript bug works properly.
Added BSF PreProcessor, PostProcessor and Assertion test elements.
All now have access to "props" JMeter Properties object.
</p>


<p>Number of classes loaded in non-GUI mode is much reduced.</p>


<h3>Known bugs</h3>


<p>
The Include Controller has some problems in non-GUI mode. 
In particular, it can cause a NullPointerException if there are two include controllers with the same name.
</p>


<p>Once Only controller behaves OK under a Thread Group or Loop Controller,
but otherwise its behaviour is not consistent (or clearly specified).</p>


<p>
The menu item Options / Choose Language does not change all the displayed text to the new language.
To override the default local language, set the JMeter property "language" before starting JMeter. 
</p>

<h3>Incompatible changes</h3>

<ul>

<li>
To reduce the number of classes loaded in non-GUI mode,
Functions will only be found if their classname contains the string
'.functions.' and does not contain the string '.gui.'.
All existing JMeter functions conform to this restriction.
To revert to earlier behaviour, comment or change the properties classfinder.functions.* in jmeter.properties.
</li>

<li>The reference value parameter for intSum() is now optional. 
As a consequence, if a variable name is used, it must not be a valid integer.</li>

<li>The supplied TCPClient implementation no longer treats tcp.eolByte=0 as special.
To skip EOL checking, set tcp.eolByte=1000 (or some other value which is not a valid byte)
</li>

<li>
Leading and trailing spaces are trimmed from variable names in function calls.
For example, ${__Random(1,63,&nbsp;LOTTERY&nbsp;)} will use the variable 'LOTTERY' rather than '&nbsp;LOTTERY&nbsp;'.
</li>

<li>
Synchronization has been removed from the RunningSample class (it was not fully threadsafe anyway).
Developers of 3<sup>rd</sup> party add-ons that use the class may need to synchronize access.
</li>

</ul>


<h3>Bug fixes</h3>

<ul>

<li>Check that the CSV delimiter is reasonable.</li>

<li>Fix Switch Controller to work properly with functions and variables</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=44011">
      Bug
      44011</a> - application/soap+xml not treated as a text type</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=43427">
      Bug
      43427</a> - Simple Controller is only partly executed in While loop</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=33954">
      Bug
      33954</a> - Stack Overflow in If/While controllers (may have been fixed previously)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=44022">
      Bug
      44022</a> - Memory Leak when closing test plan</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=44042">
      Bug
      44042</a> - Regression in Cookie Manager (Bug introduced in 2.3.1)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=41028">
      Bug
      41028</a> - JMeter server doesn't alert the user when the host is defined as a loopback address</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=44142">
      Bug
      44142</a> - Function __machineName causes NPE if parameters are omitted.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=44144">
      Bug
      44144</a> - JMS point-to-point: request response test does not work</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=44314">
      Bug
      44314</a> - Not possible to add more than one SyncTimer</li>

<li>Capture Tidy console error output and log it</li>

<li>Fix problems using Tidy(tolerant parser) in XPath Assertion and XPath Extractor</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=44374">
      Bug
      44374</a> - improve timer calculation</li>

<li>Regular Expression Extractor now deletes all stale variables from previous matches.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=44707">
      Bug
      44707</a> - Running remote test changes internal test plan</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=44625">
      Bug
      44625</a> - Cannot have two or more FTP samplers with different "put" and "get" actions</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=40850">
      Bug
      40850</a> - BeanShell memory leak</li>

<li>Ensure ResponseCode and ResponseMessage are set for successful JDBC samples</li>

<li>FTPSampler now detects and reports failure to open the remote file</li>

<li>Class directories defined in search_paths and user.classpath no longer need trailing "/"</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=44852">
      Bug
      44852</a> SOAP/ XML-RPC Request does not show Request details in View Results Tree</li>

<li>WebService(SOAP) Sampler ResponseData now includes the EOLs sent by server</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=44910">
      Bug
      44910</a> - close previous socket (if any) in TCP Sampler</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=44912">
      Bug
      44912</a> - Filter not working in Log Parser</li>

<li>The BeanShell and BSF component documentation made some incorrect references to the "SampleResponse" object;
this has been corrected to "SampleResult"</li>

<li>BSF Sampler now works properly with Javascript</li>

<li>Test Action "Stop Test" now works</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=42833">
      Bug
      42833</a> - Argument class uses LinkedHashMap in getArgumentsAsMap() to preserve ordering</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=45093">
      Bug
      45093</a> - SizeAssertion did not call getBytes()</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=45007">
      Bug
      45007</a> - Rewrite Location headers when using Proxy HTTPS spoofing</li>

<li>Use CRLF rather than LF in Proxy when returning headers to the client</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=45007">
      Bug
      45007</a> - fix content length header if content may have been changed</li>

</ul>


<h3>Improvements</h3>

<ul>

<li>CSV files can now handle fields with embedded delimiters.</li>

<li>longSum() function added</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=43382">
      Bug
      43382</a> - configure Tidy output (warnings, errors) for XPath Assertion and Post-Processor</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=43984">
      Bug
      43984</a> - trim spaces from port field</li>

<li>Add optional comment to __log() function</li>

<li>Make Random function variable name optional</li>

<li>Reduce class loading in non-GUI mode by only looking for Functions in class names
that contain '.functions.' and don't contain '.gui.'</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=43379">
      Bug
      43379</a> - Switch Controller now supports selection by name as well as number</li>

<li>Can specify list of variable names to be written to JTL files (CSV and XML format)</li>

<li>Now checks that the remoteStart options -r and -R are only used with non_GUI -n option</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=44184">
      Bug
      44184</a> - Allow header to be saved with Aggregate Graph data</li>

<li>Added "Save Table Data" buttons to Aggregate and Summary Reports - save table as CSV format with header</li>

<li>Allow most functions to be used on the Test Plan. 
Note __evalVar(), __split() and __regex() cannot be used on the Test Plan.</li>

<li>Allow Global properties to be loaded from a file, e.g. -Gglobal.properties</li>

<li>Add "Substring" option to Response Assertion</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=44378">
      Bug
      44378</a> - Turkish localisation</li>

<li>Add optional output variable name to Jexl function</li>

<li>Add application/vnd.wap.xhtml+xml as a text type</li>

<li>Add means to override maximum display size in View Results Tree - set the property: view.results.tree.max_size</li>

<li>Use Tidy to display XML in View Results Tree Listener (avoids fetching DTDs)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=44487">
      Bug
      44487</a> - German translation</li>

<li>
As a special case, if the HTTP Sampler path starts with "http://" or "https://" then this is used as the full URL.
</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=44575">
      Bug
      44575</a> - Result Saver can now save only successful results</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=44650">
      Bug
      44650</a> - CSV Dataset now handles quoted column values</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=44600">
      Bug
      44600</a> - 1-ms resolution timer when running with Java 1.5+</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=44632">
      Bug
      44632</a> - Text input enhancement to FTP Sampler</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=42204">
      Bug
      42204</a> - add thread group name to Aggregate and Summary reports</li>

<li>FTP Sampler sets latency = time to login</li>

<li>FTP Sampler sets a URL if it can</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=41921">
      Bug
      41921</a> - add option for samplers to store MD5 of response; done for HTTP Samplers.</li>

<li>Regex Function can now also be applied to a variable rather than just the previous sample result.</li>

<li>Remove HTML Parameter Mask,HTTP User Parameter Modifier from menus as they are deprecated</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=44807">
      Bug
      44807</a> - allow session ids to be terminated by backslash</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=44784">
      Bug
      44784</a> - allow for broken server returning additional charset</li>

<li>Added TESTSTART.MS property / variable = test start time in milliseconds</li>

<li>Add POP3S and IMAPS protocols to Mail Reader Sampler.</li>

<li>Mail Reader Sampler now creates a sub-sample for each mail.</li>

<li>The supplied TCPClient implementation no longer treats tcp.eolByte=0 as special.
To skip EOL checking, set tcp.eolByte=1000 (or some other value which is not a valid byte)
</li>

<li>JUnit sampler GUI now also finds Test classes defined in user.classpath</li>

<li>
Leading and trailing spaces are trimmed from variable names in function calls.
For example, ${__Random(1,63,&nbsp;LOTTERY&nbsp;)} will use the variable 'LOTTERY' rather than '&nbsp;LOTTERY&nbsp;'
</li>

<li>Webservice(SOAP) Sampler can now load local WSDL files using the file: protocol</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=44872">
      Bug
      44872</a> - Add "All Files" filter to Open File dialogs</li>

<li>Mirror server can now be run independently (mirror-server.cmd and mirror-server.sh)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=19128">
      Bug
      19128</a> - Added multiple file POST support to HTTP Samplers</li>

<li>Allow use of special name LAST to mean the last test run; applies to -t, -l, -j flags</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=44418">
      Bug
      44418</a>/42178 - CSV Dataset file handling improvements</li>

<li>Give BeanShell, Javascript and Jexl functions access to JMeter properties via the "props" object</li>

<li>Give BSF Sampler access to JMeter Properties via "props" object</li>

<li>Add Jexl as a supported BSF Sampler language</li>

<li>Give Beanshell test elements access to JMeter Properties via "props" object</li>

<li>Added BSF PreProcessor, PostProcessor and Assertion test elements</li>

<li>All BSF elements now have access to System.out via the variable "OUT"</li>

<li>Summariser updated to handle variable names</li>

<li>Synchronisation added to Summary and Aggregate Report to try to prevent occasional lost samples</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=44808">
      Bug
      44808</a>,<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=39641">
      Bug
      39641</a> - Proxy support for binary requests</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=28502">
      Bug
      28502</a> - HTTP Resource Cache</li>

</ul>


<h3>Non-functional changes</h3>

<ul>

<li>Better handling of MirrorServer startup problems and improved unit test.</li>

<li>Build process now detects missing 3<sup>rd</sup> party libraries and reports need for both binary and source archives</li>

<li>Skip BeanShell tests if jar is not present</li>

<li>Update to Xerces 2.9.1, Xalan 2.7.1, Commons IO 1.4, Commons Lang 2.4, Commons-Logging 1.1.1, XStream 1.3, XPP3 1.1.4c</li>

<li>Use properties for log/logn function descriptions</li>

<li>Check that all jmx files in the demos directory can be loaded OK</li>

<li>Update copyright to 2008; use copy tag instead of numeric character in HTML output</li>

<li>Methods called from constructors must not be overridable: make GUI init methods private</li>

<li>Make static variables final if possible</li>

<li>Split changes into current and previous</li>

</ul>




<h3>Version 2.3.1</h3>

<h4>Summary of changes</h4>


<h5>JMeter Proxy</h5>


<p>
The Proxy spoof function was broken in 2.3; it has been fixed. 
Spoof now supports an optional parameter to limit spoofing to particular URLs. 
This is useful for HTTPS pages that have insecure content - e.g. images/stylesheets may be accessed using HTTP.
Spoofed responses now drop the default port (443) from https links to make them work better.
</p>

<p>
Ignored proxy samples are now visible in Listeners - the label is enclosed in [ and ] as an indication. 
Proxy documentation has been improved.
</p>


<h5>GUI changes</h5>


<p>The Add menus show element types in the order in which they are processed 
- see <a href="usermanual/test_plan.html#executionorder">Test Plan Execution Order</a>.
It is no longer possible to add test elements to inappropriate parts of the tree
- e.g. samplers cannot be added directly under a test plan. 
This also applies to Paste and drag and drop.
</p>


<p>
The File menu now supports a "Revert" option, which reloads the current file.
Also the last few file names used are remembered for easy reloading.
</p>


<p>
The Options Menu now supports Collapse All and Expand All items to collapse and expand the test tree.
</p>


<h5>Remote testing</h5>


<p>
The JMeter server now starts the RMI server directly (by default).
This simplifies testing, and means that the RMI server will be stopped when the server stops.
</p>


<p>
Functions can now be used in Listener filenames (variables do not work).
</p>


<p>
Command-line option -G can now be used to define properties for remote servers.
Option -X can be used to stop a remote server after a non-GUI run.
Server can be set to automatically exit after a single test (set property server.exitaftertest=true).
</p>


<h5>Other enhancements</h5>


<p>
JMeter startup no longer loads as many classes; this should reduce memory requirements.
</p>


<p>
Parameter and file support added to all BeanShell elements. 
Javascript function now supports access to JMeter objects; 
Jexl function always did have access, but the documentation has now been included.
New functions __eval() and __evalVar() for evaluating variables.
</p>


<p>
CSV files with the correct header column names are now automatically recognised when loaded. 
There is no need to configure the properties.
</p>


<p>
The hostname can now be saved in CSV and XML output files. 
New "Successes only" option added when saving result files.
Errors / Successes only option is now supported when loading XML and CSV files. 
</p>


<p>
General documentation improvements.
</p>


<h5>HTTP</h5>


<p>PUT and DELETE should now work properly. 
Cookie Manager no longer clears manually entered cookies.
</p>

<p>Now handles the META tag http-equiv charset</p>


<h5>JDBC</h5>


<p>JDBC Sampler now allows INOUT and OUT parameters for Called procedures. 
JDBC Sampler now allows per-thread connections - set Max Connections = 0 in JDBC Config.
</p>


<hr>



<h4>Incompatible changes</h4>

<ul>

<li>JMeter server now creates the RMI registry by default.
If the RMI registry has already been started externally, this will generate a warning message, but the server will continue.
This should not affect JMeter testing. 
However, if you are also using the RMI registry for other applications there may be problems.
For example, when the JMeter server shuts down it will stop the RMI registry.
Also user-written command files may need to be adjusted (the ones supplied with JMeter have been updated).
To revert to the earlier behaviour, define the JMeter property: <b>server.rmi.create=false</b>.
</li>

<li>The Proxy server removes If-Modified-Since and If-None-Match headers from generated Header Managers.
To revert to the previous behaviour, define the property proxy.headers.remove with no value</li>

</ul>


<h4>Bug fixes</h4>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=43430">
      Bug
      43430</a> - Count of active threads is incorrect for remote samples</li>

<li>Throughput Controller was not working for "all thread" counts</li>

<li>If a POST body is built from parameter values only, these are now encoded if the checkbox is set.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=43584">
      Bug
      43584</a> - Assertion Failure Message contains a comma that is also used as the delimiter for CSV files</li>

<li>HTTP Mirror Server now always returns the exact same content, it used to return incorrect data if UTF-8 encoding was used for HTTP POST body, for example</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=43612">
      Bug
      43612</a> - HTTP PUT does not honor request parameters</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=43694">
      Bug
      43694</a> - ForEach Controller (empty collection processing error)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=42012">
      Bug
      42012</a> - Variable Listener filenames do not get processed in remote tests.
Filenames can now include function references; variable references do not work.</li>

<li>Ensure Listener nodes get own save configuration when copy-pasted</li>

<li>Correct Proxy Server include and exclude matching description - port and query are included, contrary to previously documented.</li>

<li>Aggregate Graph and Aggregate Report Column Header is KB/Sec; fixed the values to be KB rather than bytes</li>

<li>
Fix SamplingStatCalculator so it no longer adds elapsed time to endTime, as this is handled by SampleResult.
This corrects discrepancies between Summary Report and Aggregate Report throughput calculation.
</li>

<li>Default HTTPSampleResult to ISO-8859-1 encoding</li>

<li>Fix default encoding for blank encoding</li>

<li>Fix Https spoofing (port problem) which was broken in 2.3</li>

<li>Fix HTTP (Java) sampler so http.java.sampler.retries means retries, i.e. does not include initial try</li>

<li>Fix SampleResult dataType checking to better detect TEXT documents</li>

</ul>


<h4>Improvements</h4>

<ul>

<li>Add run_gui Ant target, to package and then start the JMeter GUI from Ant</li>

<li>Add File&rarr;Revert to easily drop the current changes and reload the project file currently loaded</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=31366">
      Bug
      31366</a> - Remember recently opened file(s)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=43351">
      Bug
      43351</a> - Add support for Parameters and script file to all BeanShell test elements</li>

<li>SaveService no longer needs to instantiate classes</li>

<li>New functions: __eval() and __evalVar()</li>

<li>Menu items now appear in execution order</li>

<li>Test Plan items can now only be dropped/pasted/merged into parts of the tree where they are allowed</li>

<li>Property Display to show the value of System and JMeter properties and allow them to be changed</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=43451">
      Bug
      43451</a> - Allow Regex Extractor to operate on Response Code/Message</li>

<li>JDBC Sampler now allows INOUT and OUT parameters for Called procedures</li>

<li>JDBC Sampler now allows per-thread connections</li>

<li>Cookie Manager not longer clears cookies defined in the GUI</li>

<li>HTTP Parameters without names are ignored (except for POST requests with no file)</li>

<li>"Save Selection As" added to main menu; now checks only item is selected</li>

<li>Test Plan now has Paste menu item (paste was already supported via ^V)</li>

<li>If the default delimiter does not work when loading a CSV file, guess the delimiter by analysing the header line.</li>

<li>Add optional "loopback" protocol for HttpClient sampler</li>

<li>HTTP Mirror Server now supports blocking waiting for more data to appear, if content-length header is present in request</li>

<li>HTTP Mirror Server GUI now has the Start and Stop buttons in a more visible place</li>

<li>Server mode now creates the RMI registry; to disable set the JMeter property server.rmi.create=false</li>

<li>HTTP Sampler now supports using MIME Type field to specify content-type request header when body is constructed from parameter values</li>

<li>Enable exit after a single server test - define JMeter property server.exitaftertest=true</li>

<li>Added -G option to set properties in remote servers</li>

<li>Added -X option to stop remote servers after non-GUI run</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=43485">
      Bug
      43485</a> - Ability to specify keep-alive on SOAP/XML-RPC request</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=43678">
      Bug
      43678</a> - Handle META tag http-equiv charset</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=42555">
      Bug
      42555</a> - [I18N] Proposed corrections for the french translation</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=43727">
      Bug
      43727</a> - Test Action does not support variables or functions</li>

<li>The Proxy server removes If-Modified-Since and If-None-Match headers from generated Header Managers by default.
To change the list of removed headers, define the property proxy.headers.remove as a comma-separated list of headers to remove</li>

<li>The javaScript function now has access to JMeter variables and context etc. See <a href="usermanual/functions.html#__javaScript">JavaScript function</a>
</li>

<li>Use drop-down list for BSF Sampler language field</li>

<li>Add hostname to items that can be saved in CSV and XML output files.</li>

<li>Errors only flag is now supported when loading XML and CSV files</li>

<li>Ensure ResultCollector uses SaveService encoding</li>

<li>Proxy now rejects attempts to use it with https</li>

<li>Proxy spoofing can now use RE matching to determine which urls to spoof (useful if images are not https)</li>

<li>Proxy spoofing now drops the default HTTPS port (443) when converting https: links to http:</li>

<li>Add Successes Only logging and display</li>

<li>The JMeter log file name is formatted as a SimpleDateFormat (applied to the current date) if it contains paired single-quotes,  .e.g. 'jmeter_'yyyyMMddHHmmss'.log'</li>

<li>Added Collapse All and Expand All Option menu items</li>

<li>Allow optional definition of extra content-types that are viewable as text</li>

</ul>


<h4>Non-functional Improvements</h4>

<ul>

<li>Functor code tightened up; Functor can now be used with interfaces, as well as pre-defined targets and parameters.</li>

<li>Save graphics function now prompts before overwriting an existing file</li>

<li>Debug Sampler and Debug PostProcessor added.</li>

<li>Fixed up method names in Calculator and SamplingStatCalculator</li>

<li>Tidied up Listener documentation.</li>

</ul>




<h3>Version 2.3</h3>


<h3>Fixes since 2.3RC4</h3>


<h4>Bug fixes</h4>

<ul>

<li>Fix NPE in SampleResultConverter - XStream PrettyPrintWriter cannot handle nulls</li>

<li>If Java HTTP sampler sees null ResponseMessage, replace with HTTP header</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=43332">
      Bug
      43332</a> - 2.3RC4 does not clear Guis based on TestBean</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=42948">
      Bug
      42948</a> - Problems with Proxy gui table fields in Java 1.6</li>

<li>Fixup broken jmeter-server script</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=43364">
      Bug
      43364</a> - option to revert If Controller to pre 2.3RC3 behaviour</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=43449">
      Bug
      43449</a> - Statistical Remote mode does not handle Latency</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=43450">
      Bug
      43450</a> (partial fix) - Allow SampleCount and ErrorCount to be saved to/restored from files</li>

</ul>


<h4>Improvements</h4>

<ul>

<li>Add nameSpace option to XPath extractor</li>

<li>Add NULL parameter option to JDBC sampler</li>

<li>Add documentation links for Rhino and BeanShell to functions; clarify variables and properties</li>

<li>Ensure uncaught exceptions are logged</li>

<li>Look for user.properties and system.properties in JMeter bin directory if not found locally</li>

</ul>


<h4>Fixes since 2.3RC3</h4>

<ul>

<li>Fixed NPE in Summariser (bug introduced in 2.3RC3)</li>

<li>Fixed setup of proxy port (bug introduced in 2.3RC3)</li>

<li>Fixed errors when running non-GUI on a headless host (bug introduced in 2.3RC3)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=43054">
      Bug
      43054</a> - SSLManager causes stress tests to saturate and crash (bug introduced in 2.3RC3)</li>

<li>Clarified HTTP Request Defaults usage of the port field</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=43006">
      Bug
      43006</a> - NPE if icon.properties file not found</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=42918">
      Bug
      42918</a> - Size Assertion now treats an empty response as having zero length</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=43007">
      Bug
      43007</a> - Test ends before all threadgroups started</li>

<li>Fix possible NPE in HTTPSampler2 if 302 does not have Location header.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=42919">
      Bug
      42919</a> - Failure Message blank in CSV output [now records first non-blank message]</li>

<li>Add link to Extending JMeter PDF</li>

<li>Allow for quoted charset in Content-Type parsing</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=39792">
      Bug
      39792</a> - ClientJMeter synchronisation needed</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=43122">
      Bug
      43122</a> - GUI changes not always picked up when short-cut keys used (bug introduced in 2.3RC3)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=42947">
      Bug
      42947</a> - TestBeanGUI changes not picked up when short-cut keys used</li>

<li>Added serializer.jar (needed for update to xalan 2.7.0)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=38687">
      Bug
      38687</a> - Module controller does not work in non-GUI mode</li>

</ul>


<h4>Improvements since 2.3RC3</h4>

<ul>

<li>Add stop thread option to CSV Dataset</li>

<li>Updated commons-httpclient to 3.1</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=28715">
      Bug
      28715</a> - allow variable cookie values (set CookieManager.allow_variable_cookies=false to disable)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=40873">
      Bug
      40873</a> - add JMS point-to-point non-persistent delivery option</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=43283">
      Bug
      43283</a> - Save action adds .jmx if not present; checks for existing file on Save As</li>

<li>
<span class="keycombo"><span class="keysym">Control</span>&nbsp;+&nbsp;<span class="keysym">A</span></span> key does not work for Save All As;
    changed to <span class="keycombo"><span class="keysym">Control</span>&nbsp;+&nbsp;<span class="keysym">Shift</span>&nbsp;+&nbsp;<span class="keysym">S</span></span>
</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=40991">
      Bug
      40991</a> - Allow Assertions to check Headers</li>

</ul>


<h3>Version 2.3RC3</h3>


<h4>Known problems/restrictions:</h4>

<p>
The JMeter remote server does not support multiple concurrent tests - each remote test should be run in a separate server.
Otherwise tests may fail with random Exceptions, e.g. ConcurrentModification Exception in StandardJMeterEngine.
See <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=43168">
      Bug
      43168</a>.
</p>

<p>
The default HTTP Request (not HTTPClient) sampler may not work for HTTPS connections via a proxy.
This appears to be due to a Java bug, see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=39337">
      Bug
      39337</a>.
To avoid the problem, try a more recent version of Java, or switch to the HTTPClient version of the HTTP Request sampler.
</p>

<p>Transaction Controller parent mode does not support nested Transaction Controllers.
Doing so may cause a Null Pointer Exception in TestCompiler.
</p>

<p>Thread active counts are always zero in CSV and XML files when running remote tests.
</p>

<p>The property file_format.testlog=2.1 is treated the same as 2.2.
However JMeter does honour the 3 testplan versions.</p>

<p>

<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=22510">
      Bug
      22510</a> - JMeter always uses the first entry in the keystore.
</p>

<p>
Remote mode does not work if JMeter is installed in a directory where the path name contains spaces.
</p>

<p>
BeanShell test elements leak memory.
This can be reduced by using a file instead of including the script in the test element.
</p>

<p>
Variables and functions do not work in Listeners in client-server (remote) mode so they cannot be used
to name log files in client-server mode.
</p>

<p>
CSV Dataset variables are defined after configuration processing is completed,
so they cannot be used for other configuration items such as JDBC Config.
(see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=40394">
      Bug
      40394</a>)
</p>


<h4>Summary of changes (for more details, see below)</h4>

<p>
Some of the main enhancements are:
</p>

<ul>

<li>Htmlparser 2.0 now used for parsing</li>

<li>HTTP Authorization now supports domain and realm</li>

<li>HttpClient options can be specified via httpclient.parameters file</li>

<li>HttpClient now behaves the same as Java Http for SSL certificates</li>

<li>HTTP Mirror Server to allow local testing of HTTP samplers</li>

<li>HTTP Proxy supports XML-RPC recording, and other proxy improvements</li>

<li>__V() function allows support of nested variable references</li>

<li>LDAP Ext sampler optionally parses result sets and supports secure mode</li>

<li>FTP Sampler supports Ascii/Binary mode and upload</li>

<li>Transaction Controller now optionally generates a Sample with subresults</li>

<li>HTTPS session contexts are now per-thread, rather than shared. This gives better emulation of multiple users</li>

<li>BeanShell elements now support ThreadListener and TestListener interfaces</li>

<li>Coloured icons in Tree View Listener and elsewhere to better differentiate failed samples.</li>

</ul>

<p>
The main bug fixes are:
</p>

<ul>

<li>HTTPS (SSL) handling now much improved</li>

<li>Various Remote mode bugs fixed</li>

<li>
<span class="keycombo"><span class="keysym">Control</span>&nbsp;+&nbsp;<span class="keysym">C</span></span>
    and <span class="keycombo"><span class="keysym">Control</span>&nbsp;+&nbsp;<span class="keysym">V</span></span> now work in the test tree</li>

<li>Latency and Encoding now available in CSV log output</li>

<li>Test elements no longer default to previous contents; test elements no longer cleared when changing language.</li>

</ul>


<h4>Incompatible changes (usage):</h4>

<p>

<b>N.B. The javax.net.ssl properties have been moved from jmeter.properties to system.properties,
and will no longer work if defined in jmeter.properties.</b>

<br>
The new arrangement is more flexible, as it allows arbitrary system properties to be defined.
</p>

<p>
SSL session contexts are now created per-thread, rather than being shared.
This generates a more realistic load for HTTPS tests.
The change is likely to slow down tests with many SSL threads.
The original behaviour can be enabled by setting the JMeter property:
<pre>
https.sessioncontext.shared=true
</pre>

</p>

<p>
The LDAP Extended Sampler now uses the same panel for both Thread Bind and Single-Bind tests.
This means that any tests using the Single-bind test will need to be updated to set the username and password.
</p>

<p>

<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=41140">
      Bug
      41140</a>: JMeterThread behaviour was changed so that PostProcessors are run in forward order
(as they appear in the test plan) rather than reverse order as previously.
The original behaviour can be restored by setting the following JMeter property:
<br>
jmeterthread.reversePostProcessors=true
</p>

<p>
The HTTP Authorization Manager now has extra columns for domain and realm, 
so the temporary work-round of using '\' and '@' in the username to delimit the domain and realm
has been removed.
</p>

<p>

<span class="keycombo"><span class="keysym">Control</span>&nbsp;+&nbsp;<span class="keysym">Z</span></span> no longer used for Remote Start All - this
now uses <span class="keycombo"><span class="keysym">Control</span>&nbsp;+&nbsp;<span class="keysym">Shift</span>&nbsp;+&nbsp;<span class="keysym">R</span></span>

</p>

<p>
HttpClient now uses pre-emptive authentication. 
This can be changed by setting the following:
<pre>
jmeter.properties:
httpclient.parameters.file=httpclient.parameters

httpclient.parameters:
http.authentication.preemptive$Boolean=false
</pre>

</p>


<p>
The port field in HTTP Request Defaults is no longer ignored for https samplers if it is set to 80.
</p>


<h4>Incompatible changes (development):</h4>

<p>

<b>N.B.</b>The clear() method was defined in the following interfaces: Clearable, JMeterGUIComponent and TestElement.
The methods serve different purposes, so two of them were renamed: 
the Clearable method is now clearData() and the JMeterGUIComponent method is now clearGui().
3<sup>rd</sup> party add-ons may need to be rebuilt.
</p>

<p>
Calculator and SamplingStatCalculator classes no longer provide any formatting of their data.
Formatting should now be done using the jorphan.gui Renderer classes.
</p>

<p>
Removed deprecated method JMeterUtils.split() - use JOrphanUtils version instead.
</p>

<p>
Removed method saveUsingJPEGEncoder() from SaveGraphicsService.
It was unused so far, and used the only Sun-specific class in JMeter.
</p>



<h4>New functionality/improvements:</h4>

<ul>

<li>Add Domain and Realm support to HTTP Authorization Manager</li>

<li>HttpClient now behaves the same as the JDK http sampler for invalid certificates etc</li>

<li>Added httpclient.parameters.file to allow HttpClient parameters to be defined</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=33964">
      Bug
      33964</a> - Http Requests can send a file as the entire post body if name/type are omitted</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=41705">
      Bug
      41705</a> - add content-encoding option to HTTP samplers for POST requests</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=40933">
      Bug
      40933</a>,<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=40945">
      Bug
      40945</a> - optional RE matching when retrieving embedded resource URLs</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=27780">
      Bug
      27780</a> - (patch 19936) create multipart/form-data HTTP request without uploading file</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=42098">
      Bug
      42098</a> - Use specified encoding for parameter values in HTTP GET</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=42506">
      Bug
      42506</a> - JMeter threads now use independent SSL sessions</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=41707">
      Bug
      41707</a> - HTTP Proxy XML-RPC support</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=41880">
      Bug
      41880</a> - Add content-type filtering to HTTP Proxy Server</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=41876">
      Bug
      41876</a> - Add more options to control what the HTTP Proxy generates</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=42158">
      Bug
      42158</a> - Improve support for multipart/form-data requests in HTTP Proxy server</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=42173">
      Bug
      42173</a> - Let HTTP Proxy handle encoding of request, and undecode parameter values</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=42674">
      Bug
      42674</a> - default to pre-emptive HTTP authorisation if not specified</li>

<li>Support "file" protocol in HTTP Samplers</li>

<li>Http Autoredirects are now enabled by default when creating new samplers</li>


<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=40103">
      Bug
      40103</a> - various LDAP enhancements</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=40369">
      Bug
      40369</a> - LDAP: Stable search results in sampler</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=40381">
      Bug
      40381</a> - LDAP: more descriptive strings</li>


<li>BeanShell Post-Processor no longer ignores samples with zero-length result data</li>

<li>Added beanshell.init.file property to run a BeanShell script at startup</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=39864">
      Bug
      39864</a> - BeanShell init files now found from current or bin directory</li>

<li>BeanShell elements now support ThreadListener and TestListener interfaces</li>

<li>BSF Sampler passes additional variables to the script</li>


<li>Added timeout for WebService (SOAP) Sampler</li>


<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=40825">
      Bug
      40825</a> - Add JDBC prepared statement support</li>

<li>Extend JDBC Sampler: Commit, Rollback, AutoCommit</li>


<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=41457">
      Bug
      41457</a> - Add TCP Sampler option to not re-use connections</li>


<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=41522">
      Bug
      41522</a> - Use JUnit sampler name in sample results</li>


<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=42223">
      Bug
      42223</a> - FTP Sampler can now upload files</li>


<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=40804">
      Bug
      40804</a> - Change Counter default to max = Long.MAX_VALUE</li>


<li>Use property jmeter.home (if present) to override user.dir when starting JMeter</li>

<li>New -j option to easily change jmeter log file</li>


<li>HTTP Mirror Server Workbench element</li>


<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=41253">
      Bug
      41253</a> - extend XPathExtractor to work with non-NodeList XPath expressions</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=42088">
      Bug
      42088</a> - Add XPath Assertion for booleans</li>


<li>Added __V variable function to resolve nested variable names</li>


<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=40369">
      Bug
      40369</a> - Equals Response Assertion</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=41704">
      Bug
      41704</a> - Allow charset encoding to be specified for CSV DataSet</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=41259">
      Bug
      41259</a> - Comment field added to all test elements</li>

<li>Add standard deviation to Summary Report</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=41873">
      Bug
      41873</a> - Add name to AssertionResult and display AssertionResult in ViewResultsFullVisualizer</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=36755">
      Bug
      36755</a> - Save XML test files with UTF-8 encoding</li>

<li>Use ISO date-time format for Tree View Listener (previously the year was not shown)</li>

<li>Improve loading of CSV files: if possible, use header to determine format; guess timestamp format if not milliseconds</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=41913">
      Bug
      41913</a> - TransactionController now creates samples as sub-samples of the transaction</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=42582">
      Bug
      42582</a> - JSON pretty printing in Tree View Listener</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=40099">
      Bug
      40099</a> - Enable use of object variable in ForEachController</li>


<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=39693">
      Bug
      39693</a> - View Result Table uses icon instead of check box</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=39717">
      Bug
      39717</a> - use icons in the results tree</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=42247">
      Bug
      42247</a> - improve HCI</li>

<li>Allow user to cancel out of Close dialogue</li>

</ul>


<h4>Non-functional improvements:</h4>

<ul>

<li>Functor calls can now be unit tested</li>

<li>Replace com.sun.net classes with javax.net</li>

<li>Extract external jar definitions into build.properties file</li>

<li>Use specific jar names in build classpaths so errors are detected sooner</li>

<li>Tidied up ORO calls; now only one cache, size given by oro.patterncache.size, default 1000</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=42326">
      Bug
      42326</a> - Order of elements in .jmx files changes</li>

</ul>


<h4>External jar updates:</h4>

<ul>

<li>Htmlparser 2.0-20060923</li>

<li>xstream 1.2.1/xpp3_min-1.1.3.4.O</li>

<li>Batik 1.6</li>

<li>BSF 2.4.0</li>

<li>commons-collections 3.2</li>

<li>commons-httpclient-3.1-rc1</li>

<li>commons-jexl 1.1</li>

<li>commons-lang-2.3 (added)</li>

<li>JUnit 3.8.2</li>

<li>velocity 1.5</li>

<li>commons-io 1.3.1 (added)</li>

</ul>


<h4>Bug fixes:</h4>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=39773">
      Bug
      39773</a> - NTLM now needs local host name - fix other call</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=40438">
      Bug
      40438</a> - setting "httpclient.localaddress" has no effect</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=40419">
      Bug
      40419</a> - Chinese messages translation fix</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=39861">
      Bug
      39861</a> - fix typo</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=40562">
      Bug
      40562</a> - redirects no longer invoke RE post processors</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=40451">
      Bug
      40451</a> - set label if not set by sampler</li>

<li>Fix NPE in CounterConfig.java in Remote mode</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=40791">
      Bug
      40791</a> - Calculator used by Summary Report</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=40772">
      Bug
      40772</a> - correctly parse missing fields in CSV log files</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=40773">
      Bug
      40773</a> - XML log file timestamp not parsed correctly</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=41029">
      Bug
      41029</a> - JMeter -t fails to close input JMX file</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=40954">
      Bug
      40954</a> - Statistical mode in distributed testing shows wrong results</li>

<li>Fix ClassCast Exception when using sampler that returns null, e..g TestAction</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=41140">
      Bug
      41140</a> - Post-processors are run in reverse order</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=41277">
      Bug
      41277</a> - add Latency and Encoding to CSV output</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=41414">
      Bug
      41414</a> - Mac OS X may add extra item to -jar classpath</li>

<li>Fix NPE when saving thread counts in remote testing</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=34261">
      Bug
      34261</a> - NPE in HtmlParser (allow for missing attributes)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=40100">
      Bug
      40100</a> - check FileServer type before calling close</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=39887">
      Bug
      39887</a> - jmeter.util.SSLManager: Couldn't load keystore error message</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=41543">
      Bug
      41543</a> - exception when webserver returns "500 Internal Server Error" and content-length is 0</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=41416">
      Bug
      41416</a> - don't use chunked input for text-box input in SOAP-RPC sampler</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=39827">
      Bug
      39827</a> - SOAP Sampler content length for files</li>

<li>Fix Class cast exception in Clear.java</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=40383">
      Bug
      40383</a> - don't set content-type if already set</li>

<li>Mailer Visualiser test button now works if test plan has not yet been saved</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=36959">
      Bug
      36959</a> - Shortcuts "ctrl c" and "ctrl v" don't work on the tree elements</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=40696">
      Bug
      40696</a> - retrieve embedded resources from STYLE URL() attributes</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=41568">
      Bug
      41568</a> - Problem when running tests remotely when using a 'Counter'</li>

<li>Fixed various classes that assumed timestamps were always end time stamps:
<ul>

<li>SamplingStatCalculator</li>

<li>JTLData</li>

<li>RunningSample</li>

</ul>

</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=40325">
      Bug
      40325</a> - allow specification of proxyuser and proxypassword for WebServiceSampler</li>

<li>Change HttpClient proxy definition to use NTCredentials; added http.proxyDomain property for this</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=40371">
      Bug
      40371</a> - response assertion "pattern to test" scrollbar problem</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=40589">
      Bug
      40589</a> - Unescape XML entities in embedded URLs</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=41902">
      Bug
      41902</a> - NPE in HTTPSampler when responseCode = -1</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=41903">
      Bug
      41903</a> - ViewResultsFullVisualizer : status column looks bad when you do copy and paste</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=41837">
      Bug
      41837</a> - Parameter value corruption in proxy</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=41905">
      Bug
      41905</a> - Can't cut/paste/select Header Manager fields in Java 1.6</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=41928">
      Bug
      41928</a> - Make all request headers sent by HTTP Request sampler appear in sample result</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=41944">
      Bug
      41944</a> - Subresults not handled recursively by ResultSaver</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=42022">
      Bug
      42022</a> - HTTPSampler does not allow multiple headers of same name</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=42019">
      Bug
      42019</a> - Content type not stored in redirected HTTP request with subresults</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=42057">
      Bug
      42057</a> - connection can be null if method is null</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=41518">
      Bug
      41518</a> - JMeter changes the HTTP header Content Type for POST request</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=42156">
      Bug
      42156</a> - HTTPRequest HTTPClient incorrectly urlencodes parameter value in POST</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=42184">
      Bug
      42184</a> - Number of bytes for subsamples not added to sample when sub samples are added</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=42185">
      Bug
      42185</a> - If a HTTP Sampler follows a redirect, and is set up to download images, then images are downloaded multiple times</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=39808">
      Bug
      39808</a> - Invalid redirect causes incorrect sample time</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=42267">
      Bug
      42267</a> - Concurrent GUI update failure in Proxy Recording</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=30120">
      Bug
      30120</a> - Name of simple controller is resetted if a new simple controller is added as child</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=41078">
      Bug
      41078</a> - merge results in name change of test plan</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=40077">
      Bug
      40077</a> - Creating new Elements copies values from Existing elements</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=42325">
      Bug
      42325</a> - Implement the "clear" method for the LogicControllers</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=25441">
      Bug
      25441</a> - TestPlan changes sometimes detected incorrectly (isDirty)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=39734">
      Bug
      39734</a> - Listeners shared after copy/paste operation</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=40851">
      Bug
      40851</a> - Loop controller with 0 iterations, stops evaluating the iterations field</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=24684">
      Bug
      24684</a> - remote startup problems if spaces in the path of the jmeter</li>

<li>Use Listener configuration when loading CSV data files</li>

<li>Function methods setParameters() need to be synchronized</li>

<li>Fix CLI long optional argument to require "=" (as for short options)</li>

<li>Fix SlowSocket to work properly with Httpclient (both http and https)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=41612">
      Bug
      41612</a> - Loop nested in If Controller behaves erratically</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=42232">
      Bug
      42232</a> - changing language clears UDV contents</li>

<li>Jexl function did not allow variables</li>

</ul>


<h3>Version 2.2</h3>


<h4>Incompatible changes:</h4>

<p>
The time stamp is now set to the sampler start time (it was the end).
To revert to the previous behaviour, change the property <b>sampleresult.timestamp.start</b> to false (or comment it)
</p>

<p>The JMX output format has been simplified and files are not backwards compatible</p>

<p>
The JMeter.BAT file no longer changes directory to JMeter home, but runs from the current working directory.
The jmeter-n.bat and jmeter-t.bat files change to the directory containing the input file.
</p>

<p>
Listeners are now started slightly later in order to allow variable names to be used.
This may cause some problems; if so define the following in jmeter.properties:
<br>
jmeterengine.startlistenerslater=false
</p>


<p>
The GUI now expands the tree by default when loading a test plan.
This can be disabled by setting the JMeter property <b>onload.expandtree=false</b>

</p>


<h4>Known problems:</h4>

<ul>

<li>Post-processors run in reverse order (see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=41140">
      Bug
      41140</a>)</li>

<li>Module Controller does not work in non-GUI mode</li>

<li>Aggregate Report and some other listeners use increasing amounts of memory as a test progresses</li>

<li>Does not always handle non-default encoding properly</li>

<li>Spaces in the installation path cause problems for client-server mode</li>

<li>Change of Language does not propagate to all test elements</li>

<li>SamplingStatCalculator keeps a List of all samples for calculation purposes; 
this can cause memory exhaustion in long-running tests</li>

<li>Does not properly handle server certificates if they are expired or not installed locally</li>

</ul>


<h4>New functionality:</h4>

<ul>

<li>Report function</li>

<li>XPath Extractor Post-Processor. Handles single and multiple matches.</li>

<li>Simpler JMX file format (2.2)</li>

<li>BeanshellSampler code can update ResponseData directly</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=37490">
      Bug
      37490</a> - Allow UDV as delay in Duration Assertion</li>

<li>Slow connection emulation for HttpClient</li>

<li>Enhanced JUnitSampler so that by default assert errors and exceptions are not appended to the error message. 
Users must explicitly check append in the sampler</li>

<li>Enhanced the documentation for webservice sampler to explain how it works with CSVDataSet</li>

<li>Enhanced the documentation for javascript function to explain escaping comma</li>

<li>Allow CSV Data Set file names to be absolute</li>

<li>Report Tree compiler errors better</li>

<li>Don't reset Regex Extractor variable if default is empty</li>

<li>includecontroller.prefix property added</li>

<li>Regular Expression Extractor sets group count</li>

<li>Can now save entire screen as an image, not just the right-hand pane</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=38901">
      Bug
      38901</a> - Add optional SOAPAction header to SOAP Sampler</li>

<li>New BeanShell test elements: Timer, PreProcessor, PostProcessor, Listener</li>

<li>__split() function now clears next variable, so it can be used with ForEach Controller</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=38682">
      Bug
      38682</a> - add CallableStatement functionality to JDBC Sampler</li>

<li>Make it easier to change the RMI/Server port</li>

<li>Add property jmeter.save.saveservice.xml_pi to provide optional xml processing instruction in JTL files</li>

<li>Add bytes and URL to items that can be saved in sample log files (XML and CSV)</li>

<li>The Post-Processor "Save Responses to a File" now saves the generated file name with the
sample, and the file name can be included in the sample log file.
</li>

<li>Change jmeter.bat DOS script so it works from any directory</li>

<li>New -N option to define nonProxyHosts from command-line</li>

<li>New -S option to define system properties from input file</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=26136">
      Bug
      26136</a> - allow configuration of local address</li>

<li>Expand tree by default when loading a test plan - can be disabled by setting property onload.expandtree=false</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=11843">
      Bug
      11843</a> - URL Rewriter can now cache the session id</li>

<li>Counter Pre-Processor now supports formatted numbers</li>

<li>Add support for HEAD PUT OPTIONS TRACE and DELETE methods</li>

<li>Allow default HTTP implementation to be changed</li>

<li>Optionally save active thread counts (group and all) to result files</li>

<li>Variables/functions can now be used in Listener file names</li>

<li>New __time() function; define START.MS/START.YMD/START.HMS properties and variables</li>

<li>Add Thread Name to Tree and Table Views</li>

<li>Add debug functions: What class, debug on, debug off</li>

<li>Non-caching Calculator - used by Table Visualiser to reduce memory footprint</li>

<li>Summary Report - similar to Aggregate Report, but uses less memory</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=39580">
      Bug
      39580</a> - recycle option for CSV Dataset</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=37652">
      Bug
      37652</a> - support for Ajp Tomcat protocol</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=39626">
      Bug
      39626</a> - Loading SOAP/XML-RPC requests from file</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=39652">
      Bug
      39652</a> - Allow truncation of labels on AxisGraph</li>

<li>Allow use of htmlparser 1.6</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=39656">
      Bug
      39656</a> - always use SOAP action if it is provided</li>

<li>Automatically include properties from user.properties file</li>

<li>Add __jexl() function - evaluates Commons JEXL expressions</li>

<li>Optionally load JMeter properties from user.properties and system properties from system.properties.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=39707">
      Bug
      39707</a> - allow Regex match against URL</li>

<li>Add start time to Table Visualiser</li>

<li>HTTP Samplers can now extract embedded resources for any required media types</li>

</ul>


<h4>Bug fixes:</h4>

<ul>

<li>Fix NPE when no module selected in Module Controller</li>

<li>Fix NPE in XStream when no ResponseData present</li>

<li>Remove ?xml prefix when running with Java 1.5 and no x-jars</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=37117">
      Bug
      37117</a> - setProperty() function should return ""; added optional return of original setting</li>

<li>Fix CSV output time format</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=37140">
      Bug
      37140</a> - handle encoding better in RegexFunction</li>

<li>Load all cookies, not just the first; fix class cast exception</li>

<li>Fix default Cookie path name (remove page name)</li>

<li>Fixed resultcode attribute name</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=36898">
      Bug
      36898</a> - apply encoding to RegexExtractor</li>

<li>Add properties for saving subresults, assertions, latency, samplerData, responseHeaders, requestHeaders &amp; encoding</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=37705">
      Bug
      37705</a> - Synch Timer now works OK after run is stopped</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=37716">
      Bug
      37716</a> - Proxy request now handles file Post correctly</li>

<li>HttpClient Sampler now saves latency</li>

<li>Fix NPE when using JavaScript function on Test Plan</li>

<li>Fix Base Href parsing in htmlparser</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=38256">
      Bug
      38256</a> - handle cookie with no path</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=38391">
      Bug
      38391</a> - use long when accumulating timer delays</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=38554">
      Bug
      38554</a> - Random function now uses long numbers</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=35224">
      Bug
      35224</a> - allow duplicate attributes for LDAP sampler</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=38693">
      Bug
      38693</a> - Webservice sampler can now use https protocol</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=38646">
      Bug
      38646</a> - Regex Extractor now clears old variables on match failure</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=38640">
      Bug
      38640</a> - fix WebService Sampler pooling</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=38474">
      Bug
      38474</a> - HTML Link Parser doesn't follow frame links</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=36430">
      Bug
      36430</a> - Counter now uses long rather than int to increase the range</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=38302">
      Bug
      38302</a> - fix XPath function</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=38748">
      Bug
      38748</a> - JDBC DataSourceElement fails with remote testing</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=38902">
      Bug
      38902</a> - sometimes -1 seems to be returned unnecessarily for response code</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=38840">
      Bug
      38840</a> - make XML Assertion thread-safe</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=38681">
      Bug
      38681</a> - Include controller now works in non-GUI mode</li>

<li>Add write(OS,IS) implementation to TCPClientImpl</li>

<li>Sample Result converter saves response code as "rc". Previously it saved as "rs" but read with "rc"; it will now also read with "rc".
The XSL stylesheets also now accept either "rc" or "rs"</li>

<li>Fix counter function so each counter instance is independent (previously the per-user counters were shared between instances of the function)</li>

<li>Fix TestBean Examples so that they work</li>

<li>Fix JTidy parser so it does not skip body tags with background images</li>

<li>Fix HtmlParser parser so it catches all background images</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=39252">
      Bug
      39252</a> set SoapSampler sample result from XML data</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=38694">
      Bug
      38694</a> - WebServiceSampler not setting data encoding correctly</li>

<li>Result Collector now closes input files read by listeners</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=25505">
      Bug
      25505</a> - First HTTP sampling fails with "HTTPS hostname wrong: should be 'localhost'"</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=25236">
      Bug
      25236</a> - remove double scrollbar from Assertion Result Listener</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=38234">
      Bug
      38234</a> - Graph Listener divide by zero problem</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=38824">
      Bug
      38824</a> - clarify behaviour of Ignore Status</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=38250">
      Bug
      38250</a> - jmeter.properties "language" now supports country suffix, for zh_CN and zh_TW etc</li>

<li>jmeter.properties file is now closed after it has been read</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=39533">
      Bug
      39533</a> - StatCalculator added wrong items</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=39599">
      Bug
      39599</a> - ConcurrentModificationException</li>

<li>HTTPSampler2 now handles Auto and Follow redirects correctly</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=29481">
      Bug
      29481</a> - fix reloading sample results so subresults not counted twice</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=30267">
      Bug
      30267</a> - handle AutoRedirects properly</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=39677">
      Bug
      39677</a> - allow for space in JMETER_BIN variable</li>

<li>Use Commons HttpClient cookie parsing and management. Fix various problems with cookie handling.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=39773">
      Bug
      39773</a> - NTCredentials needs host name</li>

</ul>


<h4>Other changes</h4>

<ul>

<li>Updated to HTTPClient 3.0 (from 2.0)</li>

<li>Updated to Commons Collections 3.1</li>

<li>Improved formatting of Request Data in Tree View</li>

<li>Expanded user documentation</li>

<li>Added MANIFEST, NOTICE and LICENSE to all jars</li>

<li>Extract htmlparser interface into separate jarfile to make it possible to replace the parser</li>

<li>Removed SQL Config GUI as no longer needed (or working!)</li>

<li>HTTPSampler no longer logs a warning for Page not found (404)</li>

<li>StringFromFile now callable as __StringFromFile (as well as _StringFromFile)</li>

<li>Updated to Commons Logging 1.1</li>

</ul>





<hr>

<h3>Version 2.1.1</h3>

<h4>New functionality:</h4>

<ul>

<li>New Include Controller allows a test plan to reference an external jmx file</li>

<li>New JUnitSampler added for using JUnit Test classes</li>

<li>New Aggregate Graph listener is capable of graphing aggregate statistics</li>

<li>Can provide additional classpath entries using the property user.classpath and on the Test Plan element</li>

</ul>

<h4>Bug fixes:</h4>

<ul>

<li>AccessLog Sampler and JDBC test elements populated correctly from 2.0 test plans</li>

<li>BSF Sampler now populates filename and parameters from saved test plan</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=36500">
      Bug
      36500</a> - handle missing data more gracefully in WebServiceSampler</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=35546">
      Bug
      35546</a> - add merge to right-click menu</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=36642">
      Bug
      36642</a> - Summariser stopped working in 2.1</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=36618">
      Bug
      36618</a> - CSV header line did not match saved data</li>

<li>JMeter should now run under JVM 1.3 (but does not build with 1.3)</li>

</ul>





<h3>Version 2.1</h3>

<h4>New functionality:</h4>

<ul>

<li>New Test Script file format - smaller, more compact, more readable</li>

<li>New Sample Result file format - smaller, more compact</li>

<li>XSchema Assertion</li>

<li>XML Tree display</li>

<li>CSV DataSet Config item</li>

<li>New JDBC Connection Pool Config Element</li>

<li>Synchronisation Timer</li>

<li>setProperty function</li>

<li>Save response data on error</li>

<li>Ant JMeter XSLT now optionally shows failed responses and has internal links</li>

<li>Allow JavaScript variable name to be omitted</li>

<li>Changed following Samplers to set sample label from sampler name</li>

<li>All Test elements can be saved as a graphics image to a file</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=35026">
      Bug
      35026</a> - add RE pattern matching to Proxy</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=34739">
      Bug
      34739</a> - Enhance constant Throughput timer</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=25052">
      Bug
      25052</a> - use response encoding to create comparison string in Response Assertion</li>

<li>New optional icons</li>

<li>Allow icons to be defined via property files</li>

<li>New stylesheets for 2.1 format XML test output</li>

<li>Save samplers, config element and listeners as PNG</li>

<li>Enhanced support for WSDL processing</li>

<li>New JMS sampler for topic and queue messages</li>

<li>How-to for JMS samplers</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=35525">
      Bug
      35525</a> - Added Spanish localisation</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=30379">
      Bug
      30379</a> - allow server.rmi.port to be overridden</li>

<li>enhanced the monitor listener to save the calculated stats</li>

<li>Functions and variables now work at top level of test plan</li>

</ul>

<h4>Bug fixes:</h4>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=34586">
      Bug
      34586</a> - XPath always remained as /</li>

<li>BeanShellInterpreter did not handle null objects properly</li>

<li>Fix Chinese resource bundle names</li>

<li>Save field names if required to CSV files</li>

<li>Ensure XML file is closed</li>

<li>Correct icons now displayed for TestBean components</li>

<li>Allow for missing optional jar(s) in creating menus</li>

<li>Changed Samplers to set sample label from sampler name as was the case for HTTP</li>

<li>Fix various samplers to avoid NPEs when incomplete data is provided</li>

<li>Fix Cookie Manager to use seconds; add debug</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=35067">
      Bug
      35067</a> - set up filename when using -t option</li>

<li>Don't substitute TestElement.* properties by UDVs in Proxy</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=35065">
      Bug
      35065</a> - don't save old extensions in File Saver</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=25413">
      Bug
      25413</a> - don't enable Restart button unnecessarily</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=35059">
      Bug
      35059</a> - Runtime Controller stopped working</li>

<li>Clear up any left-over connections created by LDAP Extended Sampler</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=23248">
      Bug
      23248</a> - module controller didn't remember stuff between save and reload</li>

<li>Fix Chinese locales</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=29920">
      Bug
      29920</a> - change default locale if necessary to ensure default properties are picked up when English is selected.</li>

<li>Bug fixes for Tomcat monitor captions</li> 

<li>Fixed webservice sampler so it works with user defined variables</li>

<li>Fixed screen borders for LDAP config GUI elements</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=31184">
      Bug
      31184</a> - make sure encoding is specified in JDBC sampler</li>

<li>TCP sampler - only share sockets with same host:port details; correct the manual</li>

<li>Extract src attribute for embed tags in JTidy and Html Parsers</li>

</ul>




<h3>Version 2.0.3</h3>

<h4>New functionality:</h4>

<ul>

<li>XPath Assertion and XPath Function</li>

<li>Switch Controller</li>

<li>ForEach Controller can now loop through sets of groups</li>

<li>Allow CSVRead delimiter to be changed (see jmeter.properties)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=33920">
      Bug
      33920</a> - allow additional property files</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=33845">
      Bug
      33845</a> - allow direct override of Home dir</li>

</ul>

<h4>Bug fixes:</h4>

<ul>

<li>Regex Extractor nested constant not put in correct place <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=32395">
      Bug
      32395</a>
</li>

<li>Start time reset to now if necessary so that delay works OK.</li>

<li>Missing start/end times in scheduler are assumed to be now, not 1970</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=28661">
      Bug
      28661</a> - 304 responses not appearing in listeners</li>

<li>DOS scripts now handle different disks better</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=32345">
      Bug
      32345</a> - HTTP Rewriter does not work with HTTP Request default</li>

<li>Catch Runtime Exceptions so an error in one Listener does not affect others</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=33467">
      Bug
      33467</a> - __threadNum() extracted number wrongly </li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=29186">
      Bug
      29186</a>,33299 - fix CLI parsing of "-" in second argument</li>

<li>Fix CLI parse bug: -D arg1=arg2. Log more startup parameters.</li>

<li>Fix JTidy and HTMLParser parsers to handle form src= and link rel=stylesheet</li>

<li>JMeterThread now logs Errors to jmeter.log which were appearing on console</li>

<li>Ensure WhileController condition is dynamically checked</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=32790">
      Bug
      32790</a> ensure If Controller condition is re-evaluated each time</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=30266">
      Bug
      30266</a> - document how to display proxy recording responses</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=33921">
      Bug
      33921</a> - merge should not change file name</li>

<li>Close file now gives chance to save changes</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=33559">
      Bug
      33559</a> - fixes to Runtime Controller</li>

</ul>

<h4>Other changes:</h4>

<ul>

<li>To help with variable evaluation, JMeterThread sets "sampling started" a bit earlier (see jmeter.properties)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=33796">
      Bug
      33796</a> - delete cookies with null/empty values</li>

<li>Better checking of parameter count in JavaScript function</li>

<li>Thread Group now defaults to 1 loop instead of forever</li>

<li>All Beanshell access is now via a single class; only need BSH jar at run-time</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=32464">
      Bug
      32464</a> - document Direct Draw settings in jmeter.bat</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=33919">
      Bug
      33919</a> - increase Counter field sizes</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=32252">
      Bug
      32252</a> - ForEach was not initialising counters</li>

</ul>




<h3>Version 2.0.2</h3>

<h4>New functionality:</h4>

<ul>

<li>While Controller</li>

<li>BeanShell initialisation scripts</li>

<li>Result Saver can optionally save failed results only</li>

<li>Display as HTML has option not to download frames and images etc</li>

<li>Multiple Tree elements can now be enabled/disabled/copied/pasted at once</li>

<li>__split() function added</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=28699">
      Bug
      28699</a> allow Assertion to regard unsuccessful responses - e.g. 404 - as successful</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=29075">
      Bug
      29075</a> Regex Extractor can now extract data out of http response header as well as the body</li>

<li>__log() functions can now write to stdout and stderr</li>

<li>URL Modifier can now optionally ignore query parameters</li>

</ul>

<h4>Bug fixes:</h4>

<ul>

<li>If controller now works after the first false condition <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=31390">
      Bug
      31390</a>
</li>

<li>Regex GUI was losing track of Header/Body checkbox <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=29853">
      Bug
      29853</a>
</li>

<li>Display as HTML now handles frames and relative images</li>

<li>Right-click open replaced by merge</li>

<li>Fix some drag and drop problems</li>

<li>Fixed foreach demo example so it works</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=30741">
      Bug
      30741</a> SSL password prompt now works again </li>

<li>StringFromFile now closes files at end of test; start and end now optional as intended</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=31342">
      Bug
      31342</a> Fixed text of SOAP Sampler headers</li>

<li>Proxy must now be stopped before it can be removed <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=25145">
      Bug
      25145</a>
</li>

<li>Link Parser now supports BASE href <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=25490">
      Bug
      25490</a>
</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=30917">
      Bug
      30917</a> Classfinder ignores duplicate names</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=22820">
      Bug
      22820</a> Allow Counter value to be cleared</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=28230">
      Bug
      28230</a> Fix NPE in HTTP Sampler retrieving embedded resources</li>

<li>Improve handling of StopTest; catch and log some more errors</li>

<li>ForEach Controller no longer runs any samples if first variable is not defined</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=28663">
      Bug
      28663</a> NPE in remote JDBC execution</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=30110">
      Bug
      30110</a> Deadlock in stopTest processing</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=31696">
      Bug
      31696</a> Duration not working correctly when using Scheduler</li>

<li>JMeterContext now uses ThreadLocal - should fix some potential NPE errors</li>

</ul>

<h3>Version 2.0.1</h3>

<p>Bug fix release. TBA.</p>

<h3>Version 2.0</h3>

<ul>
    
<li>HTML parsing improved; now has choice of 3 parsers, and most embedded elements can now be detected and downloaded.</li>

<li>Redirects can now be delegated to URLConnection by defining the JMeter property HTTPSamper.delegateRedirects=true (default is false) </li>

<li>Stop Thread and Stop Test methods added for Samplers and Assertions etc. Samplers can call setStopThread(true) or setStopTest(true) if they detect an error that needs to stop the thread of the test after the sample has been processed </li>

<li>Thread Group Gui now has an extra pane to specify what happens after a Sampler error: Continue (as now), Stop Thread or Stop Test. 
    This needs to be extended to a lower level at some stage. </li>

<li>Added Shutdown to Run Menu. This is the same as Stop except that it lets the Threads finish normally (i.e. after the next sample has been completed) </li>

<li>Remote samples can be cached until the end of a test by defining the property hold_samples=true when running the server.
More work is needed to be able to control this from the GUI </li>

<li>Proxy server has option to skip recording browser headers </li>

<li>Proxy restart works better (stop waits for daemon to finish) </li>

<li>Scheduler ignores start if it has already passed </li>

<li>Scheduler now has delay function </li>

<li>added Summariser test element (mainly for non-GUI) testing. This prints summary statistics to System.out and/or the log file every so often (3 minutes by default). Multiple summarisers can be used; samples are accumulated by summariser name. </li>

<li>Extra Proxy Server options: 
Create all samplers with keep-alive disabled 
Add Separator markers between sets of samples 
Add Response Assertion to first sampler in each set </li>

<li>Test Plan has a comment field</li>

    
<li>Help Page can now be pushed to background</li>
    
<li>Separate Function help page</li>
    
<li>New / amended functions</li>
    
<ul>
      
<li>__property() and __P() functions</li>
      
<li>__log() and __logn() - for writing to the log file</li>
      
<li>_StringFromFile can now process a sequence of files, e.g. dir/file01.txt, dir/file02.txt etc </li>
      
<li>_StringFromFile() function can now use a variable or function for the file name </li>
    
</ul>
    
<li>New / amended Assertions</li>
    
<ul>
        
<li>Response Assertion now works for URLs, and it handles null data better </li>
        
<li>Response Assertion can now match on Response Code and Response message as well </li>
        
<li>HTML Assertion using JTidy to check for well-formed HTML</li>
    
</ul>
    
<li>If Controller (not fully functional yet)</li>
    
<li>Transaction Controller (aggregates the times of its children)</li>
    
<li>New Samplers</li>
        
<ul>
            
<li>Basic BSF Sampler (optional)</li>
            
<li>BeanShell Sampler (optional, needs to be downloaded from www.beanshell.org</li>
            
<li>Basic TCP Sampler</li>
        
</ul>
     
<li>Optionally start BeanShell server (allows remote access to JMeter variables and methods) </li>

</ul>

<h3>Version 1.9.1</h3>

<p>TBA</p>

<h3>Version 1.9</h3>

<ul>

<li>Sample result log files can now be in CSV or XML format</li>

<li>New Event model for notification of iteration events during test plan run</li>

<li>New Javascript function for executing arbitrary javascript statements</li>

<li>Many GUI improvements</li>

<li>New Pre-processors and Post-processors replace Modifiers and Response-Based Modifiers. </li>

<li>Compatible with jdk1.3</li>

<li>JMeter functions are now fully recursive and universal (can use functions as parameters to functions)</li>

<li>Integrated help window now supports hypertext links</li>

<li>New Random Function</li>

<li>New XML Assertion</li>

<li>New LDAP Sampler (alpha code)</li>

<li>New Ant Task to run JMeter (in extras folder)</li>

<li>New Java Sampler test implementation (to assist developers)</li>

<li>More efficient use of memory, faster loading of .jmx files</li>

<li>New SOAP Sampler (alpha code)</li>

<li>New Median calculation in Graph Results visualizer</li>

<li>Default config element added for developer benefit</li>

<li>Various performance enhancements during test run</li>

<li>New Simple File recorder for minimal GUI overhead during test run</li>

<li>New Function: StringFromFile - grabs values from a file</li>

<li>New Function: CSVRead - grabs multiple values from a file</li>

<li>Functions now longer need to be encoded - special values should be escaped 
with "\" if they are literal values</li>

<li>New cut/copy/paste functionality</li>

<li>SSL testing should work with less user-fudging, and in non-gui mode</li>

<li>Mailer Model works in non-gui mode</li>

<li>New Throughput Controller</li>

<li>New Module Controller</li>

<li>Tests can now be scheduled to run from a certain time till a certain time</li>

<li>Remote JMeter servers can be started from a non-gui client.  Also, in gui mode, all remote servers can be started with a single click</li>

<li>ThreadGroups can now be run either serially or in parallel (default)</li>

<li>New command line options to override properties</li>

<li>New Size Assertion</li>


</ul>


<h3>Version 1.8.1</h3>

<ul>

<li>Bug Fix Release.  Many bugs were fixed.</li>

<li>Removed redundant "Root" node from test tree.</li>

<li>Re-introduced Icons in test tree.</li>

<li>Some re-organization of code to improve build process.</li>

<li>View Results Tree has added option to view results as web document (still buggy at this point).</li>

<li>New Total line in Aggregate Listener (still buggy at this point).</li>

<li>Improvements to ability to change JMeter's Locale settings.</li>

<li>Improvements to SSL Manager.</li>

</ul>


<h3>Version 1.8</h3>

<ul>

<li>Improvement to Aggregate report's calculations.</li>

<li>Simplified application logging.</li>

<li>New Duration Assertion.</li>

<li>Fixed and improved Mailer Visualizer.</li>

<li>Improvements to HTTP Sampler's recovery of resources (sockets and file handles).</li>

<li>Improving JMeter's internal handling of test start/stop.</li>

<li>Fixing and adding options to behavior of Interleave and Random Controllers.</li>

<li>New Counter config element.</li>

<li>New User Parameters config element.</li>

<li>Improved performance of file opener.</li>

<li>Functions and other elements can access global variables.</li>

<li>Help system available within JMeter's GUI.</li>

<li>Test Elements can be disabled.</li>

<li>Language/Locale can be changed while running JMeter (mostly).</li>

<li>View Results Tree can be configured to record only errors.</li>

<li>Various bug fixes.</li>

</ul>


<h3>Version 1.7.3</h3>

<ul>

<li>New Functions that provide more ability to change requests dynamically during test runs.</li>

<li>New language translations in Japanese and German.</li>

<li>Removed annoying Log4J error messages.</li>

<li>Improved support for loading JMeter 1.7 version test plan files (.jmx files).</li>

<li>JMeter now supports proxy servers that require username/password authentication.</li>

<li>Dialog box indicating test stopping doesn't hang JMeter on problems with stopping test.</li>

<li>GUI can run multiple remote JMeter servers (fixes GUI bug that prevented this).</li>

<li>Dialog box to help created function calls in GUI.</li>

<li>New Keep-alive switch in HTTP Requests to indicate JMeter should or should not use Keep-Alive for sockets.</li>

<li>HTTP Post requests can have GET style arguments in Path field.  Proxy records them correctly now.</li>

<li>New User-defined test-wide static variables.</li>

<li>View Results Tree now displays more information, including name of request (matching the name
in the test tree) and full request and POST data.</li>

<li>Removed obsolete View Results Visualizer (use View Results Tree instead).</li>

<li>Performance enhancements.</li>

<li>Memory use enhancements.</li>

<li>Graph visualizer GUI improvements.</li>

<li>Updates and fixes to Mailer Visualizer.</li>

</ul>
 

<h3>Version 1.7.2</h3>

<ul>

<li>JMeter now notifies user when test has stopped running.</li>

<li>HTTP Proxy server records HTTP Requests with re-direct turned off.</li>

<li>HTTP Requests can be instructed to either follow redirects or ignore them.</li>

<li>Various GUI improvements.</li>

<li>New Random Controller.</li>

<li>New SOAP/XML-RPC Sampler.</li>

</ul>


<h3>Version 1.7.1</h3>

<ul>

<li>JMeter's architecture revamped for a more complete separation between GUI code and
test engine code.</li>

<li>Use of Avalon code to save test plans to XML as Configuration Objects</li>

<li>All listeners can save data to file and load same data at later date.</li>

</ul>


<h3>Version 1.7Beta</h3> 

<ul> 
    
<li>Better XML support for special characters (Tushar Bhatia) </li> 
    
<li>Non-GUI functioning  &amp; Non-GUI test plan execution  (Tushar Bhatia)</li> 
    
<li>Removing Swing dependence from base JMeter classes</li> 
    
<li>Internationalization (Takashi Okamoto)</li> 
    
<li>AllTests bug fix (neth6@atozasia.com)</li> 
    
<li>ClassFinder bug fix (neth6@atozasia.com)</li> 
    
<li>New Loop Controller</li> 
    
<li>Proxy Server records HTTP samples from browser 
        (and documented in the user manual)</li> 
<li>Multipart Form support</li> 
    
<li>HTTP Header class for Header customization</li> 
    
<li>Extracting HTTP Header information from responses (Jamie Davidson)</li> 
    
<li>Mailer Visualizer re-added to JMeter</li> 
    
<li>JMeter now url encodes parameter names and values</li> 
    
<li>listeners no longer give exceptions if their gui's haven't been initialized</li> 
    
<li>HTTPS and Authorization working together</li> 
    
<li>New Http sampling that automatically parses HTML response 
        for images to download, and includes the downloading of these 
        images in total time for request (Neth neth6@atozasia.com) </li> 
    
<li>HTTP responses from server can be parsed for links and forms, 
        and dynamic data can be extracted and added to test samples 
        at run-time (documented)</li>  
    
<li>New Ramp-up feature (Jonathan O'Keefe)</li> 
    
<li>New visualizers (Neth)</li> 
    
<li>New Assertions for functional testing</li> 

</ul>  


<h3>Version 1.6.1</h3> 

<ul> 
    
<li>Fixed saving and loading of test scripts (no more extra lines)</li> 
    
<li>Can save and load special characters (such as "&amp;" and "&lt;").</li> 
    
<li>Can save and load timers and listeners.</li> 
    
<li>Minor bug fix for cookies (if you cookie value 
        contained an "=", then it broke).</li> 
    
<li>URL's can sample ports other than 80, and can test HTTPS, 
        provided you have the necessary jars (JSSE)</li> 

</ul> 


<h3>Version 1.6 Alpha</h3> 

<ul> 
    
<li>New UI</li> 
    
<li>Separation of GUI and Logic code</li>
    
<li>New Plug-in framework for new modules</li> 
    
<li>Enhanced performance</li> 
    
<li>Layering of test logic for greater flexibility</li> 
    
<li>Added support for saving of test elements</li> 
    
<li>Added support for distributed testing using a single client</li> 


</ul> 

<h3>Version 1.5.1</h3> 

<ul> 
    
<li>Fixed bug that caused cookies not to be read if header name case not as expected.</li> 
    
<li>Clone entries before sending to sampler - prevents relocations from messing up 
        information across threads</li> 
    
<li>Minor bug fix to convenience dialog for adding parameters to test sample.  
        Bug prevented entries in dialog from appearing in test sample.</li> 
    
<li>Added xerces.jar to distribution</li> 
    
<li>Added junit.jar to distribution and created a few tests.</li> 
    
<li>Started work on new framework.  New files in cvs, but do not effect program yet.</li> 
    
<li>Fixed bug that prevent HTTPJMeterThread from delaying according to chosen timer.</li> 

</ul>  

<p> 

<h3>Version 1.5</h3> 

<ul>   
    
<li>Abstracted out the concept of the Sampler, SamplerController, and TestSample.   
        A Sampler represents code that understands a protocol (such as HTTP, 
        or FTP, RMI,   SMTP, etc..).  It is the code that actually makes the 
        connection to whatever is   being tested.   A SamplerController 
        represents code that understands how to organize and run a group   
        of test samples.  It is what binds together a Sampler and its test 
        samples and runs them.   A TestSample represents code that understands 
        how to gather information from the   user about a particular test.  
        For a website, it would represent a URL and any   information to be sent 
        with the URL.</li>   
    
<li>The UI has been updated to make entering test samples more convenient.</li>   
    
<li>Thread groups have been added, allowing a user to setup multiple test to run   
        concurrently, and to allow sharing of test samples between those tests.</li>   
    
<li>It is now possible to save and load test samples.</li>   
    
<li>&hellip; and many more minor changes/improvements &hellip;</li> 

</ul> 

</p> 

<p> 

<b>Apache JMeter 1.4.1-dev</b> 

<ul>
   
<li>Cleaned up URLSampler code after tons of patches for better readability. (SM)</li>
   
<li>Made JMeter send a special "user-agent" identifier. (SM)</li>
   
<li>Fixed problems with redirection not sending cookies and authentication info and removed
     a warning with jikes compilation. Thanks to Wesley Tanaka for the patches (SM)</li>
   
<li>Fixed a bug in the URLSampler that caused to skip one URL when testing lists of URLs and
     a problem with Cookie handling. Thanks to Graham Johnson for the patches (SM)</li>
   
<li>Fixed a problem with POST actions. Thanks to Stephen Schaub for the patch (SM)</li>
 
</ul>
 
</p>
 
<p>
 
<b>Apache JMeter 1.4</b> - Jul 11 1999
  <ul>
   
<li>Fixed a problem with POST actions. Thanks to Brendan Burns for the patch (SM)</li>
   
<li>Added close button to the About box for those window managers who don't provide it.
     Thanks to Jan-Henrik Haukeland for pointing it out. (SM)</li>
   
<li>Added the simple Spline sample visualizer (JPN)</li> 

</ul> 
</p>
  
<p>
<b>Apache JMeter 1.3</b> - Apr 16 1999
<ul>
   
<li>Run the Garbage Collector and run finalization before starting to sampling to ensure
     same state every time (SM)</li>
   
<li>Fixed some NullPointerExceptions here and there (SM)</li>
   
<li>Added HTTP authentication capabilities (RL)</li>
   
<li>Added windowed sample visualizer (SM)</li>
   
<li>Fixed stupid bug for command line arguments. Thanks to Jorge Bracer for pointing this out (SM)</li> 

</ul> 
</p>
  
<p>
<b>Apache JMeter 1.2</b> - Mar 17 1999
<ul>
   
<li>Integrated cookie capabilities with JMeter (SM)</li>
   
<li>Added the Cookie manager and Netscape file parser (SD)</li>
   
<li>Fixed compilation error for JDK 1.1 (SD)</li> 
</ul> 
</p>  

<p> 
<b>Apache JMeter 1.1</b> - Feb 24 1999
<ul>
   
<li>Created the opportunity to create URL aliasing from the properties file as well as the
     ability to associate aliases to URL sequences instead of single URLs (SM) Thanks to
     Simon Chatfield for the very nice suggestions
     and code examples.</li>
   
<li>Removed the TextVisualizer and replaced it with the much more useful FileVisualizer (SM)</li>
   
<li>Added the known bug list (SM)</li>
   
<li>Removed the Java Apache logo (SM)</li>
   
<li>Fixed a couple of typos (SM)</li>
   
<li>Added UNIX makefile (SD)</li> 
</ul> 
</p> 

<p> 
<b>Apache JMeter 1.0.1</b> - Jan 25 1999
<ul>
   
<li>Removed pending issues doc issues (SM)</li>
   
<li>Fixed the unix script (SM)</li>
   
<li>Added the possibility of running the JAR directly using "java -jar
     ApacheJMeter.jar" with Java 2 (SM)</li>
   
<li>Some small updates: fixed Swing location after Java 2(tm) release, license update and
     small cleanups (SM)</li> 

</ul> 
</p> 

<p> 
<b>Apache JMeter 1.0</b> - Dec 15 1998
<ul>
   
<li>Initial version. (SM)</li> 

</ul> 
</p> 

</div>
<div class="share-links">
      Share this page:
      <ul>
<li class="fb">
<a data-social-url="https://facebook.com/sharer/sharer.php?u=" title="Share on facebook"><i class="fa fa-facebook" aria-hidden="true"></i>share</a>
</li>
<li class="twitter">
<a data-social-url="https://twitter.com/intent/tweet?url=" title="Tweet on twitter"><i class="fa fa-twitter" aria-hidden="true"></i>tweet</a>
</li>
</ul>
</div>
<a href="#top" id="topButton">Go to top</a>
</div>
<div class="footer">
<div class="copyright">
            Copyright &copy;
            1999 &ndash;
            2019
            , Apache Software Foundation
          </div>
<div class="trademarks">Apache, Apache JMeter, JMeter, the Apache
            feather, and the Apache JMeter logo are
            trademarks of the
            Apache Software Foundation.
          </div>
</div>
<script>(function(){
            "use strict";
            // enable 'go to top' button functionality
            document.addEventListener('scroll', function() {
                if (document.body.scrollTop > 500 || document.documentElement.scrollTop > 500) {
                    document.getElementById("topButton").style.display = "block";
                } else {
                    document.getElementById("topButton").style.display = "none";
                }
            });
            // fill in the current location into social links on this page.
            var as = document.getElementsByTagName('a');
            var loc = document.location.href;
            if (!loc.toLowerCase().startsWith('http')) {
                return;
            }
            for (var i=0; i<as.length; i++) {
                var href = as[i].getAttribute('data-social-url');
                if (href !== null) {
                    as[i].href = href + encodeURIComponent(loc);
                }
            }
        })();</script>
</body>
</html>
