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

<p>
Summary
</p>

<ul>

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

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

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

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

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

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

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


</ul>


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


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

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

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

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


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


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

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


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


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


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


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


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


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


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


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


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




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

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

</ul>



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


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

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

</ul>


<h3>Other samplers</h3>

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

</ul>


<h3>Controllers</h3>

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

</ul>


<h3>Listeners</h3>

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

</ul>


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

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

</ul>


<h3>Functions</h3>

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

</ul>


<h3>I18N</h3>

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

</ul>


<h3>Report / Dashboard</h3>

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

</ul>


<h3>General</h3>

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

</ul>


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

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

</ul>

 


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


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

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

</ul>


<h3>Other Samplers</h3>

<ul>

</ul>


<h3>Controllers</h3>

<ul>

</ul>


<h3>Listeners</h3>

<ul>

</ul>


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

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

</ul>


<h3>Functions</h3>

<ul>

</ul>


<h3>I18N</h3>

<ul>

</ul>


<h3>Report / Dashboard</h3>

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

</ul>


<h3>Documentation</h3>

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

</ul>


<h3>General</h3>

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

</ul>

 


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

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

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

</ul>

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

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

</ul>

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


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

<ul>

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


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


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


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


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


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


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


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

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

</li>

</ul>




<h1>Version 5.2.1</h1>

<p>
Summary
</p>

<ul>

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

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

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

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

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

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

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


</ul>


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

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





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

<ul>

</ul>



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


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

<ul>

</ul>


<h3>Other samplers</h3>

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

</ul>


<h3>Controllers</h3>

<ul>

</ul>


<h3>Listeners</h3>

<ul>

</ul>


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

<ul>

</ul>


<h3>Functions</h3>

<ul>

</ul>


<h3>I18N</h3>

<ul>

</ul>


<h3>Report / Dashboard</h3>

<ul>

</ul>


<h3>General</h3>

<ul>

</ul>


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

<ul>

</ul>

 


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


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

<ul>

</ul>


<h3>Other Samplers</h3>

<ul>

</ul>


<h3>Controllers</h3>

<ul>

</ul>


<h3>Listeners</h3>

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

</ul>


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

<ul>

</ul>


<h3>Functions</h3>

<ul>

</ul>


<h3>I18N</h3>

<ul>

</ul>


<h3>Report / Dashboard</h3>

<ul>

</ul>


<h3>Documentation</h3>

<ul>

</ul>


<h3>General</h3>

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

</ul>

 


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

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

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

</ul>

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

<ul>

</ul>

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


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

<ul>

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


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


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


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


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


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


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


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

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

</li>

</ul>




<h1>Version 5.2</h1>

<p>
Summary
</p>

<ul>

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

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

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

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

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

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

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


</ul>


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

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





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

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

     
</li>

</ul>



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


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

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

</ul>


<h3>Other samplers</h3>

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

</ul>


<h3>Controllers</h3>

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

</ul>


<h3>Listeners</h3>

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

</ul>


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

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

</ul>


<h3>Functions</h3>

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

</ul>


<h3>I18N</h3>

<ul>

</ul>


<h3>Report / Dashboard</h3>

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

</ul>


<h3>General</h3>

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

</ul>


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

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

</ul>

 


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


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

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

</ul>


<h3>Other Samplers</h3>

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

</ul>


<h3>Controllers</h3>

<ul>

</ul>


<h3>Listeners</h3>

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

</ul>


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

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

</ul>


<h3>Functions</h3>

<ul>

</ul>


<h3>I18N</h3>

<ul>

</ul>


<h3>Report / Dashboard</h3>

<ul>

</ul>


<h3>Documentation</h3>

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

</ul>


<h3>General</h3>

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

</ul>

 


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

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

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

</ul>

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

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

</ul>

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


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

<ul>

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


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


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


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


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


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


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


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

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

</li>

</ul>




<h1>Version 5.1.1</h1>

<p>
Summary
</p>

<ul>

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

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

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

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

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

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

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


</ul>


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

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


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

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

<br>

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

</p>




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

<ul>

</ul>



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


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

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

</ul>


<h3>Other samplers</h3>

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

</ul>


<h3>Controllers</h3>

<ul>

</ul>


<h3>Listeners</h3>

<ul>

</ul>


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

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

</ul>


<h3>Functions</h3>

<ul>

</ul>


<h3>I18N</h3>

<ul>

</ul>


<h3>Report / Dashboard</h3>

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

</ul>


<h3>General</h3>

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

</ul>


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

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

</ul>

 


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


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

<ul>

</ul>


<h3>Other Samplers</h3>

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

</ul>


<h3>Controllers</h3>

<ul>

</ul>


<h3>Listeners</h3>

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

</ul>


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

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

</ul>


<h3>Functions</h3>

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

</ul>


<h3>I18N</h3>

<ul>

</ul>


<h3>Report / Dashboard</h3>

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

</ul>


<h3>Documentation</h3>

<ul>

</ul>


<h3>General</h3>

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

</ul>

 


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

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

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

</ul>

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

<ul>

</ul>

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


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

<ul>

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


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


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


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


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


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


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

</ul>




<h1>Version 5.1</h1>

<p>
Summary
</p>

<ul>

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

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

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

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

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

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

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


</ul>


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

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

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

</p>

<ul>

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

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

</ul>

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

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

</p>

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

</ul>

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

</p>

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

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

</p>

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

<ul>

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

</ul>

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

<ul>

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

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

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

</ul>




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

<ul>

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

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

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

</li>

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

</ul>



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


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

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

</ul>


<h3>Other samplers</h3>

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

</ul>


<h3>Controllers</h3>

<ul>

</ul>


<h3>Listeners</h3>

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

</ul>


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

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

</ul>


<h3>Functions</h3>

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

</ul>


<h3>I18N</h3>

<ul>

</ul>


<h3>Report / Dashboard</h3>

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

</ul>


<h3>General</h3>

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

</ul>


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

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

</ul>

 


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


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

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

</ul>


<h3>Other Samplers</h3>

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

</ul>


<h3>Controllers</h3>

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

</ul>


<h3>Listeners</h3>

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

</ul>


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

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

</ul>


<h3>Functions</h3>

<ul>

</ul>


<h3>I18N</h3>

<ul>

</ul>


<h3>Report / Dashboard</h3>

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

</ul>


<h3>Documentation</h3>

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

</ul>


<h3>General</h3>

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

</ul>

 


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

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

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

</ul>

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

<ul>

</ul>

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


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

<ul>

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


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


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


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


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


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


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

</ul>




<h1>Version 5.0</h1>

<p>
Summary
</p>

<ul>

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

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

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

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

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

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

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


</ul>


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

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

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

</ul>

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

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

</p>

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

</p>

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

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

</p>

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

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

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


</p>

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


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

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

</p>

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

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

</p>

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

</p>

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

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

</p>


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

</p>

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

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

</p>

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

</p>


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


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

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




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

<ul>

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

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

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

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

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

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


</ul>



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


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

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

</ul>


<h3>Other samplers</h3>

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

</ul>


<h3>Controllers</h3>

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

</ul>


<h3>Listeners</h3>

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

</ul>


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

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

</ul>


<h3>Functions</h3>

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

</ul>

<h3>I18N</h3>

<ul>

</ul>


<h3>Report / Dashboard</h3>

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

</ul>


<h3>General</h3>

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

</ul>


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

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

</ul>

 


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


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

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

</ul>


<h3>Other Samplers</h3>

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

</ul>


<h3>Controllers</h3>

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

</ul>


<h3>Listeners</h3>

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

</ul>


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

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

</ul>


<h3>Functions</h3>

<ul>

</ul>


<h3>I18N</h3>

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

</ul>


<h3>Report / Dashboard</h3>

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

</ul>


<h3>Documentation</h3>

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

</ul>


<h3>General</h3>

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

</ul>

 


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

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

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

</ul>

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

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


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

<ul>

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

</ul>

<ul>

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


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


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


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


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


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


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

</ul>




<h1>Version 4.0</h1>

<p>
Summary
</p>

<ul>

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

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

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

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

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

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

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


</ul>


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




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

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

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

</p>

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

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

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

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

</p>

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

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

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

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

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

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

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

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

<p></p>

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

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

</ul>


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

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

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

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

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

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

</p>


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

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

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

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

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


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

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

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

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


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

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





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

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

</ul>



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


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

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

</ul>


<h3>Other samplers</h3>

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

</ul>


<h3>Controllers</h3>

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

</ul>


<h3>Listeners</h3>

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

</ul>


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

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


</ul>


<h3>Functions</h3>

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

</ul>


<h3>I18N</h3>

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

</ul>


<h3>Report / Dashboard</h3>

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

</ul>


<h3>General</h3>

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

</ul>


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

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

</ul>

 


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


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

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

</ul>


<h3>Other Samplers</h3>

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

</ul>


<h3>Controllers</h3>

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

</ul>


<h3>Listeners</h3>

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

</ul>


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

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

</ul>


<h3>Functions</h3>

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

</ul>


<h3>I18N</h3>

<ul>

</ul>


<h3>Report / Dashboard</h3>

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

</ul>


<h3>General</h3>

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

</ul>

 


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

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

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

</ul>

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

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

</ul>

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


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

<ul>

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

</ul>

<ul>

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


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


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


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


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


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


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

</ul>




<h1>Version 3.3</h1>

<p>
Summary
</p>

<ul>

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

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

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

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

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

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

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


</ul>


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

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

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




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

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

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

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

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

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

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

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

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

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

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

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

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

</p>

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

</p>

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

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

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

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

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

</p>

<p>New functions:</p>

<ul>

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

</li>

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

</li>

</ul>




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

<ul>

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

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

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

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

</ul>

<h3>Removed elements or functions</h3>

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

</ul>




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


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

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

</ul>


<h3>Other samplers</h3>

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

</ul>


<h3>Controllers</h3>

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

</ul>


<h3>Listeners</h3>

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

</ul>


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

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

</ul>


<h3>Functions</h3>

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

</ul>


<h3>I18N</h3>

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

</ul>


<h3>Report / Dashboard</h3>

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

</ul>


<h3>General</h3>

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

</ul>


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

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

</ul>

 


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


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

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

</ul>


<h3>Other Samplers</h3>

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

</ul>


<h3>Controllers</h3>

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

</ul>


<h3>Listeners</h3>

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

</ul>


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

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

</ul>


<h3>Functions</h3>

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

</ul>


<h3>I18N</h3>

<ul>

</ul>


<h3>Report / Dashboard</h3>

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

</ul>


<h3>General</h3>

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

</ul>

 


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

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

<ul>

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

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

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

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

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

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

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

</ul>

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

<ul>

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

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

</ul>

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


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

<ul>

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

</ul>

<ul>

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


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


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


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


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


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


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

</ul>




<h1>Version 3.2</h1>

<p>
Summary
</p>

<ul>

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

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

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

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

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

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

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


</ul>


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






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

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

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

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

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

<ul>

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

</li>

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

</li>

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

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

</li>

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

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

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

</li>

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

</li>

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

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

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

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

</ul>


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

<ul>

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

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

</li>

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

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

</li>

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

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

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

</li>

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

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

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

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

</li>

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

</li>

</ul>


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

<ul>

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

</li>

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

</li>

</ul>


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

<ul>

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

</ul>




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


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

</ul>


<h3>Removed elements or functions</h3>

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

</ul>


<h3>Logging changes</h3>

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


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

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

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

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

</p>


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

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

</p>



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


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

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

</ul>


<h3>Other samplers</h3>

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

</ul>


<h3>Controllers</h3>

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

</ul>


<h3>Listeners</h3>

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

</ul>


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

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

</ul>


<h3>Functions</h3>

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

</ul>


<h3>I18N</h3>

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

</ul>


<h3>Report / Dashboard</h3>

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

</ul>


<h3>General</h3>

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

</ul>


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

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

</ul>

 


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


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

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

</ul>


<h3>Other Samplers</h3>

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

</ul>


<h3>Controllers</h3>

<ul>

</ul>


<h3>Listeners</h3>

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

</ul>


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

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

</ul>


<h3>Functions</h3>

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

</ul>


<h3>I18N</h3>

<ul>

</ul>


<h3>Report / Dashboard</h3>

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

</ul>


<h3>General</h3>

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

</ul>

 


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

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

<ul>

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

</ul>

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

<ul>

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

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

</ul>

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


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

<ul>

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

</ul>

<ul>

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


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


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


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


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


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


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

</ul>




<h1>Version 3.1</h1>

<p>
Summary
</p>

<ul>

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

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

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

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

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

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

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


</ul>


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


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

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

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

</ul>


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

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


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

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


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

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


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

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

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


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

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

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


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

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


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

<ul>

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

<li>Memory usage improvements</li>

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

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

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

</ul>


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

<ul>

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

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

</ul>







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


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

</ul>


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

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

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

</ul>




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


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

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

</ul>


<h3>Other samplers</h3>

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

</ul>


<h3>Controllers</h3>

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

</ul>


<h3>Listeners</h3>

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

</ul>


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

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

</ul>


<h3>Functions</h3>

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

</ul>


<h3>I18N</h3>

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

</ul>


<h3>Report / Dashboard</h3>

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

</ul>

<h3>General</h3>

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

</ul>


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

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

</ul>

 


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


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

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


<h3>Other Samplers</h3>

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

</ul>


<h3>Controllers</h3>

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

</ul>


<h3>Listeners</h3>

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

</ul>


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

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

</ul>


<h3>Functions</h3>

<ul>

</ul>


<h3>I18N</h3>

<ul>

</ul>


<h3>General</h3>

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

</ul>

 


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

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

<ul>

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

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

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

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

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

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

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

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

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

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

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

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

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

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

</ul>

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

<ul>

</ul>

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


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


<ul>

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


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


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


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


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


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


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


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


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

</ul>




<h1>Version 3.0</h1>

<p>
Summary
</p>

<ul>

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

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

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

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

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

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

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


</ul>


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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

<ul>

<li>IfController</li>

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

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

</ul>

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

<p>

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

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

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

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

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


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

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

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


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


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

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

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

</ul>



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

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

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

</p>

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

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

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

</p>

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

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

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

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

<ul>

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

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

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

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

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

</ul>

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

<ul>

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

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

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

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

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

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

</ul>

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

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

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


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

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

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

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


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

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

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

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

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

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

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

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

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

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

<ul>

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

<li>Shortcuts to expand nodes</li>

</ul>

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


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

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

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

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

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

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

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

<ul>

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

<li>Major code cleanups</li>

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

</ul>

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

<ul>

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

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

<li>More Unit Tests</li>

</ul>

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

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

<ul>

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

<li>htmllexer, htmlparser removed</li>

<li>soap removed</li>

<li>jdom removed</li>

</ul>

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

<p>You can now use <a href="http://www.slf4j.org/" target="_blank">SLF4J</a> logging wrapper in your custom plugins or <span class="code">org.apache.jmeter.protocol.java.sampler.AbstractJavaSamplerClient</span> subclasses.</p>



<h2 class="ch_section" id="Incompatible changes">Incompatible changes</h2>


<ul>
    
<li>Since version 3.0, Groovy-2.4.6 is bundled with JMeter (<span class="code">lib</span> folder), ensure you remove old version or referenced versions through properties <span class="code">search_paths</span> or <span class="code">user.classpath</span>
</li>
    
<li>Since version 3.0, <span class="code">jmeter.save.saveservice.assertion_results_failure_message</span> property value is true, meaning CSV file for results will contain an additional column containing assertion result response message, see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58978">
      Bug
      58978</a>
</li>
    
<li>Since version 3.0, <span class="code">jmeter.save.saveservice.print_field_names</span> property value is true, meaning CSV file for results will contain field names as first line in CSV, see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58991">
      Bug
      58991</a>
</li>
    
<li>Since version 3.0, <span class="code">jmeter.save.saveservice.idle_time</span> property value is true, meaning CSV/XML result files will contain an additional column containing idle time between samplers, see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57182">
      Bug
      57182</a>
</li>
    
<li>In RandomTimer class, protected instance <span class="code">timer</span> field has been replaced by <span class="code">getTimer()</span> protected method, this is related to <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58100">
      Bug
      58100</a>. This may impact 3<sup>rd</sup> party plugins.</li>
    
<li>Since version 3.0, you can use Nashorn Engine (default javascript engine is Rhino) under Java8 for Elements that use Javascript Engine (<span class="code">__javaScript</span>, <span class="code">IfController</span>). If you want to use it, use property <span class="code">javascript.use_rhino=false</span>, see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58406">
      Bug
      58406</a>.
    <div class="clear"></div>
<div class="note">Note: in a future version, we will switch to Nashorn by default. Users are encouraged to report any issue related to using Nashorn instead of Rhino.</div>
<div class="clear"></div>
    
</li>
    
<li>Since version 3.0, JMS Publisher will reload contents of file if Message source is "<span class="code">From File</span>" and the "<span class="code">Filename</span>" field changes (e.g. if it uses a variable that has changed)</li>
    
<li>
<span class="code">org.apache.jmeter.gui.util.ButtonPanel</span> has been removed, if you use it in your 3<sup>rd</sup> party plugin or custom development ensure you update your code. See <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58687">
      Bug
      58687</a>
</li>
    
<li>Property <span class="code">jmeterthread.startearlier</span> has been removed. See <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58726">
      Bug
      58726</a>
</li>
    
<li>Property <span class="code">jmeterengine.startlistenerslater</span> has been removed. See <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58728">
      Bug
      58728</a>
</li>
    
<li>Property <span class="code">jmeterthread.reversePostProcessors</span> has been removed. See <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58728">
      Bug
      58728</a>
</li>
    
<li>Property <span class="code">jmeter.toolbar.display</span> has been removed, the toolbar is now always displayed. See <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=59236">
      Bug
      59236</a>
</li>
    
<li>Property <span class="code">jmeter.errorscounter.display</span> has been removed, the errors/warnings counter is now always displayed. See <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=59236">
      Bug
      59236</a>
</li>
    
<li>Property <span class="code">xml.parser</span> has been removed, it is not used anymore as <span class="code">org.apache.jmeter.util.JMeterUtils#getXMLParser</span> has been deprecated and is not used either. See <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=59236">
      Bug
      59236</a>
</li>
    
<li>Summariser listener now shows the duration in the format <span class="code">HH:mm:ss</span> (Hour:Minute:Second), it previously showed the duration in seconds. See <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58776">
      Bug
      58776</a>
</li>
    
<li>
<span class="code">org.apache.jmeter.protocol.http.visualizers.RequestViewHTTP.getQueryMap</span> signature has changed, if you use it ensure you update your code. See <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58845">
      Bug
      58845</a>
</li>
    
<li>JMS Subscriber will consider a sample to be an error if the number of received messages is not equal to expected number of messages. It previously considered a sample OK if at least 1 message was received. See <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58980">
      Bug
      58980</a>
</li>
    
<li>Since version 3.0, HTTP(S) Test Script recorder defaults to using port <span class="code">8888</span> (as configured when using Recording Template). See <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=59006">
      Bug
      59006</a>
</li>
    
<li>Since version 3.0, the parser for embedded resources (replaced since 2.10 by Lagarto based implementation) which relied on the htmlparser library (HtmlParserHTMLParser) has been dropped along with its dependencies.</li>
    
<li>Since version 3.0, support for reading old Avalon format JTL (result) files has been removed, see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=59064">
      Bug
      59064</a>
</li>
    
<li>Since version 3.0, the default property value for <span class="code">http.java.sampler.retries</span> has been changed to <span class="code">0</span> (no retry by default) to align it with the behaviour of HttpClient4.
    <div class="clear"></div>
<div class="note">Note also that its meaning has changed: before 3.0, <span class="code">http.java.sampler.retries=1</span> meant <span class="code">No Retry</span> (i.e. total tries = 1), since 3.0 <span class="code">http.java.sampler.retries=1</span> means <span class="code">1</span> retry.
    (Note: this only applies to the Java HTTP Sampler)</div>
<div class="clear"></div>
    See <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=59103">
      Bug
      59103</a>
</li>
    
<li>Since 3.0, the following deprecated classes have been dropped
    <ul>
        
<li>org.apache.jmeter.protocol.http.modifier.UserParameterXMLContentHandler</li>
        
<li>org.apache.jmeter.protocol.http.modifier.UserParameterXMLErrorHandler</li>
        
<li>org.apache.jmeter.protocol.http.modifier.UserParameterXMLParser</li>
    
</ul>
    
</li>
    
<li>
<span class="code">httpsampler.await_termination_timeout</span> has been replaced by <span class="code">httpsampler.parallel_download_thread_keepalive_inseconds</span> which is now the keep alive time for the parallel download threads (in seconds).</li>
    
<li>JDBC Request has been updated to use commons-dbcp2, since then the behaviour is slightly different, ensure you have a correct "Validation Query" for your database. See <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58786">
      Bug
      58786</a>
</li>
    
<li>The following jars have been removed:
    <ul>
        
<li>excalibur-datasource-2.1.jar (see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=59156">
      Bug
      59156</a>)</li>
        
<li>excalibur-instrument-1.0.jar (see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58786">
      Bug
      58786</a>)</li>
        
<li>excalibur-pool-api-2.1.jar (see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58786">
      Bug
      58786</a>)</li>
        
<li>excalibur-pool-impl-2.1.jar (see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58786">
      Bug
      58786</a>)</li>
        
<li>excalibur-pool-instrumented-2.1.jar (see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58786">
      Bug
      58786</a>)</li>
        
<li>htmllexer-2.1.jar (see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=59037">
      Bug
      59037</a>)</li>
        
<li>htmlparser-2.1.jar (see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=59037">
      Bug
      59037</a>)</li>
        
<li>soap-2.3.1.jar</li>
        
<li>jdom-1.1.3.jar (see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=59156">
      Bug
      59156</a>)</li>
    
</ul>
    
</li>
    
<li>Maximum number of redirects allowed by JMeter is now 20, it was previously 5. This can be changed with the property <span class="code">httpsampler.max_redirects</span>. See <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=59382">
      Bug
      59382</a>
</li>

</ul>

<h3>Deprecated and removed elements</h3>

<ul>
    
<li>MongoDB elements (MongoDB Source Config, MongoDB Script) have been deprecated and will be removed in the next version of JMeter. They do not appear anymore in the menu, if you need them modify <span class="code">not_in_menu</span> property. The JMeter team advises not to use them anymore. See <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58772">
      Bug
      58772</a>
</li>
    
<li>WebService(SOAP) Request and HTML Parameter Mask which were deprecated in 2.13 version, have now been removed following our <a href="./usermanual/best-practices.html#deprecation">deprecation strategy</a>.
    Classes and properties which were only used by those elements have been dropped:
    <ul>
        
<li>
<span class="code">org.apache.jmeter.protocol.http.util.DOMPool</span>
</li>
        
<li>
<span class="code">org.apache.jmeter.protocol.http.util.WSDLException</span>
</li>
        
<li>
<span class="code">org.apache.jmeter.protocol.http.util.WSDLHelper</span>
</li>
        
<li>Property <span class="code">soap.document_cache</span>
</li>
        
<li>JAR soap-2.3.1 has been also removed</li>
    
</ul>
    
</li>
    
<li>
<span class="code">__jexl</span> function (i.e. JEXL 1) has been deprecated and will be removed in next version. See <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58903">
      Bug
      58903</a>
</li>
    
<li>Spline Visualizer listener and Distribution Graph listener have been deprecated and will be removed in the next version of JMeter. They do not appear anymore in the menu, if you need them modify <span class="code">not_in_menu</span> property. JMeter team advises not to use them anymore. See <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58791">
      Bug
      58791</a>
</li>

</ul>




<h2 class="ch_section" id="Improvements">Improvements</h2>


<h3>HTTP Samplers and Test Script Recorder</h3>

<ul>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57696">
      Bug
      57696</a>
    -
  HTTP Request : Improve responseMessage when resource download fails. Contributed by Ubik Load Pack (support at ubikloadpack.com)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57995">
      Bug
      57995</a>
    -
  Use FileServer for HTTP Request files. Implemented by Andrey Pokhilko (andrey at blazemeter.com) and contributed by BlazeMeter Ltd.</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58843">
      Bug
      58843</a>
    -
  Improve the usable space in the HTTP sampler GUI. Contributed by Benoit Wiart (benoit dot wiart at gmail.com)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58852">
      Bug
      58852</a>
    -
  Use less memory for <span class="code">PUT</span> requests. The uploaded data will no longer be stored in the Sampler.
        This is the same behaviour as with <span class="code">POST</span> requests.</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58860">
      Bug
      58860</a>
    -
  HTTP Request : Add automatic variable generation in HTTP parameters table by right click. Contributed by Benoit Wiart (benoit dot wiart at gmail.com)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58923">
      Bug
      58923</a>
    -
  normalize URIs when downloading embedded resources.</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=59005">
      Bug
      59005</a>
    -
  HTTP Sampler : Added WebDAV verb (<span class="code">SEARCH</span>).</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=59006">
      Bug
      59006</a>
    -
  Change Default proxy recording port to <span class="code">8888</span> to align it with Recording Template. Contributed by Antonio Gomes Rodrigues (ra0077 at gmail.com)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58099">
      Bug
      58099</a>
    -
  Performance : Lazily initialize HttpClient SSL Context to avoid its initialization even for HTTP only scenarios</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57577">
      Bug
      57577</a>
    -
  HttpSampler : Retrieve All Embedded Resources, add property "<span class="code">httpsampler.embedded_resources_use_md5</span>" to only compute md5 and not keep response data. Contributed by Benoit Wiart (benoit dot wiart at gmail.com)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=59023">
      Bug
      59023</a>
    -
  HttpSampler UI : rework the embedded resources labels and change default number of parallel downloads to <span class="code">6</span>. Contributed by Benoit Wiart (benoit dot wiart at gmail.com)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=59028">
      Bug
      59028</a>
    -
  Use <span class="code">SystemDefaultDnsResolver</span> singleton. Contributed by Benoit Wiart (benoit dot wiart at gmail.com)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=59036">
      Bug
      59036</a>
    -
  FormCharSetFinder : Use JSoup instead of deprecated HTMLParser</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=59034">
      Bug
      59034</a>
    -
  Parallel downloads connection management is not realistic. Contributed by Benoit Wiart (benoit dot wiart at gmail.com) and Philippe Mouawad</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=59060">
      Bug
      59060</a>
    -
  HTTP Request GUI : Move File Upload to a new Tab to have more space for parameters and prevent incompatible configuration. Contributed by Benoit Wiart (benoit dot wiart at gmail.com)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=59103">
      Bug
      59103</a>
    -
  HTTP Request Java Implementation: Change default "<span class="code">http.java.sampler.retries</span>" to align it on HttpClient behaviour and make the name meaningful</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=59083">
      Bug
      59083</a>
    -
  HTTP Request : Make Method field editable so that additional methods (WebDAV) can be added easily</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=59118">
      Bug
      59118</a>
    -
  Add comment in recorded think time by proxy recorder. Contributed by Antonio Gomes Rodrigues (ra0077 at gmail.com)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=59116">
      Bug
      59116</a>
    -
  Add the possibility to setup a prefix to sampler name recorded by proxy. Partly based on a patch by Antonio Gomes Rodrigues (ra0077 at gmail.com)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=59129">
      Bug
      59129</a>
    -
  HTTP Request : Simplify GUI with simple/advanced Tabs</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=59033">
      Bug
      59033</a>
    -
  Parallel Download : Rework Parser classes hierarchy to allow plug-in parsers for different mime types</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52073">
      Bug
      52073</a>
    -
  Embedded Resources Parallel download : Improve performances by avoiding shutdown of ThreadPoolExecutor at each sample. Contributed by Benoit Wiart (benoit dot wiart at gmail.com)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=59190">
      Bug
      59190</a>
    -
  HTTP(S) Test Script Recorder : Suggested excludes should ignore case. Contributed by Antonio Gomes Rodrigues (ra0077 at gmail.com)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=59140">
      Bug
      59140</a>
    -
  Parallel Download : Add CSS Parsing to extract links from CSS files</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=59249">
      Bug
      59249</a>
    -
  Http Request Defaults : Add "<span class="code">Source address</span>" and "<span class="code">Save responses as MD5</span>"</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=59382">
      Bug
      59382</a>
    -
  More realistic default value for <span class="code">httpsampler.max_redirects</span>
</li>

</ul>


<h3>Other samplers</h3>

<ul>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57928">
      Bug
      57928</a>
    -
  Add ability to define protocol (http/https) to AccessLogSampler GUI. Contributed by J&eacute;r&eacute;mie Lesage (jeremie.lesage at jeci.fr)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58300">
      Bug
      58300</a>
    -
  Make existing Java Samplers implement Interruptible</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58160">
      Bug
      58160</a>
    -
  JMS Publisher : reload file content if file name changes. Based partly on a patch contributed by Maxime Chassagneux (maxime.chassagneux at gmail.com)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58786">
      Bug
      58786</a>
    -
  JDBC Sampler : Replace Excalibur DataSource by more up to date library commons-dbcp2</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=59205">
      Bug
      59205</a>
    -
  TCP Sampler: Set connect time in sampler when connection is established.</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=59381">
      Bug
      59381</a>
    -
  JMSPublisher : FileChooserDialog filter does not work for browser buttons. Based partly on a patch contributed by Antonio Gomes Rodrigues (ra0077 at gmail.com)</li>

</ul>


<h3>Controllers</h3>

<ul>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58406">
      Bug
      58406</a>
    -
  IfController : Allow use of Nashorn Engine if available for JavaScript evaluation</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58281">
      Bug
      58281</a>
    -
  RandomOrderController : Improve randomization algorithm performance. Contributed by Graham Russell (jmeter at ham1.co.uk)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58675">
      Bug
      58675</a>
    -
  Module controller : error message can easily be missed. Contributed by Benoit Wiart (benoit dot wiart at gmail.com)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58673">
      Bug
      58673</a>
    -
  Module controller : when the target element is disabled the default jtree icons are displayed. Contributed by Benoit Wiart (benoit dot wiart at gmail.com)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58674">
      Bug
      58674</a>
    -
  Module controller : it should not be possible to select more than one node in the tree. Contributed by Benoit Wiart (benoit dot wiart at gmail.com)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58680">
      Bug
      58680</a>
    -
  Module Controller : ui enhancement. Contributed by Benoit Wiart (benoit dot wiart at gmail.com)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58989">
      Bug
      58989</a>
    -
  Record controller gui : add a button to clear all the recorded samples. Contributed by Benoit Wiart (benoit dot wiart at gmail.com)</li>

</ul>


<h3>Listeners</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58041">
      Bug
      58041</a>
    -
  Tree View Listener should show sample data type</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58122">
      Bug
      58122</a>
    -
  GraphiteBackendListener : Add Server Hits metric. Partly based on a patch from Amol Moye (amol.moye at thomsonreuters.com)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58681">
      Bug
      58681</a>
    -
  GraphiteBackendListener : Don't send data if no sampling occurred</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58776">
      Bug
      58776</a>
    -
  Summariser should display a more readable duration</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58791">
      Bug
      58791</a>
    -
  Deprecate listeners: Distribution Graph (alpha) and Spline Visualizer</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58849">
      Bug
      58849</a>
    -
  View Results Tree : Add a search panel to the request http view to be able to search in the parameters table. Contributed by Benoit Wiart (benoit dot wiart at gmail.com)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58857">
      Bug
      58857</a>
    -
  View Results Tree : the request view http does not allow to resize the parameters table first column. Contributed by Benoit Wiart (benoit dot wiart at gmail.com)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58955">
      Bug
      58955</a>
    -
  Request view http does not correctly display http parameters in multipart/form-data. Contributed by Benoit Wiart (benoit dot wiart at gmail.com)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55597">
      Bug
      55597</a>
    -
  View Results Tree: Add a search feature to search in recorded samplers</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=59102">
      Bug
      59102</a>
    -
  View Results Tree: Better default value for "<span class="code">view.results.tree.max_size</span>"</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=59099">
      Bug
      59099</a>
    -
  Backend listener : Add the possibility to consider samplersList as a Regular Expression. Contributed by Antonio Gomes Rodrigues (ra0077 at gmail.com)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=59424">
      Bug
      59424</a>
    -
  Visualizer : Add "Clear" in popup menu</li>

</ul>


<h3>Timers, Assertions, Config, Pre- &amp; Post-Processors</h3>

<ul>
  
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58303">
      Bug
      58303</a>
    -
  Change usage of bouncycastle api in SMIMEAssertion to get rid of deprecation warnings.</li>
  
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58515">
      Bug
      58515</a>
    -
  New JSON related components : JSON-PATH Extractor and JSON-PATH Renderer in View Results Tree. Donated by Ubik Load Pack (support at ubikloadpack.com).</li>
  
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58698">
      Bug
      58698</a>
    -
  Correct parsing of auth-files in HTTP Authorization Manager.</li>
  
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58756">
      Bug
      58756</a>
    -
  CookieManager : Cookie Policy select box content must depend on Cookie implementation.</li>
  
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56358">
      Bug
      56358</a>
    -
  Cookie manager supports cross port cookies and RFC6265. Thanks to Oleg Kalnichevski (olegk at apache.org)</li>
  
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58773">
      Bug
      58773</a>
    -
  TestCacheManager : Add tests for CacheManager that use HttpClient 4</li>
  
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58742">
      Bug
      58742</a>
    -
  CompareAssertion : Reset data in TableEditor when switching between different CompareAssertions in gui.
      Based on a patch by Vincent Herilier (vherilier at gmail.com)</li>
  
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=59108">
      Bug
      59108</a>
    -
  TableEditor: Allow rows to be moved up and down. Contributed by Vincent Herilier (vherilier at gmail.com)</li>
  
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58848">
      Bug
      58848</a>
    -
  Argument Panel : when adding an argument (add button or from clipboard) scroll the table to the new line. Contributed by Benoit Wiart (benoit dot wiart at gmail.com)</li>
  
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58865">
      Bug
      58865</a>
    -
  Allow empty default value in the Regular Expression Extractor. Contributed by Benoit Wiart (benoit dot wiart at gmail.com)</li>
  
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=59156">
      Bug
      59156</a>
    -
  XMLAssertion : drop jdom dependency by using XMLReader</li>
  
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=59328">
      Bug
      59328</a>
    -
  Better tooltip for Variable Names in CSVDataSet. Contributed by Antonio Gomes Rodrigues (ra0077 at gmail.com)</li>

</ul>


<h3>Functions</h3>

<ul>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58477">
      Bug
      58477</a>
    -
   __javaScript function : Allow use of Nashorn engine for Java8 and later versions</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58903">
      Bug
      58903</a>
    -
  Provide __jexl3 function that uses commons-jexl3 and deprecated __jexl (1.1) function</li>

</ul>


<h3>I18N</h3>

<ul>

</ul>


<h3>General</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58736">
      Bug
      58736</a>
    -
  Add Sample Timeout support</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57913">
      Bug
      57913</a>
    -
  Automated backups of last saved JMX files. Contributed by Benoit Vatan (benoit.vatan at gmail.com)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57988">
      Bug
      57988</a>
    -
  Shortcuts (<span class="keycombo"><span class="keysym">Ctrl</span>&nbsp;+&nbsp;<span class="keysym">1</span></span> &hellip;
    <span class="keycombo"><span class="keysym">Ctrl</span>&nbsp;+&nbsp;<span class="keysym">9</span></span>) to quickly add elements into test plan.
    Implemented by Andrey Pokhilko (andrey at blazemeter.com) and contributed by BlazeMeter Ltd.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58100">
      Bug
      58100</a>
    -
  Performance enhancements : Replace Random by ThreadLocalRandom.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58677">
      Bug
      58677</a>
    -
  <span class="code">TestSaveService#testLoadAndSave</span> use the wrong set of files. Contributed by Benoit Wiart (benoit dot wiart at gmail.com)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58689">
      Bug
      58689</a>
    -
  Add shortcuts to expand / collapse a part of the tree. Contributed by Benoit Wiart (benoit dot wiart at gmail.com)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58696">
      Bug
      58696</a>
    -
  Create Ant task to setup Eclipse project</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58653">
      Bug
      58653</a>
    -
  New JMeter Dashboard/Report with Dynamic Graphs, Tables to help analyzing load test results. Developed by Ubik-Ingenierie and contributed by Decathlon S.A. and Ubik-Ingenierie / UbikLoadPack</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58699">
      Bug
      58699</a>
    -
  Workbench changes neither saved nor prompted for saving upon close. Contributed by Benoit Wiart (benoit dot wiart at gmail.com)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58728">
      Bug
      58728</a>
    -
  Drop old behavioural properties</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57319">
      Bug
      57319</a>
    -
  Upgrade to HttpClient 4.5.2. With the big help from Oleg Kalnichevski (olegk at apache.org) and Gary Gregory (ggregory at apache.org).</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58772">
      Bug
      58772</a>
    -
  Deprecate MongoDB related elements</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58782">
      Bug
      58782</a>
    -
  ThreadGroup : Improve ergonomy</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58165">
      Bug
      58165</a>
    -
  Show the time elapsed since the start of the load test in GUI mode. Partly based on a contribution from Maxime Chassagneux (maxime.chassagneux at gmail.com)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58814">
      Bug
      58814</a>
    -
  JVM no longer recognizes option <span class="code">MaxLiveObjectEvacuationRatio</span>; remove from comments</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58810">
      Bug
      58810</a>
    -
  Config Element Counter (and others): Check Boxes Toggle Area Too Big</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56554">
      Bug
      56554</a>
    -
  JSR223 Test Element : Generate compilation cache key automatically. Contributed by Benoit Wiart (benoit dot wiart at gmail.com)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58911">
      Bug
      58911</a>
    -
  Header Manager : it should be possible to copy/paste between Header Managers. Contributed by Benoit Wiart (benoit dot wiart at gmail.com)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58864">
      Bug
      58864</a>
    -
  Arguments Panel : when moving parameter with up / down, ensure that the selection remains visible. Based on a contribution by Benoit Wiart (benoit dot wiart at gmail.com)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58968">
      Bug
      58968</a>
    -
  Add a new template to allow to record script with think time included. Contributed by Antonio Gomes Rodrigues (ra0077 at gmail.com)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58978">
      Bug
      58978</a>
    -
  Settings defaults : Switch "<span class="code">jmeter.save.saveservice.assertion_results_failure_message</span>" to true (after 2.13)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58991">
      Bug
      58991</a>
    -
  Settings defaults : Switch "<span class="code">jmeter.save.saveservice.print_field_names</span>" to true (after 2.13)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57182">
      Bug
      57182</a>
    -
  Settings defaults : Switch "<span class="code">jmeter.save.saveservice.idle_time</span>" to true (after 2.13)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58870">
      Bug
      58870</a>
    -
  TableEditor: minimum size is too small. Contributed by Vincent Herilier (vherilier at gmail.com)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58933">
      Bug
      58933</a>
    -
  JSyntaxTextArea : Ability to set font.  Contributed by Denis Kirpichenkov (denis.kirpichenkov at gmail.com)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58793">
      Bug
      58793</a>
    -
  Create developers page explaining how to build and contribute</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=59046">
      Bug
      59046</a>
    -
  JMeter Gui Replace controller should keep the name and the selection. Contributed by Benoit Wiart (benoit dot wiart at gmail.com)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=59038">
      Bug
      59038</a>
    -
  Deprecate HTTPClient 3.1 related elements</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=59094">
      Bug
      59094</a>
    -
  Drop support of old JMX file format</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=59082">
      Bug
      59082</a>
    -
  Remove the "<span class="code">TestCompiler.useStaticSet</span>" parameter. Contributed by Benoit Wiart (benoit dot wiart at gmail.com)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=59093">
      Bug
      59093</a>
    -
  Option parsing error message can be '<em>lost</em>'</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58715">
      Bug
      58715</a>
    -
  Feature request: Bundle <span class="code">groovy-all</span> with JMeter</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58426">
      Bug
      58426</a>
    -
  Improve display of JMeter on high resolution devices (HiDPI) (part 1 of enhancement)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=59105">
      Bug
      59105</a>
    -
  TableEditor : Add ability to paste rows from clipboard and delete multiple selection. Contributed by Vincent Herilier (vherilier at gmail.com)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=59197">
      Bug
      59197</a>
    -
  Thread Group : it should be possible to only run a single threadgroup or a selection of threadgroups with a popup menu. Contributed by Benoit Wiart (benoit dot wiart at gmail.com)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=59207">
      Bug
      59207</a>
    -
  Change the font color of <span class="code">errorsOrFatalsLabel</span> to red when an error occurs. Contributed by Antonio Gomes Rodrigues (ra0077 at gmail.com)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58941">
      Bug
      58941</a>
    -
  Create a new Starter that runs thread groups in validation mode (<span class="code">1</span> thread only, <span class="code">1</span> iteration, no pause all customizable)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=59236">
      Bug
      59236</a>
    -
  JMeter Properties : Make some cleanup</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=59240">
      Bug
      59240</a>
    -
  Introduce a slf4j adapter for Logkit (this allows using slf4j within plugins and core code)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=59153">
      Bug
      59153</a>
    -
  Stop test if CSVDataSet is accessing non-existing file. Contributed by Antonio Gomes Rodrigues (ra0077 at gmail.com)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=59320">
      Bug
      59320</a>
    -
  Better tooltip in GUI with GenericTestBeanCustomizer (CSV Data Set Config, JDBC Connection Configuration, Keystore Configuration, &hellip;) . Based on a patch by Antonio Gomes Rodrigues (ra0077 at gmail.com)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=59171">
      Bug
      59171</a>
    -
  Sample Result SaveConfig Dialog is generated in random order</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=59425">
      Bug
      59425</a>
    -
  Display error about missing help page inside the help pane</li>

</ul>

<h2 class="ch_section" id="Non-functional changes">Non-functional changes</h2>

<ul>

<li>Updated to httpclient, httpmime 4.5.2 (from 4.2.6)</li>

<li>Updated to tika-core and tika-parsers 1.12 (from 1.7)</li>

<li>Updated to commons-math3 3.6.1 (from 3.4.1)</li>

<li>Updated to commons-pool2 2.4.2 (from 2.3)</li>

<li>Updated to commons-lang 3.4 (from 3.3.2)</li>

<li>Updated to rhino-1.7.7.1 (from 1.7R5)</li>

<li>Updated to jodd-3.6.7.jar (from 3.6.4)</li>

<li>Updated to jsoup-1.8.3 (from 1.8.1)</li>

<li>Updated to rsyntaxtextarea-2.5.8 (from 2.5.6)</li>

<li>Updated to slf4j-1.7.12 (from 1.7.10)</li>

<li>Updated to xmlgraphics-commons-2.0.1 (from 1.5)</li>

<li>Updated to commons-collections-3.2.2 (from 3.2.1)</li>

<li>Updated to commons-net 3.4 (from 3.3)</li>

<li>Updated to slf4j 1.7.13 (from 1.7.12)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57981">
      Bug
      57981</a>
    -
  Require a minimum of Java 7. Partly contributed by Graham Russell (jmeter at ham1.co.uk)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58684">
      Bug
      58684</a>
    -
  JMeterColor does not need to extend <span class="code">java.awt.Color</span>. Contributed by Benoit Wiart (benoit dot wiart at gmail.com)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58687">
      Bug
      58687</a>
    -
  ButtonPanel should die. Contributed by Benoit Wiart (benoit dot wiart at gmail.com)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58705">
      Bug
      58705</a>
    -
  Make <span class="code">org.apache.jmeter.testelement.property.MultiProperty</span> iterable. Contributed by Benoit Wiart (benoit dot wiart at gmail.com)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58729">
      Bug
      58729</a>
    -
  Cleanup extras folder for maintainability</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57110">
      Bug
      57110</a>
    -
  Fixed spelling+grammar, formatting, removed commented out code etc. Contributed by Graham Russell (jmeter at ham1.co.uk)</li>

<li>Correct instructions on running JMeter in <span class="code">help.txt</span>. Contributed by Pascal Schumacher (pascalschumacher at gmx.net)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58704">
      Bug
      58704</a>
    -
  Non regression testing : Ant task batchtest fails if tests and run in a non <span class="code">en_EN</span> locale and use a JMX file that uses a CSV DataSet</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58897">
      Bug
      58897</a>
    -
  Improve JUnit Test code. Contributed by Benoit Wiart (benoit dot wiart at gmail.com)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58949">
      Bug
      58949</a>
    -
  Cleanup of LDAP code. Based on a patch by Benoit Wiart (benoit dot wiart at gmail.com)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58897">
      Bug
      58897</a>
    -
  Improve JUnit Test code. Contributed by Benoit Wiart (benoit dot wiart at gmail.com)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58967">
      Bug
      58967</a>
    -
  Use JUnit categories to exclude tests that need a gui. Contributed by Benoit Wiart (benoit dot wiart at gmail.com)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=59003">
      Bug
      59003</a>
    -
  <span class="code">ClutilTestCase</span> <span class="code">testSingleArg8</span> and <span class="code">testSingleArg9</span> are identical</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=59064">
      Bug
      59064</a>
    -
  Remove OldSaveService which supported very old Avalon format JTL (result) files</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=59165">
      Bug
      59165</a>
    -
  RSyntaxTextArea not compatible with headless testing</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=59021">
      Bug
      59021</a>
    -
  Use <span class="code">Double#compare</span> instead of reimplementing it in <span class="code">NumberProperty#compareTo</span>
</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=59037">
      Bug
      59037</a>
    -
  Drop HtmlParserHTMLParser and dependencies on htmlparser and htmllexer</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58465">
      Bug
      58465</a>
    -
  JMS Read response field is badly named and documented</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58601">
      Bug
      58601</a>
    -
  Change check for modification of <span class="code">saveservice.properties</span> from <span class="code">SVN Revision ID</span> to sha1 sum of the file itself.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58726">
      Bug
      58726</a>
    -
  Remove the <span class="code">jmeterthread.startearlier</span> parameter. Contributed by Benoit Wiart (benoit dot wiart at gmail.com)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58784">
      Bug
      58784</a>
    -
  Make <span class="code">JMeterUtils#runSafe</span> sync/async awt invocation configurable and change the visualizers to use the async version.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58790">
      Bug
      58790</a>
    -
  Issue in CheckDirty and its relation to ActionRouter</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=59095">
      Bug
      59095</a>
    -
  Remove UserParameterXMLParser that was deprecated eight years ago. Contributed by Benoit Wiart (benoit dot wiart at gmail.com)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=59262">
      Bug
      59262</a>
    -
  Add list of binary jars to LICENSE; use that for unit tests</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=59353">
      Bug
      59353</a>
    -
  Add "Deprecated and removed elements" in "Incompatible changes" part in changes.xml. Contributed by Antonio Gomes Rodrigues (ra0077 at gmail.com)</li>

</ul>

 


<h2 class="ch_section" id="Bug fixes">Bug fixes</h2>


<h3>HTTP Samplers and Test Script Recorder</h3>

<ul>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57806">
      Bug
      57806</a>
    -
  "<span class="code">audio/x-mpegurl</span>" mime type is erroneously considered as binary by ViewResultsTree. Contributed by Ubik Load Pack (support at ubikloadpack.com).</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57858">
      Bug
      57858</a>
    -
  Don't call <span class="code">sampleEnd</span> twice in HTTPHC4Impl when a <span class="code">RuntimeException</span> or an <span class="code">IOException</span> occurs in the sample method.</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57921">
      Bug
      57921</a>
    -
  HTTP/1.1 without keep-alive "<span class="code">Connection</span>" response header no longer uses infinite keep-alive.</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57956">
      Bug
      57956</a>
    -
  The <span class="code">hc.parameters</span> reference in <span class="code">jmeter.properties</span> doesn't work when JMeter is not started in <span class="code">bin</span>.</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58137">
      Bug
      58137</a>
    -
  JMeter fails to download embedded URLs that contain illegal characters in URL (it does not escape them).</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58201">
      Bug
      58201</a>
    -
  Make usage of port in the host header more consistent across the different http samplers.</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58453">
      Bug
      58453</a>
    -
  HTTP Test Script Recorder : <span class="code">NullPointerException</span> when disabling Capture HTTP Headers </li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57804">
      Bug
      57804</a>
    -
  HTTP Request doesn't reuse cached SSL context when using Client Certificates in HTTPS (only fixed for HttpClient4 implementation)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58800">
      Bug
      58800</a>
    -
  <span class="code">proxy.pause</span> default value: fix documentation</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58844">
      Bug
      58844</a>
    -
  Buttons enable / disable is broken in the arguments panel. Contributed by Benoit Wiart (benoit dot wiart at gmail.com)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58861">
      Bug
      58861</a>
    -
  When clicking on up, down or detail while in a cell of the argument panel, newly added content is lost. Contributed by Benoit Wiart (benoit dot wiart at gmail.com)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57935">
      Bug
      57935</a>
    -
  SSL SNI extension not supported by HttpClient 4.2.6</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=59044">
      Bug
      59044</a>
    -
  Http Sampler : It should not be possible to select the multipart encoding if the method is not <span class="code">POST</span>. Contributed by Benoit Wiart (benoit dot wiart at gmail.com)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=59008">
      Bug
      59008</a>
    -
  Http Sampler: Infinite recursion SampleResult on frame depth limit reached</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58881">
      Bug
      58881</a>
    -
  HTTP Request : HTTPHC4Impl shows exception when server uses "<span class="code">deflate</span>" compression</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58583">
      Bug
      58583</a>
    -
  HTTP client fails to close connection if server misbehaves by not sending "<span class="code">connection: close</span>", violating HTTP RFC 2616 / RFC 7230</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58950">
      Bug
      58950</a>
    -
  <span class="code">NoHttpResponseException</span> when Pause between samplers exceeds keepalive sent by server</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=59085">
      Bug
      59085</a>
    -
  Http file panel : data lost on browse cancellation. Contributed by Benoit Wiart (benoit dot wiart at gmail.com)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56141">
      Bug
      56141</a>
    -
  Application does not behave correctly when using HTTP Recorder. With the help of Dan (java.junkee at yahoo.com)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=59079">
      Bug
      59079</a>
    -
  "<span class="code">httpsampler.max_redirects</span>" property is not enforced when "<span class="code">Redirect Automatically</span>" is used</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58811">
      Bug
      58811</a>
    -
  When pasting arguments between http samplers the column "Encode" and "Include Equals" are lost. Contributed by Benoit Wiart (benoit dot wiart at gmail.com)</li>

</ul>


<h3>Other Samplers</h3>

<ul>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58013">
      Bug
      58013</a>
    -
  Enable all protocols that are enabled on the default SSLContext for usage with the SMTP Sampler.</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58209">
      Bug
      58209</a>
    -
  JMeter hang when testing javasampler because <span class="code">HashMap.put()</span> is called from multiple threads without sync.</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58301">
      Bug
      58301</a>
    -
  Use typed methods such as <span class="code">setInt</span>, <span class="code">setDouble</span>, <span class="code">setDate</span>, &hellip; for prepared statement #27</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58851">
      Bug
      58851</a>
    -
  Add a dependency on hamcrest-core to allow JUnit tests with annotations to work</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58947">
      Bug
      58947</a>
    -
  Connect metric is wrong when <span class="code">ConnectException</span> occurs</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58980">
      Bug
      58980</a>
    -
  JMS Subscriber will return successful as long as 1 message is received. Contributed by Harrison Termotto (harrison dot termotto at stonybrook.edu)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=59075">
      Bug
      59075</a>
    -
  JMS Publisher: <span class="code">NumberFormatException</span> is thrown if priority or expiration field is empty</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=59345">
      Bug
      59345</a>
    -
  SMTPSampler connection leak. Based on a patch by Luca Maragnani (luca dot maragnani at gmail dot com)</li>

</ul>


<h3>Controllers</h3>

<ul>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58600">
      Bug
      58600</a>
    -
  Display correct filenames, when they are searched by IncludeController</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58678">
      Bug
      58678</a>
    -
  Module Controller : limit target element selection. Contributed by Benoit Wiart (benoit dot wiart at gmail.com)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58714">
      Bug
      58714</a>
    -
  Module controller : it should not be possible to add a timer as child. Contributed by Benoit Wiart (benoit dot wiart at gmail.com)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=59067">
      Bug
      59067</a>
    -
  JMeter fails to iterate over Controllers that are children of a TransactionController having "<span class="code">Generate parent sample</span>" checked after an assertion error occurs on a Thread Group with "<span class="code">Start Next Thread Loop</span>". Contributed by Benoit Wiart(benoit dot wiart at gmail.com)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=59076">
      Bug
      59076</a>
    -
  Test should fail if a module controller cannot find its replacement subtree</li>

</ul>


<h3>Listeners</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58033">
      Bug
      58033</a>
    -
  SampleResultConverter should note that it cannot record non-TEXT data</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58845">
      Bug
      58845</a>
    -
  Request http view doesn't display all the parameters. Contributed by Benoit Wiart (benoit dot wiart at gmail.com)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58413">
      Bug
      58413</a>
    -
  ViewResultsTree : Request HTTP Renderer does not show correctly parameters that contain ampersand (&amp;). Contributed by Benoit Wiart (benoit dot wiart at gmail.com)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=59172">
      Bug
      59172</a>
    -
  SampleResult SaveConfig does not allow some fields to be disabled</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58329">
      Bug
      58329</a>
    -
  Response Time Graph and Aggregate Graph : Save graph to file does not take into account the settings changed since last click on Graph. Contributed by David Coppens (d.l.coppens at gmail.com)</li>

</ul>


<h3>Timers, Assertions, Config, Pre- &amp; Post-Processors</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58079">
      Bug
      58079</a>
    -
  Do not cache HTTP samples that have a <span class="code">Vary</span> header when using a HTTP CacheManager.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58912">
      Bug
      58912</a>
    -
  Response assertion gui : Deleting more than 1 selected row deletes only one row. Contributed by Benoit Wiart (benoit dot wiart at gmail.com)</li>

</ul>


<h3>Functions</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57825">
      Bug
      57825</a>
    -
  __Random function fails if <span class="code">min</span> value is equal to <span class="code">max</span> value (regression related to <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54453">
      Bug
      54453</a>)</li>

</ul>


<h3>I18N</h3>

<ul>

</ul>


<h3>General</h3>

<ul>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54826">
      Bug
      54826</a>
    -
  Don't fail on long strings in JSON responses when displaying them as JSON in View Results Tree.</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57734">
      Bug
      57734</a>
    -
  Maven transient dependencies are incorrect for 2.13 (Fixed group ids for Commons Pool and Math)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57731">
      Bug
      57731</a>
    -
  <span class="code">TESTSTART.MS</span> has always the value of the first Test started in Server mode in NON GUI Distributed testing</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58016">
      Bug
      58016</a>
    -
   Error type casting using external SSL Provider. Contributed by Kirill Yankov (myworkpostbox at gmail.com)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58293">
      Bug
      58293</a>
    -
  SOAP/XML-RPC Sampler file browser generates NullPointerException</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58685">
      Bug
      58685</a>
    -
  JDatefield : Make the modification of the date with up/down arrow work. Contributed by Benoit Wiart (benoit dot wiart at gmail.com)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58693">
      Bug
      58693</a>
    -
  Fix "Cannot nest output folder 'jmeter/build/components' inside output folder 'jmeter/build'" when setting up eclipse</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58781">
      Bug
      58781</a>
    -
  Command line option "<span class="code">-?</span>" shows Unknown option</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57821">
      Bug
      57821</a>
    -
  Command-line option "<span class="code">-X --remoteexit</span>" doesn't work since 2.13 (regression related to <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57500">
      Bug
      57500</a>)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58795">
      Bug
      58795</a>
    -
  NPE may occur in <span class="code">GuiPackage#getTestElementCheckSum</span> with some 3<sup>rd</sup> party plugins</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=58913">
      Bug
      58913</a>
    -
  When closing JMeter should not interpret cancel as "<em>destroy my test plan</em>". Contributed by Benoit Wiart (benoit dot wiart at gmail.com)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=59096">
      Bug
      59096</a>
    -
  Search Feature : Case insensitive search is not really case insensitive</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=59193">
      Bug
      59193</a>
    -
  <span class="code">ant run_gui</span> fails with  <span class="code">ClassNotFoundException</span> or <span class="code">IllegalAccessError</span> when accessing classes from dependencies not loaded through <span class="code">Thread.currentThread().getContextClassLoader()</span>
</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=59225">
      Bug
      59225</a>
    -
  Bad display of running indicator icon. Contributed by Antonio Gomes Rodrigues (ra0077 at gmail.com)</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56927">
      Bug
      56927</a>
    -
  Disable language change during a test</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=59391">
      Bug
      59391</a>
    -
  In Distributed mode, the client exits abnormally at the end of test</li>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=59397">
      Bug
      59397</a>
    -
  <span class="code">build.xml</span> does not make dist.executables executable on Unix systems</li>

</ul>

 


<h2 class="ch_section" id="Thanks">Thanks</h2>

<p>We thank all contributors mentioned in bug and improvement sections above:
</p>

<ul>

<li>
<a href="http://ubikloadpack.com">Ubik Load Pack</a>
</li>

<li>Benoit Vatan (benoit.vatan at gmail.com)</li>

<li>J&eacute;r&eacute;mie Lesage (jeremie.lesage at jeci.fr)</li>

<li>Kirill Yankov (myworkpostbox at gmail.com)</li>

<li>Amol Moye (amol.moye at thomsonreuters.com)</li>

<li>Samoht-fr (https://github.com/Samoht-fr)</li>

<li>Graham Russell (jmeter at ham1.co.uk)</li>

<li>Maxime Chassagneux (maxime.chassagneux at gmail.com)</li>

<li>Benoit Wiart (benoit.wiart at gmail.com)</li>

<li>
<a href="http://www.decathlon.com">Decathlon S.A.</a>
</li>

<li>
<a href="http://www.ubik-ingenierie.com">Ubik-Ingenierie S.A.S.</a>
</li>

<li>Oleg Kalnichevski (olegk at apache.org)</li>

<li>Pascal Schumacher (pascalschumacher at gmx.net)</li>

<li>Vincent Herilier (vherilier at gmail.com)</li>

<li>Florent Sabbe (f dot sabbe at ubik-ingenierie.com)</li>

<li>Antonio Gomes Rodrigues (ra0077 at gmail.com)</li>

<li>Harrison Termotto (harrison dot termotto at stonybrook.edu</li>

<li>Denis Kirpichenkov (denis.kirpichenkov at gmail.com)</li>

<li>Gary Gregory (ggregory at apache.org)</li>

<li>David Coppens (d.l.coppens at gmail.com)</li>

<li>Luca Maragnani (luca dot maragnani at gmail dot com)</li>

<li>Philip Helger (http://www.helger.com) for his <a href="https://github.com/phax" target="_blank">CSS Parser</a> and for taking into account our bug reports very rapidly</li>

<li>Irek Pastusiak (the.automatic.tester at gmail.com)</li>

</ul>

<p>We also thank bug reporters who helped us improve JMeter. <br>
For this release we want to give special thanks to the following reporters for the clear reports and tests made after our fixes:</p>

<ul>

<li>purnasatyap at gmail dot com  for the tests and reports on nightly build</li>

<li>Sergey Batalin (sergey_batalin at mail dot ru) for the tests and reports on nightly build</li>

<li>Vincent Daburon (vdaburon at gmail dot com) for the tests and reports on nightly build</li>

</ul>

<p>
Apologies if we have omitted anyone else.
 </p>
 


<h2 class="ch_section" id="Known problems and workarounds">Known problems and workarounds</h2>


<ul>

<li>The Once Only controller behaves correctly under a Thread Group or Loop Controller,
but otherwise its behaviour is not consistent (or clearly specified).</li>


<li>
The numbers that appear to the left of the green box are the number of active threads / total number of threads,
the total number of threads only applies to a locally run test, otherwise it will show <span class="code">0</span> (see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55510">
      Bug
      55510</a>).
</li>


<li>
Note that there is a <a href="http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6396599 ">bug in Java</a>
on some Linux systems that manifests itself as the following error when running the test cases or JMeter itself:
<pre class="source">
 [java] WARNING: Couldn't flush user prefs:
 java.util.prefs.BackingStoreException:
 java.lang.IllegalArgumentException: Not supported: indent-number
</pre>
This does not affect JMeter operation. This issue is fixed since Java 7b05.
</li>


<li>
Note that under some windows systems you may have this WARNING:
<pre class="source">
java.util.prefs.WindowsPreferences
WARNING: Could not open/create prefs root node Software\JavaSoft\Prefs at root 0
x80000002. Windows RegCreateKeyEx(&hellip;) returned error code 5.
</pre>
The fix is to run JMeter as Administrator, it will create the registry key for you, then you can restart JMeter as a normal user and you won't have the warning anymore.
</li>


<li>
With Oracle Java 7 and Mac Book Pro Retina Display, the JMeter GUI may look blurry.
This is a known Java bug, see Bug <a href="http://bugs.java.com/bugdatabase/view_bug.do?bug_id=8000629">JDK-8000629</a>.
A workaround is to use a Java 7 update 40 runtime which fixes this issue.
</li>


<li>
You may encounter the following error:
<pre class="source">java.security.cert.CertificateException: Certificates does not conform to algorithm constraints</pre>
 if you run a HTTPS request on a web site with a SSL certificate (itself or one of SSL certificates in its chain of trust) with a signature
 algorithm using MD2 (like md2WithRSAEncryption) or with a SSL certificate with a size lower than 1024 bits.
This error is related to increased security in Java 7 version u16 (MD2) and version u40 (Certificate size lower than 1024 bits), and Java 8 too.
<br>
To allow you to perform your HTTPS request, you can downgrade the security of your Java installation by editing
the Java <span class="code">jdk.certpath.disabledAlgorithms</span> property. Remove the MD2 value or the constraint on size, depending on your case.
<br>
This property is in this file:
<pre class="source">JAVA_HOME/jre/lib/security/java.security</pre>
See  <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56357">
      Bug
      56357</a> for details.
</li>


<li>
Under Mac OSX Aggregate Graph will show wrong values due to mirroring effect on numbers.
This is due to a known Java bug, see Bug <a href="https://bugs.openjdk.java.net/browse/JDK-8065373">JDK-8065373</a>
The fix is to use JDK7_u79, JDK8_u45 or later.
</li>


<li>
View Results Tree may fail to display some HTML code under HTML renderer, see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54586">
      Bug
      54586</a>.
This is due to a known Java bug which fails to parse "<span class="code">px</span>" units in row/col attributes.
See Bug <a href="https://bugs.openjdk.java.net/browse/JDK-8031109">JDK-8031109</a>
The fix is to use JDK9 b65 or later.
</li>


<li>
JTable selection with keyboard (<span class="keycombo"><span class="keysym">SHIFT</span>&nbsp;+&nbsp;<span class="keysym">up/down</span></span>) is totally unusable with JAVA 7 on Mac OSX.
This is due to a known Java bug <a href="https://bugs.openjdk.java.net/browse/JDK-8025126">JDK-8025126</a>
The fix is to use JDK 8 b132 or later.
</li>

</ul>




<h1>Version 2.13</h1>

<p>
Summary
</p>

<ul>

<li>
<a href="#New and Noteworthy">New and Noteworthy</a>
</li>

<li>
<a href="#Known bugs">Known bugs</a>
</li>

<li>
<a href="#Incompatible changes">Incompatible changes</a>
</li>

<li>
<a href="#Bug fixes">Bug fixes</a>
</li>

<li>
<a href="#Improvements">Improvements</a>
</li>

<li>
<a href="#Non-functional changes">Non-functional changes</a>
</li>

<li>
<a href="#Thanks">Thanks</a>
</li>


</ul>


<h2 class="ch_section" id="New and Noteworthy">New and Noteworthy</h2>





<h2 class="ch_category">New Elements</h2>


<h3 class="ch_title">New Async BackendListener with Graphite implementation</h3>

<p>A new Async BackendListener has been added to allow sending result data to a backend listener.
JMeter ships with a GraphiteBackendListenerClient that allows sending results to a <a href="http://graphite.wikidot.com/" target="_blank">Graphite</a> server using Pickle or Plaintext protocols.
You can implement your own backend by extending <a href="./api/org/apache/jmeter/visualizers/backend/AbstractBackendListenerClient.html">AbstractBackendListenerClient</a>. This backend could be
a database (JDBC), a Message Oriented Middleware (JMS), a Webservice or anything you want.
 </p>

<figure>
<a href="./images/screenshots/changes/2.13/backend_listener_graphite.png"><img src="./images/screenshots/changes/2.13/backend_listener_graphite.png" width="902" height="293" alt=""></a>
<figcaption></figcaption>
</figure>

<p>This is the kind of Live Dashboard you can obtain using <a href="http://grafana.org/" target="_blank">Grafana</a> and <a href="http://influxdb.com/" target="_blank">InfluxDB</a>
<br>
Read <a href="./usermanual/realtime-results.html">this</a> for more details.</p>

<figure>
<a href="./images/screenshots/grafana_dashboard.png"><img src="./images/screenshots/grafana_dashboard.png" width="1265" height="581" alt="Grafana dashboard"></a>
<figcaption>Grafana dashboard</figcaption>
</figure>


<h2 class="ch_category">Core Improvements</h2>


<h3 class="ch_title">New connect time metric</h3>

<p>Starting with this version a new metric called connectTime has been added. It represents the time to establish connection.
By default it is not saved to CSV or XML, to have it saved add to user.properties:<br>

<span class="code">
jmeter.save.saveservice.connect_time=true
</span>

</p>

<figure>
<a href="./images/screenshots/changes/2.13/connect_time_table.png"><img src="./images/screenshots/changes/2.13/connect_time_table.png" width="1058" height="193" alt=""></a>
<figcaption></figcaption>
</figure>

<figure>
<a href="./images/screenshots/changes/2.13/connect_time_tree.png"><img src="./images/screenshots/changes/2.13/connect_time_tree.png" width="665" height="651" alt=""></a>
<figcaption></figcaption>
</figure>


<h3 class="ch_title">Aggregate Graph and Report</h3>

<p>The listeners Aggregate Graph and Aggregate Report previously showed only the 90 percentile (historical behavior), the 95 percentile and the 99 percentile have been added and are customizable.
To setup the percentiles value you want, add to user.properties:<br>

<span class="code">
aggregate_rpt_pct1=90<br>
aggregate_rpt_pct2=95<br>
aggregate_rpt_pct3=99
</span>

<figure>
<a href="./images/screenshots/changes/2.13/aggregate_graph_new_percentile.png"><img src="./images/screenshots/changes/2.13/aggregate_graph_new_percentile.png" width="801" height="681" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3 class="ch_title">HTTP(S) Test Script Recorder</h3>

<p>Now component is able to detect authentication schemes and automatically adds a pre-configured HTTP Authorization Manager with the correct Mechanism.
</p>


<h3 class="ch_title">HTTP Request</h3>

<p>The CalDAV verbs (Calendar extensions to WebDAV) REPORT and MKCALENDAR have been added in the HTTP Request sampler.
<figure>
<a href="./images/screenshots/changes/2.13/new_methods_caldav.png"><img src="./images/screenshots/changes/2.13/new_methods_caldav.png" width="716" height="324" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3 class="ch_title">JDBC Request</h3>

<p>The ResultSet can be get as a object, this allows to handle more easily the results after in BeanShell, JSR223 scripts, &hellip;
<figure>
<a href="./images/screenshots/changes/2.13/jdbc_resultset_handler.png"><img src="./images/screenshots/changes/2.13/jdbc_resultset_handler.png" width="683" height="628" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3 class="ch_title">Distributed Testing</h3>

<p>To allow better usage of Distributed Testing in the cloud, retry behaviour has been added when starting test on servers.
Read <a href="./usermanual/remote-test.html#retries">this</a> for more details.
<figure>
<a href="./images/screenshots/changes/2.13/distributed_retry.png"><img src="./images/screenshots/changes/2.13/distributed_retry.png" width="669" height="202" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3 class="ch_title">Distributed Testing performance</h3>

<p>Since JMeter 2.13, Stripping modes (StrippingBatch being the default mode) now also strip responses from SubResults improving consumed network bandwidth.
</p>


<h3 class="ch_title">Documentation refresh</h3>

<p>A new style for website (responsive and more up to date) has been created by Felix Schumacher.
Documentations have been refreshed particularly:
<ul>
    
<li>
<a href="./usermanual/build-ws-test-plan.html">Building a Webservice Test Plan</a>
</li>
    
<li>
<a href="./usermanual/best-practices.html">Best Practices</a>
</li>
    
<li>
<a href="./usermanual/boss.html">Help! My boss wants me to load test our application!</a>
</li>

</ul>

</p>


<h2 class="ch_category">GUI Improvements</h2>


<h3 class="ch_title">Module Controller</h3>

<p>The Module Controller now shows the target controller in a tree view (instead of combo list).
<figure>
<a href="./images/screenshots/changes/2.13/module_controller_tree_view.png"><img src="./images/screenshots/changes/2.13/module_controller_tree_view.png" width="306" height="372" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3 class="ch_title">Toolbar</h3>

<p>JMeter's toolbar has been refreshed for some icons (start, toggle, etc.). Three sizes are now available for the icons: 22x22, 32x32 and 48x48.<br>
The property to define your preferred size is:
<pre>jmeter.toolbar.icons.size=value</pre>
with the value 22x22 (default size), 32x32 or 48x48.</br>
</p>

<p>The toolbar with 22x22 pixels icons
<figure>
<a href="./images/screenshots/changes/2.13/toolbar_22x22.png"><img src="./images/screenshots/changes/2.13/toolbar_22x22.png" width="417" height="116" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<p>The toolbar with 32x32 pixels icons
<figure>
<a href="./images/screenshots/changes/2.13/toolbar_32x32.png"><img src="./images/screenshots/changes/2.13/toolbar_32x32.png" width="533" height="130" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<p>The toolbar with 48x48 pixels icons
<figure>
<a href="./images/screenshots/changes/2.13/toolbar_48x48.png"><img src="./images/screenshots/changes/2.13/toolbar_48x48.png" width="716" height="143" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3 class="ch_title">HTTP(S) Test Script Recorder</h3>

<p>If your Test Plan does not contains a Recording Controller, a new warning message will appear if the
 HTTP(S) Test Script Recorder is configured to send the samples into a Recording Controller.
<figure>
<a href="./images/screenshots/changes/2.13/warning_message_proxy.png"><img src="./images/screenshots/changes/2.13/warning_message_proxy.png" width="858" height="386" alt=""></a>
<figcaption></figcaption>
</figure>

</p>




<h2 class="ch_section" id="Incompatible changes">Incompatible changes</h2>


<ul>
    
<li>Since 2.13, Aggregate Graph, Summary Report and Aggregate Report now export percentages to %, before they exported the decimal value which differed from what was shown in GUI</li>
    
<li>Third party plugins may be impacted by fix of <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57586">
      Bug
      57586</a>, ensure that your subclass of HttpTestSampleGui implements ItemListener if you relied on parent class doing so.</li>
    
<li>Report package has been removed, <span class="code">ApacheJMeter_report.jar</span> is not generated anymore as a consequence, see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57269">
      Bug
      57269</a>
</li>

</ul>




<h2 class="ch_section" id="Improvements">Improvements</h2>


<h3>HTTP Samplers and Test Script Recorder</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=25430">
      Bug
      25430</a>
    -
  HTTP(S) Test Script Recorder : Make it populate HTTP Authorization Manager. Partly based on a patch from Dzmitry Kashlach (dzmitrykashlach at gmail.com)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57381">
      Bug
      57381</a>
    -
  HTTP(S) Test Script Recorder should display an error if Target Controller references a Recording Controller and no Recording Controller exists. Contributed by Ubik Load Pack (support at ubikloadpack.com)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57488">
      Bug
      57488</a>
    -
  Performance : Improve SSLContext reset for Two-way SSL Authentication</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57565">
      Bug
      57565</a>
    -
  SamplerCreator : Add method to allow implementations to add children to created sampler</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57606">
      Bug
      57606</a>
    -
  HTTPSamplerBase#errorResult changes the sample label on exception </li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57613">
      Bug
      57613</a>
    -
  HTTP Sampler : Added CalDAV verbs (REPORT, MKCALENDAR). Contributed by Richard Brigham (richard.brigham at teamaol.com)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=48799">
      Bug
      48799</a>
    -
  Add time to establish connection to available sample metrics. Implemented by Andrey Pokhilko (andrey at blazemeter.com) and contributed by BlazeMeter Ltd. and Pieter Ennes (apache.org at spam.ennes.nl)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57500">
      Bug
      57500</a>
    -
  Introduce retry behavior for distributed testing. Implemented by Andrey Pokhilko and Dzimitry Kashlach and contributed by BlazeMeter Ltd.</li>

</ul>


<h3>Other samplers</h3>

<ul>
    
<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57322">
      Bug
      57322</a>
    -
  JDBC Test elements: add ResultHandler to deal with ResultSets(cursors) returned by callable statements. Contributed by Yngvi &THORN;&oacute;r Sigurj&oacute;nsson (blitzkopf at gmail.com)</li>

</ul>


<h3>Controllers</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57561">
      Bug
      57561</a>
    -
  Module controller UI : Replace combobox by tree. Contributed by Maciej Franek (maciej.franek at gmail.com)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57648">
      Bug
      57648</a>
    -
  TestFragment should be disabled when created. Contributed by Ubik Load Pack (support at ubikloadpack.com)</li>

</ul>


<h3>Listeners</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55932">
      Bug
      55932</a>
    -
  Create a Async BackendListener to allow easy plug of new listener (Graphite, JDBC, Console, &hellip;)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57246">
      Bug
      57246</a>
    -
  BackendListener : Create a Graphite implementation</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57217">
      Bug
      57217</a>
    -
  Aggregate graph and Aggregate report improvements (3 configurable percentiles, same data in both, factor out code). Contributed by Ubik Load Pack (support at ubikloadpack.com)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57537">
      Bug
      57537</a>
    -
  BackendListener : Allow implementations to drop samples</li>

</ul>


<h3>Timers, Assertions, Config, Pre- &amp; Post-Processors</h3>

<ul>

</ul>


<h3>Functions</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54453">
      Bug
      54453</a>
    -
  Performance enhancements : Replace Random by ThreadLocalRandom in __Random function</li>

</ul>


<h3>I18N</h3>

<ul>

</ul>


<h3>General</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57518">
      Bug
      57518</a>
    -
  Icons for toolbar with several sizes</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57605">
      Bug
      57605</a>
    -
  When there is an error loading Test Plan, <span class="code">SaveService.loadTree</span> returns <span class="code">null</span> leading to NPE in callers</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57269">
      Bug
      57269</a>
    -
  Drop <span class="code">org.apache.jmeter.reports</span> package</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53764">
      Bug
      53764</a>
    -
  Website : Create a new style for website</li>

</ul>

<h2 class="ch_section" id="Non-functional changes">Non-functional changes</h2>

<ul>

<li>Updated to jsoup-1.8.1.jar (from 1.7.3)</li>

<li>Updated to tika-core and tika-parsers 1.7 (from 1.6)</li>

<li>Updated to commons-codec-1.10.jar (from 1.9)</li>

<li>Updated to dnsjava-2.1.7.jar (from 2.1.6)</li>

<li>Updated to jodd-3.6.4.jar (from 3.6.1)</li>

<li>Updated to junit-4.12.jar (from 4.11)</li>

<li>Updated to rhino-1.7R5 (from 1.7R4)</li>

<li>Updated to rsyntaxtextarea-2.5.6 (from 2.5.3)</li>

<li>Updated to slf4j-1.7.10 (from 1.7.5)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57276">
      Bug
      57276</a>
    -
  RMIC no longer needed since Java 5</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57310">
      Bug
      57310</a>
    -
  Replace <span class="code">System.getProperty("file.separator")</span> with <span class="code">File.separator</span> throughout (Also "<span class="code">path.separator"</span> with <span class="code">File.pathSeparator</span>)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57389">
      Bug
      57389</a>
    -
  Fix potential NPE in converters</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57417">
      Bug
      57417</a>
    -
  Remove unused method <span class="code">isTemporary</span> from <span class="code">NullProperty</span>. This was a leftover from a refactoring done in 2003.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57418">
      Bug
      57418</a>
    -
  Remove unused constructor from Workbench</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57419">
      Bug
      57419</a>
    -
  Remove unused interface ModelListener.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57466">
      Bug
      57466</a>
    -
  IncludeController : Remove an unneeded set creation. Contributed by Benoit Wiart (benoit.wiart at gmail.com)</li>

<li>Added property <span class="code">loggerpanel.usejsyntaxtext</span> to disable the use of JSyntaxTextArea for the Console Logger (in case of memory or other issues)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57586">
      Bug
      57586</a>
    -
  HttpTestSampleGui: Remove interface ItemListener implementation</li>

</ul>

 


<h2 class="ch_section" id="Bug fixes">Bug fixes</h2>


<h3>HTTP Samplers and Test Script Recorder</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57385">
      Bug
      57385</a>
    -
  Getting empty thread name in xml result for HTTP requests with "Follow Redirects" set. Contributed by Ubik Load Pack (support at ubikloadpack.com)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57579">
      Bug
      57579</a>
    -
  NullPointerException error is raised on main sample if "RETURN_NO_SAMPLE" is used (default) and "Use Cache-Control / Expires header&hellip;" is checked in HTTP Cache Manager</li>

</ul>


<h3>Other Samplers</h3>

<ul>

</ul>


<h3>Controllers</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57447">
      Bug
      57447</a>
    -
  Use only the user listed DNS Servers, when "use custom DNS resolver" option is enabled.</li>

</ul>


<h3>Listeners</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57262">
      Bug
      57262</a>
    -
  Aggregate Report, Aggregate Graph and Summary Report export : headers use keys instead of labels</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57346">
      Bug
      57346</a>
    -
  Summariser : The + (difference) reports show wrong elapsed time and throughput</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57449">
      Bug
      57449</a>
    -
  Distributed Testing: Stripped modes do not strip responses from SubResults (affects load tests that use Download of embedded resources). Contributed by Ubik Load Pack (support at ubikloadpack.com)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57562">
      Bug
      57562</a>
    -
  View Results Tree CSS/JQuery Tester : Nothing happens when there is an error in syntax and an exception occurs in jmeter.log</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57514">
      Bug
      57514</a>
    -
  Aggregate Graph, Summary Report and Aggregate Report show wrong percentage reporting in saved file</li>

</ul>


<h3>Timers, Assertions, Config, Pre- &amp; Post-Processors</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57607">
      Bug
      57607</a>
    -
  Constant Throughput Timer : Wrong throughput computed in shared modes due to rounding error </li>

</ul>


<h3>General</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57365">
      Bug
      57365</a>
    -
  Selected LAF is not correctly setup due to call of <span class="code">UIManager.setLookAndFeel</span> too late. Contributed by Ubik Load Pack (support at ubikloadpack.com)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57364">
      Bug
      57364</a>
    -
  Options &lt; Look And Feel does not update all windows LAF. Contributed by Ubik Load Pack (support at ubikloadpack.com)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57394">
      Bug
      57394</a>
    -
  When constructing an instance with ClassTools#construct(String, int) the integer was ignored and the default constructor was used instead.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57440">
      Bug
      57440</a>
    -
  OutOfMemoryError after introduction of JSyntaxTextArea in LoggerPanel due to disableUndo not being taken into account.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57569">
      Bug
      57569</a>
    -
  FileServer.reserveFile - inconsistent behaviour when hasHeader is true</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57555">
      Bug
      57555</a>
    -
  Cannot use JMeter 2.12 as a maven dependency. Contributed by Pascal Schumacher (pascal.schumacher at t-systems.com)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57608">
      Bug
      57608</a>
    -
  Fix start script compatibility with old Unix shells, e.g. on Solaris</li>

</ul>

 


<h2 class="ch_section" id="Thanks">Thanks</h2>

<p>We thank all contributors mentioned in bug and improvement sections above:
<ul>

<li>
<a href="http://ubikloadpack.com">Ubik Load Pack</a>
</li>

<li>Yngvi &THORN;&oacute;r Sigurj&oacute;nsson (blitzkopf at gmail.com)</li>

<li>Dzmitry Kashlach (dzmitrykashlach at gmail.com)</li>

<li>
<a href="http://blazemeter.com">BlazeMeter Ltd.</a>
</li>

<li>Benoit Wiart (benoit.wiart at gmail.com)</li>

<li>Pascal Schumacher (pascal.schumacher at t-systems.com)</li>

<li>Maciej Franek (maciej.franek at gmail.com)</li>

<li>Richard Brigham (richard.brigham at teamaol.com)</li>

<li>Pieter Ennes (apache.org at spam.ennes.nl)</li>

</ul>


<br>
We also thank bug reporters who helped us improve JMeter. <br>
For this release we want to give special thanks to the following reporters for the clear reports and tests made after our fixes:
<ul>

<li>Chaitanya Bhatt (bhatt.chaitanya at gmail.com) for his thorough testing of new BackendListener and Graphite Client implementation.</li>

<li>Marcelo Jara (marcelojara at hotmail.com) for his clear report on <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57607">
      Bug
      57607</a>.</li>

</ul>

Apologies if we have omitted anyone else.
 </p>
 


<h2 class="ch_section" id="Known bugs">Known bugs</h2>


<ul>

<li>The Once Only controller behaves correctly under a Thread Group or Loop Controller,
but otherwise its behaviour is not consistent (or clearly specified).</li>


<li>
The numbers that appear to the left of the green box are the number of active threads / total number of threads,
the total number of threads only applies to a locally run test, otherwise it will show 0 (see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55510">
      Bug
      55510</a>).
</li>


<li>
Note that there is a <a href="http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6396599 ">bug in Java</a>
on some Linux systems that manifests itself as the following error when running the test cases or JMeter itself:
<pre>
 [java] WARNING: Couldn't flush user prefs:
 java.util.prefs.BackingStoreException:
 java.lang.IllegalArgumentException: Not supported: indent-number
</pre>
This does not affect JMeter operation. This issue is fixed since Java 7b05.
</li>


<li>
Note that under some windows systems you may have this WARNING:
<pre class="source">
java.util.prefs.WindowsPreferences
WARNING: Could not open/create prefs root node Software\JavaSoft\Prefs at root 0
x80000002. Windows RegCreateKeyEx(&hellip;) returned error code 5.
</pre>
The fix is to run JMeter as Administrator, it will create the registry key for you, then you can restart JMeter as a normal user and you won't have the warning anymore.
</li>


<li>
With Java 1.6 and Gnome 3 on Linux systems, the JMeter menu may not work correctly (shift between mouse's click and the menu).
This is a known Java bug (see  <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54477">
      Bug
      54477</a>).
A workaround is to use a Java 7 runtime (OpenJDK or Oracle JDK).
</li>


<li>
With Oracle Java 7 and Mac Book Pro Retina Display, the JMeter GUI may look blurry.
This is a known Java bug, see Bug <a href="http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=8000629">JDK-8000629</a>.
A workaround is to use a Java 7 update 40 runtime which fixes this issue.
</li>


<li>
You may encounter the following error: <i>java.security.cert.CertificateException: Certificates does not conform to algorithm constraints</i>
 if you run a HTTPS request on a web site with a SSL certificate (itself or one of SSL certificates in its chain of trust) with a signature
 algorithm using MD2 (like md2WithRSAEncryption) or with a SSL certificate with a size lower than 1024 bits.
This error is related to increased security in Java 7 version u16 (MD2) and version u40 (Certificate size lower than 1024 bits), and Java 8 too.
<br>
To allow you to perform your HTTPS request, you can downgrade the security of your Java installation by editing
the Java <b>jdk.certpath.disabledAlgorithms</b> property. Remove the MD2 value or the constraint on size, depending on your case.
<br>
This property is in this file:
<pre>JAVA_HOME/jre/lib/security/java.security</pre>
See  <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56357">
      Bug
      56357</a> for details.
</li>


</ul>




<h1>Version 2.12</h1>

<p>
Summary
</p>

<ul>

<li>
<a href="#New and Noteworthy">New and Noteworthy</a>
</li>

<li>
<a href="#Known bugs">Known bugs</a>
</li>

<li>
<a href="#Incompatible changes">Incompatible changes</a>
</li>

<li>
<a href="#Bug fixes">Bug fixes</a>
</li>

<li>
<a href="#Improvements">Improvements</a>
</li>

<li>
<a href="#Non-functional changes">Non-functional changes</a>
</li>

<li>
<a href="#Thanks">Thanks</a>
</li>


</ul>


<h2 class="ch_section" id="New and Noteworthy">New and Noteworthy</h2>





<h3 class="ch_title">Java 8 support</h3>

<p>Now, JMeter 2.12 is compliant with Java 8.</p>


<h2 class="ch_category">New Elements</h2>

<h3 class="ch_title">Critical Section Controller</h3>

<p>The Critical Section Controller allow to serialize the execution of a section in your tree.
Only one instance of the section will be executed at the same time during the test.</p>

<figure>
<a href="./images/screenshots/changes/2.12/01_critical_section_controller.png"><img src="./images/screenshots/changes/2.12/01_critical_section_controller.png" width="683" height="240" alt=""></a>
<figcaption></figcaption>
</figure>


<h3 class="ch_title">DNS Cache Manager</h3>

<p>The new configuration element <b>DNS Cache Manager</b>(see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56841">
      Bug
      56841</a>) improves the testing of:
<ul>

<li>CDN (Content Delivery Network)</li>

<li>DNS load balancing.</li>

<li>Load Balancers like Amazon Elastic Load Balancer</li>

</ul>

</p>

<figure>
<a href="./images/screenshots/changes/2.12/02_dns_cache_manager.png"><img src="./images/screenshots/changes/2.12/02_dns_cache_manager.png" width="573" height="359" alt=""></a>
<figcaption></figcaption>
</figure>

<h2 class="ch_category">Core Improvements</h2>


<h3 class="ch_title">Smarter Recording of Http Test Plans</h3>

<p>Test Script Recorder has been improved in many ways</p>

<ul>
    
<li>Better matching of Variables in Requests, making Test Script Recorder variabilize your sampler during recording more versatile</li>
    
<li>Ability to filter from View Results Tree the Samples that are excluded from recording, this lets you concentrate on recorded Samplers analysis and not bother with useless Sample Results
    <figure>
<a href="./images/screenshots/changes/2.12/14_recorder_filter.png"><img src="./images/screenshots/changes/2.12/14_recorder_filter.png" width="1094" height="647" alt=""></a>
<figcaption></figcaption>
</figure>
    
</li>
    
<li>Better defaults for recording, since this version Recorder will number created Samplers letting you find them much easily in View Results Tree.
    Grouping of Samplers under Transaction Controller will be smarter making all requests emitted by a web page be children as new Transaction Controller</li>

</ul>


<h3 class="ch_title">Support of Webdav requests</h3>

<p>You can now test against WebDav server using HttpClient4 Implementation of Http Request</p>

<figure>
<a href="./images/screenshots/changes/2.12/13_webdav.png"><img src="./images/screenshots/changes/2.12/13_webdav.png" width="989" height="406" alt=""></a>
<figcaption></figcaption>
</figure>


<h3 class="ch_title">Better handling of embedded resources</h3>

<p>When download embedded resources is checked, JMeter now uses User Agent header to download or not resources embedded within conditional comments as per <a href="http://msdn.microsoft.com/en-us/library/ms537512%28v=vs.85%29.aspx" target="_blank">About conditional comments</a>.</p>


<h3 class="ch_title">Ability to customize Cache Manager (Browser cache simulation) handling of cached resources</h3>

<p>You can now configure the behaviour of JMeter when a resource is found in Cache, this can be controlled with <i>cache_manager.cached_resource_mode</i> property</p>

<figure>
<a href="./images/screenshots/changes/2.12/12_cache_resource_mode.png"><img src="./images/screenshots/changes/2.12/12_cache_resource_mode.png" width="1024" height="314" alt=""></a>
<figcaption></figcaption>
</figure>



<h3 class="ch_title">JMS Publisher / JMS Point-to-Point</h3>

<p> Add JMSPriority and JMSExpiration fields for these samplers.</p>

<figure>
<a href="./images/screenshots/changes/2.12/04_jms_publisher.png"><img src="./images/screenshots/changes/2.12/04_jms_publisher.png" width="877" height="314" alt=""></a>
<figcaption></figcaption>
</figure>


<figure>
<a href="./images/screenshots/changes/2.12/05_jms_point_to_point.png"><img src="./images/screenshots/changes/2.12/05_jms_point_to_point.png" width="877" height="293" alt=""></a>
<figcaption></figcaption>
</figure>


<h3 class="ch_title">Mail Reader Sampler</h3>

<p>You can now specify the number of messages that want you retrieve (before all messages were retrieved).
In addition, you can fetch only the message header now.</p>

<figure>
<a href="./images/screenshots/changes/2.12/03_mail_reader_sampler.png"><img src="./images/screenshots/changes/2.12/03_mail_reader_sampler.png" width="814" height="416" alt=""></a>
<figcaption></figcaption>
</figure>


<h3 class="ch_title">SMTP Sampler</h3>

<p>Adding the Connection timeout and the Read timeout to the <b>SMTP Sampler.</b>
</p>

<figure>
<a href="./images/screenshots/changes/2.12/06_smtp_sampler.png"><img src="./images/screenshots/changes/2.12/06_smtp_sampler.png" width="796" height="192" alt=""></a>
<figcaption></figcaption>
</figure>


<h3 class="ch_title">Synchronizing Timer </h3>

<p>Adding a timeout to define the maximum time to waiting of the group of virtual users.</p>

<figure>
<a href="./images/screenshots/changes/2.12/09_synchronizing_timer.png"><img src="./images/screenshots/changes/2.12/09_synchronizing_timer.png" width="546" height="144" alt=""></a>
<figcaption></figcaption>
</figure>


<h3 class="ch_title">Performance improvements</h3>

<p>A big improvement in performances of Functions has been made by lifting useless synchronization. It concerns all functions except __StringFromFile, __XPath and __BeanShell, see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57114">
      Bug
      57114</a>
</p>

<p>__jexl2 performances have been improved to avoid contention point, see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56708">
      Bug
      56708</a>
</p>


<h2 class="ch_category">GUI Improvements</h2>


<h3 class="ch_title">Undo/Redo support</h3>

<p>Undo / Redo has been introduced and allows user to undo/redo changes made on Test Plan Tree. This feature (ALPHA MODE) is disabled by default, to enable it set property <b>undo.history.size=25</b> 
</p>

<figure>
<a href="./images/screenshots/changes/2.12/10_undo_redo.png"><img src="./images/screenshots/changes/2.12/10_undo_redo.png" width="1024" height="56" alt=""></a>
<figcaption></figcaption>
</figure>


<h3 class="ch_title">View Results Tree</h3>

<p>Improve the ergonomics of View Results Tree by changing placement of Renderers and allowing custom ordering
(with the property <i>view.results.tree.renderers_order</i>).</p>

<figure>
<a href="./images/screenshots/changes/2.12/07_view_results_tree.png"><img src="./images/screenshots/changes/2.12/07_view_results_tree.png" width="900" height="329" alt=""></a>
<figcaption></figcaption>
</figure>


<h3 class="ch_title">Response Time Graph</h3>

<p>Adding the ability for the <b>Response Time Graph</b> listener to save/restore format its settings in/from the jmx file.</p>

<figure>
<a href="./images/screenshots/changes/2.12/08_response_time_graph.png"><img src="./images/screenshots/changes/2.12/08_response_time_graph.png" width="997" height="574" alt=""></a>
<figcaption></figcaption>
</figure>


<h3 class="ch_title">Log Viewer</h3>

<p>Starting with this version, the last lines of JMeter's log file (jmeter.log) can be viewed directly in GUI by clicking on Warning icon in the upper right corner.
This will unfold the Log Viewer panel and show logs.</p>

<figure>
<a href="./images/screenshots/changes/2.12/11_log_viewer.png"><img src="./images/screenshots/changes/2.12/11_log_viewer.png" width="1024" height="437" alt=""></a>
<figcaption></figcaption>
</figure>


<h3 class="ch_title">File Opening</h3>

<p>Now, "Open File dialog" uses last opened file folder as start folder, see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52707">
      Bug
      52707</a>
</p>




<h2 class="ch_section" id="Known bugs">Known bugs</h2>


<ul>

<li>The Once Only controller behaves correctly under a Thread Group or Loop Controller,
but otherwise its behaviour is not consistent (or clearly specified).</li>


<li>
The numbers that appear to the left of the green box are the number of active threads / total number of threads,
the total number of threads only applies to a locally run test, otherwise it will show 0 (see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55510">
      Bug
      55510</a>).
</li>


<li>
Note that there is a <a href="http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6396599 ">bug in Java</a>
on some Linux systems that manifests itself as the following error when running the test cases or JMeter itself:
<pre>
 [java] WARNING: Couldn't flush user prefs:
 java.util.prefs.BackingStoreException:
 java.lang.IllegalArgumentException: Not supported: indent-number
</pre>
This does not affect JMeter operation. This issue is fixed since Java 7b05.
</li>


<li>
Note that under some windows systems you may have this WARNING:
<pre class="source">
java.util.prefs.WindowsPreferences
WARNING: Could not open/create prefs root node Software\JavaSoft\Prefs at root 0
x80000002. Windows RegCreateKeyEx(&hellip;) returned error code 5.
</pre>
The fix is to run JMeter as Administrator, it will create the registry key for you, then you can restart JMeter as a normal user and you won't have the warning anymore.
</li>


<li>
With Java 1.6 and Gnome 3 on Linux systems, the JMeter menu may not work correctly (shift between mouse's click and the menu).
This is a known Java bug (see  <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54477 ">
      Bug
      54477 </a>).
A workaround is to use a Java 7 runtime (OpenJDK or Oracle JDK).
</li>


<li>
With Oracle Java 7 and Mac Book Pro Retina Display, the JMeter GUI may look blurry.
This is a known Java bug, see Bug <a href="http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=8000629">JDK-8000629</a>.
A workaround is to use a Java 7 update 40 runtime which fixes this issue.
</li>


<li>
You may encounter the following error: <i>java.security.cert.CertificateException: Certificates does not conform to algorithm constraints</i>
 if you run a HTTPS request on a web site with a SSL certificate (itself or one of SSL certificates in its chain of trust) with a signature
 algorithm using MD2 (like md2WithRSAEncryption) or with a SSL certificate with a size lower than 1024 bits.
This error is related to increased security in Java 7 version u16 (MD2) and version u40 (Certificate size lower than 1024 bits), and Java 8 too.
<br>
To allow you to perform your HTTPS request, you can downgrade the security of your Java installation by editing
the Java <b>jdk.certpath.disabledAlgorithms</b> property. Remove the MD2 value or the constraint on size, depending on your case.
<br>
This property is in this file:
<pre>JAVA_HOME/jre/lib/security/java.security</pre>
See  <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56357">
      Bug
      56357</a> for details.
</li>


</ul>




<h2 class="ch_section" id="Incompatible changes">Incompatible changes</h2>


<ul>

<li>Since JMeter 2.12, active threads in all thread groups and active threads in current thread group are saved by default to CSV or XML results, see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57025">
      Bug
      57025</a>.
This is usually the expected behaviour as you want to have the number of running threads during the test. But if you want to revert to previous behaviour, set property <b>jmeter.save.saveservice.thread_counts=false</b>
</li>

<li>Since JMeter 2.12, Mail Reader Sampler will show 1 for number of samples instead of number of messages retrieved, see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56539">
      Bug
      56539</a>
</li>

<li>Since JMeter 2.12, when using Cache Manager, if resource is found in cache no SampleResult will be created, in previous version a SampleResult with empty content and 204 return code was returned, see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54778">
      Bug
      54778</a>.
You can choose between different ways to handle this case, see <span class="code">cache_manager.cached_resource_mode</span> in <span class="code">jmeter.properties</span>.</li>

<li>Since JMeter 2.12, Log Viewer will no more clear logs when closed and will have logs available even if closed. See <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56920">
      Bug
      56920</a>. Read <a href="./usermanual/hints_and_tips.html#debug_logging">Hints and Tips &gt; Enabling Debug logging</a>
for details on configuring this component.</li>

</ul>




<h2 class="ch_section" id="Bug fixes">Bug fixes</h2>


<h3>HTTP Samplers and Test Script Recorder</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55998">
      Bug
      55998</a> - HTTP recording &ndash; Replacing port value by user defined variable does not work</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56178">
      Bug
      56178</a> - keytool error: Invalid escaped character in AVA: - some characters must be escaped</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56222">
      Bug
      56222</a> - NPE if jmeter.httpclient.strict_rfc2616=true and location is not absolute</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56263">
      Bug
      56263</a> - DefaultSamplerCreator should set BrowserCompatible Multipart true</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56231">
      Bug
      56231</a> - Move redirect location processing from HC3/HC4 samplers to HTTPSamplerBase#followRedirects()</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56207">
      Bug
      56207</a> - URLs get encoded on redirects in HC3.1 &amp; HC4 samplers</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56303">
      Bug
      56303</a> - The width of target controller's combo list should be set to the current panel size, not on label size of the controllers</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54778">
      Bug
      54778</a> - HTTP Sampler should not return 204 when resource is found in Cache, make it configurable with new property cache_manager.cached_resource_mode</li>

</ul>


<h3>Other Samplers</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55977">
      Bug
      55977</a> - JDBC pool keepalive flooding</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55999">
      Bug
      55999</a> - Scroll bar on jms point-to-point sampler does not work when content exceeds display</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56198">
      Bug
      56198</a> - JMSSampler : NullPointerException is thrown when JNDI underlying implementation of JMS provider does not comply with <span class="code">Context.getEnvironment</span> contract</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56428">
      Bug
      56428</a> - MailReaderSampler - should it use mail.pop3s.* properties?</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=46932">
      Bug
      46932</a> - Alias given in select statement is not used as column header in response data for a JDBC request. Based on report and analysis of Nicola Ambrosetti</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56539">
      Bug
      56539</a> - Mail reader sampler: When Number of messages to retrieve is superior to 1, Number of samples should only show 1 not the number of messages retrieved</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56809">
      Bug
      56809</a> - JMSSampler closes InitialContext too early. Contributed by Bradford Hovinen (hovinen at gmail.com)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56761">
      Bug
      56761</a> - JMeter tries to stop already stopped JMS connection and displays "The connection is closed"</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57068">
      Bug
      57068</a> - No error thrown when negative duration is entered in Test Action</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57078">
      Bug
      57078</a> - LagartoBasedHTMLParser fails to parse page that contains input with no type</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57183">
      Bug
      57183</a> - JMSSampler: For input string: "" java.lang.NumberFormatException (for Expiration or Priority fields)</li>

</ul>


<h3>Controllers</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56243">
      Bug
      56243</a> - Foreach works incorrectly with indexes on subsequent iterations </li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56276">
      Bug
      56276</a> - Loop controller becomes broken once loop count evaluates to zero </li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56160">
      Bug
      56160</a> - StackOverflowError when using WhileController within IfController</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56811">
      Bug
      56811</a> - "Start Next Thread Loop" in Result Status Action Handler or on Thread Group and "Go to next Loop iteration" in Test Action behave incorrectly with TransactionController that has "Generate Parent Sampler" checked</li>

</ul>


<h3>Listeners</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56706">
      Bug
      56706</a> - SampleResult#getResponseDataAsString() does not use encoding in response body impacting PostProcessors and ViewResultsTree. Contributed by Ubik Load Pack (support at ubikloadpack.com)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57052">
      Bug
      57052</a> - ArithmeticException: / by zero when sampleCount is equal to 0</li>

</ul>


<h3>Timers, Assertions, Config, Pre- &amp; Post-Processors</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56162">
      Bug
      56162</a> -  HTTP Cache Manager should not cache PUT/POST etc.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56227">
      Bug
      56227</a> - AssertionGUI : NPE in assertion on mouse selection</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=41319">
      Bug
      41319</a> - URLRewritingModifier : Allow Parameter value to be url encoded</li>

</ul>


<h3>Functions</h3>

<ul>

</ul>


<h3>I18N</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56111">
      Bug
      56111</a> - "comments" in german translation is not correct</li>

</ul>


<h3>General</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56059">
      Bug
      56059</a> - Older TestBeans incompatible with 2.11 when using TextAreaEditor</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56080">
      Bug
      56080</a> - Conversion error com.thoughtworks.xstream.converters.ConversionException with Java 8 Early Access Build</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56182">
      Bug
      56182</a> - Can't trigger bsh script using bshclient.jar; socket is closed unexpectedly </li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56360">
      Bug
      56360</a> - HashTree and ListedHashTree fail to compile with Java 8</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56419">
      Bug
      56419</a> - JMeter silently fails to save results</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56662">
      Bug
      56662</a> - Save as xml in a listener is not remembered</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56367">
      Bug
      56367</a> - JMeter 2.11 on maven central triggers a not existing dependency rsyntaxtextarea 2.5.1, upgrade to 2.5.3</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56743">
      Bug
      56743</a> - Wrong mailing list archives on mail2.xml. Contributed by Felix Schumacher (felix.schumacher at internetallee.de)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56763">
      Bug
      56763</a> - Removing the Oracle icons, not used by JMeter (and missing license)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54100">
      Bug
      54100</a> - Switching languages fails to preserve toolbar button states (enabled/disabled)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54648">
      Bug
      54648</a> - JMeter GUI on OS X crashes when using CMD+C (keyboard shortcut or UI menu entry) on an element from the tree</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56962">
      Bug
      56962</a> - JMS GUIs should disable all fields affected by jndi.properties checkbox</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57061">
      Bug
      57061</a> - Save as Test Fragment fails to clone deeply selected node. Contributed by Ubik Load Pack (support at ubikloadpack.com)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57075">
      Bug
      57075</a> - BeanInfoSupport.MULTILINE attribute is not processed</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57076">
      Bug
      57076</a> - BooleanPropertyEditor#getAsText() must return a value that is in getTags()</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57088">
      Bug
      57088</a> - NPE in ResultCollector.testEnded</li>

</ul>




<h2 class="ch_section" id="Improvements">Improvements</h2>


<h3>HTTP Samplers and Test Script Recorder</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55959">
      Bug
      55959</a> - Improve error message when Test Script Recorder fails due to I/O problem</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52013">
      Bug
      52013</a> - Test Script Recorder's Child View Results Tree does not take into account Test Script Recorder excluded/included URLs. Based on report and analysis of James Liang</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56119">
      Bug
      56119</a> - File uploads fail every other attempt using timers. Enable idle timeouts for servers that don't send Keep-Alive headers.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56272">
      Bug
      56272</a> - MirrorServer should support query parameters for status and redirects</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56772">
      Bug
      56772</a> - Handle IE Conditional comments when parsing embedded resources</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57026">
      Bug
      57026</a> - HTTP(S) Test Script Recorder : Better default settings. Contributed by Ubik Load Pack (support at ubikloadpack.com)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57107">
      Bug
      57107</a> - Patch proposal: Add DAV verbs to HTTP Sampler. Contributed by Philippe Jung (apache at famille-jung.fr)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56357">
      Bug
      56357</a> - Certificates does not conform to algorithm constraints: Adding a note to indicate how to remove of the Java installation these new security constraints</li>

</ul>


<h3>Other samplers</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56033">
      Bug
      56033</a> - Add Connection timeout and Read timeout to SMTP Sampler</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56429">
      Bug
      56429</a> - MailReaderSampler - no need to fetch all Messages if not all wanted</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56427">
      Bug
      56427</a> - MailReaderSampler enhancement: read message header only</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56510">
      Bug
      56510</a> - JMS Publisher/Point to Point: Add JMSPriority and JMSExpiration</li>

</ul>


<h3>Controllers</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56728">
      Bug
      56728</a> - New Critical Section Controller to serialize blocks of a Test. Based partly on a patch contributed by Mikhail Epikhin(epihin-m at yandex.ru)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57145">
      Bug
      57145</a> - RandomController : Use ThreadLocalRandom instead of Random for better performances</li>

</ul>


<h3>Listeners</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56228">
      Bug
      56228</a> - View Results Tree : Improve ergonomy by changing placement of Renderers and allowing custom ordering</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56349">
      Bug
      56349</a> - "summary" is a bad name for a Generate Summary Results component, documentation clarified</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56769">
      Bug
      56769</a> - Adds the ability for the Response Time Graph listener to save/restore format settings in/from the jmx file</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57025">
      Bug
      57025</a> - SaveService : Better defaults, save thread counts by default</li>

</ul>


<h3>Timers, Assertions, Config, Pre- &amp; Post-Processors</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56691">
      Bug
      56691</a> - Synchronizing Timer : Add timeout on waiting</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56701">
      Bug
      56701</a> - HTTP Authorization Manager/ Kerberos Authentication: add port to SPN when server port is neither 80 nor 443. Based on patches from Dan Haughey (dan.haughey at swinton.co.uk) and Felix Schumacher (felix.schumacher at internetallee.de)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56841">
      Bug
      56841</a> - New configuration element: DNS Cache Manager to improve the testing of CDN. Based on patch from Dzmitry Kashlach (dzmitrykashlach at gmail.com), and contributed by BlazeMeter Ltd.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52061">
      Bug
      52061</a> - Allow access to Request Headers in Regex Extractor. Based on patch from Dzmitry Kashlach (dzmitrykashlach at gmail.com), and contributed by BlazeMeter Ltd.</li>

</ul>


<h3>Functions</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56708">
      Bug
      56708</a> - __jexl2 doesn't scale with multiple CPU cores. Based on analysis and patch contributed by Mikhail Epikhin(epihin-m at yandex.ru)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57114">
      Bug
      57114</a> - Performance : Functions that only have values as instance variable should not synchronize execute. Based on analysis by Ubik Load Pack support and Vladimir Sitnikov, patch contributed by Vladimir Sitnikov (sitnikov.vladimir at gmail.com)</li>

</ul>


<h3>I18N</h3>

<ul>

</ul>


<h3>General</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=21695">
      Bug
      21695</a> - Unix jmeter start script assumes it is on PATH, not a link</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56292">
      Bug
      56292</a> - Add the check of the Java's version in startup files and disable some options when is Java v8 engine</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56298">
      Bug
      56298</a> - JSR223 language display does not show which engine will be used</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56455">
      Bug
      56455</a> - Batch files: drop support for non-NT Windows shell scripts</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52707">
      Bug
      52707</a> - Make Open File dialog use last opened file folder as start folder. Based on patch from Dzmitry Kashlach (dzmitrykashlach at gmail.com), and contributed by BlazeMeter Ltd.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56807">
      Bug
      56807</a> - Ability to force flush of ResultCollector file. Contributed by Andrey Pohilko (apc4 at ya.ru)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56921">
      Bug
      56921</a> - Templates : Improve Recording template to ignore embedded resources case and URL parameters. Contributed by Ubik Load Pack (support at ubikloadpack.com)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=42248">
      Bug
      42248</a> - Undo-redo support on Test Plan tree modification. Developed by Andrey Pohilko (apc4 at ya.ru) and contributed by BlazeMeter Ltd. Additional contribution by Ubik Load Pack (support at ubikloadpack.com)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56920">
      Bug
      56920</a> - LogViewer : Make it receive all log events even when it is closed. Contributed by Ubik Load Pack (support at ubikloadpack.com)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57083">
      Bug
      57083</a> - simplified the CachedResourceMode enum. Contributed by Graham Russel (graham at ham1.co.uk)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57082">
      Bug
      57082</a> - ComboStringEditor : Added hashCode to an inner class which overwrote equals. Contributed by Graham Russel (graham at ham1.co.uk)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57081">
      Bug
      57081</a> - Updating checkstyle to only check for tabs in java, xml, xsd, dtd, htm, html and txt files (not images!). Contributed by Graham Russell (graham at ham1.co.uk)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56178">
      Bug
      56178</a> - Really replace backslashes in user name before generating proxy certificate. Contributed by Graham Russel (graham at ham1.co.uk)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57084">
      Bug
      57084</a> - Close socket after usage in BeanShellClient. Contributed by Graham Russel (graham at ham1.co.uk)</li>

</ul>

<h2 class="ch_section" id="Non-functional changes">Non-functional changes</h2>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=57117">
      Bug
      57117</a> - Increase the default cipher for HTTPS Test Script Recorder from SSLv3 to TLS</li>

<li>Updated to commons-lang3 3.3.2 (from 3.1)</li>

<li>Updated to commons-codec 1.9 (from 1.8)</li>

<li>Updated to commons-logging 1.2 (from 1.1.3)</li>

<li>Updated to tika 1.6 (from 1.4)</li>

<li>Updated to xercesImpl 2.11.0 (from 2.9.1)</li>

<li>Updated to xml-apis 1.4.01 (from 1.3.04)</li>

<li>Updated to xstream 1.4.8 (from 1.4.4)</li>

<li>Updated to jodd 3.6.1 (from 3.4.10)</li>

<li>Updated to rsyntaxtextarea 2.5.3 (from 2.5.1)</li>

<li>Updated xalan and serializer to 2.7.2 (from 2.7.1)</li>

<li>Updated to jsoup-1.8.1.jar (from 1.7.3)</li>

</ul>


<h2 class="ch_section" id="Thanks">Thanks</h2>

<p>We thank all contributors mentioned in bug and improvement sections above:
<ul>

<li>James Liang (jliang at andera.com)</li>

<li>Emmanuel Bourg (ebourg at apache.org)</li>

<li>Nicola Ambrosetti (ambrosetti.nicola at gmail.com)</li>

<li>
<a href="http://ubikloadpack.com">Ubik Load Pack</a>
</li>

<li>Mikhail Epikhin (epihin-m at yandex.ru)</li>

<li>Dan Haughey (dan.haughey at swinton.co.uk)</li>

<li>Felix Schumacher (felix.schumacher at internetallee.de)</li>

<li>Dzmitry Kashlach (dzmitrykashlach at gmail.com)</li>

<li>Andrey Pohilko (apc4 at ya.ru)</li>

<li>Bradford Hovinen (hovinen at gmail.com)</li>

<li>
<a href="http://blazemeter.com">BlazeMeter Ltd.</a>
</li>

<li>Graham Russell (graham at ham1.co.uk)</li>

<li>Philippe Jung (apache at famille-jung.fr)</li>

<li>Vladimir Sitnikov (sitnikov.vladimir at gmail.com)</li>

</ul>


<br>
We also thank bug reporters who helped us improve JMeter. <br>
For this release we want to give special thanks to the following reporters for the clear reports and tests made after our fixes:
<ul>

<li>Oliver LLoyd (email at oliverlloyd.com) for his help on <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56119">
      Bug
      56119</a>
</li>

<li>Vladimir Ryabtsev (greatvovan at gmail.com) for his help on <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56243">
      Bug
      56243</a> and <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=56276">
      Bug
      56276</a>
</li>

<li>Adrian Speteanu (asp.adieu at gmail.com) and Matt Kilbride (matt.kilbride at gmail.com) for their feedback and tests on <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54648">
      Bug
      54648</a>
</li>

<li>Shmuel Krakower (shmulikk at gmail.com) for his tests and reports on Undo/Redo feature</li>

</ul>

Apologies if we have omitted anyone else.
 </p>




<h1>Version 2.11</h1>

<p>
Summary
</p>

<ul>

<li>
<a href="#New and Noteworthy">New and Noteworthy</a>
</li>

<li>
<a href="#Known bugs">Known bugs</a>
</li>

<li>
<a href="#Incompatible changes">Incompatible changes</a>
</li>

<li>
<a href="#Bug fixes">Bug fixes</a>
</li>

<li>
<a href="#Improvements">Improvements</a>
</li>

<li>
<a href="#Non-functional changes">Non-functional changes</a>
</li>

<li>
<a href="#Thanks">Thanks</a>
</li>


</ul>


<h2 class="ch_section" id="New and Noteworthy">New and Noteworthy</h2>



<h3 class="ch_title">HTTP(S) Test Script Recorder improvements</h3>

<p>
Following improvements have been made since major changes introduced in JMeter 2.10 on HTTP(S) Test Script Recorder:
<ul>

<li>Better detection of missing or invalid configuration of keytool utility</li>

<li>New system property <span class="code">keytool.directory</span> (see <span class="code">system.properties</span>) lets you configure directory containing keytool in case on non-standard installation</li>

</ul>

</p>


<h3 class="ch_title">JMS Publisher/Point to Point : Add ability to set typed values in JMS header properties</h3>

<p>In the samplers JMS Publisher and JMS Point-to-Point, you can now set up the class of values for the JMS header properties. Previously only String was possible.</p>

<p>

<figure>
<a href="./images/screenshots/changes/2.11/01_jms_properties_typed_values.png"><img src="./images/screenshots/changes/2.11/01_jms_properties_typed_values.png" width="928" height="796" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3 class="ch_title">View Results Tree : Add an XPath Tester </h3>

<p>In View Results Tree listener, a new XPath tester can be used to test XPATH expressions.</p>

<p>

<figure>
<a href="./images/screenshots/changes/2.11/03_xpath_tester.png"><img src="./images/screenshots/changes/2.11/03_xpath_tester.png" width="990" height="765" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3 class="ch_title">Ability to choose the client alias for the cert key in JsseSslManager such that Mutual SSL auth testing can be made more flexible</h3>

<p>When testing client based certificate authentications you have now better control on certificate you use through a new field "Variable name holding certificate alias", this
field lets you select the certificate you want to send to server to authenticate. You can use a CSV Data Set as a holder for the variable value.</p>

<p>

<figure>
<a href="./images/screenshots/changes/2.11/07_keystore_config.png"><img src="./images/screenshots/changes/2.11/07_keystore_config.png" width="471" height="189" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3 class="ch_title">Add a "Save as Test Fragment" option </h3>

<p>In the file menu, a new option allow to save a group of elements as a Test fragment.</p>

<p>

<figure>
<a href="./images/screenshots/changes/2.11/05_save_as_fragement.png"><img src="./images/screenshots/changes/2.11/05_save_as_fragement.png" width="295" height="242" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3 class="ch_title">Summariser is be enabled by default in Non GUI mode</h3>

<p>When you run JMeter from command line, now JMeter displays some statistics from the Summariser mode.</p>

<p>

<figure>
<a href="./images/screenshots/changes/2.11/06_summariser.png"><img src="./images/screenshots/changes/2.11/06_summariser.png" width="1287" height="386" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3 class="ch_title">Transaction Controller:Change default property "Include duration of timer&hellip;" for newly created element</h3>

<p>Starting from 2.11, Transaction Controller is configured by default to exclude processing time of pre/post processors as long as timers pause.</p>

<p>

<figure>
<a href="./images/screenshots/changes/2.11/02_transaction_controller.png"><img src="./images/screenshots/changes/2.11/02_transaction_controller.png" width="628" height="140" alt=""></a>
<figcaption></figcaption>
</figure>

</p>








<h2 class="ch_section" id="Known bugs">Known bugs</h2>


<ul>

<li>The Once Only controller behaves correctly under a Thread Group or Loop Controller,
but otherwise its behaviour is not consistent (or clearly specified).</li>


<li>Listeners don't show iteration counts when a If Controller has a condition which is always false from the first iteration (see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52496">
      Bug
      52496</a>).
A workaround is to add a sampler at the same level as (or superior to) the If Controller.
For example a Test Action sampler with 0 wait time (which doesn't generate a sample),
or a Debug Sampler with all fields set to False (to reduce the sample size).
</li>


<li>
The numbers that appear to the left of the green box are the number of active threads / total number of threads,
the total number of threads only applies to a locally run test, otherwise it will show 0 (see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55510">
      Bug
      55510</a>).
</li>


<li>
Note that there is a <a href="http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6396599 ">bug in Java</a>
on some Linux systems that manifests itself as the following error when running the test cases or JMeter itself:
<pre>
 [java] WARNING: Couldn't flush user prefs:
 java.util.prefs.BackingStoreException:
 java.lang.IllegalArgumentException: Not supported: indent-number
</pre>
This does not affect JMeter operation. This issue is fixed since Java 7b05.
</li>


<li>
With Java 1.6 and Gnome 3 on Linux systems, the JMeter menu may not work correctly (shift between mouse's click and the menu).
This is a known Java bug (see  <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54477 ">
      Bug
      54477 </a>).
A workaround is to use a Java 7 runtime (OpenJDK or Oracle JDK).
</li>


<li>
With Oracle Java 7 and Mac Book Pro Retina Display, the JMeter GUI may look blurry.
This is a known Java bug, see Bug <a href="http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=8000629">JDK-8000629</a>.
A workaround is to use a Java 7 update 40 runtime which fixes this issue.
</li>

</ul>




<h2 class="ch_section" id="Incompatible changes">Incompatible changes</h2>


<ul>

<li>When creating a new Transaction Controller, property "Include duration of timer and pre-post processors in generated sample" will be unchecked starting from version 2.11</li>

<li>In Non GUI mode, since 2.11 summariser is enabled with a 30 seconds frequency</li>

<li>JMeter is more lenient with redirect handling and relaxes on RFC2616 by allowing relative locations. See property "<span class="code">jmeter.httpclient.strict_rfc2616</span>" in <span class="code">jmeter.properties</span> to change this behaviour, see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55717">
      Bug
      55717</a>
</li>

<li>When creating a new Response Assertion, property "Pattern Matching Rules" now defaults to Substring starting from version 2.11</li>

</ul>




<h2 class="ch_section" id="Bug fixes">Bug fixes</h2>


<h3>HTTP Samplers and Test Script Recorder</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55815">
      Bug
      55815</a> - Proxy#getDomainMatch does not handle wildcards correctly</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55717">
      Bug
      55717</a> - Bad handling of Redirect when URLs are in relative format by HttpClient4 and HttpClient3.1</li>

</ul>


<h3>Other Samplers</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55685">
      Bug
      55685</a> - OS Sampler: timeout option don't save and restore correctly value and don't init correctly timeout</li>

</ul>


<h3>Controllers</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55816">
      Bug
      55816</a> - Transaction Controller with "Include duration of timer&hellip;" unchecked does not ignore processing time of last child sampler</li>

</ul>


<h3>Listeners</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55826">
      Bug
      55826</a> - Unsynchronised concurrent accesses to list in field RespTimeGraphVisualizer.internalList </li>

</ul>


<h3>Timers, Assertions, Config, Pre- &amp; Post-Processors</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55694">
      Bug
      55694</a> - Assertions and Extractors : Avoid NullPointerException when scope is variable and variable is missing</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55721">
      Bug
      55721</a> - HTTP Cache Manager - no-store directive is wrongly interpreted</li>

</ul>


<h3>Functions</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55871">
      Bug
      55871</a> - Wrong result with intSum() function when a space character is present before/after the number. Contributed by Milamber based on a proposal by James Liang.</li>

</ul>


<h3>I18N</h3>

<ul>

</ul>


<h3>General</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55739">
      Bug
      55739</a> - Remote Test : Total threads in GUI mode shows invalid total number of threads</li>

</ul>




<h2 class="ch_section" id="Improvements">Improvements</h2>


<h3>HTTP Samplers and Proxy</h3>

<ul>

</ul>


<h3>Other samplers</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55589">
      Bug
      55589</a> - JMS Publisher/Point to Point : Add ability to set typed values in JMS header properties.</li>

</ul>


<h3>Controllers</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55854">
      Bug
      55854</a> - Transaction Controller:Change default property "Include duration of timer&hellip;" for newly created element</li>

</ul>


<h3>Listeners</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55610">
      Bug
      55610</a> - View Results Tree : Add an XPath Tester</li>

</ul>


<h3>Timers, Assertions, Config, Pre- &amp; Post-Processors</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55908">
      Bug
      55908</a> - Response assertion : Change Pattern Matching Rules default to Substring on creation for better performances</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54977">
      Bug
      54977</a> - Ability to choose the client alias for the cert key in JsseSslManager such that Mutual SSL auth testing can be made more flexible. Contributed by UBIK Load Pack (support at ubikloadpack.com)</li>

</ul>


<h3>Functions</h3>

<ul>

</ul>


<h3>I18N</h3>

<ul>

</ul>


<h3>General</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55693">
      Bug
      55693</a> - Add a "Save as Test Fragment" option</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55753">
      Bug
      55753</a> - Improve FilePanel behaviour to start from the value set in Filename field if any. Contributed by UBIK Load Pack (support at ubikloadpack.com)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55756">
      Bug
      55756</a> - HTTP Mirror Server : Add ability to set Headers</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55852">
      Bug
      55852</a> - Be more lenient in parsing when charset value is surrounded with single quotes</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55857">
      Bug
      55857</a> - Performance : AbstractProperty should test for emptiness to avoid Exception throwing</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55858">
      Bug
      55858</a> - Startup Performance : On Startup, BeanInfoSupport should test for key availability instead of throwing</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55865">
      Bug
      55865</a> - Performance :Disable stale check by default in HttpClient 4 and 3.1</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55512">
      Bug
      55512</a> - Summariser should be enabled by default in Non GUI mode</li>

</ul>


<h2 class="ch_section" id="Non-functional changes">Non-functional changes</h2>

<ul>

<li>Updated to rsyntaxtextarea-2.5.1.jar (from 2.5.0)</li>

<li>Updated to jodd-core-3.4.9.jar from (3.4.8) and jodd-lagarto-3.4.9.jar (from 3.4.9)</li>

<li>Updated to jsoup-1.7.3.jar (from 1.7.2)</li>

<li>Updated to mail-1.5.0-b01 (from 1.4.4)</li>

<li>Updated to mongo-java-driver-2.11.3 (from 2.11.2)</li>

</ul>


<h2 class="ch_section" id="Thanks">Thanks</h2>

<p>We thank all contributors mentioned in bug and improvement sections above:
<ul>

<li>James Liang (jliang at andera.com)</li>

<li>UBIK Load Pack (support at ubikloadpack.com)</li>

</ul>

<br>
We also thank bug reporters who helped us improve JMeter. <br>
For this release we want to give special thanks to the following reporters for the clear reports and tests made after our fixes:
<ul>

<li>John Natsioulas (john_natsioulas at yahoo.com.au)</li>

<li>Antonio Gomes Rodrigues (ra0077 at gmail.com)</li>

</ul>

Apologies if we have omitted anyone else.
 </p>





<h1>Version 2.10</h1>

<p>
Summary
</p>

<ul>

<li>
<a href="#New and Noteworthy">New and Noteworthy</a>
</li>

<li>
<a href="#Known bugs">Known bugs</a>
</li>

<li>
<a href="#Incompatible changes">Incompatible changes</a>
</li>

<li>
<a href="#Bug fixes">Bug fixes</a>
</li>

<li>
<a href="#Improvements">Improvements</a>
</li>

<li>
<a href="#Non-functional changes">Non-functional changes</a>
</li>

<li>
<a href="#Thanks">Thanks</a>
</li>


</ul>


<h2 class="ch_section" id="New and Noteworthy">New and Noteworthy</h2>


<h2 class="ch_category">Core Improvements</h2>


<h3 class="ch_title">New Performance improvements</h3>

<p>

<ul>

<li>A Huge performance improvement has been made on High Throughput Tests (no pause), see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54777">
      Bug
      54777</a>
</li>

<li>An issue with unnecessary SSL Context reset has been fixed which improves performances of pure HTTP tests, see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55023">
      Bug
      55023</a>
</li>

<li>Important performance improvement in parsing of Embedded resource in HTML pages thanks to a switch to JODD/Lagarto HTML Parser, see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55632">
      Bug
      55632</a>
</li>

</ul>

</p>


<h3 class="ch_title">New CSS/JQuery Tester in View Tree Results</h3>

<p>A new CSS/JQuery Tester in View Tree Results that makes CSS/JQuery Extractor a first class
citizen in JMeter, you can now test your expressions very easily</p>

<p>

<figure>
<a href="./images/screenshots/changes/2.10/01_css_jquery_tester.png"><img src="./images/screenshots/changes/2.10/01_css_jquery_tester.png" width="1144" height="638" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3 class="ch_title">Many improvements in HTTP(S) Recording have been made</h3>

<p>

<figure>
<a href="./images/screenshots/changes/2.10/18_https_test_script_recorder.png"><img src="./images/screenshots/changes/2.10/18_https_test_script_recorder.png" width="691" height="215" alt=""></a>
<figcaption></figcaption>
</figure>

<div class="clear"></div>
<div class="note">
The "HTTP Proxy Server" test element has been renamed as "HTTP(S) Test Script Recorder".
</div>
<div class="clear"></div>

<ul>

<li>Better recording of HTTPS sites, embedded resources using subdomains will more easily be recorded when using JDK 7. See <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55507">
      Bug
      55507</a>.
See updated documentation: <a href="./usermanual/component_reference.html#HTTP(S)_Test_Script_Recorder">HTTP(S) Test Script Recorder</a>

</li>

<li>Redirection are now more smartly detected by HTTP Proxy Server, see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55531">
      Bug
      55531</a>
</li>

<li>Many fixes on edge cases with HTTPS have been made, see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55502">
      Bug
      55502</a>, <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55504">
      Bug
      55504</a>, <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55506">
      Bug
      55506</a>
</li>

<li>Many encoding fixes have been made, see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54482">
      Bug
      54482</a>, <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54142">
      Bug
      54142</a>, <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54293">
      Bug
      54293</a>
</li>

</ul>

</p>


<h3 class="ch_title">You can now load test MongoDB through new MongoDB Source Config</h3>

<p>

<figure>
<a href="./images/screenshots/changes/2.10/02_mongodb_source_config.png"><img src="./images/screenshots/changes/2.10/02_mongodb_source_config.png" width="912" height="486" alt=""></a>
<figcaption></figcaption>
</figure>

</p>

<p>

<figure>
<a href="./images/screenshots/changes/2.10/14_mongodb_jsr223.png"><img src="./images/screenshots/changes/2.10/14_mongodb_jsr223.png" width="850" height="687" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3 class="ch_title">Kerberos authentication has been added to Auth Manager</h3>

<p>

<figure>
<a href="./images/screenshots/changes/2.10/15_kerberos.png"><img src="./images/screenshots/changes/2.10/15_kerberos.png" width="1005" height="364" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3 class="ch_title">Device can now be used in addition to source IP address</h3>


<p>

<figure>
<a href="./images/screenshots/changes/2.10/16_device.png"><img src="./images/screenshots/changes/2.10/16_device.png" width="1087" height="699" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3 class="ch_title">You can now do functional testing of MongoDB scripts through new MongoDB Script</h3>

<p>

<figure>
<a href="./images/screenshots/changes/2.10/03_mongodb_script_alpha.png"><img src="./images/screenshots/changes/2.10/03_mongodb_script_alpha.png" width="906" height="313" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3 class="ch_title">Timeout has been added to OS Process Sampler</h3>

<p>

<figure>
<a href="./images/screenshots/changes/2.10/17_os_process_timeout.png"><img src="./images/screenshots/changes/2.10/17_os_process_timeout.png" width="684" height="586" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3 class="ch_title">Query timeout has been added to JDBC Request</h3>

<p>

<figure>
<a href="./images/screenshots/changes/2.10/04_jdbc_request_timeout.png"><img src="./images/screenshots/changes/2.10/04_jdbc_request_timeout.png" width="540" height="600" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3 class="ch_title">New functions (__urlencode and __urldecode) are now available to encode/decode URL encoded chars</h3>

<p>

<figure>
<a href="./images/screenshots/changes/2.10/05_urlencode_function.png"><img src="./images/screenshots/changes/2.10/05_urlencode_function.png" width="512" height="240" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3 class="ch_title">Continuous Integration is now eased by addition of a new flag that forces NON-GUI JVM to exit after test end</h3>

<p>See jmeter property:</p>

<span class="code">jmeterengine.force.system.exit</span>

<p></p>


<h3 class="ch_title">HttpSampler now allows DELETE Http Method to have a body (works for HC4 and HC31 implementations). This allows for example to test Elastic Search APIs</h3>

<p>

<figure>
<a href="./images/screenshots/changes/2.10/06_http_request_delete_method.png"><img src="./images/screenshots/changes/2.10/06_http_request_delete_method.png" width="573" height="444" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3 class="ch_title">2 implementations of HtmlParser have been added to improve Embedded resources parsing</h3>

<p>
You can choose the implementation to use for parsing Embedded resources in HTML pages:
See jmeter.properties and look at property "htmlParser.className".
<ul>

<li>org.apache.jmeter.protocol.http.parser.LagartoBasedHtmlParser for optimal performances</li>

<li>org.apache.jmeter.protocol.http.parser.JSoupBasedHtmlParser for most accurate parsing and functional testing</li>

</ul>

</p>


<h3 class="ch_title">Distributed testing has been improved</h3>

<p>

<ul>

<li>
Number of threads on each node are now reported to controller.
<p>

<figure>
<a href="./images/screenshots/changes/2.10/17_threads_summariser.png"><img src="./images/screenshots/changes/2.10/17_threads_summariser.png" width="988" height="355" alt=""></a>
<figcaption></figcaption>
</figure>

</p>

<p>

<figure>
<a href="./images/screenshots/changes/2.10/17_threads_gui.png"><img src="./images/screenshots/changes/2.10/17_threads_gui.png" width="125" height="33" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


</li>

<li>Performance improvement on BatchSampleSender(<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55423">
      Bug
      55423</a>)</li>

<li>Addition of 2 SampleSender modes (StrippedAsynch and StrippedDiskStore), see jmeter.properties</li>

</ul>

</p>


<h3 class="ch_title">ModuleController has been improved to better handle changes to referenced controllers</h3>


<h3 class="ch_title">Improved class loader configuration, see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55503">
      Bug
      55503</a>
</h3>

<p>

<ul>

<li>New property "plugin_dependency_paths" for plugin dependencies</li>

<li>Properties "search_paths", "user.classpath" and "plugin_dependency_paths"
    now automatically add all jars from configured directories</li>

</ul>

</p>


<h3 class="ch_title">Best-practices section has been improved, ensure you read it to get the most out of JMeter</h3>

<p>See <a href="usermanual/best-practices.html">Best Practices</a>

</p>

<h2 class="ch_category">GUI and ergonomy Improvements</h2>



<h3 class="ch_title">New Templates feature that allows you to create test plan from existing template or merge
template into your Test Plan</h3>

<p>

<figure>
<a href="./images/screenshots/changes/2.10/07_jmeter_templates_icon.png"><img src="./images/screenshots/changes/2.10/07_jmeter_templates_icon.png" width="428" height="130" alt=""></a>
<figcaption></figcaption>
</figure>

</p>

<p>

<figure>
<a href="./images/screenshots/changes/2.10/08_jmeter_templates_box.png"><img src="./images/screenshots/changes/2.10/08_jmeter_templates_box.png" width="781" height="472" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3 class="ch_title">Workbench can now be saved</h3>

<p>

<figure>
<a href="./images/screenshots/changes/2.10/09_save_workbench.png"><img src="./images/screenshots/changes/2.10/09_save_workbench.png" width="489" height="198" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3 class="ch_title">Syntax color has been added to scripts elements (BeanShell, BSF, and JSR223), MongoDB and JDBC elements making code much more readable and allowing UNDO/REDO through CTRL+Z/CTRL+Y</h3>

<p>BSF Sampler with syntax color
<figure>
<a href="./images/screenshots/changes/2.10/10_color_syntax_bsf_sampler.png"><img src="./images/screenshots/changes/2.10/10_color_syntax_bsf_sampler.png" width="915" height="620" alt=""></a>
<figcaption></figcaption>
</figure>

</p>

<p>JSR223 Pre Processor with syntax color
<figure>
<a href="./images/screenshots/changes/2.10/11_color_syntax_jsr223_preprocessor.png"><img src="./images/screenshots/changes/2.10/11_color_syntax_jsr223_preprocessor.png" width="911" height="614" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3 class="ch_title">Better editors are now available for Test Elements with large text content, like HTTP Sampler, and JMS related Test Element providing line numbering and allowing UNDO/REDO through CTRL+Z/CTRL+Y</h3>


<h3 class="ch_title">JMeter GUI can now be fully Internationalized, all remaining issues have been fixed</h3>

<h5>Currently French has all its labels translated. Other languages are partly translated, feel free to
contribute translations by reading <a href="localising/index.html">Localisation (Translator's Guide)</a>
</h5>


<h3 class="ch_title">Moving elements in Test plan has been improved in many ways</h3>

<h5>Drag and drop of elements in Test Plan tree is now much easier and possible on multiple nodes</h5>

<p>

<figure>
<a href="./images/screenshots/changes/2.10/12_drap_n-drop_multiple.png"><img src="./images/screenshots/changes/2.10/12_drap_n-drop_multiple.png" width="894" height="236" alt=""></a>
<figcaption></figcaption>
</figure>

</p>

<p>

<b>Note that due to this <a href="http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6560955">bug in Java</a>,
you cannot drop a node after last node. The workaround is to drop it before this last node and then Drag and Drop the last node
before the one you just dropped.</b>

</p>

<h5>New shortcuts have been added to move elements in the tree. </h5>

<p>(alt + Arrow Up) and (alt + Arrow Down) move the element within the parent node<br>
(alt + Arrow Left) and (alt + Arrow Right) move the element up and down in the tree depth</p>


<h3 class="ch_title">Response Time Graph Y axis can now be scaled</h3>

<p>

<figure>
<a href="./images/screenshots/changes/2.10/13_response_time_graph_y_scale.png"><img src="./images/screenshots/changes/2.10/13_response_time_graph_y_scale.png" width="947" height="596" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3 class="ch_title">JUnit Sampler gives now more details on configuration errors</h3>





<h2 class="ch_section" id="Known bugs">Known bugs</h2>


<ul>

<li>The Once Only controller behaves correctly under a Thread Group or Loop Controller,
but otherwise its behaviour is not consistent (or clearly specified).</li>


<li>Listeners don't show iteration counts when a If Controller has a condition which is always false from the first iteration (see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52496">
      Bug
      52496</a>).
A workaround is to add a sampler at the same level as (or superior to) the If Controller.
For example a Test Action sampler with 0 wait time (which doesn't generate a sample),
or a Debug Sampler with all fields set to False (to reduce the sample size).
</li>


<li>Webservice sampler does not consider the HTTP response status to compute the status of a response, thus a response 500 containing a non empty body will be considered as successful, see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54006">
      Bug
      54006</a>.
To workaround this issue, ensure you always read the response and add a Response Assertion checking text inside the response.
</li>


<li>
The numbers that appear to the left of the green box are the number of active threads / total number of threads,
these only apply to a locally run test; they do not include any threads started on remote systems when using client-server mode, (see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54152">
      Bug
      54152</a>).
</li>


<li>
Note that there is a <a href="http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6396599 ">bug in Java</a>
on some Linux systems that manifests itself as the following error when running the test cases or JMeter itself:
<pre>
 [java] WARNING: Couldn't flush user prefs:
 java.util.prefs.BackingStoreException:
 java.lang.IllegalArgumentException: Not supported: indent-number
</pre>
This does not affect JMeter operation. This issue is fixed since Java 7b05.
</li>


<li>
With Java 1.6 and Gnome 3 on Linux systems, the JMeter menu may not work correctly (shift between mouse's click and the menu).
This is a known Java bug (see  <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54477 ">
      Bug
      54477 </a>).
A workaround is to use a Java 7 runtime (OpenJDK or Oracle JDK).
</li>


<li>
With Oracle Java 7 and Mac Book Pro Retina Display, the JMeter GUI may look blurry.
This is a known Java bug, see Bug <a href="http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=8000629">JDK-8000629</a>.
A workaround is to use a Java 7 update 40 runtime which fixes this issue.
</li>

</ul>




<h2 class="ch_section" id="Incompatible changes">Incompatible changes</h2>


<ul>

<li>
<b>SMTP Sampler</b> now uses eml file subject if subject field is empty</li>


<li>With this version autoFlush has been turned off on PrintWriter in charge of writing test results.
This results in improved throughput for intensive tests but can result in more test data loss in case
of JMeter crash (extremely rare). To revert to previous behaviour set <span class="code">jmeter.save.saveservice.autoflush</span> property to <span class="code">true</span>.</li>


<li>
Shortcut for <b>Function Helper Dialog</b> is now <i>CTRL+SHIFT+F1 (CMD + SHIFT + F1 for Mac OS)</i>.
The original key sequence <i>(Ctrl+F1)</i> did not work in some locations (it is consumed by the Java Swing ToolTipManager).
It was therefore necessary to change the shortcut.
</li>


<li>

<b>Webservice (SOAP) Request</b> has been removed by default from GUI as Element is deprecated. (Use <b>HTTP Request</b>
with <i>Body Data</i>, see also the Template <i>Building a SOAP Webservice Test Plan</i>), if you need to show it, see property <span class="code">not_in_menu</span> in <i>jmeter.properties</i>

</li>


<li>

<b>Transaction Controller</b> now sets <i>Response Code</i> of <i>Generated Parent Sampler</i>
(if <i>Generated Parent Sampler</i> is checked) to response code of first failing child in case of failure of one of the children, in previous versions <i>Response Code</i> was empty.
</li>


<li>
In previous versions, <b>IncludeController</b> could run Test Elements located inside a <b>Thread Group</b>, this behaviour (<i>which was not documented</i>)
could result in weird behaviour, it has been removed in this version (see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55464">
      Bug
      55464</a>).
The correct way to include Test Elements is to use <b>Test Fragment</b> as stated in documentation of <b>Include Controller</b>.
</li>


<li>
The retry count for the HttpClient 3.1 and HttpClient 4.x samplers has been changed to <b>0</b>.
Previously the default was 1, which could cause unexpected additional traffic.
</li>


<li>Starting with this version, the <b>HTTP(S) Test Script Recorder</b> tries to detect when a sample is the result of a previous
redirect. If the current response is a redirect, JMeter will save the redirect URL. When the next request is received,
it is compared with the saved redirect URL and if there is a match, JMeter will disable the generated sample.
To revert to previous behaviour, set the property <span class="code">proxy.redirect.disabling=false</span>

</li>


<li>Starting with this version, in <b>HTTP(S) Test Script Recorder</b> if Grouping is set to <i>Put each group in a new Transaction Controller</i>,
the Recorder will create <b>Transaction Controller</b> instances with <i>Include duration of timer and pre-post processors in generated sample</i> set
to false. This default value reflect more accurately response time.
</li>


<li>
<span class="code">__escapeOroRegexpChars</span> function (which escapes ORO reserved characters) no longer trims the value (see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55328">
      Bug
      55328</a>)
</li>


<li>The <i>commons-lang-2.6.jar</i> has been removed from embedded libraries in <span class="code">jmeter/lib</span> folder as it is not needed by JMeter at run-time
(it is only used by Apache Velocity for generating documentation).
If you use any plugin or third-party code that depends on it, you need to add it in <span class="code">jmeter/lib</span> folder
</li>

</ul>




<h2 class="ch_section" id="Bug fixes">Bug fixes</h2>


<h3>HTTP Samplers and Proxy</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54627">
      Bug
      54627</a> - JMeter Proxy GUI: Type of sampler setting takes the whole screen when there are samplers with long names.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54629">
      Bug
      54629</a> - HTMLParser does not extract &lt;object&gt; tag urls.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55023">
      Bug
      55023</a> - SSL Context reuse feature (51380) adversely affects non-ssl request performance/throughput. based on analysis by Brent Cromarty (brent.cromarty at yahoo.ca)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55092">
      Bug
      55092</a> - Log message "WARN - jmeter.protocol.http.sampler.HTTPSamplerBase: Null URL detected (should not happen)" displayed when embedded resource URL is malformed.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55161">
      Bug
      55161</a> - Useless processing in SoapSampler.setPostHeaders. Contributed by Adrian Nistor (nistor1 at illinois.edu)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54482">
      Bug
      54482</a> - HC fails to follow redirects with non-encoded chars.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54142">
      Bug
      54142</a> - HTTP Proxy Server throws an exception when path contains "|" character.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55388">
      Bug
      55388</a> - HC3 does not allow IP Source field to override httpclient.localaddress.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55450">
      Bug
      55450</a> - HEAD redirects should remain as HEAD</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55455">
      Bug
      55455</a> - HTTPS with HTTPClient4 ignores cps setting</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55502">
      Bug
      55502</a> - Proxy generates empty http:/ entries when recording</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55504">
      Bug
      55504</a> - Proxy incorrectly issues CONNECT requests when browser prompts for certificate override</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55506">
      Bug
      55506</a> - Proxy should deliver failed requests to any configured Listeners</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55545">
      Bug
      55545</a> - HTTP Proxy Server GUI should not allow both Follow and Auto redirect to be selected</li>

</ul>


<h3>Other Samplers</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54913">
      Bug
      54913</a> - JMSPublisherGui incorrectly restores its state. Contributed by Benoit Wiart (benoit.wiart at gmail.com)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55027">
      Bug
      55027</a> - Test Action regression, duration value is not recorded (nightly build).</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55163">
      Bug
      55163</a> - BeanShellTestElement fails to quote string when calling testStarted(String)/testEnded(String).</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55349">
      Bug
      55349</a> - NativeCommand hangs if no input file is specified and the application requests input.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55462">
      Bug
      55462</a> - System Sampler should not change the sampler label if a sample fails</li>

</ul>


<h3>Controllers</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54467">
      Bug
      54467</a> - Loop Controller: compute loop value only once per parent iteration.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54985">
      Bug
      54985</a> - Make Transaction Controller set Response Code of Generated Parent Sampler to response code of first failing child in case of failure of one of its children. Contributed by Mikhail Epikhin (epihin-m at yandex.ru)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54950">
      Bug
      54950</a> - ModuleController : Changes to referenced Module are not taken into account if changes occur after first run and referenced node is disabled.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55201">
      Bug
      55201</a> - ForEach controller excludes start index and includes end index (clarified documentation).</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55334">
      Bug
      55334</a> - Adding Include Controller to test plan (made of Include Controllers) without saving TestPlan leads to included code not being taken into account until save.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55375">
      Bug
      55375</a> -  StackOverflowError with ModuleController in Non-GUI mode if its name is the same as the target node.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55464">
      Bug
      55464</a> - Include Controller running included thread group</li>

</ul>


<h3>Listeners</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54589">
      Bug
      54589</a> - View Results Tree have a lot of Garbage characters if html page uses double-byte charset.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54753">
      Bug
      54753</a> - StringIndexOutOfBoundsException at SampleResult.getSampleLabel() if key_on_threadname=false when using Statistical mode.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54685">
      Bug
      54685</a> - ArrayIndexOutOfBoundsException if "sample_variable" is set in client but not server.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55111">
      Bug
      55111</a> - ViewResultsTree: text not refitted if vertical scrollbar is required. Contributed by Milamber</li>

</ul>


<h3>Timers, Assertions, Config, Pre- &amp; Post-Processors</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54540">
      Bug
      54540</a> - "HTML Parameter Mask" are not marked deprecated in the IHM.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54575">
      Bug
      54575</a> - CSS/JQuery Extractor : Choosing JODD Implementation always uses JSOUP.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54901">
      Bug
      54901</a> - Response Assertion GUI behaves weirdly.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54924">
      Bug
      54924</a> - XMLAssertion uses JMeter JVM file.encoding instead of response encoding and does not clean threadlocal variable.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53679">
      Bug
      53679</a> -  Constant Throughput Timer bug with localization. Reported by Ludovic Garcia</li>

</ul>


<h3>Functions</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55328">
      Bug
      55328</a> - __escapeOroRegexpChars trims spaces.</li>

</ul>


<h3>I18N</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55437">
      Bug
      55437</a> - ComboStringEditor does not translate EDIT and UNDEFINED strings on language change</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55501">
      Bug
      55501</a> - Incorrect encoding for French description of __char function. Contributed by Antonio Gomes Rodrigues (ra0077 at gmail.com)</li>

</ul>


<h3>General</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54504">
      Bug
      54504</a> - Resource string not found: [clipboard_node_read_error].</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54538">
      Bug
      54538</a> - GUI: context menu is too big.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54847">
      Bug
      54847</a> - Cut &amp; Paste is broken with tree multi-selection. Contributed by Benoit Wiart (benoit.wiart at gmail.com)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54870">
      Bug
      54870</a> - Tree drag and drop may lose leaf nodes (affected nightly build). Contributed by Benoit Wiart (benoit.wiart at gmail.com)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55056">
      Bug
      55056</a> - wasted work in Data.append(). Contributed by Adrian Nistor (nistor1 at illinois.edu)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55129">
      Bug
      55129</a> -  Change Javadoc generation per CVE-2013-1571, VU#225657.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55187">
      Bug
      55187</a> - Integer overflow when computing ONE_YEAR_MS in HTTP CacheManager.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55208">
      Bug
      55208</a> - JSR223 language entries are duplicated; fold to lower case.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55203">
      Bug
      55203</a> - TestBeanGUI - wrong language settings found.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55065">
      Bug
      55065</a> - Useless processing in Spline3.converge(). Contributed by Adrian Nistor (nistor1 at illinois.edu)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55064">
      Bug
      55064</a> - Useless processing in ReportTreeListener.isValidDragAction(). Contributed by Adrian Nistor (nistor1 at illinois.edu)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55242">
      Bug
      55242</a> - BeanShell Client jar throws exceptions after upgrading to 2.8.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55288">
      Bug
      55288</a> - JMeter should default to 0 retries for HTTP requests.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55405">
      Bug
      55405</a> - ant download_jars task fails if lib/api or lib/doc are missing. Contributed by Antonio Gomes Rodrigues.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55427">
      Bug
      55427</a> - TestBeanHelper should ignore properties not supported by GenericTestBeanCustomizer</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55459">
      Bug
      55459</a> - Elements using ComboStringEditor lose the input value if user selects another Test Element</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54152">
      Bug
      54152</a> - In distributed testing : activeThreads always show 0 in GUI and Summariser</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55509">
      Bug
      55509</a> - Allow Plugins to be notified of remote thread number progression</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55572">
      Bug
      55572</a> - Detail popup of parameter does not show a Scrollbar when content exceeds display</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55580">
      Bug
      55580</a> -  Help pane does not scroll to start for &lt;a href="#"&gt; links</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55600">
      Bug
      55600</a> - JSyntaxTextArea : Strange behaviour on first undo</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55655">
      Bug
      55655</a> - NullPointerException when Remote stopping /shutdown all if one engine did not start correctly. Contributed by UBIK Load Pack (support at ubikloadpack.com)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55657">
      Bug
      55657</a> - Remote and Local Stop/Shutdown buttons state does not take into account local / remote status </li>

</ul>




<h2 class="ch_section" id="Improvements">Improvements</h2>


<h3>HTTP Samplers and Proxy</h3>

<ul>

<li>HTTP Request: Small user interaction improvements in Row parameter Detail Box. Contributed by Milamber</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55255">
      Bug
      55255</a> - Allow Body in HTTP DELETE method to support API that use it (like ElasticSearch).</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53480">
      Bug
      53480</a> - Add Kerberos support to Http Sampler (HttpClient4). Based on patch by Felix Schumacher (felix.schumacher at internetallee.de)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54874">
      Bug
      54874</a> - Support device in addition to source IP address. Based on patch by Dan Fruehauf (malkodan at gmail.com)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55488">
      Bug
      55488</a> - Add .ico and .woff file extension to default suggested exclusions in proxy recorder. Contributed by Antonio Gomes Rodrigues</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55525">
      Bug
      55525</a> - Proxy should support alias for keyserver entry</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55531">
      Bug
      55531</a> - Proxy recording and redirects. Added code to disable redirected samples.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55507">
      Bug
      55507</a> - Proxy SSL recording does not handle external embedded resources well</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55632">
      Bug
      55632</a> - Have a new implementation of htmlParser for embedded resources parsing with better performances</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55653">
      Bug
      55653</a> - HTTP(S) Test Script Recorder should set TransactionController property "Include duration of timer and pre-post processors in generated sample" to false</li>

</ul>


<h3>Other samplers</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54788">
      Bug
      54788</a> - JMS Point-to-Point Sampler - GUI enhancements to increase readability and ease of use. Contributed by Bruno Antunes (b.m.antunes at gmail.com)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54798">
      Bug
      54798</a> - Using subject from EML-file for SMTP Sampler. Contributed by Mikhail Epikhin (epihin-m at yandex.ru)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54759">
      Bug
      54759</a> - SSLPeerUnverifiedException using HTTPS , property documented.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54896">
      Bug
      54896</a> - JUnit sampler gives only "failed to create an instance of the class" message with constructor problems.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55084">
      Bug
      55084</a> - Add timeout support for JDBC Request. Contributed by Mikhail Epikhin (epihin-m at yandex.ru)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55403">
      Bug
      55403</a> - Enhancement to OS sampler: Support for timeout</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55518">
      Bug
      55518</a> - Add ability to limit number of cached PreparedStatements per connection when "Prepared Select Statement", "Prepared Update Statement" or "Callable Statement" query type is selected</li>

</ul>


<h3>Controllers</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54271">
      Bug
      54271</a> - Module Controller breaks if test plan is renamed.</li>

</ul>


<h3>Listeners</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54532">
      Bug
      54532</a> - Improve Response Time Graph Y axis scale with huge values or small values (&lt; 1000ms). Add a new field to define increment scale. Contributed by Milamber based on patch by Luca Maragnani (luca.maragnani at gmail.com)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54576">
      Bug
      54576</a> - View Results Tree : Add a CSS/JQuery Tester.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54777">
      Bug
      54777</a> - Improve Performance of default ResultCollector. Based on patch by Mikhail Epikhin (epihin-m at yandex.ru)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55389">
      Bug
      55389</a> - Show IP source address in request data</li>

</ul>


<h3>Timers, Assertions, Config, Pre- &amp; Post-Processors</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54789">
      Bug
      54789</a> - XPath Assertion - GUI enhancements to increase readability and ease of use.</li>

</ul>


<h3>Functions</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54991">
      Bug
      54991</a> - Add functions to encode/decode URL encoded chars (__urlencode and __urldecode). Contributed by Milamber.</li>

</ul>


<h3>I18N</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55241">
      Bug
      55241</a> - Need GUI Editor to process fields which are based on Enums with localised display strings</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55440">
      Bug
      55440</a> - ComboStringEditor should allow tags to be language dependent</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55432">
      Bug
      55432</a> - CSV Dataset Config loses sharing mode when switching languages</li>

</ul>


<h3>General</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54584">
      Bug
      54584</a> - MongoDB plugin. Based on patch by Jan Paul Ettles (janpaulettles at gmail.com)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54669">
      Bug
      54669</a> - Add flag forcing non-GUI JVM to exit after test. Contributed by Scott Emmons</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=42428">
      Bug
      42428</a> - Workbench not saved with Test Plan. Contributed by Dzmitry Kashlach (dzmitrykashlach at gmail.com)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54825">
      Bug
      54825</a> - Add shortcuts to move elements in the tree. Contributed by Benoit Wiart (benoit.wiart at gmail.com)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54834">
      Bug
      54834</a> - Improve Drag &amp; Drop in the jmeter tree. Contributed by Benoit Wiart (benoit.wiart at gmail.com)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54839">
      Bug
      54839</a> - Set the application name on Mac. Contributed by Benoit Wiart (benoit.wiart at gmail.com)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54841">
      Bug
      54841</a> - Correctly handle the quit shortcut on Mac Os (CMD-Q). Contributed by Benoit Wiart (benoit.wiart at gmail.com)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54844">
      Bug
      54844</a> - Set the application icon on Mac Os. Contributed by Benoit Wiart (benoit.wiart at gmail.com)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54864">
      Bug
      54864</a> - Enable multi selection drag &amp; drop in the tree without having to start dragging before releasing Shift or Control. Contributed by Benoit Wiart (benoit.wiart at gmail.com)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54945">
      Bug
      54945</a> - Add Shutdown Hook to enable trapping kill or CTRL+C signals.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54990">
      Bug
      54990</a> - Download large files avoiding outOfMemory.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55085">
      Bug
      55085</a> - UX Improvement : Ability to create New Test Plan from Templates. Contributed by UBIK Load Pack (support at ubikloadpack.com)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55172">
      Bug
      55172</a> - Provide plugins a way to add Top Menu and menu items.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55202">
      Bug
      55202</a> - Add syntax color for scripts elements (BeanShell, BSF, and JSR223) and JDBC elements with RSyntaxTextArea. Contributed by Milamber based on patch by Marko Vlahovic (vlahovic74 at gmail.com)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55175">
      Bug
      55175</a> - HTTPHC4Impl refactoring to allow better inheritance.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55236">
      Bug
      55236</a> - Templates - provide button to reload template details.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55237">
      Bug
      55237</a> - Template system should support relative fileName entries.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55423">
      Bug
      55423</a> - BatchSampleSender: Reduce locking granularity by moving listener.processBatch outside of synchronized block</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55424">
      Bug
      55424</a> - Add Stripping to existing SampleSenders</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55451">
      Bug
      55451</a> - Test Element GUI with JSyntaxTextArea scroll down when text content is long enough to add a Scrollbar</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55513">
      Bug
      55513</a> - StreamCopier cannot be used with System.err or System.out as it closes the output stream</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55514">
      Bug
      55514</a> - SystemCommand should support arbitrary input and output streams</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55515">
      Bug
      55515</a> - SystemCommand should support chaining of commands</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55606">
      Bug
      55606</a> - Use JSyntaxtTextArea for Http Request, JMS Test Elements</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55651">
      Bug
      55651</a> - Change JMeter application icon to Apache plume icon</li>

</ul>


<h2 class="ch_section" id="Non-functional changes">Non-functional changes</h2>

<ul>

<li>Updated to jsoup-1.7.2</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54776">
      Bug
      54776</a> - Update the dependency on Bouncy Castle to 1.48. Contributed by Emmanuel Bourg (ebourg at apache.org)</li>

<li>Updated to HttpComponents Client 4.2.6 (from 4.2.3)</li>

<li>Updated to HttpComponents Core 4.2.5 (from 4.2.3)</li>

<li>Updated to commons-codec 1.8 (from 1.6)</li>

<li>Updated to commons-io 2.4 (from 2.2)</li>

<li>Updated to commons-logging 1.1.3 (from 1.1.1)</li>

<li>Updated to commons-net 3.3 (from 3.1)</li>

<li>Updated to jdom-1.1.3 (from 1.1.2)</li>

<li>Updated to jodd-lagarto and jodd-core 3.4.8 (from 3.4.1)</li>

<li>Updated to junit 4.11 (from 4.10)</li>

<li>Updated to slf4j-api 1.7.5 (from 1.7.2)</li>

<li>Updated to tika 1.4 (from 1.3)</li>

<li>Updated to xmlgraphics-commons 1.5 (from 1.3.1)</li>

<li>Updated to xstream 1.4.4 (from 1.4.2)</li>

<li>Updated to BouncyCastle 1.49 (from 1.48)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54912">
      Bug
      54912</a> - JMeterTreeListener should use constants. Contributed by Benoit Wiart (benoit.wiart at gmail.com)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54903">
      Bug
      54903</a> - Remove the dependency on the Activation Framework. Contributed by Emmanuel Bourg (ebourg at apache.org)</li>

<li>Moved commons-lang (2.6) to lib/doc as it's only needed by Velocity.</li>

<li>Re-organised and simplified NOTICE and LICENSE files.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55411">
      Bug
      55411</a> -  NativeCommand could be useful elsewhere. Copied code to o.a.jorphan.exec.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55435">
      Bug
      55435</a> - ComboStringEditor could be simplified to make most settings final</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55436">
      Bug
      55436</a> - ComboStringEditor should implement ClearGui</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55463">
      Bug
      55463</a> - Component.requestFocus() is discouraged; use requestFocusInWindow() instead</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55486">
      Bug
      55486</a> - New JMeter Logo. Contributed by UBIK Load Pack (support at ubikloadpack.com)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55548">
      Bug
      55548</a> - Tidy up use of TestElement.ENABLED; use TestElement.isEnabled()/setEnabled() throughout</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55617">
      Bug
      55617</a> - Improvements to jorphan collection. Contributed by Benoit Wiart (benoit.wiart at gmail.com)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55623">
      Bug
      55623</a> - Invalid/unexpected configuration values should not be silently ignored</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55626">
      Bug
      55626</a> - Rename HTTP Proxy Server as HTTP(S) Test Script Recorder</li>

</ul>


<h2 class="ch_section" id="Thanks">Thanks</h2>

<p>We thank all contributors mentioned in bug and improvement sections above:
<ul>

<li>Bruno Antunes (b.m.antunes at gmail.com)</li>

<li>Emmanuel Bourg (ebourg at apache.org)</li>

<li>Scott Emmons</li>

<li>Mikhail Epikhin (epihin-m at yandex.ru)</li>

<li>Dzmitry Kashlach (dzmitrykashlach at gmail.com)</li>

<li>Luca Maragnani (luca.maragnani at gmail.com)</li>

<li>Milamber</li>

<li>Adrian Nistor (nistor1 at illinois.edu)</li>

<li>Antonio Gomes Rodrigues (ra0077 at gmail.com)</li>

<li>UBIK Load Pack (support at ubikloadpack.com)</li>

<li>Benoit Wiart (benoit.wiart at gmail.com)</li>

</ul>

<br>
We also thank bug reporters who helped us improve JMeter. <br>
For this release we want to give special thanks to the following reporters for the clear reports and tests made after our fixes:
<ul>

<li>Immanuel Hayden (immanuel.hayden at gmail.com)</li>

<li>Danny Lade (dlade at web.de)</li>

<li>Brent Cromarty (brent.cromarty at yahoo.ca)</li>

<li>Wolfgang Heider (wolfgang.heider at racon.at)</li>

<li>Shmuel Krakower (shmulikk at gmail.com)</li>

</ul>


Apologies if we have omitted anyone else.
 </p>




<h1>Version 2.9</h1>


<h2>New and Noteworthy</h2>


<h3>
<u>Core Improvements:</u>
</h3>


<h4>* A new Extractor that uses CSS or jquery-like selector syntax has been introduced,
it allows using either JODD or JSOUP implementations</h4>

<p>

<figure>
<a href="./images/screenshots/changes/2.9/01_css_jquery_extractor.png"><img src="./images/screenshots/changes/2.9/01_css_jquery_extractor.png" width="762" height="277" alt=""></a>
<figcaption></figcaption>
</figure>

</p>

<p>Result: the title of the page in a JMeter variable
<figure>
<a href="./images/screenshots/changes/2.9/01_css_jquery_extractor_resul.png"><img src="./images/screenshots/changes/2.9/01_css_jquery_extractor_resul.png" width="719" height="171" alt=""></a>
<figcaption></figcaption>
</figure>

</p>

<h4>* JMeter can now handle different types of documents (PDF, MsOffice files, Apache OpenOffice's files, &hellip;)
 within different elements </h4>

<ul>
    
<li>Regular Expression Extractor, extract text from documents</li>
    
<li>Assertion Response, check text in documents</li>
    
<li>View Results Tree, view as a text the documents</li>

</ul>

<p>

<figure>
<a href="./images/screenshots/changes/2.9/02_document_render_view_results_tree.png"><img src="./images/screenshots/changes/2.9/02_document_render_view_results_tree.png" width="761" height="345" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h4>* A new Regex User Parameters Pre-Processor that enables injecting input parameter names and values
using a reference extracted by Regular Expression Extractor from a previous response</h4>

<p>

<figure>
<a href="./images/screenshots/changes/2.9/13_regex_user_params.png"><img src="./images/screenshots/changes/2.9/13_regex_user_params.png" width="727" height="138" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h4>* TCP Sampler: new options</h4>

<p>TCP Sampler has been enhanced with new options to allow setting <b>Close Connection</b>,
 <b>SO_LINGER</b> and  <b>End of line(EOL) byte value</b>

<figure>
<a href="./images/screenshots/changes/2.9/03_new_options_tcp_sampler.png"><img src="./images/screenshots/changes/2.9/03_new_options_tcp_sampler.png" width="1147" height="302" alt=""></a>
<figcaption></figcaption>
</figure>

</p>

<h4>* A new function <i>__escapeOroRegexpChars(,)</i> has been introduced quote ORO regexp meta characters</h4>

<h4>* ForEach Controller: new fields</h4>

<p>ForEach Controller has now 2 new fields to control start and end of loop
<figure>
<a href="./images/screenshots/changes/2.9/04_for_each_new_fields.png"><img src="./images/screenshots/changes/2.9/04_for_each_new_fields.png" width="320" height="203" alt=""></a>
<figcaption></figcaption>
</figure>

</p>

<h4>* Result Status Action Handler now has a new option to "Start next thread loop"</h4>

<p>

<figure>
<a href="./images/screenshots/changes/2.9/05_result_status_action_handler.png"><img src="./images/screenshots/changes/2.9/05_result_status_action_handler.png" width="722" height="132" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h4>* JMS Publisher: new option</h4>

<p>JMS Publisher can now send Bytes Messages</p>

<figure>
<a href="./images/screenshots/changes/2.9/11_jms_publisher_bytes.png"><img src="./images/screenshots/changes/2.9/11_jms_publisher_bytes.png" width="833" height="701" alt=""></a>
<figcaption></figcaption>
</figure>


<h4>* Memory and performance improvements</h4>

<p>Significant improvements have been done in this version on memory usage per Thread and CPU when more
than one Post Processor is used as child of a Sampler</p>

<p>JSR223 Elements (enable using Groovy, Scala, &hellip; as scripting languages) have been improved to enable caching
of Compilation results when scripts are passed in Text area</p>

<figure>
<a href="./images/screenshots/changes/2.9/12_jsr223_sampler.png"><img src="./images/screenshots/changes/2.9/12_jsr223_sampler.png" width="841" height="470" alt=""></a>
<figcaption></figcaption>
</figure>


<p>Some configuration defaults have changed to improve performances by default(see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54412">
      Bug
      54412</a>),
see description in New and Noteworthy section.
<ul>
    
<li>Distributed testing now uses MODE_STRIPPED_BATCH, which returns samples in batch mode (every 100 samples
     or every minute by default). Note also that MODE_STRIPPED_BATCH strips response data from SampleResult,
     so if you need it change to another mode (mode property in jmeter.properties)</li>
    
<li>Result data are now saved to CSV by default (jmeter.save.saveservice.output_format in jmeter.properties)</li>

</ul>

</p>


<h4>* XPath Assertion now enables using a JMeter variable as input</h4>

<p>

<figure>
<a href="./images/screenshots/changes/2.9/14_xpath_assertion.png"><img src="./images/screenshots/changes/2.9/14_xpath_assertion.png" width="800" height="317" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3>
<u>GUI and ergonomy Improvements:</u>
</h3>

<h4>* Search feature has been improved to search within more internal fields of elements and expand search results</h4>

<h4>* Copy/paste is now possible between 2 JMeter instances &gt;= 2.9 version</h4>

<p>Copy element(s) from one JMeter instance:
<figure>
<a href="./images/screenshots/changes/2.9/06_copy_paste_between_2_jmeter1.png"><img src="./images/screenshots/changes/2.9/06_copy_paste_between_2_jmeter1.png" width="618" height="262" alt=""></a>
<figcaption></figcaption>
</figure>

</p>

<p>Paste element(s) into a second JMeter instance:
<figure>
<a href="./images/screenshots/changes/2.9/06_copy_paste_between_2_jmeter2.png"><img src="./images/screenshots/changes/2.9/06_copy_paste_between_2_jmeter2.png" width="617" height="278" alt=""></a>
<figcaption></figcaption>
</figure>

</p>

<h4>* HTTP Header Manager</h4>

<p>Allow copy from clipboard to HeaderPanel, headers are supposed to be separated by new line
 and have the following form <i>name:value</i>

<figure>
<a href="./images/screenshots/changes/2.9/07_header_panel_add_from_clipboard.png"><img src="./images/screenshots/changes/2.9/07_header_panel_add_from_clipboard.png" width="661" height="263" alt=""></a>
<figcaption></figcaption>
</figure>

</p>

<h4>* Module Controller</h4>

<p>Module Controller has been improved to better render referenced controller and expand it by clicking on a new button
<figure>
<a href="./images/screenshots/changes/2.9/08_module_controller_improvements.png"><img src="./images/screenshots/changes/2.9/08_module_controller_improvements.png" width="832" height="274" alt=""></a>
<figcaption></figcaption>
</figure>

</p>

<h4>* HTTP Proxy Server</h4>

<p>HTTP Proxy Server now has a button to add a set of default exclusions for URL patterns,
this list can be configured through property : <i>proxy.excludes.suggested</i>

<figure>
<a href="./images/screenshots/changes/2.9/09_proxy_excludes_suggested.png"><img src="./images/screenshots/changes/2.9/09_proxy_excludes_suggested.png" width="811" height="214" alt=""></a>
<figcaption></figcaption>
</figure>

</p>

<h4>* Rendering of target controller has been improved in HTTP Proxy Server</h4>


<h3>
<u>HTTP Proxy Server recording:</u>
</h3>

<p>* HTTP Proxy Server now automatically uses HTTP Request with Raw Post Body mode for
samples that only have one unnamed argument (JSON, XML, GWT, &hellip;)</p>

<p>* HTTP Proxy Server does not force user to select the type of Sampler in HTTP Sampler Settings,
 this allows easier switch between implementations as Sampler do not have this information set anymore</p>
 
<p>

<figure>
<a href="./images/screenshots/changes/2.9/10_http_proxy_dont_force_http_type.png"><img src="./images/screenshots/changes/2.9/10_http_proxy_dont_force_http_type.png" width="484" height="307" alt=""></a>
<figcaption></figcaption>
</figure>

</p>

<p>* SamplerCreator interface has been enriched to meet new requirements for plug-in providers</p>

<p>* It is now possible to create binary sampler for x-www-form-urlencoded POST request by
modifying <i>proxy.binary.types</i> property to add application/x-www-form-urlencoded </p>

<p>* Improved timestamp format auto-detection when reading CSV files</p>




<h2>Known bugs</h2>


<p>The Once Only controller behaves correctly under a Thread Group or Loop Controller,
but otherwise its behaviour is not consistent (or clearly specified).</p>


<p>Listeners don't show iteration counts when a If Controller has a condition which is always false from the first iteration (see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52496">
      Bug
      52496</a>).
A workaround is to add a sampler at the same level as (or superior to) the If Controller.
For example a Test Action sampler with 0 wait time (which doesn't generate a sample),
or a Debug Sampler with all fields set to False (to reduce the sample size).
</p>


<p>Webservice sampler does not consider the HTTP response status to compute the status of a response, thus a response 500 containing a non empty body will be considered as successful, see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54006">
      Bug
      54006</a>.
To workaround this issue, ensure you always read the response and add a Response Assertion checking text inside the response.
</p>


<p>
Changing language can break part of the configuration of the following elements (see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53679">
      Bug
      53679</a>):
<ul>
    
<li>CSV Data Set Config (sharing mode will be lost)</li>
    
<li>Constant Throughput Timer (Calculate throughput based on will be lost)</li>

</ul>

</p>


<p>
The numbers that appear to the left of the green box are the number of active threads / total number of threads,
these only apply to a locally run test; they do not include any threads started on remote systems when using client-server mode, (see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54152">
      Bug
      54152</a>).
</p>


<p>
Note that there is a bug in Java on some Linux systems that manifests
itself as the following error when running the test cases or JMeter itself:
<pre>
 [java] WARNING: Couldn't flush user prefs:
 java.util.prefs.BackingStoreException:
 java.lang.IllegalArgumentException: Not supported: indent-number
</pre>
This does not affect JMeter operation.
</p>




<h2>Incompatible changes</h2>


<p>
<b>JMeter requires now a Java 6 runtime or higher.</b>
</p>


<p>Some configuration defaults have changed to improve performances by default (see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54412">
      Bug
      54412</a>),
see description in New and Noteworthy section.</p>


<p>Webservice sampler now adds to request the headers that are set through Header Manager, these were previously ignored</p>


<p>
<i>jdbcsampler.cachesize</i> property has been removed, it previously limited the size of a per connection cache of Map &lt; String,
PreparedStatement &gt; , it also limited the size of this
map which held the PreparedStatement for SQL queries. This limitation provoked a bug <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53995">
      Bug
      53995</a>.
It has been removed so now size of these 2 maps is not limited anymore. This change changes behaviour as starting from
this version no PreparedStatement will be closed during the test.</p>


<p>Starting with this version, there are some important changes on JSR223 Test Elements:
<ul>
    
<li>JSR223 Test Elements that have an invalid filename (not existing or unreadable) will make test fail instead of
    making the element silently work</li>
    
<li>In JSR223 Test Elements: responseCodeOk, responseMessageOK and successful are set before
     script is executed, if responseData is set it will not be overridden anymore by a toString() on script return value</li>

</ul>

</p>


<p>View Results Tree now considers response with missing content type as text.</p>


<p>In remote Test mode, JMeter now exits in error if one of the remote engines cannot be configured,
previously it started the test with available engines.</p>




<h2>Bug fixes</h2>


<h3>HTTP Samplers and Proxy</h3>

<ul>

<li>Don't log spurious warning messages when using concurrent pool embedded downloads with Cache Manager or CookieManager</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54057">
      Bug
      54057</a>- Proxy option to set user and password at startup (-u and -a) not working with HTTPClient 4</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54187">
      Bug
      54187</a> - Request tab does not show headers if request fails</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53840">
      Bug
      53840</a> - Proxy Recording : Response message: URLDecoder: Illegal hex characters in escape (%) pattern - For input string: "" "</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54351">
      Bug
      54351</a> - HC4 and URI fragments is failing</li>

</ul>


<h3>Other Samplers</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53997">
      Bug
      53997</a> - LDAP Extended Request: Escape ampersand (&amp;), left angle bracket (&lt;)
and right angle bracket (&gt;) in search filter tag in XML response data</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53995">
      Bug
      53995</a> - AbstractJDBCTestElement shares PreparedStatement between multi-threads</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54119">
      Bug
      54119</a> - HTTP 307 response is not redirected</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54326">
      Bug
      54326</a> - AjpSampler send file in post throws FileNotFoundException</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54331">
      Bug
      54331</a> - AjpSampler throws null pointer on GET request that are protected</li>

</ul>


<h3>Controllers</h3>

<ul>

</ul>


<h3>Listeners</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54088">
      Bug
      54088</a> - The type video/f4m is text, not binary</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54166">
      Bug
      54166</a> - ViewResultsTree could not render the HTML response: handle failure to parse HTML</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54287">
      Bug
      54287</a> - Incorrect Timestamp in Response Time Graph when using a date with time in Date format field</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54451">
      Bug
      54451</a> - Response Time Graph reports wrong times when the are many samples for same time</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54459">
      Bug
      54459</a> - CSVSaveService does not handle date parsing very well</li>

</ul>


<h3>Timers, Assertions, Config, Pre- &amp; Post-Processors</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54058">
      Bug
      54058</a> - In HTTP Request Defaults, the value of field "Embedded URLs must match: is not saved if the check box "Retrieve All  Embedded Resources" is not checked.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54375">
      Bug
      54375</a> - Regular Expression Extractor : When regex syntax is wrong, post processing is stopped</li>

</ul>


<h3>Functions</h3>

<ul>

</ul>


<h3>I18N</h3>

<ul>

</ul>


<h3>General</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53975">
      Bug
      53975</a> - Variables replacement doesn't work with option "Delay thread creation until needed"</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54055">
      Bug
      54055</a> - View Results tree: = signs are stripped from parameter values at HTTP tab</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54129">
      Bug
      54129</a> - Search Feature does not find text although existing in elements </li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54023">
      Bug
      54023</a> - Unable to start JMeter from a root directory and if the full path of JMeter installation contains one or more spaces (Unix/linux)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54172">
      Bug
      54172</a> - Duplicate shortcut key not working and CTRL+C / CTRL+V / CTRL+V do not cancel default event</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54057">
      Bug
      54057</a> - Proxy option to set user and password at startup (-u and -a) not working with HTTPClient 4</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54267">
      Bug
      54267</a> - Start Next Thread Loop setting doesn't work in custom thread groups</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54413">
      Bug
      54413</a> - DataStrippingSampleSender returns 0 for number of bytes of any response</li>

</ul>




<h2>Improvements</h2>


<h3>HTTP Samplers</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54185">
      Bug
      54185</a> - Allow query strings in paths that start with HTTP or HTTPS</li>

</ul>


<h3>Other samplers</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54004">
      Bug
      54004</a> - Webservice Sampler : Allow adding headers to request with Header Manager</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54106">
      Bug
      54106</a> - JSR223TestElement should check for file existence when a filename is set instead of using Text Area content </li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54107">
      Bug
      54107</a> - JSR223TestElement : Enable compilation and caching of Script Text</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54109">
      Bug
      54109</a> - JSR223TestElement : SampleResult properties should be set before entering script to allow user setting different code</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54230">
      Bug
      54230</a> - TCP Sampler, additions of "Close Connection", "SO_LINGER" and "End of line(EOL) byte value" options</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54182">
      Bug
      54182</a> - Support sending of ByteMessage for JMS Publisher.</li>

</ul>


<h3>Controllers</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54131">
      Bug
      54131</a> - ForEach Controller : Add start and end index for looping over variables</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54132">
      Bug
      54132</a> - Module Controller GUI : Improve rendering of referenced controller</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54155">
      Bug
      54155</a> - ModuleController : Add a shortcut button to unfold the tree up to referenced controller and highlight it</li>

</ul>


<h3>Listeners</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54200">
      Bug
      54200</a> - Add support of several document types (like Apache OpenOffice's files, MS Office's files, PDF's files, etc.)
to the elements View Results Tree, Assertion Response and Regular Expression Extractor (using Apache Tika)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54226">
      Bug
      54226</a> - View Results Tree : Show response even when server does not return ContentType header</li>

</ul>


<h3>Timers, Assertions, Config, Pre- &amp; Post-Processors</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54259">
      Bug
      54259</a> - Introduce a new Extractor that uses CSS or jquery-like selector syntax</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=45772">
      Bug
      45772</a> - RegEx User Parameters Post Processor</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54160">
      Bug
      54160</a> - Add support for xpath assertion to apply to a JMeter variable.</li>

</ul>


<h3>Functions</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54189">
      Bug
      54189</a> - Add a function to quote ORO regexp meta characters</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54418">
      Bug
      54418</a> - UUID Function</li>

</ul>


<h3>I18N</h3>

<ul>

</ul>


<h3>General</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54005">
      Bug
      54005</a> - HTTP Mirror Server : Add special headers "X-" to control Response status and response content</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53875">
      Bug
      53875</a> - Include suggested defaults for URL filters on HTTP Proxy</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54031">
      Bug
      54031</a> - Add tooltip to running/total threads indicator </li>

<li>Webservice (SOAP) Request has been deprecated</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54161">
      Bug
      54161</a> - Proxy : be able to create binary sampler for x-www-form-urlencoded POST request</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54154">
      Bug
      54154</a> - HTTP Proxy Server should not force user to select the type of Sampler in HTTP Sampler Settings</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54165">
      Bug
      54165</a> - Proxy Server: Improve rendering of target controller</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=46677">
      Bug
      46677</a> - Copying Test Elements between test plans</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54204">
      Bug
      54204</a> - Result Status Action Handler : Add start next thread loop option</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54232">
      Bug
      54232</a> - Search Feature : Add a button to search and expand results</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54251">
      Bug
      54251</a> - Add tristate checkbox implementation</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54257">
      Bug
      54257</a> - Enhance SamplerCreator interface to meet new requirements</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54258">
      Bug
      54258</a> - Proxy : Use Raw Post Body when Sampler has one unnamed argument, useful for Samplers using POST method by of type JSON, XML, GWT body</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54268">
      Bug
      54268</a> - Improve CPU and memory usage</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54376">
      Bug
      54376</a> - ScopePanel : Allow configuring more precisely scopes</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54412">
      Bug
      54412</a> - Changing JMeter defaults to ensure better performances by default</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54414">
      Bug
      54414</a> - Remote Test should not start if one of the engines fails to start correctly</li>

</ul>


<h2>Non-functional changes</h2>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53956">
      Bug
      53956</a> - Add ability to paste (a list of values) from clipboard for Header Manager</li>

<li>Updated to HttpComponents Client 4.2.3 (from 4.2.1)</li>

<li>Updated to HttpComponents Core 4.2.3 (from 4.2.2)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54110">
      Bug
      54110</a> - BSFTestElement and JSR223TestElement should use shared super-class for common fields</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=54199">
      Bug
      54199</a> - Move to Java 6</li>

<li>Upgraded to rhino 1.7R4</li>

</ul>




<h1>Version 2.8</h1>


<h2>New and Noteworthy</h2>


<h3>Core Improvements:</h3>


<h4>Thread Group: New Option <i>Delay thread creation until needed</i>
</h4>

<p>New Option "Delay thread creation until needed" that will create and start threads when needed instead of creating them on Test startup<br>

<b>This new feature allows running tests with a huge number of short lived threads.</b>

<figure>
<a href="./images/screenshots/changes/2.8/12_delay_thread_creation.png"><img src="./images/screenshots/changes/2.8/12_delay_thread_creation.png" width="817" height="296" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h4>HTTP Cookie Manager (IPv6 support)</h4>

<p>Add HTTPClient 4 cookie implementation in JMeter. <br>
Cookie Manager has now the default HC3.1 implementation and a new choice HC4 implementation (compliant with IPv6 address)
<figure>
<a href="./images/screenshots/changes/2.8/11_hc4_cookie.png"><img src="./images/screenshots/changes/2.8/11_hc4_cookie.png" width="635" height="239" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h4>Memory and performance improvements</h4>

<p>Significant improvements have been done in this version on memory usage of JMeterThread</p>

<p>JSR223 Elements (enable using Groovy, scala, &hellip; as scripting languages) have been improved to enable:
<ul>
    
<li>usage of Compilable interface when available to boost CPU usage</li>
    
<li>caching of Compilation when scripts are used as Files</li>

</ul>
See <a href="https://cwiki.apache.org/confluence/display/JMETER/JMeterPerformance">JMeter Performances across versions</a>

</p>


<h4>OS Process Sampler</h4>

<p>Allow defining files for stdout/stderr/stdin.
<figure>
<a href="./images/screenshots/changes/2.8/06_os_sampler_stdout-err-in.png"><img src="./images/screenshots/changes/2.8/06_os_sampler_stdout-err-in.png" width="820" height="531" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h4>HTTP Request: PATCH verb</h4>

<p>Add PATCH verb to HTTP sampler
<figure>
<a href="./images/screenshots/changes/2.8/01_http_patch_verb.png"><img src="./images/screenshots/changes/2.8/01_http_patch_verb.png" width="615" height="340" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h4>HTTP Request: HTTPClient 4 is now the default implementation</h4>

<p>HTTPClient 4 is now the default HTTP Request implementation (and for Proxy element when generating HTTP requests).<br>
Previously the default was the HTTP Java implementation (i.e. the implementation provided by the JVM)
<figure>
<a href="./images/screenshots/changes/2.8/02_http_default_hc4.png"><img src="./images/screenshots/changes/2.8/02_http_default_hc4.png" width="558" height="288" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h4>HTTP Request</h4>

<p>Add Embedded URL Filter to HTTP Request Defaults Control (it was already present for HTTP Requests)
<figure>
<a href="./images/screenshots/changes/2.8/05_http_defaults_url_filter.png"><img src="./images/screenshots/changes/2.8/05_http_defaults_url_filter.png" width="586" height="682" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h4>Miscellaneous</h4>

<ul>
    
<li>CSV Dataset : Embedded new lines are now supported in quoted data</li>
    
<li>JMX files now contain the version of JMeter that created the file</li>
    
<li>JMeter Version is now available as property "jmeter.version"</li>

</ul>

<h3>Reporting Improvements:</h3>


<h4>Response Time Graph</h4>

<p>Add a new visualizer Response Time Graph to draw a line graph showing the evolution of response time for a test
<figure>
<a href="./images/screenshots/changes/2.8/09_resp_time_graph.png"><img src="./images/screenshots/changes/2.8/09_resp_time_graph.png" width="993" height="549" alt=""></a>
<figcaption></figcaption>
</figure>

</p>

<p>Settings for Response Time Graph
<figure>
<a href="./images/screenshots/changes/2.8/08_resp_time_graph_settings.png"><img src="./images/screenshots/changes/2.8/08_resp_time_graph_settings.png" width="989" height="602" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h4>View Results in Table</h4>

<p>Add latency to View Result in Table listener
<figure>
<a href="./images/screenshots/changes/2.8/10_latency_view_results_table.png"><img src="./images/screenshots/changes/2.8/10_latency_view_results_table.png" width="998" height="324" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h4>Aggregate Graph</h4>

<p>Small improvements: legend at left or right is now on 1 column (instead of 1 large line), &hellip;
<figure>
<a href="./images/screenshots/changes/2.8/07_aggregate_graph_legend_left_right.png"><img src="./images/screenshots/changes/2.8/07_aggregate_graph_legend_left_right.png" width="989" height="418" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3>GUI and ergonomy Improvements:</h3>

<h4>HTTP Proxy Server simplifications</h4>

<p>HTTPS Spoofing options have been removed from Proxy as HTTPS recording is directly available since JMeter 2.4.
<figure>
<a href="./images/screenshots/changes/2.8/03_remove_https_spoofing1.png"><img src="./images/screenshots/changes/2.8/03_remove_https_spoofing1.png" width="940" height="277" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h4>HTTP Proxy Server</h4>

<p>Allow URL Filters to be pasted from clipboard
<figure>
<a href="./images/screenshots/changes/2.8/15_add_from_clipboard_filter.png"><img src="./images/screenshots/changes/2.8/15_add_from_clipboard_filter.png" width="707" height="614" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h4>Find in JMeter</h4>

<p>CTRL + F for the new Find feature
<figure>
<a href="./images/screenshots/changes/2.8/14_ctrl_F_shortcut.png"><img src="./images/screenshots/changes/2.8/14_ctrl_F_shortcut.png" width="477" height="157" alt=""></a>
<figcaption></figcaption>
</figure>

ESC key now closes popups.
</p>


<h4>User Interface in GNOME 3</h4>

<p>Display 'Apache JMeter' title in app title bar in Gnome 3
<figure>
<a href="./images/screenshots/changes/2.8/13_gnome3_title.png"><img src="./images/screenshots/changes/2.8/13_gnome3_title.png" width="441" height="253" alt=""></a>
<figcaption></figcaption>
</figure>

</p>




<h2>Known bugs</h2>


<p>The Once Only controller behaves correctly under a Thread Group or Loop Controller,
but otherwise its behaviour is not consistent (or clearly specified).</p>


<p>Listeners don't show iteration counts when a If Controller has a condition which is always false from the first iteration (see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52496">
      Bug
      52496</a>).
A workaround is to add a sampler at the same level as (or superior to) the If Controller.
For example a Test Action sampler with 0 wait time (which doesn't generate a sample),
or a Debug Sampler with all fields set to False (to reduce the sample size).
</p>


<p>
Changing language can break part of the configuration of the following elements (see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53679">
      Bug
      53679</a>):
<ul>
    
<li>CSV Data Set Config (sharing mode will be lost)</li>
    
<li>Constant Throughput Timer (Calculate throughput based on will be lost)</li>

</ul>

</p>


<p>
Note that there is a bug in Java on some Linux systems that manifests
itself as the following error when running the test cases or JMeter itself:
<pre>
 [java] WARNING: Couldn't flush user prefs:
 java.util.prefs.BackingStoreException:
 java.lang.IllegalArgumentException: Not supported: indent-number
</pre>
This does not affect JMeter operation.
</p>




<h2>Incompatible changes</h2>


<p>
When using CacheManager, JMeter now caches responses for GET queries provided header Cache-Control is different from "no-cache" as described in specification.
Furthermore it doesn't put anymore in Cache deprecated entries for "no-cache" responses. See <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53521">
      Bug
      53521</a> and <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53522">
      Bug
      53522</a>

</p>


<p>
A major change has occurred on JSR223 Test Elements, previously variables set up before script execution where stored in ScriptEngineManager which was created once per execution,
now ScriptEngineManager is a singleton shared by all JSR223 elements and only ScriptEngine is created once per execution, variables set up before script execution are now stored
in Bindings created on each execution, see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53365">
      Bug
      53365</a>.
</p>


<p>
JSR223 Test Elements using Script file are now Compiled if ScriptEngine supports this feature, see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53520">
      Bug
      53520</a>.
</p>


<p>
Shortcut for Function Helper Dialog is now CTRL+F1 (CMD + F1 for Mac OS), CTRL+F (CMD+F1 for Mac OS) now opens Search Dialog.
</p>


<p>
By default, the TestCompiler now stores details of which pairs it has seen in Controller instances rather than in a static Set.
[<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53796">
      Bug
      53796</a>]
This gives much better memory behaviour for delayed start test plans, as memory used is proportional to the number of concurrent threads.
With the static Set memory usage was proportional to the total thread count.
This change is very unlikely to cause a problem.
The original behaviour can be restored by setting the property <span class="code">TestCompiler.useStaticSet=true</span>

</p>


<p>
HTTPS Spoofing options have been removed from Proxy as HTTPS recording is directly available since JMeter 2.4.
</p>



<h2>Bug fixes</h2>


<h3>HTTP Samplers and Proxy</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53521">
      Bug
      53521</a> - Cache Manager should cache content with Cache-control=private</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53522">
      Bug
      53522</a> - Cache Manager should not store at all response with header "no-cache" and store other types of Cache-Control having max-age value</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53838">
      Bug
      53838</a> - Pressing "Stop" does not interrupt the TCP sampler</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53911">
      Bug
      53911</a> - JmeterKeystore does not allow for key down the list of certificate</li>

</ul>


<h3>Other Samplers</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53348">
      Bug
      53348</a> - JMeter JMS Point-to-Point Request-Response sampler doesn't work when Request-queue and Receive-queue are different</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53357">
      Bug
      53357</a> - JMS Point to Point reports too high response times in Request Response Mode</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53440">
      Bug
      53440</a> - SSL connection leads to ArrayStoreException on JDK 6 with some KeyManagerFactory SPI</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53511">
      Bug
      53511</a> - access log sampler SessionFilter throws NullPointerException - cookie manager not initialized properly</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53715">
      Bug
      53715</a> - JMeter does not load WSDL</li>

</ul>


<h3>Controllers</h3>

<ul>

</ul>


<h3>Listeners</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53742">
      Bug
      53742</a> - When jmeter.save.saveservice.sample_count is set to true, elapsed time read by listener is always equal to 0</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53774">
      Bug
      53774</a> - RequestViewRaw does not show headers unless samplerData is non-null</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53802">
      Bug
      53802</a> - IdleTime values are not saved to CSV log</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53874">
      Bug
      53874</a> - View Results Tree : If some parameter containing special characters like % is not encoded, RequestViewHTTP fails with java.lang.IllegalArgumentException: URLDecoder: Illegal hex characters in escape (%) pattern and Response is not displayed</li>

</ul>


<h3>Timers, Assertions, Config, Pre- &amp; Post-Processors</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51512">
      Bug
      51512</a> - Cookies aren't inserted into HTTP request with IPv6 Host header</li>

</ul>


<h3>Functions</h3>

<ul>

</ul>


<h3>I18N</h3>

<ul>

</ul>


<h3>General</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53365">
      Bug
      53365</a> - JSR223TestElement should cache ScriptEngineManager</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53520">
      Bug
      53520</a> - JSR223 Elements : Use Compilable interface to improve performances on File scripts</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53501">
      Bug
      53501</a> - Synchronization timer blocks test end.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53750">
      Bug
      53750</a> - TestCompiler saves unnecessary entries in pairing collection</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52266">
      Bug
      52266</a> - Code:Inconsistent synchronization</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53841">
      Bug
      53841</a> - CSVSaveService reads file using JVM default file encoding instead of using the one configured in saveservice.properties</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53953">
      Bug
      53953</a> New: Typo in monitor test plan documentation</li>

</ul>




<h2>Improvements</h2>


<h3>HTTP Samplers</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53675">
      Bug
      53675</a> - Add PATCH verb to HTTP sampler</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53931">
      Bug
      53931</a> - Define HTTPClient 4 for the default HTTP Request (and Proxy element to generate the HTTP requests). Before the default, it was the HTTP Java Sampler</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53934">
      Bug
      53934</a> - Removes HTTPS spoofing options in JMeter HTTP Proxy Server. Since JMeter 2.4, the HTTPS protocol is directly supported by the proxy</li>

</ul>


<h3>Other samplers</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=55310">
      Bug
      55310</a> - TestAction should implement Interruptible</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53318">
      Bug
      53318</a> - Add Embedded URL Filter to HTTP Request Defaults Control </li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53782">
      Bug
      53782</a> - Enhance JavaSampler handling of JavaSamplerClient cleanup to use less memory</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53168">
      Bug
      53168</a> - OS Process - allow specification of stdout/stderr/stdin</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53844">
      Bug
      53844</a> - JDBC related elements should check class of Variable Name supposed to contain JDBC Connection Configuration to avoid ClassCastException </li>

</ul>


<h3>Controllers</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53671">
      Bug
      53671</a> - tearDown thread group to run even if shutdown test happens</li>

</ul>


<h3>Listeners</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53566">
      Bug
      53566</a> - Don't log partial responses to the jmeter log</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53716">
      Bug
      53716</a> - Small improvements in aggregate graph: legend at left or right is now on 1 column (instead of 1 large line), no border to the reference's square color, reduce width on some fields</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53718">
      Bug
      53718</a> - Add a new visualizer 'Response Time Graph' to draw a line graph showing the evolution of response time for a test</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53738">
      Bug
      53738</a> - Keep track of number of threads started and finished</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53753">
      Bug
      53753</a> -  Summariser: no point displaying fractional time in most cases</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53749">
      Bug
      53749</a> - TestListener interface could perhaps be split up.
This should reduce per-thread memory requirements and processing,
as only test elements that actually use testIterationStart functionality now need to be handled.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53941">
      Bug
      53941</a> - Add latency to View Result table listener</li>

</ul>


<h3>Timers, Assertions, Config, Pre- &amp; Post-Processors</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53755">
      Bug
      53755</a> - Adding a HttpClient 4 cookie implementation in JMeter.
Cookie Manager has now the default HC3.1 implementation and a new choice HC4 implementation (compliant with IPv6 address)</li>

</ul>


<h3>Functions</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51527">
      Bug
      51527</a> - __time() function : add another option to __time() to provide *seconds* since epoch</li>

</ul>


<h3>I18N</h3>

<ul>

</ul>


<h3>General</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53364">
      Bug
      53364</a> - Sort list of Functions in Function Helper Dialog</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53418">
      Bug
      53418</a> - New Option "Delay thread creation until needed" that will create and start threads when needed instead of creating them on Test startup</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=42245">
      Bug
      42245</a> - Show clear passwords in HTTP Authorization Manager</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53616">
      Bug
      53616</a> - Display 'Apache JMeter' title in app title bar in Gnome 3</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53759">
      Bug
      53759</a> - ClientJMeterEngine performs unnecessary traverse using SearchByClass(TestListener)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52601">
      Bug
      52601</a> - CTRL + F for the new Find feature</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53796">
      Bug
      53796</a> - TestCompiler uses static Set which can grow huge</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53673">
      Bug
      53673</a> - Add JMeter version in the jmx file</li>

<li>Add support for HeapDump to the JMeter non-GUI and GUI client</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53862">
      Bug
      53862</a> - Would be nice to have the JMeter Version available as a property</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53806">
      Bug
      53806</a> -  FileServer should provide thread-safe parsing</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53807">
      Bug
      53807</a> - CSV Dataset does not handle embedded new lines in quoted data</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53879">
      Bug
      53879</a> - GUI : Allow Popups to be closed with ESC key</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53876">
      Bug
      53876</a> - Allow URL Filters (HTTP Proxy) to be pasted from clipboard</li>

</ul>


<h2>Non-functional changes</h2>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53311">
      Bug
      53311</a> - JMeterUtils#runSafe should not throw Error when interrupted</li>

<li>Updated to commons-net-3.1 (from 3.0.1)</li>

<li>Updated to HttpComponents Core 4.2.2 (from 4.1.4) and HttpComponents Client 4.2.1 (from 4.1.3)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53765">
      Bug
      53765</a> - Switch to commons-lang3-3.1</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53884">
      Bug
      53884</a> - wrong Maven groupId for commons-lang</li>

</ul>




<h1>Version 2.7</h1>


<h2>New and Noteworthy</h2>


<h3>OS Process Sampler</h3>

<p>A new System Sampler that can be used to execute commands on the local machine.
<figure>
<a href="./images/screenshots/changes/2.7/01_os_process_sampler.png"><img src="./images/screenshots/changes/2.7/01_os_process_sampler.png" width="629" height="497" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<p>OS Process Sampler results example with DNS lookup command 'dig'
<figure>
<a href="./images/screenshots/changes/2.7/02_os_process_example_results.png"><img src="./images/screenshots/changes/2.7/02_os_process_example_results.png" width="877" height="470" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3>JMS Samplers improvements</h3>

<p>Addition of a "Non Persistent Delivery" option to send "Non-Persistent" (Guaranteed to be delivered at most once. Message loss is not a concern.) JMS messages
<figure>
<a href="./images/screenshots/changes/2.7/11_jms_non_persistent_delivery_mode.png"><img src="./images/screenshots/changes/2.7/11_jms_non_persistent_delivery_mode.png" width="953" height="336" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<p>Support sending of JMS Object Messages to enable sending Objects unmarshalled from XML by XStream
<figure>
<a href="./images/screenshots/changes/2.7/12_jms_sending_objects.png"><img src="./images/screenshots/changes/2.7/12_jms_sending_objects.png" width="808" height="726" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<p>Enable setting JMS Properties through JMS Publisher sampler
<figure>
<a href="./images/screenshots/changes/2.7/13_jms_properties.png"><img src="./images/screenshots/changes/2.7/13_jms_properties.png" width="1029" height="470" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3>Test Action sampler</h3>

<p>Allow premature exit from a loop
<figure>
<a href="./images/screenshots/changes/2.7/07_test_action_next_iter.png"><img src="./images/screenshots/changes/2.7/07_test_action_next_iter.png" width="862" height="167" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3>Webservice Sampler improvements</h3>

<p>Add a jmeter property soap.document_cache to control size of Document Cache
<figure>
<a href="./images/screenshots/changes/2.7/14_ws_document_cache.png"><img src="./images/screenshots/changes/2.7/14_ws_document_cache.png" width="270" height="59" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<p>Make Maintain HTTP Session configurable
<figure>
<a href="./images/screenshots/changes/2.7/15_ws_maintain_session.png"><img src="./images/screenshots/changes/2.7/15_ws_maintain_session.png" width="833" height="505" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3>Aggregate graph: Clustered Bar char with average, median, 90% line, min and max columns</h3>

<p>Aggregate graph changes to Clustered Bar chart, add more columns (median, 90% line, min, max) and options, fixed some bugs
<figure>
<a href="./images/screenshots/changes/2.7/03_aggregate_graph_with_new_cols.png"><img src="./images/screenshots/changes/2.7/03_aggregate_graph_with_new_cols.png" width="1177" height="503" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<p>New settings for aggregate graph
<figure>
<a href="./images/screenshots/changes/2.7/04_aggregate_graph_parameters.png"><img src="./images/screenshots/changes/2.7/04_aggregate_graph_parameters.png" width="1173" height="433" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3>Improvements of HTML report design generated by JMeter Ant task in extras folder</h3>

<p>HTML report example
<figure>
<a href="./images/screenshots/changes/2.7/05_jmeter_ant_task_report_success.png"><img src="./images/screenshots/changes/2.7/05_jmeter_ant_task_report_success.png" width="1264" height="506" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<p>HTML report example with some assertion errors
<figure>
<a href="./images/screenshots/changes/2.7/06_jmeter_ant_task_report_errors.png"><img src="./images/screenshots/changes/2.7/06_jmeter_ant_task_report_errors.png" width="1267" height="550" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3>Mailer Visualizer</h3>

<p>
<ul>

<li>Enable authentication, and connection security with SSL or TLS</li>

<li>Improve GUI design</li>

<li>Add internationalisation (i18n) support</li>

</ul>

<figure>
<a href="./images/screenshots/changes/2.7/10_mailer_visualizer_gui.png"><img src="./images/screenshots/changes/2.7/10_mailer_visualizer_gui.png" width="860" height="403" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3>New Visual Indicator of number of ERROR/FATAL messages in logs</h3>

<p>Indicator shows number of ERROR/FATAL messages in logs, it can be clicked to toggle Log Viewer panel
<figure>
<a href="./images/screenshots/changes/2.7/16_log_errors_counter.png"><img src="./images/screenshots/changes/2.7/16_log_errors_counter.png" width="815" height="633" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3>Dialog box to show detail of a parameter row</h3>

<p>Add a detail button on parameters table to show detail of a Row
<figure>
<a href="./images/screenshots/changes/2.7/08_param_button_detail.png"><img src="./images/screenshots/changes/2.7/08_param_button_detail.png" width="824" height="165" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<p>Detail box example
<figure>
<a href="./images/screenshots/changes/2.7/09_detail_box.png"><img src="./images/screenshots/changes/2.7/09_detail_box.png" width="702" height="454" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3>Plugin writers</h3>

<p>
New interface org.apache.jmeter.engine.util.ConfigMergabilityIndicator has been introduced to tell whether a ConfigTestElement can be merged in Sampler (see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53042">
      Bug
      53042</a>):<br>

<pre>public boolean applies(ConfigTestElement configElement);</pre>

</p>


<p>New interface org.apache.jmeter.protocol.http.proxy.SamplerCreator to allow plugging HTTP based samplers that differ from default HTTP Samplers through Proxy during Recording Phase (see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52674">
      Bug
      52674</a>):<br>

<pre>public String[] getManagedContentTypes();</pre>

<pre>public HTTPSamplerBase createSampler(HttpRequestHdr request, Map&lt;String, String&gt; pageEncodings, Map&lt;String, String&gt; formEncodings);</pre>

<pre>public void populateSampler(HTTPSamplerBase sampler, HttpRequestHdr request, Map&lt;String, String&gt; pageEncodings, Map&lt;String, String&gt; formEncodings) throws Exception;</pre>

</p>





<h2>Known bugs</h2>


<p>The Once Only controller behaves correctly under a Thread Group or Loop Controller,
but otherwise its behaviour is not consistent (or clearly specified).</p>


<p>Listeners don't show iteration counts when a If Controller has a condition which is always false from the first iteration (see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52496">
      Bug
      52496</a>).
A workaround is to add a sampler at the same level as (or superior to) the If Controller.
For example a Test Action sampler with 0 wait time (which doesn't generate a sample),
or a Debug Sampler with all fields set to False (to reduce the sample size).
</p>




<h2>Incompatible changes</h2>


<p>
When doing replacement of User Defined Variables, Proxy will not substitute partial values anymore when "Regexp matching" is used. It will use Perl 5 word matching ("\b")
</p>


<p>
In User Defined Variables, Test Plan, HTTP Sampler Arguments Table, Java Request Defaults, JMS Sampler and Publisher, LDAP Request Defaults and LDAP Extended Request Defaults, rows with
empty Name and Value are no more saved.
</p>


<p>
JMeter now expands the Test Plan tree to the testplan level and no further and selects the root of the tree. Furthermore default value of onload.expandtree is false.
</p>


<p>
Graph Full Results Listener has been removed.
</p>


<p>
When calling "Clear All" command, if Log Viewer is displayed its content will be cleared.
</p>



<h2>Bug fixes</h2>


<h3>HTTP Samplers and Proxy</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52613">
      Bug
      52613</a> - Using Raw Post Body option, text gets encoded</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52781">
      Bug
      52781</a> - Content-Disposition header garbled even if browser compatible headers is checked (HC4) </li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52796">
      Bug
      52796</a> - MonitorHandler fails to clear variables when starting a new parse</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52871">
      Bug
      52871</a> - Multiple Certificates not working with HTTP Client 4</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52885">
      Bug
      52885</a> - Proxy : Recording issues with HTTPS, cookies starting with secure are partly truncated</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52886">
      Bug
      52886</a> - Proxy : Recording issues with HTTPS when spoofing is on, secure cookies are not always changed</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52897">
      Bug
      52897</a> - HTTPSampler : Using PUT method with HTTPClient4 and empty Content Encoding and sending files leads to NullPointerException</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53145">
      Bug
      53145</a> - HTTP Sampler - function in path evaluated too early</li>

</ul>


<h3>Other Samplers</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51737">
      Bug
      51737</a> - TCPSampler : Packet gets converted/corrupted</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52868">
      Bug
      52868</a> - BSF language list should be sorted</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52869">
      Bug
      52869</a> - JSR223 language list currently uses BSF list which is wrong</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52932">
      Bug
      52932</a> - JDBC Sampler : Sampler is not marked in error in an Exception which is not of class IOException, SQLException, IOException occurs</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52916">
      Bug
      52916</a> - JDBC Exception if there is an empty user defined variable</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52937">
      Bug
      52937</a> - Webservice Sampler : Clear Soap Documents Cache at end of Test </li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53027">
      Bug
      53027</a> - JMeter starts throwing exceptions while using SMTP Sample in a test plan with HTTP Cookie Mngr or HTTP Request Defaults</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53072">
      Bug
      53072</a> - JDBC PREPARED SELECT statements should return results in variables like non prepared SELECT</li>

</ul>


<h3>Controllers</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52968">
      Bug
      52968</a> - Option Start Next Loop in Thread Group does not mark parent Transaction Sampler in error when an error occurs</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=50898">
      Bug
      50898</a> - IncludeController : NullPointerException loading script in non-GUI mode if Includers use same element name</li>

</ul>


<h3>Listeners</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=43450">
      Bug
      43450</a> - Listeners/Savers assume SampleResult count is always 1; fixed Generate Summary Results</li>

</ul>


<h3>Assertions</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52848">
      Bug
      52848</a> - NullPointer in "XPath Assertion"</li>

</ul>


<h3>Functions</h3>

<ul>

</ul>


<h3>I18N</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52551">
      Bug
      52551</a> - Function Helper Dialog does not switch language correctly</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52552">
      Bug
      52552</a> - Help reference only works in English</li>

</ul>


<h3>General</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52639">
      Bug
      52639</a> - JSplitPane divider for log panel should be hidden if log is not activated</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52672">
      Bug
      52672</a> - Change Controller action deletes all but one child samplers</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52694">
      Bug
      52694</a> - Deadlock in GUI related to non AWT Threads updating GUI</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52678">
      Bug
      52678</a> - Proxy : When doing replacement of UserDefinedVariables, partial values should not be substituted</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52728">
      Bug
      52728</a> - CSV Data Set Config element cannot coexist with BSF Sampler in same Thread Plan</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52762">
      Bug
      52762</a> - Problem with multiples certificates: first index not used until indexes are restarted</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52741">
      Bug
      52741</a> - TestBeanGUI default values do not work at second time or later</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52783">
      Bug
      52783</a> - oro.patterncache.size property never used due to early init</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52789">
      Bug
      52789</a> - Proxy with Regexp Matching can fail with NullPointerException in Value Replacement if value is null</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52645">
      Bug
      52645</a> - Recording with Proxy leads to OutOfMemory</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52679">
      Bug
      52679</a> - User Parameters columns narrow</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52843">
      Bug
      52843</a> - Sample headerSize and bodySize not being accumulated for subsamples</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52967">
      Bug
      52967</a> - The function __P() couldn't use default value when running with remote server in GUI mode.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=50799">
      Bug
      50799</a> - Having a non-HTTP sampler in a http test plan prevents multiple header managers from working</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52997">
      Bug
      52997</a> - JMeter should not exit without saving Test Plan if saving before exit fails</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53136">
      Bug
      53136</a> - Catching Throwable needs to be carefully handled</li>

</ul>




<h2>Improvements</h2>


<h3>HTTP Samplers</h3>

<ul>

</ul>


<h3>Other samplers</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52775">
      Bug
      52775</a> - JMS Publisher : Add Non Persistent Delivery option</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52810">
      Bug
      52810</a> - Enable setting JMS Properties through JMS Publisher sampler</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52938">
      Bug
      52938</a> - Webservice Sampler : Add a jmeter property soap.document_cache to control size of Document Cache</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52939">
      Bug
      52939</a> - Webservice Sampler : Make MaintainSession configurable</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53073">
      Bug
      53073</a> - Allow to assign the OUT result of a JDBC CALLABLE to JMeter variables</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53164">
      Bug
      53164</a> - New System Sampler</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53172">
      Bug
      53172</a> - OS Process Sampler - allow specification of Environment Variables</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52936">
      Bug
      52936</a> - JMS Publisher : Support sending of JMS Object Messages</li>

</ul>


<h3>Controllers</h3>

<ul>

</ul>


<h3>Listeners</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52603">
      Bug
      52603</a> - MailerVisualizer : Enable SSL , TLS and Authentication</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52698">
      Bug
      52698</a> - Remove Graph Full Results Listener</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53070">
      Bug
      53070</a> - Change Aggregate graph to Clustered Bar chart, add more columns (median, 90% line, min, max) and options, fixed some bugs</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53246">
      Bug
      53246</a> - Mailer Visualizer: improve GUI design and I18N</li>

</ul>


<h3>Timers, Assertions, Config, Pre- &amp; Post-Processors</h3>

<ul>

</ul>


<h3>Functions</h3>

<ul>

</ul>


<h3>I18N</h3>

<ul>

<li>Mailer Visualizer has been internationalized. French translation added. (see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53246">
      Bug
      53246</a>)</li>

</ul>


<h3>General</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=45839">
      Bug
      45839</a> - Test Action : Allow premature exit from a loop</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52614">
      Bug
      52614</a> - MailerModel.sendMail has strange way to calculate debug setting</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52782">
      Bug
      52782</a> - Add a detail button on parameters table to show detail of a Row</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52674">
      Bug
      52674</a> - Proxy : Add a Sampler Creator to allow plugging HTTP based samplers using potentially non textual POST Body (AMF, Silverlight, &hellip;) and customizing them for others</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52934">
      Bug
      52934</a> - GUI : Open Test plan with the tree expanded to the testplan level and no further and select the root of the tree</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52941">
      Bug
      52941</a> - Improvements of HTML report design generated by JMeter Ant task extra</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53042">
      Bug
      53042</a> - Introduce a new method in Sampler interface to allow Sampler to decide whether a config element applies to Sampler</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52771">
      Bug
      52771</a> - Documentation : Added RSS feed on JMeter Home page under link "Subscribe to What's New"</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=42784">
      Bug
      42784</a> - Show the number of errors logged in the GUI</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53256">
      Bug
      53256</a> - Make Clear All command clean LogViewer content</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53261">
      Bug
      53261</a> - Make "Error/fatal" counter added in <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=42784">
      Bug
      42784</a> open Log Viewer panel when Warn Indicator is clicked</li>

</ul>


<h2>Non-functional changes</h2>

<ul>

<li>Upgraded to rhino 1.7R3 (was js-1.7R2.jar).
Note: the Maven coordinates for the jar were changed from rhino:js to org.mozilla:rhino.
This does not affect JMeter directly, but might cause problems if using JMeter in a Maven project
with other code that depends on an earlier version of the Rhino Javascript jar.
</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52675">
      Bug
      52675</a> - Refactor Proxy and HttpRequestHdr to allow Sampler Creation by Proxy</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52680">
      Bug
      52680</a> - Mention version in which function was introduced</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52788">
      Bug
      52788</a> - HttpRequestHdr : Optimize code to avoid useless work</li>

<li>JMeter Ant (ant-jmeter-1.1.1.jar) task was upgraded from 1.0.9 to 1.1.1</li>

<li>Updated to commons-io 2.2 (from 2.1)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=53129">
      Bug
      53129</a> - Upgrade XStream from 1.3.1 to 1.4.2</li>

<li>Updated to httpcomponents-client 4.1.3 (from 4.1.2)</li>

<li>Updated JMeter distributed testing guide (jmeter_distributed_testing_step_by_step.pdf). Changes source format to OpenOffice odt (from sxw)</li>

</ul>




<h1>Version 2.6</h1>


<h2>New and Noteworthy</h2>


<h3>Toolbar</h3>

<p>A new toolbar on JMeter's main window
<figure>
<a href="./images/screenshots/changes/2.6/01_toolbar.png"><img src="./images/screenshots/changes/2.6/01_toolbar.png" width="986" height="91" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3>JMeter start test button</h3>

<p>A new menu option and button allow to start a test ignoring the Pause Timers
<figure>
<a href="./images/screenshots/changes/2.6/02_ignore_pause_timers.png"><img src="./images/screenshots/changes/2.6/02_ignore_pause_timers.png" width="201" height="58" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3>JMeter GUI Look and Feel</h3>

<p>Allow System or CrossPlatform LAF to be set from options menu
<figure>
<a href="./images/screenshots/changes/2.6/03_look_and_feel.png"><img src="./images/screenshots/changes/2.6/03_look_and_feel.png" width="373" height="162" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3>JMeter GUI - duplicate node</h3>

<p>Add "duplicate node" in context menu
<figure>
<a href="./images/screenshots/changes/2.6/04_duplicate_context_menu.png"><img src="./images/screenshots/changes/2.6/04_duplicate_context_menu.png" width="323" height="136" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3>JMeter tree view - search facility</h3>

<p>Functionality to search by keyword in Samplers Tree View
<figure>
<a href="./images/screenshots/changes/2.6/05_search_tree.png"><img src="./images/screenshots/changes/2.6/05_search_tree.png" width="554" height="219" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3>HTTP Request - raw request pane</h3>

<p>Improve HTTP Request GUI to better show parameters without name (GWT RPC request or SOAP request for example)
<figure>
<a href="./images/screenshots/changes/2.6/06_post_data.png"><img src="./images/screenshots/changes/2.6/06_post_data.png" width="759" height="461" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3>HTTP Request - other changes</h3>

<p>
<ul>

<li>Allow multiple selection in arguments panel</li>

<li>Allow to add (paste) entries from the clipboard to an arguments list</li>

<li>Ability to move variables up or down in HTTP Request</li>

</ul>

<figure>
<a href="./images/screenshots/changes/2.6/07_multiple_selection_params.png"><img src="./images/screenshots/changes/2.6/07_multiple_selection_params.png" width="875" height="218" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3>HTTP Request - file protocol</h3>

<p>Better support for file: protocol in HTTP sampler
<figure>
<a href="./images/screenshots/changes/2.6/08_file_protocol.png"><img src="./images/screenshots/changes/2.6/08_file_protocol.png" width="489" height="662" alt=""></a>
<figcaption></figcaption>
</figure>

</p>

<p>Retrieve embedded resources with file: protocol
<figure>
<a href="./images/screenshots/changes/2.6/09_file_protocol_embedded.png"><img src="./images/screenshots/changes/2.6/09_file_protocol_embedded.png" width="700" height="138" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3>HTTP Request - Ignore embedded resources failed</h3>

<p>Enable "ignore failed" for embedded resources
<figure>
<a href="./images/screenshots/changes/2.6/26_ignore_child_failed.png"><img src="./images/screenshots/changes/2.6/26_ignore_child_failed.png" width="820" height="246" alt=""></a>
<figcaption></figcaption>
</figure>

</p>

<p>Parent success with a embedded resource failed
<figure>
<a href="./images/screenshots/changes/2.6/27_succes_with_child_failed.png"><img src="./images/screenshots/changes/2.6/27_succes_with_child_failed.png" width="590" height="214" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3>View Results in Table - child sample display</h3>

<p>Add option to TableVisualiser to display child samples instead of parent
<figure>
<a href="./images/screenshots/changes/2.6/10_child_sampler.png"><img src="./images/screenshots/changes/2.6/10_child_sampler.png" width="911" height="619" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3>Key Store - multiple certificates</h3>

<p>Allowing multiple certificates (JKS)
<figure>
<a href="./images/screenshots/changes/2.6/11_jks_keystore.png"><img src="./images/screenshots/changes/2.6/11_jks_keystore.png" width="324" height="166" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3>Aggregate graph improvements</h3>

<p>Some improvements on Aggregate Graph Listener:
<ul>
<li>new GUI for settings</li>

<li>dynamic graph size</li>

<li>allow to change fonts for title graph and legend</li>

<li>allow to change bar color (background and text values)</li>

<li>allow to draw or not bars outlines</li>

<li>allow to select only some samplers by a regexp filter</li>

<li>allow to define Y axis maximum scale</li>

</ul>

<figure>
<a href="./images/screenshots/changes/2.6/12_aggregate_graph_settings.png"><img src="./images/screenshots/changes/2.6/12_aggregate_graph_settings.png" width="850" height="411" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<p>Aggregate Graph bar
<figure>
<a href="./images/screenshots/changes/2.6/13_aggregate_graph_bar.png"><img src="./images/screenshots/changes/2.6/13_aggregate_graph_bar.png" width="851" height="506" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3>Counter - new reset option</h3>

<p>Add an option to reset counter on each Thread Group iteration
<figure>
<a href="./images/screenshots/changes/2.6/14_reset_counter.png"><img src="./images/screenshots/changes/2.6/14_reset_counter.png" width="345" height="257" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3>Functions</h3>

<p>
<ul>

<li>Add a new function __RandomString to generate random Strings</li>

<li>Add a new function __TestPlanName returning the name of the current "Test Plan"</li>

<li>Add a new function __machineIP returning IP address</li>

<li>Add a new function  __jexl2 to support Jexl2</li>

</ul>

<figure>
<a href="./images/screenshots/changes/2.6/15_random_string.png"><img src="./images/screenshots/changes/2.6/15_random_string.png" width="697" height="236" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3>User Defined Variable improvements</h3>

<p>
<ul>
<li>Add a comment field in User Defined Variables</li>

<li>Allow to add (paste) entries from the clipboard to an arguments list</li>

<li>Ability to move up or down variables in User Defined Variables</li>

</ul>

<figure>
<a href="./images/screenshots/changes/2.6/16_udv_comments.png"><img src="./images/screenshots/changes/2.6/16_udv_comments.png" width="543" height="237" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3>View Results Tree</h3>

<p>In View Results Tree rather than showing just a message if the results are to big, show as much of the result as are configured
<figure>
<a href="./images/screenshots/changes/2.6/17_vrt_max_size_display.png"><img src="./images/screenshots/changes/2.6/17_vrt_max_size_display.png" width="953" height="98" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3>Controllers - change elements</h3>

<p>Add ability to Change Controller elements
<figure>
<a href="./images/screenshots/changes/2.6/18_change_ctl_type.png"><img src="./images/screenshots/changes/2.6/18_change_ctl_type.png" width="643" height="112" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3>JDBC pre- and post-processor</h3>

<p>Add JDBC pre- and post-processor
<figure>
<a href="./images/screenshots/changes/2.6/19_jdbc_pre_post_proc.png"><img src="./images/screenshots/changes/2.6/19_jdbc_pre_post_proc.png" width="535" height="217" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3>JDBC transaction isolation option</h3>

<p>Allow to set the transaction isolation in the JDBC Connection Configuration
<figure>
<a href="./images/screenshots/changes/2.6/20_jdbc_trans_isolation.png"><img src="./images/screenshots/changes/2.6/20_jdbc_trans_isolation.png" width="437" height="351" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3>Poisson Timer</h3>

<p>Add a Poisson based timer
<figure>
<a href="./images/screenshots/changes/2.6/21_poisson_timer.png"><img src="./images/screenshots/changes/2.6/21_poisson_timer.png" width="358" height="156" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3>GUI and OS interaction</h3>

<p>Support for file Drag and Drop.
<figure>
<a href="./images/screenshots/changes/2.6/22_drag_and_drop.png"><img src="./images/screenshots/changes/2.6/22_drag_and_drop.png" width="776" height="508" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3>Confirm Remove Dialog box</h3>

<p>Add a dialog box to confirm removing the element(s) when Remove action is called
<figure>
<a href="./images/screenshots/changes/2.6/23_confirm_remove.png"><img src="./images/screenshots/changes/2.6/23_confirm_remove.png" width="583" height="210" alt=""></a>
<figcaption></figcaption>
</figure>
The dialogue can be skipped by setting the JMeter property <span class="code">confirm.delete.skip=true</span>

</p>


<h3>Remote batching support</h3>

<p>Use external store to hold samples during distributed testing,
Added DiskStore remote sample sender: like Hold, but saves samples to disk until end of test
<figure>
<a href="./images/screenshots/changes/2.6/24_diskstore.png"><img src="./images/screenshots/changes/2.6/24_diskstore.png" width="998" height="273" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3>JMS Subscriber sampler</h3>

<p>With JMS Subscriber, ability to use Selectors
<figure>
<a href="./images/screenshots/changes/2.6/25_selector.png"><img src="./images/screenshots/changes/2.6/25_selector.png" width="705" height="297" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3>New Logger Panel</h3>

<p>A new Log Viewer  has been added to the GUI and can be enabled from menu Options &rarr; Log Viewer:
<figure>
<a href="./images/screenshots/changes/2.6/28_loggerpanel_option.png"><img src="./images/screenshots/changes/2.6/28_loggerpanel_option.png" width="326" height="147" alt=""></a>
<figcaption></figcaption>
</figure>

</p>

<p>This Log Viewer shows the jmeter.log file, and useful (for example) to debug BeanShell/BSF scripts:
<figure>
<a href="./images/screenshots/changes/2.6/28_loggerpanel.png"><img src="./images/screenshots/changes/2.6/28_loggerpanel.png" width="953" height="466" alt=""></a>
<figcaption></figcaption>
</figure>

</p>


<h3>The menu item Options / Choose Language is now fully functional</h3>

<p>
The menu item Options / Choose Language now changes all the displayed text to the new language provided
all messages are translated. You can help on this by translating into your language.
</p>


<h3>Legacy JMX and JTL Avalon format support restored</h3>

<p>
Support for reading/writing the original Avalon XML format of JMX (script) and JTL (sample result) files was dropped in JMeter version 2.4.
JMeter can now read the Avalon format files again, however there is no support for saving files in the old format.
</p>


<h3>JMeter jars available from Maven repository</h3>

<p>
JMeter jars are now available from Maven repository.
</p>




<h2>Known bugs</h2>


<p>
The Include Controller has some problems in non-GUI mode (see Bugs 40671, 41286, 44973, 50898).
In particular, it can cause a NullPointerException if there are two include controllers with the same name.
</p>


<p>The Once Only controller behaves correctly under a Thread Group or Loop Controller,
but otherwise its behaviour is not consistent (or clearly specified).</p>


<p>Listeners don't show iteration counts when a If Controller has a condition which is always false from the first iteration (see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52496">
      Bug
      52496</a>).
A workaround is to add a sampler at the same level as (or superior to) the If Controller.
For example a Test Action sampler with 0 wait time (which doesn't generate a sample),
or a Debug Sampler with all fields set to False (to reduce the sample size).
</p>




<h2>Incompatible changes</h2>


<p>
JMeter versions since 2.1 failed to create a container sample when loading embedded resources.
This has been corrected; can still revert to the <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51939">
      Bug
      51939</a> behaviour by setting the following property:
<span class="code">httpsampler.separate.container=false</span>

</p>

<p>
Mirror server now uses default port 8081, was 8080 before 2.5.1.
</p>

<p>
TCP Sampler handles SocketTimeoutException, SocketException and InterruptedIOException differently since 2.6, when
these occurs, Sampler is marked as failed.
</p>

<p>
Sample Sender implementations now resolve their configuration on Client side since 2.6.
This behaviour can be changed with property sample_sender_client_configured (set it to false).
</p>


<p>
The HTTP User Parameter Modifier test element has been removed; it has been deprecated for a long time.
</p>




<h2>Bug fixes</h2>


<h3>HTTP Samplers and Proxy</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51932">
      Bug
      51932</a> - CacheManager does not handle cache-control header with any attributes after max-age</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51918">
      Bug
      51918</a> - GZIP compressed traffic produces errors, when multiple connections allowed</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51939">
      Bug
      51939</a> - Should generate new parent sample if necessary when retrieving embedded resources</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51942">
      Bug
      51942</a> - Synchronisation issue on CacheManager when Concurrent Download is used</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51957">
      Bug
      51957</a> - Concurrent get can hang if a task does not complete</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51925">
      Bug
      51925</a> - Calling Stop on Test leaks executor threads when concurrent download of resources is on</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51980">
      Bug
      51980</a> - HtmlParserHTMLParser double-counts images used in links</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52064">
      Bug
      52064</a> - OutOfMemory Risk in CacheManager</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51919">
      Bug
      51919</a> - Random ConcurrentModificationException or NoSuchElementException in CookieManager#removeMatchingCookies when using Concurrent Download</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52126">
      Bug
      52126</a> - HttpClient4 does not clear cookies between iterations</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52129">
      Bug
      52129</a> - Reported Body Size is wrong when using HTTP Client 4 and Keep Alive connection</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52137">
      Bug
      52137</a> - Problems with HTTP Cache Manager</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52221">
      Bug
      52221</a> - Nullpointer Exception with use Retrieve Embedded Resource without HTTP Cache Manager</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52310">
      Bug
      52310</a> - variable in IPSource failed HTTP request if "Concurrent Pool Size" is enabled</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52371">
      Bug
      52371</a> - API Incompatibility - Methods in HTTPSampler2 now require PostMethod instead of HttpMethod[Base]. Reverted to original types.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=49950">
      Bug
      49950</a> - Proxy : IndexOutOfBoundsException when recording with Proxy server</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52409">
      Bug
      52409</a> - HttpSamplerBase#errorResult modifies sampleResult passed as parameter;
fix code which assumes that a new instance is created (i.e. when adding a sub-sample)
</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52507">
      Bug
      52507</a> - Delete Http User Parameters modifier (deprecated, obsolete)</li>

</ul>


<h3>Other Samplers</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51996">
      Bug
      51996</a> - JMS Initial Context leak newly created Context when Multiple Thread enter InitialContextFactory#lookupContext at the same time</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51691">
      Bug
      51691</a> - Authorization does not work for JMS Publisher and JMS Subscriber</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52036">
      Bug
      52036</a> - Durable Subscription fails with ActiveMQ due to missing clientId field</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52044">
      Bug
      52044</a> - JMS Subscriber used with many threads leads to javax.naming.NamingException: Something already bound with ActiveMQ</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52072">
      Bug
      52072</a> - LengthPrefixedBinaryTcpClientImpl may end a sample prematurely</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52390">
      Bug
      52390</a> - AbstractJDBCTestElement:Memory leak and synchronization issue in perConnCache</li>

</ul>


<h3>Controllers</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51865">
      Bug
      51865</a> - Infinite loop inside thread group does not work properly if "Start next loop after a Sample error" option set</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51868">
      Bug
      51868</a> - A lot of exceptions in jmeter.log while using option "Start next loop" for thread</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51866">
      Bug
      51866</a> - Counter under loop doesn't work properly if "Start next loop on error" option set for thread group</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52296">
      Bug
      52296</a> - TransactionController + Children ThrouputController or InterleaveController leads to ERROR sampleEnd called twice java.lang.Throwable: Invalid call sequence when TPC does not run sample</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52330">
      Bug
      52330</a> - With next-Loop-On-Error after error samples are not executed in next loop</li>

</ul>


<h3>Listeners</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52357">
      Bug
      52357</a> - View results in Table does not allow for multiple result samples</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52491">
      Bug
      52491</a> - Incorrect parsing of Post data parameters in Tree Listener / Http Request view</li>

</ul>


<h3>Assertions</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52519">
      Bug
      52519</a> - XMLSchemaAssertion uses JMeter JVM file.encoding instead of response encoding</li>

</ul>


<h3>Functions</h3>

<ul>

<li>The CRLF example for the char function was wrong; CRLF=(0xD,0xA), not (0xC,0xA)</li>

</ul>


<h3>I18N</h3>

<ul>

</ul>


<h3>General</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51937">
      Bug
      51937</a> - JMeter does not handle missing TestPlan entry well</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51988">
      Bug
      51988</a> - CSV Data Set Configuration does not resolve default delimiter for header parsing when variables field is empty</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52003">
      Bug
      52003</a> - View Results Tree "Scroll automatically" does not scroll properly in case nodes are expanded</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=27112">
      Bug
      27112</a> - User Parameters should use scrollbars</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52029">
      Bug
      52029</a> - Command-line shutdown only gets sent to last engine that was started</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52093">
      Bug
      52093</a> - Toolbar ToolTips don't switch language</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51733">
      Bug
      51733</a> - SyncTimer is messed up if you a interrupt a test plan</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52118">
      Bug
      52118</a> - New toolbar : shutdown and stop buttons not disabled when no test is running</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52125">
      Bug
      52125</a> - StatCalculator.addAll(StatCalculator calc) joins incorrect if there are more samples with the same response time in one of the TreeMap</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52339">
      Bug
      52339</a> - JMeter Statistical mode in distributed testing shows wrong response time</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52215">
      Bug
      52215</a> - Confusing synchronization in StatVisualizer, SummaryReport ,Summariser and issue in StatGraphVisualizer</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52216">
      Bug
      52216</a> - TableVisualizer : currentData field is badly synchronized</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52217">
      Bug
      52217</a> - ViewResultsFullVisualizer : Synchronization issues on root and treeModel</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=43294">
      Bug
      43294</a> - XPath Extractor namespace problems</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52224">
      Bug
      52224</a> - TestBeanHelper does not support NOT_UNDEFINED == Boolean.FALSE</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52279">
      Bug
      52279</a> - Switching to another language loses icons in Tree and logs error Can't obtain GUI class from &hellip;</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52280">
      Bug
      52280</a> - The menu item Options / Choose Language does not change all the displayed text to the new language</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52376">
      Bug
      52376</a> - StatCalculator#addValue(T val, int sampleCount) should use long, not int</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=49374">
      Bug
      49374</a> - Encoding of embedded element URLs depend on the file.encoding property</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52399">
      Bug
      52399</a> - URLRewritingModifier uses default file.encoding to match text content</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=50438">
      Bug
      50438</a> - code calculates average with integer math, expecting double value</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52469">
      Bug
      52469</a> - Changes in Support of SSH-Tunneling of RMI traffic for Remote Testing</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52466">
      Bug
      52466</a> - Upgrade Test Plan feature : NameUpdater does not upgrade properties</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52503">
      Bug
      52503</a> - Unify File&rarr;Close and Window close file saving behaviour</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52537">
      Bug
      52537</a> - Help does not scroll to correct anchor when file is first loaded</li>

</ul>




<h2>Improvements</h2>


<h3>HTTP Samplers</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51981">
      Bug
      51981</a> - Better support for file: protocol in HTTP sampler</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52033">
      Bug
      52033</a> - Allowing multiple certificates (JKS)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52352">
      Bug
      52352</a> - Proxy : Support IPv6 URLs capture</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=44301">
      Bug
      44301</a> - Enable "ignore failed" for embedded resources</li>

</ul>


<h3>Other samplers</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51419">
      Bug
      51419</a> - JMS Subscriber: ability to use Selectors</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52088">
      Bug
      52088</a> - JMS Sampler : Add a selector when REQUEST / RESPONSE is chosen</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52104">
      Bug
      52104</a> - TCP Sampler handles badly errors</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52087">
      Bug
      52087</a> - TCPClient interface does not allow for partial reads</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52115">
      Bug
      52115</a> - SOAP/XML-RPC should not send a POST request when file to send is not found</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=40750">
      Bug
      40750</a> - TCPSampler : Behaviour when sockets are closed by remote host</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52396">
      Bug
      52396</a> - TCP Sampler in "reuse connection mode" reuses previous sampler's connection even if it's configured with other host, port, user or password</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52048">
      Bug
      52048</a> - BSFSampler, BSFPreProcessor and BSFPostProcessor should share the same GUI</li>

</ul>


<h3>Controllers</h3>

<ul>

</ul>


<h3>Listeners</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52022">
      Bug
      52022</a> - In View Results Tree rather than showing just a message if the results are to big, show as much of the result as are configured</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52201">
      Bug
      52201</a> - Add option to TableVisualiser to display child samples instead of parent </li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52214">
      Bug
      52214</a> - Save Responses to a file - improve naming algorithm</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52340">
      Bug
      52340</a> - Allow remote sampling mode to be changed at run-time</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52452">
      Bug
      52452</a> - Improvements on Aggregate Graph Listener (GUI and settings)</li>

<li>Resurrected OldSaveService to allow reading Avalon format JTL (result) files</li>

</ul>


<h3>Timers, Assertions, Config, Pre- &amp; Post-Processors</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52128">
      Bug
      52128</a> - Add JDBC pre- and post-processor</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52183">
      Bug
      52183</a> - SyncTimer could be improved (performance+reliability)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52317">
      Bug
      52317</a> - Counter : Add option to reset counter on each Thread Group iteration</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=37073">
      Bug
      37073</a> - Add a Poisson based timer</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52497">
      Bug
      52497</a> - Improve DebugSampler and DebugPostProcessor</li>

</ul>


<h3>Functions</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52006">
      Bug
      52006</a> - Create a function RandomString to generate random Strings</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52016">
      Bug
      52016</a> - It would be useful to support Jexl2</li>

<li>__char() function now supports octal values</li>

<li>New function __machineIP returning IP address</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51091">
      Bug
      51091</a> - New function returning the name of the current "Test Plan"</li>

</ul>


<h3>I18N</h3>

<ul>

</ul>


<h3>General</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51892">
      Bug
      51892</a> - Default mirror port should be different from default proxy port</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51817">
      Bug
      51817</a> - Moving variables up and down in User Defined Variables control</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51876">
      Bug
      51876</a> - Functionality to search in Samplers TreeView</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52019">
      Bug
      52019</a> - Add menu option to Start a test ignoring Pause Timers</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52027">
      Bug
      52027</a> - Allow System or CrossPlatform LAF to be set from options menu</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52037">
      Bug
      52037</a> - Remember user-set LaF over restarts.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51861">
      Bug
      51861</a> - Improve HTTP Request GUI to better show parameters without name (GWT RPC requests for example) (UNDER DEVELOPMENT)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52040">
      Bug
      52040</a> - Add a toolbar in JMeter main window</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51816">
      Bug
      51816</a> - Comment Field in User Defined Variables control.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52052">
      Bug
      52052</a> - Using a delimiter to separate result-messages for JMS Subscriber</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52103">
      Bug
      52103</a> - Add automatic scrolling option to table visualizer</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52097">
      Bug
      52097</a> - Save As should point to same folder that was used to open a file if MRU list is used</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52085">
      Bug
      52085</a> - Allow multiple selection in arguments panel</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52099">
      Bug
      52099</a> - Allow to set the transaction isolation in the JDBC Connection Configuration</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52116">
      Bug
      52116</a> - Allow to add (paste) entries from the clipboard to an arguments list</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52160">
      Bug
      52160</a> - Don't display TestBeanGui items which are flagged as hidden</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51886">
      Bug
      51886</a> - SampleSender configuration resolved partly on client and partly on server</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52161">
      Bug
      52161</a> - Enable plugins to add own translation rules in addition to upgrade.properties.
Loads any additional properties found in META-INF/resources/org.apache.jmeter.nameupdater.properties files</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=42538">
      Bug
      42538</a> - Add "duplicate node" in context menu</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=46921">
      Bug
      46921</a> - Add Ability to Change Controller elements</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52240">
      Bug
      52240</a> - TestBeans should support Boolean, Integer and Long</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52241">
      Bug
      52241</a> - GenericTestBeanCustomizer assumes that the default value is the empty string</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52242">
      Bug
      52242</a> - FileEditor does not allow output to be saved in a File </li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51093">
      Bug
      51093</a> - when loading a selection previously stored by "Save Selection As", show the file name in the blue window bar</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=50086">
      Bug
      50086</a> - Password fields not Hidden in JMS Publisher, JMS Subscriber, Mail Reader sampler, SMTP sampler and Database Configuration</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=29352">
      Bug
      29352</a> - Use external store to hold samples during distributed testing, Added DiskStore remote sample sender: like Hold, but saves samples to disk until end of test.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52333">
      Bug
      52333</a> - Reduce overhead in calculating SampleResult#nanoTimeOffset</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52346">
      Bug
      52346</a> - Shutdown detects if there are any non-daemon threads left which prevent JVM exit.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52281">
      Bug
      52281</a> - Support for file Drag and Drop</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52471">
      Bug
      52471</a> - Improve Mirror Server performance by Using Pool of threads instead of launching a Thread for each request</li>

<li>Resurrected OldSaveService to allow reading Avalon format JMX files (removed in 2.4)</li>

<li>Add a dialog box to confirm removing the element(s) when Remove action is called</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=41788">
      Bug
      41788</a> - Log viewer (console window) needed as an option</li>

<li>Add option to change the pause time (default 2000ms) in the daemon thread which checks for successful JVM exit.
The thread is not now started unless the pause time is greater than 0.
</li>

</ul>


<h2>Non-functional changes</h2>

<ul>

<li>fixes to build.xml: support scripts; localise re-usable property names</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51923">
      Bug
      51923</a> - Counter function bug or documentation issue ? (fixed docs)</li>

<li>Update velocity.jar to 1.7 (from 1.6.2)</li>

<li>Update js.jar to 1.7R3 (from 1.6R5)</li>

<li>Update commons-codec 1.5 &rArr; 1.6</li>

<li>Update commons-io 2.0.1 &rArr; 2.1</li>

<li>Update commons-jexl 2.0.1 &rArr; 2.1.1</li>

<li>Update jdom 1.1 &rArr; 1.1.2</li>

<li>Update junit 4.9 &rArr; 4.10</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51954">
      Bug
      51954</a> - Generated documents include &lt;/br&gt; entries which cause extra blank lines </li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=52075">
      Bug
      52075</a> - JMeterProperty.clone() currently returns Object; it should return JMeterProperty</li>

<li>Updated httpcore to 4.1.4</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=49753">
      Bug
      49753</a> - Please publish jMeter artifacts on Maven central repository</li>

</ul>




<h1>Version 2.5.1</h1>


<h2>Summary of main changes</h2>


<ul>

<li>HttpClient4 sampler now re-uses connections properly (previously it would use one per sample, which could quickly cause resource exhaustion).</li>

<li>Various fixes to JMS samplers</li>

<li>Functions are no longer spuriously invoked when used with a Configuration element</li>

<li>WebService sampler GUI has been re-organized for better design and more user-friendliness. Some improvements on WSDL configuration assistant</li>

<li>Better handling of test shutdown. System.exit now only called if there is no other option; even this can be disabled.</li>

</ul>



<h2>Known bugs</h2>


<p>
The Include Controller has some problems in non-GUI mode.
In particular, it can cause a NullPointerException if there are two include controllers with the same name.
</p>


<p>The Once Only controller behaves correctly under a Thread Group or Loop Controller,
but otherwise its behaviour is not consistent (or clearly specified).</p>


<p>The If Controller may cause an infinite loop if the condition is always false from the first iteration.
A workaround is to add a sampler at the same level as (or superior to) the If Controller.
For example a Test Action sampler with 0 wait time (which doesn't generate a sample),
or a Debug Sampler with all fields set to False (to reduce the sample size).
</p>


<p>
The menu item Options / Choose Language does not change all the displayed text to the new language.
[The behaviour has improved, but language change is still not fully working]
To override the default local language fully, set the JMeter property "language" before starting JMeter.
</p>


<h2>Incompatible changes</h2>


<p>
The HttpClient4 and Commons HttpClient 3.1 samplers previously used a retry count of 3.
This has been changed to default to 1, to be compatible with the Java implementation.
The retry count can be overridden by setting the relevant JMeter property, for example:
<pre>
httpclient4.retrycount=3
httpclient3.retrycount=3
</pre>

</p>


<h2>Bug fixes</h2>


<h3>HTTP Samplers and Proxy</h3>

<ul>

<li>Fix HttpClient 4 sampler so it reuses HttpClient instances and connections where possible.</li>

<li>Temporary fix to HC4 sampler to work round HTTPCLIENT-1120.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51863">
      Bug
      51863</a> - Lots of ESTABLISHED connections with HttpClient 4 implementation (vs HttpClient 3.1 impl)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51750">
      Bug
      51750</a> - Retrieve all embedded resources doesn't follow IFRAME</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51752">
      Bug
      51752</a> - HTTP Cache is broken when using "Retrieve all embedded resources" with concurrent pool</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=39219">
      Bug
      39219</a> - HTTP Server: You can't stop it after File&rarr;Open</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51775">
      Bug
      51775</a> - Port number duplicates in Host header when capturing by HttpClient (3.1 and 4.x)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=50617">
      Bug
      50617</a> - Monitor Results legend show "dead" server although values from the server are retrieved</li>

</ul>


<h3>Other Samplers</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=50424">
      Bug
      50424</a> - Web Methods drop down list box inconsistent</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=43293">
      Bug
      43293</a> - Java Request fields not cleared when creating new sampler</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51830">
      Bug
      51830</a> - Webservice Soap Request triggers too many popups when Webservice WSDL URL is down</li>

<li>WebService(SOAP) request - add a connect timeout to get the wsdl used to populate Web Methods when server doesn't response</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51841">
      Bug
      51841</a> - JMS : If an error occurs in ReceiveSubscriber constructor or Publisher, then Connections will stay open</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51691">
      Bug
      51691</a> - Authorization does not work for JMS Publisher and JMS Subscriber</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51840">
      Bug
      51840</a> - JMS : Cache of InitialContext has some issues</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=47888">
      Bug
      47888</a> - JUnit Sampler re-uses test object</li>

</ul>


<h3>Controllers</h3>

<ul>

<li>If Controller - Fixed two regressions introduced by <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=50032">
      Bug
      50032</a> (see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=50618">
      Bug
      50618</a> too)</li>

<li>If Controller - Catches a StackOverflowError when a condition returns always false (after at least one iteration with return true) See <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=50618">
      Bug
      50618</a>
</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51869">
      Bug
      51869</a> - NullPointer Exception when using Include Controller</li>

</ul>


<h3>Listeners</h3>

<ul>

</ul>


<h3>Assertions</h3>

<ul>

</ul>


<h3>Functions</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=48943">
      Bug
      48943</a> - Functions are invoked additional times when used in combination with a Config Element</li>

</ul>


<h3>I18N</h3>

<ul>

<li>WebService(SOAP) request - add I18N for some labels</li>

</ul>


<h3>General</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51831">
      Bug
      51831</a> - Cannot disable UDP server or change the maximum UDP port</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51821">
      Bug
      51821</a> - Add short-cut for Enabling / Disabling (sub)tree or branches in test plan.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=47921">
      Bug
      47921</a> - Variables not released for GC after JMeterThread exits.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51839">
      Bug
      51839</a> - "&hellip; end of run" printed prematurely</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51847">
      Bug
      51847</a> - Some JUnit tests are Locale sensitive and fail if Locale is different from US</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51855">
      Bug
      51855</a> - Parent samples may have slightly inaccurate elapsed times</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51880">
      Bug
      51880</a> - The shutdown command is not working if I invoke it before all the thread are started</li>

<li>Remote Shut host menu item was not being enabled.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51888">
      Bug
      51888</a> - Occasional deadlock when stopping a testplan</li>

</ul>




<h2>Improvements</h2>


<h3>HTTP Samplers</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51380">
      Bug
      51380</a> - Control reuse of cached SSL Context from iteration to iteration</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51882">
      Bug
      51882</a> - HTTPHC3Client uses a default retry count of 3, make it configurable; default is now 1</li>

<li>Change the default HttpClient 4 sampler retry count to 1</li>

</ul>


<h3>Other samplers</h3>

<ul>

<li>Beanshell Sampler now supports Interruptible interface</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51605">
      Bug
      51605</a> - WebService(SOAP) Request - WebMethod field value changes surreptitiously for all the requests when a value is selected in a request</li>

<li>WebService(SOAP) Request - Reorganized GUI for better design and more user-friendliness</li>

</ul>


<h3>Controllers</h3>

<ul>

</ul>


<h3>Listeners</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=42246">
      Bug
      42246</a> - Need for a 'auto-scroll' option in "View Results Tree" and "Assertion Results"</li>

<li>View Results Tree: Regexp Tester - little improvements on user interface</li>

</ul>


<h3>Timers, Assertions, Config, Pre- &amp; Post-Processors</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51885">
      Bug
      51885</a> - Allow a JMeter Variable as input to XPathExtractor</li>

</ul>


<h3>Functions</h3>

<ul>

</ul>


<h3>I18N</h3>

<ul>

</ul>


<h3>General</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51822">
      Bug
      51822</a> - (part 1) save 1 invocation of GuiPackage#getCurrentGui</li>

<li>Added AsynchSampleSender which sends samples from server to client asynchronously.</li>

<li>Upgraded to htmlparser 2.1; JavaMail 1.4.4; JUnit 4.9</li>

</ul>


<h2>Non-functional changes</h2>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=49976">
      Bug
      49976</a> - FormCharSetFinder visibility is default instead of public. </li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=50917">
      Bug
      50917</a> - Property CookieManager.save.cookies not honored when set from test plan</li>

<li>Improve error logging when Javascript errors are detected.</li>

<li>Updated documentation footer</li>

</ul>




<h1>Version 2.5</h1>


<h2>Summary of main changes</h2>


<ul>

<li>The HTTP implementation can now be selected at run-time, and JMeter now also supports Apache HttpComponents HttpClient 4.x.
Note that Commons HttpClient 3.1 is no longer actively developed, and support may be removed from JMeter in a future release.
</li>

<li>The HTTP sampler now allows concurrent downloads of embedded resources in an HTML page</li>

<li>The HTTP Sampler can now report the size of a request before decompression.</li>

<li>The JMS and Mail samplers have been improved.</li>

<li>The new Test Fragment Test Element makes using Include Controllers easier</li>

<li>There are various improvements to the View Results Tree Listener</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=30563">
      Bug
      30563</a> - Thread Group should have a start next loop option on Sample Error</li>

<li>There are two new Thread Group types - setUp and tearDown - which are run before and after the main Thread groups.</li>

<li>Client-Server mode now supports external stop/shutdown via UDP<br>
multiple JMeter server instances can be started on the same host without needing to change the port property.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=50516">
      Bug
      50516</a> - "Host" header in HTTP Header Manager is not included in generated HTTP request</li>

</ul>


<p>

<ul>

</ul>

</p>





<h2>Known bugs</h2>


<p>
The Include Controller has some problems in non-GUI mode.
In particular, it can cause a NullPointerException if there are two include controllers with the same name.
</p>


<p>Once Only controller behaves correctly under a Thread Group or Loop Controller,
but otherwise its behaviour is not consistent (or clearly specified).</p>


<p>
The menu item Options / Choose Language does not change all the displayed text to the new language.
[The behaviour has improved, but language change is still not fully working]
To override the default local language fully, set the JMeter property "language" before starting JMeter.
</p>


<h2>Incompatible changes</h2>


<p>
Unsupported methods are no longer converted to GET by the Commons HttpClient sampler.
</p>


<p>
Removed method public static long currentTimeInMs().
This has been replaced by the instance method public long currentTimeInMillis().
</p>


<p>
ProxyControl.getSamplerTypeName() now returns a String rather than an int.
This is internal to the workings of the JMeter Proxy &amp; its GUI, so should not affect any user code.
</p>


<h2>Bug fixes</h2>


<h3>HTTP Samplers and Proxy</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=50178">
      Bug
      50178</a> - HeaderManager added as child of Thread Group can create concatenated HeaderManager names and OutOfMemoryException</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=50392">
      Bug
      50392</a> - value is trimmed when sending the request in Multipart</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=50686">
      Bug
      50686</a> - HeaderManager logging too verbose when merging instances</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=50963">
      Bug
      50963</a> - AjpSampler throws java.lang.StringIndexOutOfBoundsException</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=50516">
      Bug
      50516</a> - "Host" header in HTTP Header Manager is not included in generated HTTP request</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=50544">
      Bug
      50544</a> - In Apache Common Log the HEAD requests cause problems.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51268">
      Bug
      51268</a> - HTTPS request through an invalid proxy causes NullPointerException and does not show in result tree.
Rather than delegating to the JMeter thread handler for "unexpected" failures, ensure all Exceptions generate a sample error.
</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51275">
      Bug
      51275</a> - Cookie Panel clearGui() sets incorrect default policy in Java 1.6</li>

</ul>


<h3>Other Samplers</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=50173">
      Bug
      50173</a> - JDBCSampler discards ResultSet from a PreparedStatement</li>

<li>Ensure JSR223 Sampler has access to the current SampleResult</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=50977">
      Bug
      50977</a> - Unable to set TCP Sampler for individual samples</li>

</ul>


<h3>Controllers</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=50032">
      Bug
      50032</a> - Last_Sample_Ok along with other controllers doesn't work correctly when the threadgroup has multiple loops</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=50080">
      Bug
      50080</a> - Transaction controller incorrectly creates samples including timer duration</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=50134">
      Bug
      50134</a> - TransactionController : Reports bad response time when it contains other TransactionControllers</li>

</ul>


<h3>Listeners</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=50367">
      Bug
      50367</a> - Clear / Clear all in View results tree does not clear selected element</li>

</ul>


<h3>Assertions</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51488">
      Bug
      51488</a> - Assertion: Variable name scope is shared among all assertions (and <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51255">
      Bug
      51255</a>)</li>

</ul>


<h3>Functions</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=50568">
      Bug
      50568</a> - Function __FileToString(): Could not read file when encoding option is blank/empty</li>

</ul>


<h3>I18N</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=50811">
      Bug
      50811</a> - Incomplete Spanish translation</li>

</ul>


<h3>General</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=49734">
      Bug
      49734</a> - Null pointer exception on stop Threads command (Run &rarr; Stop)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=49666">
      Bug
      49666</a> - CSV Header read as data after EOF</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=45703">
      Bug
      45703</a> - Synchronizing Timer</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=50088">
      Bug
      50088</a> - fix getAvgPageBytes in SamplingStatCalculator so it returns what it should</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=50203">
      Bug
      50203</a> Cannot set property "jmeter.save.saveservice.default_delimiter=\t"</li>

<li>mirror-server.sh - fix classpath to use : separator (not ;)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=50286">
      Bug
      50286</a> - URL Re-writing Modifier: extracted jsessionid value is incorrect when is between XML tags</li>

<li>
System.nanoTime() tends to drift relative to System.currentTimeMillis().
Change SampleResult to recalculate offset each time.
Also enable reversion to using System.currentTimeMillis() only.
</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=50425">
      Bug
      50425</a> - Remove thread groups from Controller add menu</li>

<li>

<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=50675">
      Bug
      50675</a> - CVS Data Set Config incompatible with Remote Start
Fixed RMI startup to provide location of JMX file relative to user.dir.
</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=50221">
      Bug
      50221</a> - Renaming elements in the tree does not resize label</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51002">
      Bug
      51002</a> - Stop Thread if CSV file is not available. JMeter now treats IOError as EOF.</li>

<li>Define sun.net.http.allowRestrictedHeaders=true by default. This fixes <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51238">
      Bug
      51238</a>.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51645">
      Bug
      51645</a> - CSVDataSet does not read UTF-8 files when file.encoding is UTF-8</li>

</ul>




<h2>Improvements</h2>


<h3>HTTP Samplers</h3>

<ul>

<li>AJP Sampler now implements Interruptible</li>

<li>Allow HTTP implementation to be selected at run-time</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=50684">
      Bug
      50684</a> - Optionally disable Content-Type and Transfer-Encoding in Multipart POST</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=50943">
      Bug
      50943</a> - Allowing concurrent downloads of embedded resources in html page</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=50170">
      Bug
      50170</a> - Bytes reported by http sampler is after GUnZip<br>Add optional properties to allow change the method to get response size</li>

<li>Hiding the proxy password on HTTP Sampler (just on GUI, not in JMX file)</li>

</ul>


<h3>Other samplers</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=49622">
      Bug
      49622</a> - Allow sending messages without a subject (SMTP Sampler)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=49603">
      Bug
      49603</a> - Allow accepting expired certificates on Mail Reader Sampler</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=49775">
      Bug
      49775</a> - Allow sending messages without a body</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=49862">
      Bug
      49862</a> - Improve SMTPSampler Request output.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=50268">
      Bug
      50268</a> - Adds static and dynamic destinations to JMS Publisher</li>

<li>JMS Subscriber - Add dynamic destination</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=50666">
      Bug
      50666</a> - JMSSubscriber: support for durable subscriptions</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=50937">
      Bug
      50937</a> - TCP Sampler does not provide for / honor connect timeout</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=50569">
      Bug
      50569</a> - Jdbc Request Sampler to optionally store result set object data</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=51011">
      Bug
      51011</a> - Mail Reader: upon authentication failure, tell what you tried</li>

</ul>


<h3>Controllers</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=50475">
      Bug
      50475</a> - Introduction of a Test Fragment Test Element for a better Include flow</li>

</ul>


<h3>Listeners</h3>

<ul>

<li>View Results Tree - Add a dialog's text box on "Sampler result tab &rarr; Parsed" to display the long value with a double click on cell</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=37156">
      Bug
      37156</a> - Formatted view of Request in Results Tree</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=49365">
      Bug
      49365</a> - Allow result set to be written to file in a path relative to the loaded script</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=50579">
      Bug
      50579</a> - Error count is long, sample count is int. Changed sample count to long.</li>

<li>View Results Tree - Add new size fields: response headers and response body (in bytes) - derived from <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=43363">
      Bug
      43363</a>
</li>

</ul>


<h3>Timers, Assertions, Config, Pre- &amp; Post-Processors</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=48015">
      Bug
      48015</a> - Proposal new icons for pre-processor, post-processor and assertion elements</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=50962">
      Bug
      50962</a> - SizeAssertionGui validation prevents the use of variables for the size</li>

<li>Size Assertion - Add response size scope (full, headers, body, code, message) - derived from <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=43363">
      Bug
      43363</a>
</li>

</ul>


<h3>Functions</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=49975">
      Bug
      49975</a> - New function returning the name of the current sampler</li>

</ul>


<h3>I18N</h3>

<ul>

<li>Add French translation for the new labels and reduce size for some labels (by abbreviation) on HTTP Sample</li>

</ul>


<h3>General</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=30563">
      Bug
      30563</a> - Thread Group should have a start next loop option on Sample Error</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=50347">
      Bug
      50347</a> - Eclipse setup instructions should remind user to download dependent jars</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=50490">
      Bug
      50490</a> - Setup and Post Thread Group enhancements for better test flow.</li>

<li>All BeanShell test elements now have the script variables "prev" and "Label" defined.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=50708">
      Bug
      50708</a> - Classpath jar order in NewDriver not alphabetically</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=50659">
      Bug
      50659</a> - JMeter server does not support concurrent tests - prevent client from starting another</li>

<li>Added remote shutdown functionality</li>

<li>Client JMeter engine now supports external stop/shutdown via UDP</li>

<li>UDP shutdown can now use a range of ports, from jmeterengine.nongui.port=4445 to jmeterengine.nongui.maxport=4455,
allowing multiple JMeter instances on the same host without needing to change the port property.</li>

<li>Updated to httpcore 4.1.3 and httpclient 4.1.2</li>

</ul>


<h2>Non-functional changes</h2>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=50008">
      Bug
      50008</a> - Allow BatchSampleSender to be subclassed</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=50450">
      Bug
      50450</a> - use System.array copy in jacobi solver as, being native, is more performant.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=50487">
      Bug
      50487</a> - runSerialTest verifies objects that never need persisting</li>

<li>Use Thread.setDefaultUncaughtExceptionHandler() instead of private ThreadGroup</li>

<li>Update to Commons Net 3.0</li>

</ul>




<h1>Version 2.4</h1>


<h2>Summary of main changes</h2>


<p>

<ul>

<li>JMeter now requires at least Java 1.5.</li>

<li>HTTP Proxy can now record HTTPS sessions.</li>

<li>JUnit sampler now supports JUnit4 annotations.</li>

<li>Added JSR223 (javax.script) test elements.</li>

<li>MailReader Sampler can now use any protocol supported by the underlying implementation.</li>

<li>An SMTP Sampler has been added.</li>

<li>JMeter now allows users to provide their own Thread Group implementations.</li>

<li>View Results Tree now supports more display options, including search and Regex Testing.</li>

<li>StatCalculator performance is much improved; Aggregate Report etc. need far less memory.</li>

<li>
JMS samplers have been extensively reworked, and should no longer lose messages.
Correlation processing is improved.
JMS Publisher and Subscriber now support both Topics and Queues.
</li>

<li>Many other improvements have been made, please see below and in the manual.</li>

</ul>

</p>





<h2>Known bugs</h2>


<p>
The Include Controller has some problems in non-GUI mode.
In particular, it can cause a NullPointerException if there are two include controllers with the same name.
</p>


<p>Once Only controller behaves correctly under a Thread Group or Loop Controller,
but otherwise its behaviour is not consistent (or clearly specified).</p>


<p>
The menu item Options / Choose Language does not change all the displayed text to the new language.
[The behaviour has improved, but language change is still not fully working]
To override the default local language fully, set the JMeter property "language" before starting JMeter.
</p>


<h2>Incompatible changes</h2>


<p>
HTTP Redirect now defaults to "Follow Redirects" rather than "Redirect Automatically".
This is to enable JMeter to track cookies that may be sent during redirects.
This does not affect existing test plans; it only affects the default for new HTTP Samplers.
</p>


<p>
The Avalon file format for JMX and JTL files is no longer supported.
Any such files will need to be converted by reading them in JMeter 2.3.4 and resaving them.
</p>


<p>
The XPath Assertion and XPath Extractor elements no longer fetch external DTDs by default; this can be changed in the GUI.
</p>


<p>
JMSConfigGui has been renamed as JMSSamplerGui.
This does not affect existing test plans.
</p>


<p>
The constructor public SampleResult(SampleResult res) has been changed to become a true "copy constructor".
It no longer calls addSubResult(). This may possibly affect some 3<sup>rd</sup> party add-ons.
</p>


<h2>Bug fixes</h2>


<h3>HTTP Samplers and Proxy</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=47445">
      Bug
      47445</a> - Using Proxy with https-spoofing secure cookies need to be unsecured</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=47442">
      Bug
      47442</a> - Missing replacement of https by http for certain conditions using https-spoofing</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=48451">
      Bug
      48451</a> - Error in: SoapSampler.setPostHeaders(PostMethod post) in the else branch</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=48542">
      Bug
      48542</a> - SoapSampler uses wrong response header field to decide if response is gzip encoded</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=48568">
      Bug
      48568</a> - CookieManager broken for AjpSampler</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=48570">
      Bug
      48570</a> - AjpSampler doesn't support query parameters (GET/POST)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=46901">
      Bug
      46901</a> - HTTP Sampler does not process var/func refs correctly in first file parameter</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=43678">
      Bug
      43678</a> - Handle META tag http-equiv charset?</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=49294">
      Bug
      49294</a> - Images not downloaded from redirected-to pages</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=49560">
      Bug
      49560</a> - wrong "size in bytes" when following redirections</li>

</ul>


<h3>Other Samplers</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=47420">
      Bug
      47420</a> - LDAP extended request not closing connections during add request</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=48573">
      Bug
      48573</a> - LDAPExtSampler directory context handling</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=47870">
      Bug
      47870</a> - JMSSubscriber fails due to NPE</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=47899">
      Bug
      47899</a> - NullPointerExceptions in JMS ReceiveSubscriber constructor</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=48144">
      Bug
      48144</a> - NPE in JMS OnMessageSubscriber</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=47992">
      Bug
      47992</a> - JMS Point-to-Point Request - Response option doesn't work</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=48579">
      Bug
      48579</a> - Single Bind does not show config information when LdapExt Sampler is accessed</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=49111">
      Bug
      49111</a> - "Message With ID Not Found" Error on JMS P2P sampler.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=47949">
      Bug
      47949</a> - JMS Subscriber never receives all the messages</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=46142">
      Bug
      46142</a> - JMS Point-to-Point correlation problems</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=48747">
      Bug
      48747</a> - TCP Sampler swallows exceptions</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=48709">
      Bug
      48709</a> - TCP Sampler Config setting "classname" has no effect</li>

</ul>


<h3>Controllers</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=47385">
      Bug
      47385</a> - TransactionController should set AllThreads and GroupThreads</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=47940">
      Bug
      47940</a> - Module controller incorrectly creates the replacement Sub Tree</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=47592">
      Bug
      47592</a> - Run Thread groups consecutively with "Stop test" on error, JMeter will not mark to finished</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=48786">
      Bug
      48786</a> - Run Thread groups consecutively: with "Stop test now" on error or manual stop, JMeter leaves the green box active</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=48727">
      Bug
      48727</a> - Cannot stop test if all thread groups are disabled</li>

</ul>


<h3>Listeners</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=48603">
      Bug
      48603</a> - Mailer Visualiser sends two emails for a single failed response</li>

<li>Correct calculation of min/max/std.dev for aggregated samples (Summary Report)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=48889">
      Bug
      48889</a> - Wrong response time with mode=Statistical and num_sample_threshold &gt; 1</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=47398">
      Bug
      47398</a> - SampleEvents are sent twice over RMI in distributed testing and non gui mode</li>

</ul>


<h3>Assertions</h3>

<ul>

</ul>


<h3>Functions</h3>

<ul>

</ul>


<h3>I18N</h3>

<ul>

</ul>


<h3>General</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=47646">
      Bug
      47646</a> -  NullPointerException in the "Random Variable" element</li>

<li>Disallow adding any child elements to JDBC Configuration</li>

<li>BeanInfoSupport now caches getBeanDescriptor() - should avoid an NPE on non-Sun JVMs when using CSVDataSet (and some other TestBeans)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=48350">
      Bug
      48350</a> - Deadlock on distributed testing with 2 clients</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=48901">
      Bug
      48901</a> - Endless wait by adding Synchronizing Timer</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=49149">
      Bug
      49149</a> - usermanual/index.html has typo in link to "Regular Expressions" page</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=49394">
      Bug
      49394</a> - Classcast Exception in ActionRouter.postActionPerformed</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=48136">
      Bug
      48136</a> - Essential files missing from source tarball.<br>
Source archives now contain all source files, including source files previously only provided in the binary archives.
</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=48331">
      Bug
      48331</a> - XpathExtractor does not return XML string representations for a Nodeset</li>

</ul>




<h2>Improvements</h2>


<h3>HTTP Samplers</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=47622">
      Bug
      47622</a> - enable recording of HTTPS sessions</li>

<li>Allow Proxy Server to be specified on HTTP Sampler GUI and HTTP Config GUI</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=47461">
      Bug
      47461</a> - Update Cache Manager to handle Expires HTTP header</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=48153">
      Bug
      48153</a> - Support for Cache-Control and Expires headers</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=47946">
      Bug
      47946</a> - Proxy should enable Grouping inside a Transaction Controller</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=48300">
      Bug
      48300</a> - Allow override of IP source address for HTTP HttpClient requests</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=49083">
      Bug
      49083</a> - collapse '/pathsegment/..' in redirect URLs</li>

</ul>


<h3>Other samplers</h3>

<ul>

<li>JUnit sampler now supports JUnit4 tests (using annotations)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=47900">
      Bug
      47900</a> - Allow JMS SubscriberSampler to be interrupted</li>

<li>Added JSR223 Sampler</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=47556">
      Bug
      47556</a> - JMS-PointToPoint-Sampler Timeout field should use Strings</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=47947">
      Bug
      47947</a> - Mail Reader Sampler should allow port to be overridden</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=48155">
      Bug
      48155</a> - Multiple problems / enhancements with JMS protocol classes</li>

<li>Allow MailReader sampler to use arbitrary protocols</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=45053">
      Bug
      45053</a> - SMTP-Sampler for JMeter</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=49552">
      Bug
      49552</a> - Add Message Headers on SMTPSampler</li>

<li>
JMS Publisher and Subscriber now support both Topics and Queues.
Added read Timeout to JMS Subscriber.
General clean-up of JMS code.
</li>

</ul>


<h3>Controllers</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=47909">
      Bug
      47909</a> - TransactionController should sum the latency</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=41418">
      Bug
      41418</a> - Exclude timer duration from Transaction Controller runtime in report</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=48749">
      Bug
      48749</a> - Allowing custom Thread Groups</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=43389">
      Bug
      43389</a> - Allow Include files to be found relative to the current JMX file</li>

</ul>


<h3>Listeners</h3>

<ul>

<li>Added DataStrippingSample sender - supports "Stripped" and "StrippedBatch" modes.</li>

<li>Added Comparison Assertion Visualizer</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=47907">
      Bug
      47907</a> - Improvements (enhancements and I18N) Comparison Assertion and Comparison Visualizer</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=36726">
      Bug
      36726</a> - add search function to Tree View Listener</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=47869">
      Bug
      47869</a> - Ability to cleanup fields of SampleResult</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=47952">
      Bug
      47952</a> - Added JSR223 Listener</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=47474">
      Bug
      47474</a> - View Results Tree support for plugin renderers</li>

<li>Allow Idle Time to be saved to sample log files</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=48259">
      Bug
      48259</a> - Improve StatCalculator performance by using TreeMap</li>

<li>Listeners using SamplingStatCalculator have much reduced memory needs
as the Sample cache has been moved to the new CachingStatCalculator class.
In particular, Aggregate Report can now handle large numbers of samples.
</li>

<li>Aggregate Report and Summary Report now allow column headers to be optionally excluded</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=49506">
      Bug
      49506</a> - Add .csv File Extension in open dialog box from "read from file" functionality of listeners</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=49545">
      Bug
      49545</a> - Formatted (parsed) view of Sample Result in Results Tree</li>

</ul>


<h3>Timers, Assertions, Config, Pre- &amp; Post-Processors</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=47338">
      Bug
      47338</a> - XPath Extractor forces retrieval of document DTD</li>

<li>Added Comparison Assertion</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=47952">
      Bug
      47952</a> - Added JSR223 PreProcessor and PostProcessor</li>

<li>Added JSR223 Assertion</li>

<li>Added BSF Timer and JSR223 Timer</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=48511">
      Bug
      48511</a> - add parent,child,all selection to regex extractor</li>

<li>Add Sampler scope selection to XPathExtractor</li>

<li>Regular Expression Extractor, Response Assertion and Size Assertion can now be applied to a JMeter variable</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=46790">
      Bug
      46790</a> - CSV Data Set Config should be able to parse CSV headers</li>

</ul>


<h3>Functions</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=47565">
      Bug
      47565</a> - [Function] FileToString</li>

</ul>


<h3>I18N</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=47938">
      Bug
      47938</a> -  Adding some French translations for new elements</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=48714">
      Bug
      48714</a> -  add new French messages</li>

</ul>


<h3>General</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=47223">
      Bug
      47223</a> - Slow Aggregate Report Performance (StatCalculator)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=47980">
      Bug
      47980</a> - hostname resolves to 127.0.0.1 - specifying IP not possible</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=47943">
      Bug
      47943</a> - DisabledComponentRemover is not used in Start class</li>

<li>HeapDumper class for runtime generation of dumps</li>

<li>Basic read-only JavaMail provider implementation for reading raw mail files</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=49540">
      Bug
      49540</a> - Sort "Add" menus alphabetically</li>

</ul>


<h2>Non-functional changes</h2>

<ul>

<li>Beanshell, JavaMail and JMS API (Apache Geronimo) jars are now included in the binary archive.</li>

<li>Add TestBean Table Editor support</li>

<li>Removed all external libraries from SVN; added download_jars Ant target</li>

<li>Updated various jar files:
<ul>

<li>BeanShell - 2.0b4 &rArr; 2.0b5</li>

<li>Commons Codec - 1.3 &rArr; 1.4</li>

<li>Commons-Collections - 3.2 &rArr; 3.2.1</li>

<li>JTidy &rArr; r938</li>

<li>JUnit - 3.8.2 &rArr; 4.8.1</li>

<li>Logkit - 1.2 &rArr; 2.0</li>

<li>Xalan Serializer = 2.7.1 (previously erroneously shown as 2.9.1)</li>

<li>Xerces xml-apis = 1.3.04 (previously erroneously shown as 2.9.1)</li>

<li>Some jar files were renamed.</li>

</ul>

</li>

</ul>




<h1>Version 2.3.4</h1>


<h2>Summary of main changes</h2>


<p>
This is a minor bug-fix release, mainly to correct some bugs that were accidentally added in 2.3.3.
</p>



<h2>Known bugs</h2>


<p>
The Include Controller has some problems in non-GUI mode.
In particular, it can cause a NullPointerException if there are two include controllers with the same name.
</p>


<p>Once Only controller behaves correctly under a Thread Group or Loop Controller,
but otherwise its behaviour is not consistent (or clearly specified).</p>


<p>
The menu item Options / Choose Language does not change all the displayed text to the new language.
[The behaviour has improved, but language change is still not fully working]
To override the default local language fully, set the JMeter property "language" before starting JMeter.
</p>


<h2>Bug fixes</h2>


<h3>HTTP Samplers and Proxy</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=47321">
      Bug
      47321</a> -  HTTPSampler2 response timeout not honored</li>

</ul>


<h3>Other Samplers</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=47290">
      Bug
      47290</a> -  Infinite loop on connection factory lookup (JMS)</li>

<li>JDBC Sampler should not close Prepared or Callable statements as these are cached</li>

</ul>


<h3>Controllers</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=39509">
      Bug
      39509</a> -  Once-only controller running twice</li>

</ul>


<h3>Listeners</h3>

<ul>

<li>Change ResultCollector to only warn if the directory was not created</li>

<li>Fix some synchronisation issues in ResultCollector and SampleResult (wrong locks were being used)</li>

</ul>


<h3>I18N</h3>

<ul>

<li>Fixed bug introduced in 2.3.3: JMeter does not start up if there is no messages.properties file for the default Locale.</li>

</ul>


<h3>General</h3>

<ul>

<li>Fix problems with remote clients - bug introduced in 2.3.3</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=47377">
      Bug
      47377</a> - Make ClassFinder more robust and close zipfile resources</li>

<li>Fix some errors in generating the documentation (latent bug revealed in 2.3.3 when Velocity was upgraded)</li>

</ul>


<h2>Improvements</h2>


<h3>Other samplers</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=47266">
      Bug
      47266</a> - FTP Request Sampler: allow specifying an FTP port, other than the default</li>

</ul>




<h1>Version 2.3.3</h1>


<h2>Summary of main changes</h2>


<p>
The handling of test closedown is much improved.
The gradual "Shutdown" command now waits until all threads have stopped,
and does not report an error if threads don't stop within 5 seconds.
The immediate "Stop" command can now be used if "Shutdown" takes too long.
Also the immediate "Stop" command is able to interrupt samplers which support the new Interruptible interface (e.g. HTTP and SOAP, FTP).
This allows immediate completion of pending responses.
Non-GUI mode tests can also now be sent a "Shutdown" or "Stop" message.
<a href="./usermanual/component_reference.html#Test_Action">Test Action</a> now supports a "Stop Now" action,
as do the <a href="./usermanual/component_reference.html#Thread_Group">Thread Group</a> and <a href="./usermanual/component_reference.html#Result_Status_Action_Handler">Result Status Action Handler</a> Post Processor elements.
</p>


<p>
HTTP Cookie handling is improved, and HTTP POST can now use variable file names correctly.
HTTP, SOAP/XML-RPC and WebService(SOAP) sampler character encodings updated to be more consistent.
HTTP Samplers now support connection and response timeouts (requires JVM 1.5 for the HTTP Java sampler).
Together with the closedown improvements described above, this should avoid most cases where a test run hangs.
Multiple Header Manager elements are now supported for a single HTTP sampler.
The Proxy Server is improved, and no longer stores "Host" headers by default.
</p>


<p>
JDBC Request can optionally save the results of Select statements to variables.
JDBC Request now handles quoted strings and UTF-8, and can handle arbitrary variable types.
</p>


<p>
There are several new <a href="usermanual/functions.html">functions</a>:
__char() function: allows arbitrary Unicode characters to be entered in fields.
__unescape() function: allows Java-escaped strings to be used.
_unescapeHtml() function: decodes Html-encoded text.
__escapeHtml() function: encodes text using Html-encoding.
A reference to a missing function - e.g. ${__missing(a)} - is now treated the same as a missing variable.
Previously the function name - and leading { - were dropped. This makes it easier to debug test plans.
</p>


<p>
Some Assertions can now be applied to sub-samples as well as (or instead of) just the parent sample.
There is a new <a href="./usermanual/component_reference.html#Random_Variable">Random Variable</a> Configuration element.
</p>


<p>
JMS samplers are much improved (see details below). The <a href="./usermanual/component_reference.html#TCP_Sampler">TCP Sampler</a> now supports some additional clients and is a bit more flexible.
</p>


<p>
Client-server mode has been improved, and the server can optionally use a fixed RMI port, which should help with setting up firewalls.
</p>


<p>
Various I18N changes have been made; language change works better (though not perfect yet).
There are improved French translations as well as new Polish and Brazilian Portuguese translations.
</p>


<p>
The BeanShell jar is now included with the binary archive; there is no need to download it separately.
</p>




<h2>Known bugs</h2>


<p>
The Include Controller has some problems in non-GUI mode.
In particular, it can cause a <span class="code">NullPointerException</span> if there are two include controllers with the same name.
</p>


<p>Once Only controller behaves correctly under a Thread Group or Loop Controller,
but otherwise its behaviour is not consistent (or clearly specified).</p>


<p>
The menu item <span class="menuchoice"><span class="guimenuitem">Options</span>&nbsp;&rarr;&nbsp;<span class="guimenuitem">Choose Language</span></span>
does not change all the displayed text to the new language.
[The behaviour has improved, but language change is still not fully working]
To override the default local language fully, set the JMeter property "<span class="code">language</span>" before starting JMeter.
</p>


<h2>Incompatible changes</h2>

<p>
When loading sample results from a file, previous results are no longer cleared.
This allows one to merge multiple files.
If the previous behaviour is required,
use the menu item <span class="menuchoice"><span class="guimenuitem">Run</span>&nbsp;&rarr;&nbsp;<span class="guimenuitem">Clear</span>
    (<span class="keycombo"><span class="keysym">Ctrl</span>&nbsp;+&nbsp;<span class="keysym">Shift</span>&nbsp;+&nbsp;<span class="keysym">E</span></span>)
  </span> or <span class="menuchoice"><span class="guimenuitem">Run</span>&nbsp;&rarr;&nbsp;<span class="guimenuitem">Clear All</span>
    (<span class="keycombo"><span class="keysym">Ctrl</span>&nbsp;+&nbsp;<span class="keysym">E</span></span>)
  </span> before loading the file.
</p>

<p>
The test elements "Save Results to a file" and "Generate Summary Results" are now shown as Listeners.
They were previously shown as Post-Processors, even though they are implemented as Listeners.
</p>

<p>
The Cookie Manager no longer saves incoming cookies as variables by default.
To save cookies as variables, define the property "<span class="code">CookieManager.save.cookies=true</span>".
Also, cookies names are prefixed with "<span class="code">COOKIE_</span>" before they are stored (this avoids accidental corruption of local variables)
To revert to the original behaviour, define the property "<span class="code">CookieManager.name.prefix= </span>" (one or more spaces).
</p>

<p>
The Counter element is now shown as a Configuration element.
It was previously shown as a Pre-Processor, even though it is implemented as a Config item.
</p>

<p>
The above changes only affect the icons that are displayed and the locations in the GUI pop-up menus.
They do not affect test plans or test behaviour.
</p>

<p>
The PreProcessors are now invoked directly by the JMeterThread class,
rather than by the TestCompiler#configureSampler() method. (JMeterThread handles the PostProcessors).
This does not affect test plans or behaviour, but could perhaps affect 3<sup>rd</sup> party add-ons (very unlikely).
</p>

<p>
Moved the Scoping Rules sub-section from Section 3. "Building a Test Plan"  to Section 4. "Elements of a test plan"
</p>


<p>
The While controller now trims leading and trailing spaces from the condition value before it is compared
with <span class="code">LAST</span>, blank or false.
</p>


<p>
The "threadName" variable in the _jexl() and __javaScript() functions was previously misspelt as "theadName".
</p>


<p>
The following deprecated methods were removed from JOrphanUtils: booleanToString(boolean) and valueOf(boolean).
Java 1.4+ has these methods in the Boolean class.
</p>


<p>
The TestElement interface has some new methods:
<ul>

<li>void setProperty(String key, String value, String dflt)</li>

<li>void setProperty(String key, boolean value, boolean dflt)</li>

<li>void setProperty(String key, int value)</li>

<li>void setProperty(String key, int value, int dflt)</li>

<li>int getPropertyAsInt(String key, int defaultValue)</li>

</ul>
These are implemented in the AbstractTestElement class which all elements should extend so this is unlikely to cause a problem.
</p>

<h2>Bug fixes</h2>


<h3>HTTP Samplers and Proxy</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=46332">
      Bug
      46332</a> - HTTP Cookie Manager ignores manually defined cookies (bug introduced in r707810)</li>

<li>Cookie Manager was not passing cookie policy to runtime threads so they always used compatibility mode</li>

<li>Add version attribute to JMeter Cookie class (needed for proper cookie support)</li>

<li>Cookie Manager now saves/restores cookie versions</li>

<li>Check validity of cookies before storing them.</li>


<li>HTTPSamplers can now use variables in POSTed file names</li>

<li>Fix processing of first file name in HTTP POST so functions/variables work (bug introduced with multiple file support)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=45831">
      Bug
      45831</a> - WS Sampler reports incorrect throughput if SOAP packet creation fails</li>

<li>HTTP, SOAP/XML-RPC and WebService(SOAP) sampler character encodings updated to be more consistent</li>


<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=46148">
      Bug
      46148</a> - HTTP sampler fails on SSL requests when logging for jmeter.util is set to DEBUG</li>

<li>Fix Java 1.6 https error: java.net.SocketException: Unconnected sockets not implemented</li>


<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=46838">
      Bug
      46838</a> - if there was no data, still need to set latency in HTTPSampler</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=46993">
      Bug
      46993</a> - Saving from Header Manager generates ClassCastException</li>

<li>

<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=46690">
      Bug
      46690</a> - handling of 302 redirects with invalid relative paths.
JMeter now removes extraneous leading "../" segments (as do many browsers)
</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=44521">
      Bug
      44521</a> - empty variables for a POST in the HTTP Request don't get ignored</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=46977">
      Bug
      46977</a> - JMeter does not handle HTTP headers not delimited by whitespace</li>

<li>Fix bug in HTTP file: handling - read bytes, not characters in the default encoding.</li>


<li>Remove Host from headers saved by the Proxy server, as that will normally be generated by the HTTP stack</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=45199">
      Bug
      45199</a> - don't try to replace blank variables in Proxy recording</li>

<li>Change HTTPS spoofing so https: links are replaced even when URL match fails</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=46436">
      Bug
      46436</a> - Improve error reporting in Proxy Gui</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=46435">
      Bug
      46435</a> - More verbose error msg for error 501 (Proxy Server)</li>

</ul>


<h3>Other Samplers</h3>

<ul>

<li>The "prev" and "sampler" objects are now defined for BSF test elements</li>

<li>Fix NPE (in DataSourceElement) when using JDBC in client-server mode</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=45425">
      Bug
      45425</a> - JDBC Request does not support Unicode (changed sampler to use UTF-8)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=46522">
      Bug
      46522</a> - Incorrect "Response data" in JDBC sample when column names are missing</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=46821">
      Bug
      46821</a> - JDBC select request doesn't store the first column in the variables</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=43791">
      Bug
      43791</a> - ensure QueueReceiver is closed in JMS Point to Point sampler</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=46016">
      Bug
      46016</a> - avoid possible NPE in JMSSampler</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=46142">
      Bug
      46142</a> - JMS Receiver now uses MessageID</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=45458">
      Bug
      45458</a> - Point to Point JMS in combination with authentication</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=45460">
      Bug
      45460</a> - JMS TestPlan elements depend on resource property</li>

<li>Various ReceiveSubscriber thread-safety fixes</li>

<li>JMSPublisher and Subscriber fixes: thread-safety, support dynamic locale changes, locale independence for JMX attribute values</li>

<li>FTP Sampler now logs out before disconnecting.</li>

<li>TCP sampler now calls setupTest() and teardownTest() methods</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=45887">
      Bug
      45887</a> - TCPSampler: timeout property incorrectly set</li>

</ul>


<h3>Controllers</h3>

<ul>

<li>Fix NPE when using nested Transaction Controllers with parent samples</li>

<li>Fix processing of Transaction Controller parent mode so current sampler is set to actual sampler</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=44941">
      Bug
      44941</a> - Throughput controllers should not share global counters</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=47120">
      Bug
      47120</a> - Throughput Controller: change percent executions to total executions, the value is stored in a String and interpreted as 1 execution</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=47150">
      Bug
      47150</a> - ThreadGroup with a loop count of zero causes infinite loop</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=47009">
      Bug
      47009</a> - Insert parent caused child controller name to be reset</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=47165">
      Bug
      47165</a> - Using duplicate Module Controller names in command line mode causes NPE</li>

</ul>


<h3>Listeners</h3>

<ul>

<li>Mailer Visualizer documentation now agrees with code i.e. failure/success counts need to be exceeded to trigger the mail.</li>

<li>Mailer Visualizer now shows the failure count</li>

<li>Mailer Visualiser - fix parsing of multiple e-mail address when using Test button</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=45976">
      Bug
      45976</a> - incomplete result file when using remote testing with more than 1 server</li>

<li>Fix Summariser so it works in client server mode</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=34096">
      Bug
      34096</a> - Duplicate samples not eliminated when writing to CSV files</li>

<li>Save "Include group Name in Label" setting in Aggregate and Summary reports</li>

<li>The JMeter variable "sample_variables" is sent to all server instances to ensure the data is available to the client.</li>

<li>CSVSaveService - check for EOF while reading quoted string</li>

</ul>


<h3>Assertions</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=45749">
      Bug
      45749</a> - Response Assertion does not work with a substring that happens to be an invalid RE</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=45904">
      Bug
      45904</a> - Allow 'Not' Response Assertion to succeed with null sample</li>

</ul>


<h3>Functions</h3>

<ul>

<li>Fix regex function - was failing to process $m$mid$n$ correctly</li>

<li>Protect against possible NPE in RegexFunction if called during test shutdown.</li>

<li>Avoid NPE if XPath function does not match any nodes</li>

<li>Correct the variable name "theadName" to "threadName" in the __jexl() and __javaScript() functions</li>

<li>A reference to a missing function - e.g. ${__missing(a)} - is now treated the same as a missing variable. Previously the function name - and leading { - were dropped.</li>

</ul>


<h3>I18N</h3>

<ul>

<li>Fixed language change handling for menus (does not yet work for TestBeans)</li>

<li>Add HeaderAsPropertyRenderer to support header resource names; use this to fix locale changes in various GUI elements</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=46424">
      Bug
      46424</a> - corrections to French translation</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=46844">
      Bug
      46844</a> -  "Library" label in test plan are not I18N</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=47064">
      Bug
      47064</a> - fixes for Mac LAF</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=47127">
      Bug
      47127</a> -  Unable to change language to pl_PL</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=47137">
      Bug
      47137</a> - Labels in View Results Tree aren't I18N</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=46423">
      Bug
      46423</a> - I18N of Proxy Recorder</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=45928">
      Bug
      45928</a> - AJP/1.3 Sampler doesn't retrieve its label from messages.properties</li>

</ul>


<h3>General</h3>

<ul>

<li>Prompt to overwrite an existing file when first saving a new test plan</li>

<li>Amend TestBeans to show the correct popup menu for Listeners</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=45185">
      Bug
      45185</a> - CSV dataset blank delimiter causes OOM</li>

<li>Fix incorrect GUI classifications:
"Save Results to a file" and "Generate Summary Results" are now shown as Listeners.
"Counter" is now shown as a Configuration element.
</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=41608">
      Bug
      41608</a> - misleading warning log message removed</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=46359">
      Bug
      46359</a> - BSF JavaScript Preprocessor cannot access sampler variable on first iteration (Implement temporary work-round for BSF-22)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=46407">
      Bug
      46407</a> - BSF elements do not load script files, attempt to interpret filename as script</li>

<li>Better handling of Exceptions during test shutdown</li>

<li>Fix potential thread safety issue in JMeterThread class</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=46491">
      Bug
      46491</a> - Incorrect value for the last variable in "CSV Data Set Config" (error in processing quoted strings)</li>


</ul>




<h2>Improvements</h2>


<h3>HTTP Samplers</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=45479">
      Bug
      45479</a> - Support for multiple HTTP Header Manager nodes</li>

<li>HTTP Samplers now support connection and request timeouts (requires Java 1.5 for Java Http sampler)</li>

<li>Apache SOAP 2.3.1 does not give access to HTTP response code/message, so WebService sampler now treats an empty response as an error</li>

<li>Mirror server now supports "X-Sleep" header - if this is set, the responding thread will wait for the specified number of milliseconds</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=45694">
      Bug
      45694</a> - Support GZIP compressed logs in Access Log Sampler</li>

</ul>


<h3>Other samplers</h3>

<ul>

<li>JDBC Request can optionally save the results of Select statements to variables.</li>

<li>JDBC Request now handles quoted strings.</li>

<li>JDBC Request now handles arbitrary variable types.</li>

<li>LDAP result data now formatted with line breaks</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=45200">
      Bug
      45200</a> - MailReaderSampler: store the whole MIME message in the SamplerResult</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=45571">
      Bug
      45571</a> - JMS Sampler correlation enhancement</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=46030">
      Bug
      46030</a> - Extend TCP Sampler to Support Length-Prefixed Binary Data</li>

<li>Add classname field to TCP Sampler GUIs</li>

</ul>


<h3>Controllers</h3>

<ul>

<li>Allow If Controller to use variable expressions (not just Javascript)</li>

<li>Trim spaces from While Controller condition before comparing against LAST, blank or false</li>

</ul>


<h3>Listeners</h3>

<ul>

<li>Save Responses to a file can save the generated filename(s) to variables.</li>

<li>Add option to skip suffix generation in Save Responses to a File</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=43119">
      Bug
      43119</a> - Save Responses to file: optionally omit the file number</li>

<li>Add BSF Listener element</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=47176">
      Bug
      47176</a> -  Monitor Results : improve load status graphic</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=40045">
      Bug
      40045</a> - Allow Results monitor to select a specific connector</li>

<li>Read XML JTL files more efficiently - pass samples to visualizers as they are read, rather than saving them all and then processing them</li>

</ul>


<h3>Assertions, Config, Pre- &amp; Post-Processors</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=45903">
      Bug
      45903</a> - allow Assertions to apply to sub-samples</li>

<li>Add Body (unescaped) source option to Regular Expression Extractor.</li>

<li>Random Variable - new configuration element to create random numeric variables</li>

</ul>


<h3>Functions</h3>

<ul>

<li>Add OUT and log variables to __jexl() function</li>

<li>Use Script to evaluate __jexl() function so can have multiple statements.</li>

<li>Add log variable to the __javaScript() function</li>

<li>Added __char() function: allows arbitrary Unicode characters to be entered in fields.</li>

<li>Added __unescape() function: allows Java-escaped strings to be used.</li>

<li>Added __unescapeHtml() function: decodes Html-encoded text.</li>

<li>Added __escapeHtml() function: encodes text using Html-encoding.</li>

</ul>


<h3>I18N</h3>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=45929">
      Bug
      45929</a> - improved French translations</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=47132">
      Bug
      47132</a> - Brazilian Portuguese translations</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=46900">
      Bug
      46900</a> - Polish translations</li>

<li>Added locales.add property to allow for new Locales</li>

</ul>


<h3>General</h3>

<ul>

<li>Allow spaces in JMeter path names (apply work-round for <a href="http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4496398">Java Bug 4496398</a>)</li>

<li>Process JVM_ARGS last in script files so users can override default settings</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=46636">
      Bug
      46636</a> - Allow server mode to optionally use a fixed rmi port</li>

<li>Make some samplers interruptible: HTTP (both), SoapSampler, FTPSampler</li>

<li>Test Action now supports "Stop Now" action, as do the Thread Group and Result Status Post Processor elements</li>

<li>The Menu items Stop and Shutdown now behave better. Shutdown will now wait until all threads exit.
In GUI mode it can be cancelled and Stop run instead.
Stop now reports if some threads will not exit, and exits if running in non-GUI mode</li>

<li>Add UDP server to wait for shutdown message if running in non-GUI mode; add UDP client to send the message.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=41209">
      Bug
      41209</a> - JLabeled* and ToolTips</li>

<li>Include BeanShell 2.0b4 jar in binary download.</li>

</ul>


<h2>Non-functional changes</h2>

<ul>

<li>Introduce AbstractListenerGui class to make it easier to create Listeners with no visual output</li>

<li>Assertions are run after PostProcessors; change order of pop-up menus accordingly</li>

<li>Remove unnecessary clone() methods from function classes</li>

<li>Moved PreProcessor invocation to JMeterThread class</li>

<li>Made HashTree Map field final</li>

<li>Improve performance of calling ResultCollector#isSampleWanted() for multiple samples</li>

<li>Updated to new versions of: xmlgraphics-commons (1.3.1), jdom (1.1), xstream (1.3.1), velocity (1.6.2)</li>

</ul>





<h2>Version 2.3.2</h2>


<h3>Summary of main changes</h3>


<h4>Bug fixes</h4>

<p>
Version 2.3.1 changed the way binary and text content types were determined as far as the View Results Tree Listener was concerned:
originally everything except "image/" content types were considered text, but 2.3.1 introduced a check
for specific content types. This has caused problems,
as several popular types were omitted and these were no longer shown by default in the Response tab.
Rather than try to list all the possible text types, JMeter now just checks for the following binary types:
<ul>

<li>image/*</li>

<li>audio/*</li>

<li>video/*</li>

</ul>
All other types are now assumed to be text.
</p>


<p>
JMeter 2.3.1 introduced a bug in the Cookie Manager
- if "Clear Cookie each iteration" was selected, all threads would see the same cookies.
This bug has been corrected.
</p>


<h4>Improvements</h4>


<p>
The Proxy server can now record binary requests.
By default the content types
application/x-amf and application/x-java-serialized-object
will be treated as binary and saved in a file.
To change the content types, update the property <b>proxy.binary.types</b>.
</p>


<p>
The CSV Dataset configuration element has new file sharing options: per thread group, per thread, per identifier.
This allows for more flexible file processing, e.g. each thread can process the same data in the same order.
</p>


<p>Switch Controller now works properly with functions and variables,
and the condition can now be a name instead of a number.
Simple Controller now works properly under a While Controller</p>


<p>CSV fields in JTL files can now contain delimiters.
CSV and XML files can now contain additional variables (define the JMeter property <b>sample_variables</b>).</p>


<p>Response Assertion can now match on substrings (i.e. not regular expression).
Regex extractor can operate on variables.</p>


<p>
XPath processing is improved; Tidy errors are handled better.
</p>


<p>Save Table Data buttons added to Summary and Aggregate reports to allow easy saving of the calculated data.</p>


<p>
HTTP samplers can now save just the MD5 hash of responses, rather than the entire response.
As a special case, if the HTTP Sampler path starts with "http://" or "https://" then this is used as the full URL,
overriding the host and port fields.
The HTTP Samplers can now POST multiple files.
Webservice(SOAP) Sampler can now load local WSDL files using the "file:" protocol.
</p>


<p>
A simple HTTP Cache Manager has been added. This needs further development.
</p>


<p>
View Results Tree Listener now uses Tidy to display XML.
This should allow more content to be displayed successfully.
It also avoids the need to download remote DTD files, which can slow the rendering considerably.
</p>


<p>
MailReader sampler now supports POP3S and IMAPS protocols. Individual mails are now added as sub-samples.
</p>


<p>
Various improvements to the BSF Sampler: now supports Jexl, and Javascript bug works properly.
Added BSF PreProcessor, PostProcessor and Assertion test elements.
All now have access to "props" JMeter Properties object.
</p>


<p>Number of classes loaded in non-GUI mode is much reduced.</p>


<h3>Known bugs</h3>


<p>
The Include Controller has some problems in non-GUI mode.
In particular, it can cause a NullPointerException if there are two include controllers with the same name.
</p>


<p>Once Only controller behaves OK under a Thread Group or Loop Controller,
but otherwise its behaviour is not consistent (or clearly specified).</p>


<p>
The menu item Options / Choose Language does not change all the displayed text to the new language.
To override the default local language, set the JMeter property "language" before starting JMeter.
</p>

<h3>Incompatible changes</h3>

<ul>

<li>
To reduce the number of classes loaded in non-GUI mode,
Functions will only be found if their classname contains the string
'.functions.' and does not contain the string '.gui.'.
All existing JMeter functions conform to this restriction.
To revert to earlier behaviour, comment or change the properties classfinder.functions.* in jmeter.properties.
</li>

<li>The reference value parameter for intSum() is now optional.
As a consequence, if a variable name is used, it must not be a valid integer.</li>

<li>The supplied TCPClient implementation no longer treats tcp.eolByte=0 as special.
To skip EOL checking, set tcp.eolByte=1000 (or some other value which is not a valid byte)
</li>

<li>
Leading and trailing spaces are trimmed from variable names in function calls.
For example, ${__Random(1,63,&nbsp;LOTTERY&nbsp;)} will use the variable 'LOTTERY' rather than '&nbsp;LOTTERY&nbsp;'.
</li>

<li>
Synchronization has been removed from the RunningSample class (it was not fully threadsafe anyway).
Developers of 3<sup>rd</sup> party add-ons that use the class may need to synchronize access.
</li>

</ul>


<h3>Bug fixes</h3>

<ul>

<li>Check that the CSV delimiter is reasonable.</li>

<li>Fix Switch Controller to work properly with functions and variables</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=44011">
      Bug
      44011</a> - application/soap+xml not treated as a text type</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=43427">
      Bug
      43427</a> - Simple Controller is only partly executed in While loop</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=33954">
      Bug
      33954</a> - Stack Overflow in If/While controllers (may have been fixed previously)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=44022">
      Bug
      44022</a> - Memory Leak when closing test plan</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=44042">
      Bug
      44042</a> - Regression in Cookie Manager (Bug introduced in 2.3.1)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=41028">
      Bug
      41028</a> - JMeter server doesn't alert the user when the host is defined as a loopback address</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=44142">
      Bug
      44142</a> - Function __machineName causes NPE if parameters are omitted.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=44144">
      Bug
      44144</a> - JMS point-to-point: request response test does not work</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=44314">
      Bug
      44314</a> - Not possible to add more than one SyncTimer</li>

<li>Capture Tidy console error output and log it</li>

<li>Fix problems using Tidy(tolerant parser) in XPath Assertion and XPath Extractor</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=44374">
      Bug
      44374</a> - improve timer calculation</li>

<li>Regular Expression Extractor now deletes all stale variables from previous matches.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=44707">
      Bug
      44707</a> - Running remote test changes internal test plan</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=44625">
      Bug
      44625</a> - Cannot have two or more FTP samplers with different "put" and "get" actions</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=40850">
      Bug
      40850</a> - BeanShell memory leak</li>

<li>Ensure ResponseCode and ResponseMessage are set for successful JDBC samples</li>

<li>FTPSampler now detects and reports failure to open the remote file</li>

<li>Class directories defined in search_paths and user.classpath no longer need trailing "/"</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=44852">
      Bug
      44852</a> SOAP/ XML-RPC Request does not show Request details in View Results Tree</li>

<li>WebService(SOAP) Sampler ResponseData now includes the EOLs sent by server</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=44910">
      Bug
      44910</a> - close previous socket (if any) in TCP Sampler</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=44912">
      Bug
      44912</a> - Filter not working in Log Parser</li>

<li>The BeanShell and BSF component documentation made some incorrect references to the "SampleResponse" object;
this has been corrected to "SampleResult"</li>

<li>BSF Sampler now works properly with Javascript</li>

<li>Test Action "Stop Test" now works</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=42833">
      Bug
      42833</a> - Argument class uses LinkedHashMap in getArgumentsAsMap() to preserve ordering</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=45093">
      Bug
      45093</a> - SizeAssertion did not call getBytes()</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=45007">
      Bug
      45007</a> - Rewrite Location headers when using Proxy HTTPS spoofing</li>

<li>Use CRLF rather than LF in Proxy when returning headers to the client</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=45007">
      Bug
      45007</a> - fix content length header if content may have been changed</li>

</ul>


<h3>Improvements</h3>

<ul>

<li>CSV files can now handle fields with embedded delimiters.</li>

<li>longSum() function added</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=43382">
      Bug
      43382</a> - configure Tidy output (warnings, errors) for XPath Assertion and Post-Processor</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=43984">
      Bug
      43984</a> - trim spaces from port field</li>

<li>Add optional comment to __log() function</li>

<li>Make Random function variable name optional</li>

<li>Reduce class loading in non-GUI mode by only looking for Functions in class names
that contain '.functions.' and don't contain '.gui.'</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=43379">
      Bug
      43379</a> - Switch Controller now supports selection by name as well as number</li>

<li>Can specify list of variable names to be written to JTL files (CSV and XML format)</li>

<li>Now checks that the remoteStart options -r and -R are only used with non_GUI -n option</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=44184">
      Bug
      44184</a> - Allow header to be saved with Aggregate Graph data</li>

<li>Added "Save Table Data" buttons to Aggregate and Summary Reports - save table as CSV format with header</li>

<li>Allow most functions to be used on the Test Plan.
Note __evalVar(), __split() and __regex() cannot be used on the Test Plan.</li>

<li>Allow Global properties to be loaded from a file, e.g. -Gglobal.properties</li>

<li>Add "Substring" option to Response Assertion</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=44378">
      Bug
      44378</a> - Turkish localisation</li>

<li>Add optional output variable name to Jexl function</li>

<li>Add application/vnd.wap.xhtml+xml as a text type</li>

<li>Add means to override maximum display size in View Results Tree - set the property: view.results.tree.max_size</li>

<li>Use Tidy to display XML in View Results Tree Listener (avoids fetching DTDs)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=44487">
      Bug
      44487</a> - German translation</li>

<li>
As a special case, if the HTTP Sampler path starts with "http://" or "https://" then this is used as the full URL.
</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=44575">
      Bug
      44575</a> - Result Saver can now save only successful results</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=44650">
      Bug
      44650</a> - CSV Dataset now handles quoted column values</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=44600">
      Bug
      44600</a> - 1-ms resolution timer when running with Java 1.5+</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=44632">
      Bug
      44632</a> - Text input enhancement to FTP Sampler</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=42204">
      Bug
      42204</a> - add thread group name to Aggregate and Summary reports</li>

<li>FTP Sampler sets latency = time to login</li>

<li>FTP Sampler sets a URL if it can</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=41921">
      Bug
      41921</a> - add option for samplers to store MD5 of response; done for HTTP Samplers.</li>

<li>Regex Function can now also be applied to a variable rather than just the previous sample result.</li>

<li>Remove HTML Parameter Mask,HTTP User Parameter Modifier from menus as they are deprecated</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=44807">
      Bug
      44807</a> - allow session ids to be terminated by backslash</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=44784">
      Bug
      44784</a> - allow for broken server returning additional charset</li>

<li>Added TESTSTART.MS property / variable = test start time in milliseconds</li>

<li>Add POP3S and IMAPS protocols to Mail Reader Sampler.</li>

<li>Mail Reader Sampler now creates a sub-sample for each mail.</li>

<li>The supplied TCPClient implementation no longer treats tcp.eolByte=0 as special.
To skip EOL checking, set tcp.eolByte=1000 (or some other value which is not a valid byte)
</li>

<li>JUnit sampler GUI now also finds Test classes defined in user.classpath</li>

<li>
Leading and trailing spaces are trimmed from variable names in function calls.
For example, ${__Random(1,63,&nbsp;LOTTERY&nbsp;)} will use the variable 'LOTTERY' rather than '&nbsp;LOTTERY&nbsp;'
</li>

<li>Webservice(SOAP) Sampler can now load local WSDL files using the file: protocol</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=44872">
      Bug
      44872</a> - Add "All Files" filter to Open File dialogs</li>

<li>Mirror server can now be run independently (mirror-server.cmd and mirror-server.sh)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=19128">
      Bug
      19128</a> - Added multiple file POST support to HTTP Samplers</li>

<li>Allow use of special name LAST to mean the last test run; applies to -t, -l, -j flags</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=44418">
      Bug
      44418</a>/42178 - CSV Dataset file handling improvements</li>

<li>Give BeanShell, Javascript and Jexl functions access to JMeter properties via the "props" object</li>

<li>Give BSF Sampler access to JMeter Properties via "props" object</li>

<li>Add Jexl as a supported BSF Sampler language</li>

<li>Give Beanshell test elements access to JMeter Properties via "props" object</li>

<li>Added BSF PreProcessor, PostProcessor and Assertion test elements</li>

<li>All BSF elements now have access to System.out via the variable "OUT"</li>

<li>Summariser updated to handle variable names</li>

<li>Synchronisation added to Summary and Aggregate Report to try to prevent occasional lost samples</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=44808">
      Bug
      44808</a>,<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=39641">
      Bug
      39641</a> - Proxy support for binary requests</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=28502">
      Bug
      28502</a> - HTTP Resource Cache</li>

</ul>


<h3>Non-functional changes</h3>

<ul>

<li>Better handling of MirrorServer startup problems and improved unit test.</li>

<li>Build process now detects missing 3<sup>rd</sup> party libraries and reports need for both binary and source archives</li>

<li>Skip BeanShell tests if jar is not present</li>

<li>Update to Xerces 2.9.1, Xalan 2.7.1, Commons IO 1.4, Commons Lang 2.4, Commons-Logging 1.1.1, XStream 1.3, XPP3 1.1.4c</li>

<li>Use properties for log/logn function descriptions</li>

<li>Check that all jmx files in the demos directory can be loaded OK</li>

<li>Update copyright to 2008; use copy tag instead of numeric character in HTML output</li>

<li>Methods called from constructors must not be overridable: make GUI init methods private</li>

<li>Make static variables final if possible</li>

<li>Split changes into current and previous</li>

</ul>




<h3>Version 2.3.1</h3>

<h4>Summary of changes</h4>


<h5>JMeter Proxy</h5>


<p>
The Proxy spoof function was broken in 2.3; it has been fixed.
Spoof now supports an optional parameter to limit spoofing to particular URLs.
This is useful for HTTPS pages that have insecure content - e.g. images/stylesheets may be accessed using HTTP.
Spoofed responses now drop the default port (443) from https links to make them work better.
</p>

<p>
Ignored proxy samples are now visible in Listeners - the label is enclosed in [ and ] as an indication.
Proxy documentation has been improved.
</p>


<h5>GUI changes</h5>


<p>The Add menus show element types in the order in which they are processed
- see <a href="usermanual/test_plan.html#executionorder">Test Plan Execution Order</a>.
It is no longer possible to add test elements to inappropriate parts of the tree
- e.g. samplers cannot be added directly under a test plan.
This also applies to Paste and drag and drop.
</p>


<p>
The File menu now supports a "Revert" option, which reloads the current file.
Also the last few file names used are remembered for easy reloading.
</p>


<p>
The Options Menu now supports Collapse All and Expand All items to collapse and expand the test tree.
</p>


<h5>Remote testing</h5>


<p>
The JMeter server now starts the RMI server directly (by default).
This simplifies testing, and means that the RMI server will be stopped when the server stops.
</p>


<p>
Functions can now be used in Listener filenames (variables do not work).
</p>


<p>
Command-line option -G can now be used to define properties for remote servers.
Option -X can be used to stop a remote server after a non-GUI run.
Server can be set to automatically exit after a single test (set property server.exitaftertest=true).
</p>


<h5>Other enhancements</h5>


<p>
JMeter startup no longer loads as many classes; this should reduce memory requirements.
</p>


<p>
Parameter and file support added to all BeanShell elements.
Javascript function now supports access to JMeter objects;
Jexl function always did have access, but the documentation has now been included.
New functions __eval() and __evalVar() for evaluating variables.
</p>


<p>
CSV files with the correct header column names are now automatically recognised when loaded.
There is no need to configure the properties.
</p>


<p>
The hostname can now be saved in CSV and XML output files.
New "Successes only" option added when saving result files.
Errors / Successes only option is now supported when loading XML and CSV files.
</p>


<p>
General documentation improvements.
</p>


<h5>HTTP</h5>


<p>PUT and DELETE should now work properly.
Cookie Manager no longer clears manually entered cookies.
</p>

<p>Now handles the META tag http-equiv charset</p>


<h5>JDBC</h5>


<p>JDBC Sampler now allows INOUT and OUT parameters for Called procedures.
JDBC Sampler now allows per-thread connections - set Max Connections = 0 in JDBC Config.
</p>


<hr>



<h4>Incompatible changes</h4>

<ul>

<li>JMeter server now creates the RMI registry by default.
If the RMI registry has already been started externally, this will generate a warning message, but the server will continue.
This should not affect JMeter testing.
However, if you are also using the RMI registry for other applications there may be problems.
For example, when the JMeter server shuts down it will stop the RMI registry.
Also user-written command files may need to be adjusted (the ones supplied with JMeter have been updated).
To revert to the earlier behaviour, define the JMeter property: <b>server.rmi.create=false</b>.
</li>

<li>The Proxy server removes If-Modified-Since and If-None-Match headers from generated Header Managers.
To revert to the previous behaviour, define the property proxy.headers.remove with no value</li>

</ul>


<h4>Bug fixes</h4>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=43430">
      Bug
      43430</a> - Count of active threads is incorrect for remote samples</li>

<li>Throughput Controller was not working for "all thread" counts</li>

<li>If a POST body is built from parameter values only, these are now encoded if the checkbox is set.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=43584">
      Bug
      43584</a> - Assertion Failure Message contains a comma that is also used as the delimiter for CSV files</li>

<li>HTTP Mirror Server now always returns the exact same content, it used to return incorrect data if UTF-8 encoding was used for HTTP POST body, for example</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=43612">
      Bug
      43612</a> - HTTP PUT does not honor request parameters</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=43694">
      Bug
      43694</a> - ForEach Controller (empty collection processing error)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=42012">
      Bug
      42012</a> - Variable Listener filenames do not get processed in remote tests.
Filenames can now include function references; variable references do not work.</li>

<li>Ensure Listener nodes get own save configuration when copy-pasted</li>

<li>Correct Proxy Server include and exclude matching description - port and query are included, contrary to previously documented.</li>

<li>Aggregate Graph and Aggregate Report Column Header is KB/Sec; fixed the values to be KB rather than bytes</li>

<li>
Fix SamplingStatCalculator so it no longer adds elapsed time to endTime, as this is handled by SampleResult.
This corrects discrepancies between Summary Report and Aggregate Report throughput calculation.
</li>

<li>Default HTTPSampleResult to ISO-8859-1 encoding</li>

<li>Fix default encoding for blank encoding</li>

<li>Fix Https spoofing (port problem) which was broken in 2.3</li>

<li>Fix HTTP (Java) sampler so http.java.sampler.retries means retries, i.e. does not include initial try</li>

<li>Fix SampleResult dataType checking to better detect TEXT documents</li>

</ul>


<h4>Improvements</h4>

<ul>

<li>Add run_gui Ant target, to package and then start the JMeter GUI from Ant</li>

<li>Add File&rarr;Revert to easily drop the current changes and reload the project file currently loaded</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=31366">
      Bug
      31366</a> - Remember recently opened file(s)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=43351">
      Bug
      43351</a> - Add support for Parameters and script file to all BeanShell test elements</li>

<li>SaveService no longer needs to instantiate classes</li>

<li>New functions: __eval() and __evalVar()</li>

<li>Menu items now appear in execution order</li>

<li>Test Plan items can now only be dropped/pasted/merged into parts of the tree where they are allowed</li>

<li>Property Display to show the value of System and JMeter properties and allow them to be changed</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=43451">
      Bug
      43451</a> - Allow Regex Extractor to operate on Response Code/Message</li>

<li>JDBC Sampler now allows INOUT and OUT parameters for Called procedures</li>

<li>JDBC Sampler now allows per-thread connections</li>

<li>Cookie Manager not longer clears cookies defined in the GUI</li>

<li>HTTP Parameters without names are ignored (except for POST requests with no file)</li>

<li>"Save Selection As" added to main menu; now checks only item is selected</li>

<li>Test Plan now has Paste menu item (paste was already supported via ^V)</li>

<li>If the default delimiter does not work when loading a CSV file, guess the delimiter by analysing the header line.</li>

<li>Add optional "loopback" protocol for HttpClient sampler</li>

<li>HTTP Mirror Server now supports blocking waiting for more data to appear, if content-length header is present in request</li>

<li>HTTP Mirror Server GUI now has the Start and Stop buttons in a more visible place</li>

<li>Server mode now creates the RMI registry; to disable set the JMeter property server.rmi.create=false</li>

<li>HTTP Sampler now supports using MIME Type field to specify content-type request header when body is constructed from parameter values</li>

<li>Enable exit after a single server test - define JMeter property server.exitaftertest=true</li>

<li>Added -G option to set properties in remote servers</li>

<li>Added -X option to stop remote servers after non-GUI run</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=43485">
      Bug
      43485</a> - Ability to specify keep-alive on SOAP/XML-RPC request</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=43678">
      Bug
      43678</a> - Handle META tag http-equiv charset</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=42555">
      Bug
      42555</a> - [I18N] Proposed corrections for the french translation</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=43727">
      Bug
      43727</a> - Test Action does not support variables or functions</li>

<li>The Proxy server removes If-Modified-Since and If-None-Match headers from generated Header Managers by default.
To change the list of removed headers, define the property proxy.headers.remove as a comma-separated list of headers to remove</li>

<li>The javaScript function now has access to JMeter variables and context etc. See <a href="usermanual/functions.html#__javaScript">JavaScript function</a>
</li>

<li>Use drop-down list for BSF Sampler language field</li>

<li>Add hostname to items that can be saved in CSV and XML output files.</li>

<li>Errors only flag is now supported when loading XML and CSV files</li>

<li>Ensure ResultCollector uses SaveService encoding</li>

<li>Proxy now rejects attempts to use it with https</li>

<li>Proxy spoofing can now use RE matching to determine which urls to spoof (useful if images are not https)</li>

<li>Proxy spoofing now drops the default HTTPS port (443) when converting https: links to http:</li>

<li>Add Successes Only logging and display</li>

<li>The JMeter log file name is formatted as a SimpleDateFormat (applied to the current date) if it contains paired single-quotes,  .e.g. 'jmeter_'yyyyMMddHHmmss'.log'</li>

<li>Added Collapse All and Expand All Option menu items</li>

<li>Allow optional definition of extra content-types that are viewable as text</li>

</ul>


<h4>Non-functional Improvements</h4>

<ul>

<li>Functor code tightened up; Functor can now be used with interfaces, as well as pre-defined targets and parameters.</li>

<li>Save graphics function now prompts before overwriting an existing file</li>

<li>Debug Sampler and Debug PostProcessor added.</li>

<li>Fixed up method names in Calculator and SamplingStatCalculator</li>

<li>Tidied up Listener documentation.</li>

</ul>




<h3>Version 2.3</h3>


<h3>Fixes since 2.3RC4</h3>


<h4>Bug fixes</h4>

<ul>

<li>Fix NPE in SampleResultConverter - XStream PrettyPrintWriter cannot handle nulls</li>

<li>If Java HTTP sampler sees null ResponseMessage, replace with HTTP header</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=43332">
      Bug
      43332</a> - 2.3RC4 does not clear Guis based on TestBean</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=42948">
      Bug
      42948</a> - Problems with Proxy gui table fields in Java 1.6</li>

<li>Fixup broken jmeter-server script</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=43364">
      Bug
      43364</a> - option to revert If Controller to pre 2.3RC3 behaviour</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=43449">
      Bug
      43449</a> - Statistical Remote mode does not handle Latency</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=43450">
      Bug
      43450</a> (partial fix) - Allow SampleCount and ErrorCount to be saved to/restored from files</li>

</ul>


<h4>Improvements</h4>

<ul>

<li>Add nameSpace option to XPath extractor</li>

<li>Add NULL parameter option to JDBC sampler</li>

<li>Add documentation links for Rhino and BeanShell to functions; clarify variables and properties</li>

<li>Ensure uncaught exceptions are logged</li>

<li>Look for user.properties and system.properties in JMeter bin directory if not found locally</li>

</ul>


<h4>Fixes since 2.3RC3</h4>

<ul>

<li>Fixed NPE in Summariser (bug introduced in 2.3RC3)</li>

<li>Fixed setup of proxy port (bug introduced in 2.3RC3)</li>

<li>Fixed errors when running non-GUI on a headless host (bug introduced in 2.3RC3)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=43054">
      Bug
      43054</a> - SSLManager causes stress tests to saturate and crash (bug introduced in 2.3RC3)</li>

<li>Clarified HTTP Request Defaults usage of the port field</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=43006">
      Bug
      43006</a> - NPE if icon.properties file not found</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=42918">
      Bug
      42918</a> - Size Assertion now treats an empty response as having zero length</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=43007">
      Bug
      43007</a> - Test ends before all threadgroups started</li>

<li>Fix possible NPE in HTTPSampler2 if 302 does not have Location header.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=42919">
      Bug
      42919</a> - Failure Message blank in CSV output [now records first non-blank message]</li>

<li>Add link to Extending JMeter PDF</li>

<li>Allow for quoted charset in Content-Type parsing</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=39792">
      Bug
      39792</a> - ClientJMeter synchronisation needed</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=43122">
      Bug
      43122</a> - GUI changes not always picked up when short-cut keys used (bug introduced in 2.3RC3)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=42947">
      Bug
      42947</a> - TestBeanGUI changes not picked up when short-cut keys used</li>

<li>Added serializer.jar (needed for update to xalan 2.7.0)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=38687">
      Bug
      38687</a> - Module controller does not work in non-GUI mode</li>

</ul>


<h4>Improvements since 2.3RC3</h4>

<ul>

<li>Add stop thread option to CSV Dataset</li>

<li>Updated commons-httpclient to 3.1</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=28715">
      Bug
      28715</a> - allow variable cookie values (set CookieManager.allow_variable_cookies=false to disable)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=40873">
      Bug
      40873</a> - add JMS point-to-point non-persistent delivery option</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=43283">
      Bug
      43283</a> - Save action adds .jmx if not present; checks for existing file on Save As</li>

<li>
<span class="keycombo"><span class="keysym">Control</span>&nbsp;+&nbsp;<span class="keysym">A</span></span> key does not work for Save All As;
    changed to <span class="keycombo"><span class="keysym">Control</span>&nbsp;+&nbsp;<span class="keysym">Shift</span>&nbsp;+&nbsp;<span class="keysym">S</span></span>
</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=40991">
      Bug
      40991</a> - Allow Assertions to check Headers</li>

</ul>


<h3>Version 2.3RC3</h3>


<h4>Known problems/restrictions:</h4>

<p>
The JMeter remote server does not support multiple concurrent tests - each remote test should be run in a separate server.
Otherwise tests may fail with random Exceptions, e.g. ConcurrentModification Exception in StandardJMeterEngine.
See <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=43168">
      Bug
      43168</a>.
</p>

<p>
The default HTTP Request (not HTTPClient) sampler may not work for HTTPS connections via a proxy.
This appears to be due to a Java bug, see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=39337">
      Bug
      39337</a>.
To avoid the problem, try a more recent version of Java, or switch to the HTTPClient version of the HTTP Request sampler.
</p>

<p>Transaction Controller parent mode does not support nested Transaction Controllers.
Doing so may cause a Null Pointer Exception in TestCompiler.
</p>

<p>Thread active counts are always zero in CSV and XML files when running remote tests.
</p>

<p>The property file_format.testlog=2.1 is treated the same as 2.2.
However JMeter does honour the 3 testplan versions.</p>

<p>

<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=22510">
      Bug
      22510</a> - JMeter always uses the first entry in the keystore.
</p>

<p>
Remote mode does not work if JMeter is installed in a directory where the path name contains spaces.
</p>

<p>
BeanShell test elements leak memory.
This can be reduced by using a file instead of including the script in the test element.
</p>

<p>
Variables and functions do not work in Listeners in client-server (remote) mode so they cannot be used
to name log files in client-server mode.
</p>

<p>
CSV Dataset variables are defined after configuration processing is completed,
so they cannot be used for other configuration items such as JDBC Config.
(see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=40394">
      Bug
      40394</a>)
</p>


<h4>Summary of changes (for more details, see below)</h4>

<p>
Some of the main enhancements are:
</p>

<ul>

<li>Htmlparser 2.0 now used for parsing</li>

<li>HTTP Authorization now supports domain and realm</li>

<li>HttpClient options can be specified via httpclient.parameters file</li>

<li>HttpClient now behaves the same as Java Http for SSL certificates</li>

<li>HTTP Mirror Server to allow local testing of HTTP samplers</li>

<li>HTTP Proxy supports XML-RPC recording, and other proxy improvements</li>

<li>__V() function allows support of nested variable references</li>

<li>LDAP Ext sampler optionally parses result sets and supports secure mode</li>

<li>FTP Sampler supports Ascii/Binary mode and upload</li>

<li>Transaction Controller now optionally generates a Sample with subresults</li>

<li>HTTPS session contexts are now per-thread, rather than shared. This gives better emulation of multiple users</li>

<li>BeanShell elements now support ThreadListener and TestListener interfaces</li>

<li>Coloured icons in Tree View Listener and elsewhere to better differentiate failed samples.</li>

</ul>

<p>
The main bug fixes are:
</p>

<ul>

<li>HTTPS (SSL) handling now much improved</li>

<li>Various Remote mode bugs fixed</li>

<li>
<span class="keycombo"><span class="keysym">Control</span>&nbsp;+&nbsp;<span class="keysym">C</span></span>
    and <span class="keycombo"><span class="keysym">Control</span>&nbsp;+&nbsp;<span class="keysym">V</span></span> now work in the test tree</li>

<li>Latency and Encoding now available in CSV log output</li>

<li>Test elements no longer default to previous contents; test elements no longer cleared when changing language.</li>

</ul>


<h4>Incompatible changes (usage):</h4>

<p>

<b>N.B. The javax.net.ssl properties have been moved from jmeter.properties to system.properties,
and will no longer work if defined in jmeter.properties.</b>

<br>
The new arrangement is more flexible, as it allows arbitrary system properties to be defined.
</p>

<p>
SSL session contexts are now created per-thread, rather than being shared.
This generates a more realistic load for HTTPS tests.
The change is likely to slow down tests with many SSL threads.
The original behaviour can be enabled by setting the JMeter property:
<pre>
https.sessioncontext.shared=true
</pre>

</p>

<p>
The LDAP Extended Sampler now uses the same panel for both Thread Bind and Single-Bind tests.
This means that any tests using the Single-bind test will need to be updated to set the username and password.
</p>

<p>

<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=41140">
      Bug
      41140</a>: JMeterThread behaviour was changed so that PostProcessors are run in forward order
(as they appear in the test plan) rather than reverse order as previously.
The original behaviour can be restored by setting the following JMeter property:
<br>
jmeterthread.reversePostProcessors=true
</p>

<p>
The HTTP Authorization Manager now has extra columns for domain and realm,
so the temporary work-round of using '\' and '@' in the username to delimit the domain and realm
has been removed.
</p>

<p>

<span class="keycombo"><span class="keysym">Control</span>&nbsp;+&nbsp;<span class="keysym">Z</span></span> no longer used for Remote Start All - this
now uses <span class="keycombo"><span class="keysym">Control</span>&nbsp;+&nbsp;<span class="keysym">Shift</span>&nbsp;+&nbsp;<span class="keysym">R</span></span>

</p>

<p>
HttpClient now uses pre-emptive authentication.
This can be changed by setting the following:
<pre>
jmeter.properties:
httpclient.parameters.file=httpclient.parameters

httpclient.parameters:
http.authentication.preemptive$Boolean=false
</pre>

</p>


<p>
The port field in HTTP Request Defaults is no longer ignored for https samplers if it is set to 80.
</p>


<h4>Incompatible changes (development):</h4>

<p>

<b>N.B.</b>The clear() method was defined in the following interfaces: Clearable, JMeterGUIComponent and TestElement.
The methods serve different purposes, so two of them were renamed:
the Clearable method is now clearData() and the JMeterGUIComponent method is now clearGui().
3<sup>rd</sup> party add-ons may need to be rebuilt.
</p>

<p>
Calculator and SamplingStatCalculator classes no longer provide any formatting of their data.
Formatting should now be done using the jorphan.gui Renderer classes.
</p>

<p>
Removed deprecated method JMeterUtils.split() - use JOrphanUtils version instead.
</p>

<p>
Removed method saveUsingJPEGEncoder() from SaveGraphicsService.
It was unused so far, and used the only Sun-specific class in JMeter.
</p>



<h4>New functionality/improvements:</h4>

<ul>

<li>Add Domain and Realm support to HTTP Authorization Manager</li>

<li>HttpClient now behaves the same as the JDK http sampler for invalid certificates etc</li>

<li>Added httpclient.parameters.file to allow HttpClient parameters to be defined</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=33964">
      Bug
      33964</a> - Http Requests can send a file as the entire post body if name/type are omitted</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=41705">
      Bug
      41705</a> - add content-encoding option to HTTP samplers for POST requests</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=40933">
      Bug
      40933</a>,<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=40945">
      Bug
      40945</a> - optional RE matching when retrieving embedded resource URLs</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=27780">
      Bug
      27780</a> - (patch 19936) create multipart/form-data HTTP request without uploading file</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=42098">
      Bug
      42098</a> - Use specified encoding for parameter values in HTTP GET</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=42506">
      Bug
      42506</a> - JMeter threads now use independent SSL sessions</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=41707">
      Bug
      41707</a> - HTTP Proxy XML-RPC support</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=41880">
      Bug
      41880</a> - Add content-type filtering to HTTP Proxy Server</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=41876">
      Bug
      41876</a> - Add more options to control what the HTTP Proxy generates</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=42158">
      Bug
      42158</a> - Improve support for multipart/form-data requests in HTTP Proxy server</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=42173">
      Bug
      42173</a> - Let HTTP Proxy handle encoding of request, and undecode parameter values</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=42674">
      Bug
      42674</a> - default to pre-emptive HTTP authorisation if not specified</li>

<li>Support "file" protocol in HTTP Samplers</li>

<li>Http Autoredirects are now enabled by default when creating new samplers</li>


<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=40103">
      Bug
      40103</a> - various LDAP enhancements</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=40369">
      Bug
      40369</a> - LDAP: Stable search results in sampler</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=40381">
      Bug
      40381</a> - LDAP: more descriptive strings</li>


<li>BeanShell Post-Processor no longer ignores samples with zero-length result data</li>

<li>Added beanshell.init.file property to run a BeanShell script at startup</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=39864">
      Bug
      39864</a> - BeanShell init files now found from current or bin directory</li>

<li>BeanShell elements now support ThreadListener and TestListener interfaces</li>

<li>BSF Sampler passes additional variables to the script</li>


<li>Added timeout for WebService (SOAP) Sampler</li>


<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=40825">
      Bug
      40825</a> - Add JDBC prepared statement support</li>

<li>Extend JDBC Sampler: Commit, Rollback, AutoCommit</li>


<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=41457">
      Bug
      41457</a> - Add TCP Sampler option to not re-use connections</li>


<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=41522">
      Bug
      41522</a> - Use JUnit sampler name in sample results</li>


<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=42223">
      Bug
      42223</a> - FTP Sampler can now upload files</li>


<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=40804">
      Bug
      40804</a> - Change Counter default to max = Long.MAX_VALUE</li>


<li>Use property jmeter.home (if present) to override user.dir when starting JMeter</li>

<li>New -j option to easily change jmeter log file</li>


<li>HTTP Mirror Server Workbench element</li>


<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=41253">
      Bug
      41253</a> - extend XPathExtractor to work with non-NodeList XPath expressions</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=42088">
      Bug
      42088</a> - Add XPath Assertion for booleans</li>


<li>Added __V variable function to resolve nested variable names</li>


<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=40369">
      Bug
      40369</a> - Equals Response Assertion</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=41704">
      Bug
      41704</a> - Allow charset encoding to be specified for CSV DataSet</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=41259">
      Bug
      41259</a> - Comment field added to all test elements</li>

<li>Add standard deviation to Summary Report</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=41873">
      Bug
      41873</a> - Add name to AssertionResult and display AssertionResult in ViewResultsFullVisualizer</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=36755">
      Bug
      36755</a> - Save XML test files with UTF-8 encoding</li>

<li>Use ISO date-time format for Tree View Listener (previously the year was not shown)</li>

<li>Improve loading of CSV files: if possible, use header to determine format; guess timestamp format if not milliseconds</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=41913">
      Bug
      41913</a> - TransactionController now creates samples as sub-samples of the transaction</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=42582">
      Bug
      42582</a> - JSON pretty printing in Tree View Listener</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=40099">
      Bug
      40099</a> - Enable use of object variable in ForEachController</li>


<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=39693">
      Bug
      39693</a> - View Result Table uses icon instead of check box</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=39717">
      Bug
      39717</a> - use icons in the results tree</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=42247">
      Bug
      42247</a> - improve HCI</li>

<li>Allow user to cancel out of Close dialogue</li>

</ul>


<h4>Non-functional improvements:</h4>

<ul>

<li>Functor calls can now be unit tested</li>

<li>Replace com.sun.net classes with javax.net</li>

<li>Extract external jar definitions into build.properties file</li>

<li>Use specific jar names in build classpaths so errors are detected sooner</li>

<li>Tidied up ORO calls; now only one cache, size given by oro.patterncache.size, default 1000</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=42326">
      Bug
      42326</a> - Order of elements in .jmx files changes</li>

</ul>


<h4>External jar updates:</h4>

<ul>

<li>Htmlparser 2.0-20060923</li>

<li>xstream 1.2.1/xpp3_min-1.1.3.4.O</li>

<li>Batik 1.6</li>

<li>BSF 2.4.0</li>

<li>commons-collections 3.2</li>

<li>commons-httpclient-3.1-rc1</li>

<li>commons-jexl 1.1</li>

<li>commons-lang-2.3 (added)</li>

<li>JUnit 3.8.2</li>

<li>velocity 1.5</li>

<li>commons-io 1.3.1 (added)</li>

</ul>


<h4>Bug fixes:</h4>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=39773">
      Bug
      39773</a> - NTLM now needs local host name - fix other call</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=40438">
      Bug
      40438</a> - setting "httpclient.localaddress" has no effect</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=40419">
      Bug
      40419</a> - Chinese messages translation fix</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=39861">
      Bug
      39861</a> - fix typo</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=40562">
      Bug
      40562</a> - redirects no longer invoke RE post processors</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=40451">
      Bug
      40451</a> - set label if not set by sampler</li>

<li>Fix NPE in CounterConfig.java in Remote mode</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=40791">
      Bug
      40791</a> - Calculator used by Summary Report</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=40772">
      Bug
      40772</a> - correctly parse missing fields in CSV log files</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=40773">
      Bug
      40773</a> - XML log file timestamp not parsed correctly</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=41029">
      Bug
      41029</a> - JMeter -t fails to close input JMX file</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=40954">
      Bug
      40954</a> - Statistical mode in distributed testing shows wrong results</li>

<li>Fix ClassCast Exception when using sampler that returns null, e..g TestAction</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=41140">
      Bug
      41140</a> - Post-processors are run in reverse order</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=41277">
      Bug
      41277</a> - add Latency and Encoding to CSV output</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=41414">
      Bug
      41414</a> - Mac OS X may add extra item to -jar classpath</li>

<li>Fix NPE when saving thread counts in remote testing</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=34261">
      Bug
      34261</a> - NPE in HtmlParser (allow for missing attributes)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=40100">
      Bug
      40100</a> - check FileServer type before calling close</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=39887">
      Bug
      39887</a> - jmeter.util.SSLManager: Couldn't load keystore error message</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=41543">
      Bug
      41543</a> - exception when webserver returns "500 Internal Server Error" and content-length is 0</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=41416">
      Bug
      41416</a> - don't use chunked input for text-box input in SOAP-RPC sampler</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=39827">
      Bug
      39827</a> - SOAP Sampler content length for files</li>

<li>Fix Class cast exception in Clear.java</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=40383">
      Bug
      40383</a> - don't set content-type if already set</li>

<li>Mailer Visualiser test button now works if test plan has not yet been saved</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=36959">
      Bug
      36959</a> - Shortcuts "ctrl c" and "ctrl v" don't work on the tree elements</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=40696">
      Bug
      40696</a> - retrieve embedded resources from STYLE URL() attributes</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=41568">
      Bug
      41568</a> - Problem when running tests remotely when using a 'Counter'</li>

<li>Fixed various classes that assumed timestamps were always end time stamps:
<ul>

<li>SamplingStatCalculator</li>

<li>JTLData</li>

<li>RunningSample</li>

</ul>

</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=40325">
      Bug
      40325</a> - allow specification of proxyuser and proxypassword for WebServiceSampler</li>

<li>Change HttpClient proxy definition to use NTCredentials; added http.proxyDomain property for this</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=40371">
      Bug
      40371</a> - response assertion "pattern to test" scrollbar problem</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=40589">
      Bug
      40589</a> - Unescape XML entities in embedded URLs</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=41902">
      Bug
      41902</a> - NPE in HTTPSampler when responseCode = -1</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=41903">
      Bug
      41903</a> - ViewResultsFullVisualizer : status column looks bad when you do copy and paste</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=41837">
      Bug
      41837</a> - Parameter value corruption in proxy</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=41905">
      Bug
      41905</a> - Can't cut/paste/select Header Manager fields in Java 1.6</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=41928">
      Bug
      41928</a> - Make all request headers sent by HTTP Request sampler appear in sample result</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=41944">
      Bug
      41944</a> - Subresults not handled recursively by ResultSaver</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=42022">
      Bug
      42022</a> - HTTPSampler does not allow multiple headers of same name</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=42019">
      Bug
      42019</a> - Content type not stored in redirected HTTP request with subresults</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=42057">
      Bug
      42057</a> - connection can be null if method is null</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=41518">
      Bug
      41518</a> - JMeter changes the HTTP header Content Type for POST request</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=42156">
      Bug
      42156</a> - HTTPRequest HTTPClient incorrectly urlencodes parameter value in POST</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=42184">
      Bug
      42184</a> - Number of bytes for subsamples not added to sample when sub samples are added</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=42185">
      Bug
      42185</a> - If a HTTP Sampler follows a redirect, and is set up to download images, then images are downloaded multiple times</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=39808">
      Bug
      39808</a> - Invalid redirect causes incorrect sample time</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=42267">
      Bug
      42267</a> - Concurrent GUI update failure in Proxy Recording</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=30120">
      Bug
      30120</a> - Name of simple controller is resetted if a new simple controller is added as child</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=41078">
      Bug
      41078</a> - merge results in name change of test plan</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=40077">
      Bug
      40077</a> - Creating new Elements copies values from Existing elements</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=42325">
      Bug
      42325</a> - Implement the "clear" method for the LogicControllers</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=25441">
      Bug
      25441</a> - TestPlan changes sometimes detected incorrectly (isDirty)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=39734">
      Bug
      39734</a> - Listeners shared after copy/paste operation</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=40851">
      Bug
      40851</a> - Loop controller with 0 iterations, stops evaluating the iterations field</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=24684">
      Bug
      24684</a> - remote startup problems if spaces in the path of the jmeter</li>

<li>Use Listener configuration when loading CSV data files</li>

<li>Function methods setParameters() need to be synchronized</li>

<li>Fix CLI long optional argument to require "=" (as for short options)</li>

<li>Fix SlowSocket to work properly with Httpclient (both http and https)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=41612">
      Bug
      41612</a> - Loop nested in If Controller behaves erratically</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=42232">
      Bug
      42232</a> - changing language clears UDV contents</li>

<li>Jexl function did not allow variables</li>

</ul>


<h3>Version 2.2</h3>


<h4>Incompatible changes:</h4>

<p>
The time stamp is now set to the sampler start time (it was the end).
To revert to the previous behaviour, change the property <b>sampleresult.timestamp.start</b> to false (or comment it)
</p>

<p>The JMX output format has been simplified and files are not backwards compatible</p>

<p>
The JMeter.BAT file no longer changes directory to JMeter home, but runs from the current working directory.
The jmeter-n.bat and jmeter-t.bat files change to the directory containing the input file.
</p>

<p>
Listeners are now started slightly later in order to allow variable names to be used.
This may cause some problems; if so define the following in jmeter.properties:
<br>
jmeterengine.startlistenerslater=false
</p>


<p>
The GUI now expands the tree by default when loading a test plan.
This can be disabled by setting the JMeter property <b>onload.expandtree=false</b>

</p>


<h4>Known problems:</h4>

<ul>

<li>Post-processors run in reverse order (see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=41140">
      Bug
      41140</a>)</li>

<li>Module Controller does not work in non-GUI mode</li>

<li>Aggregate Report and some other listeners use increasing amounts of memory as a test progresses</li>

<li>Does not always handle non-default encoding properly</li>

<li>Spaces in the installation path cause problems for client-server mode</li>

<li>Change of Language does not propagate to all test elements</li>

<li>SamplingStatCalculator keeps a List of all samples for calculation purposes;
this can cause memory exhaustion in long-running tests</li>

<li>Does not properly handle server certificates if they are expired or not installed locally</li>

</ul>


<h4>New functionality:</h4>

<ul>

<li>Report function</li>

<li>XPath Extractor Post-Processor. Handles single and multiple matches.</li>

<li>Simpler JMX file format (2.2)</li>

<li>BeanshellSampler code can update ResponseData directly</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=37490">
      Bug
      37490</a> - Allow UDV as delay in Duration Assertion</li>

<li>Slow connection emulation for HttpClient</li>

<li>Enhanced JUnitSampler so that by default assert errors and exceptions are not appended to the error message.
Users must explicitly check append in the sampler</li>

<li>Enhanced the documentation for webservice sampler to explain how it works with CSVDataSet</li>

<li>Enhanced the documentation for javascript function to explain escaping comma</li>

<li>Allow CSV Data Set file names to be absolute</li>

<li>Report Tree compiler errors better</li>

<li>Don't reset Regex Extractor variable if default is empty</li>

<li>includecontroller.prefix property added</li>

<li>Regular Expression Extractor sets group count</li>

<li>Can now save entire screen as an image, not just the right-hand pane</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=38901">
      Bug
      38901</a> - Add optional SOAPAction header to SOAP Sampler</li>

<li>New BeanShell test elements: Timer, PreProcessor, PostProcessor, Listener</li>

<li>__split() function now clears next variable, so it can be used with ForEach Controller</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=38682">
      Bug
      38682</a> - add CallableStatement functionality to JDBC Sampler</li>

<li>Make it easier to change the RMI/Server port</li>

<li>Add property jmeter.save.saveservice.xml_pi to provide optional xml processing instruction in JTL files</li>

<li>Add bytes and URL to items that can be saved in sample log files (XML and CSV)</li>

<li>The Post-Processor "Save Responses to a File" now saves the generated file name with the
sample, and the file name can be included in the sample log file.
</li>

<li>Change jmeter.bat DOS script so it works from any directory</li>

<li>New -N option to define nonProxyHosts from command-line</li>

<li>New -S option to define system properties from input file</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=26136">
      Bug
      26136</a> - allow configuration of local address</li>

<li>Expand tree by default when loading a test plan - can be disabled by setting property onload.expandtree=false</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=11843">
      Bug
      11843</a> - URL Rewriter can now cache the session id</li>

<li>Counter Pre-Processor now supports formatted numbers</li>

<li>Add support for HEAD PUT OPTIONS TRACE and DELETE methods</li>

<li>Allow default HTTP implementation to be changed</li>

<li>Optionally save active thread counts (group and all) to result files</li>

<li>Variables/functions can now be used in Listener file names</li>

<li>New __time() function; define START.MS/START.YMD/START.HMS properties and variables</li>

<li>Add Thread Name to Tree and Table Views</li>

<li>Add debug functions: What class, debug on, debug off</li>

<li>Non-caching Calculator - used by Table Visualiser to reduce memory footprint</li>

<li>Summary Report - similar to Aggregate Report, but uses less memory</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=39580">
      Bug
      39580</a> - recycle option for CSV Dataset</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=37652">
      Bug
      37652</a> - support for Ajp Tomcat protocol</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=39626">
      Bug
      39626</a> - Loading SOAP/XML-RPC requests from file</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=39652">
      Bug
      39652</a> - Allow truncation of labels on AxisGraph</li>

<li>Allow use of htmlparser 1.6</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=39656">
      Bug
      39656</a> - always use SOAP action if it is provided</li>

<li>Automatically include properties from user.properties file</li>

<li>Add __jexl() function - evaluates Commons JEXL expressions</li>

<li>Optionally load JMeter properties from user.properties and system properties from system.properties.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=39707">
      Bug
      39707</a> - allow Regex match against URL</li>

<li>Add start time to Table Visualiser</li>

<li>HTTP Samplers can now extract embedded resources for any required media types</li>

</ul>


<h4>Bug fixes:</h4>

<ul>

<li>Fix NPE when no module selected in Module Controller</li>

<li>Fix NPE in XStream when no ResponseData present</li>

<li>Remove ?xml prefix when running with Java 1.5 and no x-jars</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=37117">
      Bug
      37117</a> - setProperty() function should return ""; added optional return of original setting</li>

<li>Fix CSV output time format</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=37140">
      Bug
      37140</a> - handle encoding better in RegexFunction</li>

<li>Load all cookies, not just the first; fix class cast exception</li>

<li>Fix default Cookie path name (remove page name)</li>

<li>Fixed resultcode attribute name</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=36898">
      Bug
      36898</a> - apply encoding to RegexExtractor</li>

<li>Add properties for saving subresults, assertions, latency, samplerData, responseHeaders, requestHeaders &amp; encoding</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=37705">
      Bug
      37705</a> - Synch Timer now works OK after run is stopped</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=37716">
      Bug
      37716</a> - Proxy request now handles file Post correctly</li>

<li>HttpClient Sampler now saves latency</li>

<li>Fix NPE when using JavaScript function on Test Plan</li>

<li>Fix Base Href parsing in htmlparser</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=38256">
      Bug
      38256</a> - handle cookie with no path</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=38391">
      Bug
      38391</a> - use long when accumulating timer delays</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=38554">
      Bug
      38554</a> - Random function now uses long numbers</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=35224">
      Bug
      35224</a> - allow duplicate attributes for LDAP sampler</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=38693">
      Bug
      38693</a> - Webservice sampler can now use https protocol</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=38646">
      Bug
      38646</a> - Regex Extractor now clears old variables on match failure</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=38640">
      Bug
      38640</a> - fix WebService Sampler pooling</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=38474">
      Bug
      38474</a> - HTML Link Parser doesn't follow frame links</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=36430">
      Bug
      36430</a> - Counter now uses long rather than int to increase the range</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=38302">
      Bug
      38302</a> - fix XPath function</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=38748">
      Bug
      38748</a> - JDBC DataSourceElement fails with remote testing</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=38902">
      Bug
      38902</a> - sometimes -1 seems to be returned unnecessarily for response code</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=38840">
      Bug
      38840</a> - make XML Assertion thread-safe</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=38681">
      Bug
      38681</a> - Include controller now works in non-GUI mode</li>

<li>Add write(OS,IS) implementation to TCPClientImpl</li>

<li>Sample Result converter saves response code as "rc". Previously it saved as "rs" but read with "rc"; it will now also read with "rc".
The XSL stylesheets also now accept either "rc" or "rs"</li>

<li>Fix counter function so each counter instance is independent (previously the per-user counters were shared between instances of the function)</li>

<li>Fix TestBean Examples so that they work</li>

<li>Fix JTidy parser so it does not skip body tags with background images</li>

<li>Fix HtmlParser parser so it catches all background images</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=39252">
      Bug
      39252</a> set SoapSampler sample result from XML data</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=38694">
      Bug
      38694</a> - WebServiceSampler not setting data encoding correctly</li>

<li>Result Collector now closes input files read by listeners</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=25505">
      Bug
      25505</a> - First HTTP sampling fails with "HTTPS hostname wrong: should be 'localhost'"</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=25236">
      Bug
      25236</a> - remove double scrollbar from Assertion Result Listener</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=38234">
      Bug
      38234</a> - Graph Listener divide by zero problem</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=38824">
      Bug
      38824</a> - clarify behaviour of Ignore Status</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=38250">
      Bug
      38250</a> - jmeter.properties "language" now supports country suffix, for zh_CN and zh_TW etc</li>

<li>jmeter.properties file is now closed after it has been read</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=39533">
      Bug
      39533</a> - StatCalculator added wrong items</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=39599">
      Bug
      39599</a> - ConcurrentModificationException</li>

<li>HTTPSampler2 now handles Auto and Follow redirects correctly</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=29481">
      Bug
      29481</a> - fix reloading sample results so subresults not counted twice</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=30267">
      Bug
      30267</a> - handle AutoRedirects properly</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=39677">
      Bug
      39677</a> - allow for space in JMETER_BIN variable</li>

<li>Use Commons HttpClient cookie parsing and management. Fix various problems with cookie handling.</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=39773">
      Bug
      39773</a> - NTCredentials needs host name</li>

</ul>


<h4>Other changes</h4>

<ul>

<li>Updated to HTTPClient 3.0 (from 2.0)</li>

<li>Updated to Commons Collections 3.1</li>

<li>Improved formatting of Request Data in Tree View</li>

<li>Expanded user documentation</li>

<li>Added MANIFEST, NOTICE and LICENSE to all jars</li>

<li>Extract htmlparser interface into separate jarfile to make it possible to replace the parser</li>

<li>Removed SQL Config GUI as no longer needed (or working!)</li>

<li>HTTPSampler no longer logs a warning for Page not found (404)</li>

<li>StringFromFile now callable as __StringFromFile (as well as _StringFromFile)</li>

<li>Updated to Commons Logging 1.1</li>

</ul>





<hr>

<h3>Version 2.1.1</h3>

<h4>New functionality:</h4>

<ul>

<li>New Include Controller allows a test plan to reference an external jmx file</li>

<li>New JUnitSampler added for using JUnit Test classes</li>

<li>New Aggregate Graph listener is capable of graphing aggregate statistics</li>

<li>Can provide additional classpath entries using the property user.classpath and on the Test Plan element</li>

</ul>

<h4>Bug fixes:</h4>

<ul>

<li>AccessLog Sampler and JDBC test elements populated correctly from 2.0 test plans</li>

<li>BSF Sampler now populates filename and parameters from saved test plan</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=36500">
      Bug
      36500</a> - handle missing data more gracefully in WebServiceSampler</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=35546">
      Bug
      35546</a> - add merge to right-click menu</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=36642">
      Bug
      36642</a> - Summariser stopped working in 2.1</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=36618">
      Bug
      36618</a> - CSV header line did not match saved data</li>

<li>JMeter should now run under JVM 1.3 (but does not build with 1.3)</li>

</ul>





<h3>Version 2.1</h3>

<h4>New functionality:</h4>

<ul>

<li>New Test Script file format - smaller, more compact, more readable</li>

<li>New Sample Result file format - smaller, more compact</li>

<li>XSchema Assertion</li>

<li>XML Tree display</li>

<li>CSV DataSet Config item</li>

<li>New JDBC Connection Pool Config Element</li>

<li>Synchronisation Timer</li>

<li>setProperty function</li>

<li>Save response data on error</li>

<li>Ant JMeter XSLT now optionally shows failed responses and has internal links</li>

<li>Allow JavaScript variable name to be omitted</li>

<li>Changed following Samplers to set sample label from sampler name</li>

<li>All Test elements can be saved as a graphics image to a file</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=35026">
      Bug
      35026</a> - add RE pattern matching to Proxy</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=34739">
      Bug
      34739</a> - Enhance constant Throughput timer</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=25052">
      Bug
      25052</a> - use response encoding to create comparison string in Response Assertion</li>

<li>New optional icons</li>

<li>Allow icons to be defined via property files</li>

<li>New stylesheets for 2.1 format XML test output</li>

<li>Save samplers, config element and listeners as PNG</li>

<li>Enhanced support for WSDL processing</li>

<li>New JMS sampler for topic and queue messages</li>

<li>How-to for JMS samplers</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=35525">
      Bug
      35525</a> - Added Spanish localisation</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=30379">
      Bug
      30379</a> - allow server.rmi.port to be overridden</li>

<li>enhanced the monitor listener to save the calculated stats</li>

<li>Functions and variables now work at top level of test plan</li>

</ul>

<h4>Bug fixes:</h4>

<ul>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=34586">
      Bug
      34586</a> - XPath always remained as /</li>

<li>BeanShellInterpreter did not handle null objects properly</li>

<li>Fix Chinese resource bundle names</li>

<li>Save field names if required to CSV files</li>

<li>Ensure XML file is closed</li>

<li>Correct icons now displayed for TestBean components</li>

<li>Allow for missing optional jar(s) in creating menus</li>

<li>Changed Samplers to set sample label from sampler name as was the case for HTTP</li>

<li>Fix various samplers to avoid NPEs when incomplete data is provided</li>

<li>Fix Cookie Manager to use seconds; add debug</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=35067">
      Bug
      35067</a> - set up filename when using -t option</li>

<li>Don't substitute TestElement.* properties by UDVs in Proxy</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=35065">
      Bug
      35065</a> - don't save old extensions in File Saver</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=25413">
      Bug
      25413</a> - don't enable Restart button unnecessarily</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=35059">
      Bug
      35059</a> - Runtime Controller stopped working</li>

<li>Clear up any left-over connections created by LDAP Extended Sampler</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=23248">
      Bug
      23248</a> - module controller didn't remember stuff between save and reload</li>

<li>Fix Chinese locales</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=29920">
      Bug
      29920</a> - change default locale if necessary to ensure default properties are picked up when English is selected.</li>

<li>Bug fixes for Tomcat monitor captions</li>

<li>Fixed webservice sampler so it works with user defined variables</li>

<li>Fixed screen borders for LDAP config GUI elements</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=31184">
      Bug
      31184</a> - make sure encoding is specified in JDBC sampler</li>

<li>TCP sampler - only share sockets with same host:port details; correct the manual</li>

<li>Extract src attribute for embed tags in JTidy and Html Parsers</li>

</ul>




<h3>Version 2.0.3</h3>

<h4>New functionality:</h4>

<ul>

<li>XPath Assertion and XPath Function</li>

<li>Switch Controller</li>

<li>ForEach Controller can now loop through sets of groups</li>

<li>Allow CSVRead delimiter to be changed (see jmeter.properties)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=33920">
      Bug
      33920</a> - allow additional property files</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=33845">
      Bug
      33845</a> - allow direct override of Home dir</li>

</ul>

<h4>Bug fixes:</h4>

<ul>

<li>Regex Extractor nested constant not put in correct place <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=32395">
      Bug
      32395</a>
</li>

<li>Start time reset to now if necessary so that delay works OK.</li>

<li>Missing start/end times in scheduler are assumed to be now, not 1970</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=28661">
      Bug
      28661</a> - 304 responses not appearing in listeners</li>

<li>DOS scripts now handle different disks better</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=32345">
      Bug
      32345</a> - HTTP Rewriter does not work with HTTP Request default</li>

<li>Catch Runtime Exceptions so an error in one Listener does not affect others</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=33467">
      Bug
      33467</a> - __threadNum() extracted number wrongly </li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=29186">
      Bug
      29186</a>,33299 - fix CLI parsing of "-" in second argument</li>

<li>Fix CLI parse bug: -D arg1=arg2. Log more startup parameters.</li>

<li>Fix JTidy and HTMLParser parsers to handle form src= and link rel=stylesheet</li>

<li>JMeterThread now logs Errors to jmeter.log which were appearing on console</li>

<li>Ensure WhileController condition is dynamically checked</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=32790">
      Bug
      32790</a> ensure If Controller condition is re-evaluated each time</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=30266">
      Bug
      30266</a> - document how to display proxy recording responses</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=33921">
      Bug
      33921</a> - merge should not change file name</li>

<li>Close file now gives chance to save changes</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=33559">
      Bug
      33559</a> - fixes to Runtime Controller</li>

</ul>

<h4>Other changes:</h4>

<ul>

<li>To help with variable evaluation, JMeterThread sets "sampling started" a bit earlier (see jmeter.properties)</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=33796">
      Bug
      33796</a> - delete cookies with null/empty values</li>

<li>Better checking of parameter count in JavaScript function</li>

<li>Thread Group now defaults to 1 loop instead of forever</li>

<li>All Beanshell access is now via a single class; only need BSH jar at run-time</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=32464">
      Bug
      32464</a> - document Direct Draw settings in jmeter.bat</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=33919">
      Bug
      33919</a> - increase Counter field sizes</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=32252">
      Bug
      32252</a> - ForEach was not initialising counters</li>

</ul>




<h3>Version 2.0.2</h3>

<h4>New functionality:</h4>

<ul>

<li>While Controller</li>

<li>BeanShell initialisation scripts</li>

<li>Result Saver can optionally save failed results only</li>

<li>Display as HTML has option not to download frames and images etc</li>

<li>Multiple Tree elements can now be enabled/disabled/copied/pasted at once</li>

<li>__split() function added</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=28699">
      Bug
      28699</a> allow Assertion to regard unsuccessful responses - e.g. 404 - as successful</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=29075">
      Bug
      29075</a> Regex Extractor can now extract data out of http response header as well as the body</li>

<li>__log() functions can now write to stdout and stderr</li>

<li>URL Modifier can now optionally ignore query parameters</li>

</ul>

<h4>Bug fixes:</h4>

<ul>

<li>If controller now works after the first false condition <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=31390">
      Bug
      31390</a>
</li>

<li>Regex GUI was losing track of Header/Body checkbox <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=29853">
      Bug
      29853</a>
</li>

<li>Display as HTML now handles frames and relative images</li>

<li>Right-click open replaced by merge</li>

<li>Fix some drag and drop problems</li>

<li>Fixed foreach demo example so it works</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=30741">
      Bug
      30741</a> SSL password prompt now works again </li>

<li>StringFromFile now closes files at end of test; start and end now optional as intended</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=31342">
      Bug
      31342</a> Fixed text of SOAP Sampler headers</li>

<li>Proxy must now be stopped before it can be removed <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=25145">
      Bug
      25145</a>
</li>

<li>Link Parser now supports BASE href <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=25490">
      Bug
      25490</a>
</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=30917">
      Bug
      30917</a> Classfinder ignores duplicate names</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=22820">
      Bug
      22820</a> Allow Counter value to be cleared</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=28230">
      Bug
      28230</a> Fix NPE in HTTP Sampler retrieving embedded resources</li>

<li>Improve handling of StopTest; catch and log some more errors</li>

<li>ForEach Controller no longer runs any samples if first variable is not defined</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=28663">
      Bug
      28663</a> NPE in remote JDBC execution</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=30110">
      Bug
      30110</a> Deadlock in stopTest processing</li>

<li>
<a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=31696">
      Bug
      31696</a> Duration not working correctly when using Scheduler</li>

<li>JMeterContext now uses ThreadLocal - should fix some potential NPE errors</li>

</ul>

<h3>Version 2.0.1</h3>

<p>Bug fix release. TBA.</p>

<h3>Version 2.0</h3>

<ul>
    
<li>HTML parsing improved; now has choice of 3 parsers, and most embedded elements can now be detected and downloaded.</li>

<li>Redirects can now be delegated to URLConnection by defining the JMeter property HTTPSamper.delegateRedirects=true (default is false) </li>

<li>Stop Thread and Stop Test methods added for Samplers and Assertions etc. Samplers can call setStopThread(true) or setStopTest(true) if they detect an error that needs to stop the thread of the test after the sample has been processed </li>

<li>Thread Group Gui now has an extra pane to specify what happens after a Sampler error: Continue (as now), Stop Thread or Stop Test.
    This needs to be extended to a lower level at some stage. </li>

<li>Added Shutdown to Run Menu. This is the same as Stop except that it lets the Threads finish normally (i.e. after the next sample has been completed) </li>

<li>Remote samples can be cached until the end of a test by defining the property hold_samples=true when running the server.
More work is needed to be able to control this from the GUI </li>

<li>Proxy server has option to skip recording browser headers </li>

<li>Proxy restart works better (stop waits for daemon to finish) </li>

<li>Scheduler ignores start if it has already passed </li>

<li>Scheduler now has delay function </li>

<li>added Summariser test element (mainly for non-GUI) testing. This prints summary statistics to System.out and/or the log file every so often (3 minutes by default). Multiple summarisers can be used; samples are accumulated by summariser name. </li>

<li>Extra Proxy Server options:
Create all samplers with keep-alive disabled
Add Separator markers between sets of samples
Add Response Assertion to first sampler in each set </li>

<li>Test Plan has a comment field</li>

    
<li>Help Page can now be pushed to background</li>
    
<li>Separate Function help page</li>
    
<li>New / amended functions</li>
    
<ul>
      
<li>__property() and __P() functions</li>
      
<li>__log() and __logn() - for writing to the log file</li>
      
<li>_StringFromFile can now process a sequence of files, e.g. dir/file01.txt, dir/file02.txt etc </li>
      
<li>_StringFromFile() function can now use a variable or function for the file name </li>
    
</ul>
    
<li>New / amended Assertions</li>
    
<ul>
        
<li>Response Assertion now works for URLs, and it handles null data better </li>
        
<li>Response Assertion can now match on Response Code and Response message as well </li>
        
<li>HTML Assertion using JTidy to check for well-formed HTML</li>
    
</ul>
    
<li>If Controller (not fully functional yet)</li>
    
<li>Transaction Controller (aggregates the times of its children)</li>
    
<li>New Samplers</li>
        
<ul>
            
<li>Basic BSF Sampler (optional)</li>
            
<li>BeanShell Sampler (optional, needs to be downloaded from www.beanshell.org</li>
            
<li>Basic TCP Sampler</li>
        
</ul>
     
<li>Optionally start BeanShell server (allows remote access to JMeter variables and methods) </li>

</ul>

<h3>Version 1.9.1</h3>

<p>TBA</p>

<h3>Version 1.9</h3>

<ul>

<li>Sample result log files can now be in CSV or XML format</li>

<li>New Event model for notification of iteration events during test plan run</li>

<li>New Javascript function for executing arbitrary javascript statements</li>

<li>Many GUI improvements</li>

<li>New Pre-processors and Post-processors replace Modifiers and Response-Based Modifiers. </li>

<li>Compatible with jdk1.3</li>

<li>JMeter functions are now fully recursive and universal (can use functions as parameters to functions)</li>

<li>Integrated help window now supports hypertext links</li>

<li>New Random Function</li>

<li>New XML Assertion</li>

<li>New LDAP Sampler (alpha code)</li>

<li>New Ant Task to run JMeter (in extras folder)</li>

<li>New Java Sampler test implementation (to assist developers)</li>

<li>More efficient use of memory, faster loading of .jmx files</li>

<li>New SOAP Sampler (alpha code)</li>

<li>New Median calculation in Graph Results visualizer</li>

<li>Default config element added for developer benefit</li>

<li>Various performance enhancements during test run</li>

<li>New Simple File recorder for minimal GUI overhead during test run</li>

<li>New Function: StringFromFile - grabs values from a file</li>

<li>New Function: CSVRead - grabs multiple values from a file</li>

<li>Functions now longer need to be encoded - special values should be escaped
with "\" if they are literal values</li>

<li>New cut/copy/paste functionality</li>

<li>SSL testing should work with less user-fudging, and in non-gui mode</li>

<li>Mailer Model works in non-gui mode</li>

<li>New Throughput Controller</li>

<li>New Module Controller</li>

<li>Tests can now be scheduled to run from a certain time till a certain time</li>

<li>Remote JMeter servers can be started from a non-gui client.  Also, in gui mode, all remote servers can be started with a single click</li>

<li>ThreadGroups can now be run either serially or in parallel (default)</li>

<li>New command line options to override properties</li>

<li>New Size Assertion</li>


</ul>


<h3>Version 1.8.1</h3>

<ul>

<li>Bug Fix Release.  Many bugs were fixed.</li>

<li>Removed redundant "Root" node from test tree.</li>

<li>Re-introduced Icons in test tree.</li>

<li>Some re-organization of code to improve build process.</li>

<li>View Results Tree has added option to view results as web document (still buggy at this point).</li>

<li>New Total line in Aggregate Listener (still buggy at this point).</li>

<li>Improvements to ability to change JMeter's Locale settings.</li>

<li>Improvements to SSL Manager.</li>

</ul>


<h3>Version 1.8</h3>

<ul>

<li>Improvement to Aggregate report's calculations.</li>

<li>Simplified application logging.</li>

<li>New Duration Assertion.</li>

<li>Fixed and improved Mailer Visualizer.</li>

<li>Improvements to HTTP Sampler's recovery of resources (sockets and file handles).</li>

<li>Improving JMeter's internal handling of test start/stop.</li>

<li>Fixing and adding options to behavior of Interleave and Random Controllers.</li>

<li>New Counter config element.</li>

<li>New User Parameters config element.</li>

<li>Improved performance of file opener.</li>

<li>Functions and other elements can access global variables.</li>

<li>Help system available within JMeter's GUI.</li>

<li>Test Elements can be disabled.</li>

<li>Language/Locale can be changed while running JMeter (mostly).</li>

<li>View Results Tree can be configured to record only errors.</li>

<li>Various bug fixes.</li>

</ul>


<h3>Version 1.7.3</h3>

<ul>

<li>New Functions that provide more ability to change requests dynamically during test runs.</li>

<li>New language translations in Japanese and German.</li>

<li>Removed annoying Log4J error messages.</li>

<li>Improved support for loading JMeter 1.7 version test plan files (.jmx files).</li>

<li>JMeter now supports proxy servers that require username/password authentication.</li>

<li>Dialog box indicating test stopping doesn't hang JMeter on problems with stopping test.</li>

<li>GUI can run multiple remote JMeter servers (fixes GUI bug that prevented this).</li>

<li>Dialog box to help created function calls in GUI.</li>

<li>New Keep-alive switch in HTTP Requests to indicate JMeter should or should not use Keep-Alive for sockets.</li>

<li>HTTP Post requests can have GET style arguments in Path field.  Proxy records them correctly now.</li>

<li>New User-defined test-wide static variables.</li>

<li>View Results Tree now displays more information, including name of request (matching the name
in the test tree) and full request and POST data.</li>

<li>Removed obsolete View Results Visualizer (use View Results Tree instead).</li>

<li>Performance enhancements.</li>

<li>Memory use enhancements.</li>

<li>Graph visualizer GUI improvements.</li>

<li>Updates and fixes to Mailer Visualizer.</li>

</ul>


<h3>Version 1.7.2</h3>

<ul>

<li>JMeter now notifies user when test has stopped running.</li>

<li>HTTP Proxy server records HTTP Requests with re-direct turned off.</li>

<li>HTTP Requests can be instructed to either follow redirects or ignore them.</li>

<li>Various GUI improvements.</li>

<li>New Random Controller.</li>

<li>New SOAP/XML-RPC Sampler.</li>

</ul>


<h3>Version 1.7.1</h3>

<ul>

<li>JMeter's architecture revamped for a more complete separation between GUI code and
test engine code.</li>

<li>Use of Avalon code to save test plans to XML as Configuration Objects</li>

<li>All listeners can save data to file and load same data at later date.</li>

</ul>


<h3>Version 1.7Beta</h3>

<ul>
    
<li>Better XML support for special characters (Tushar Bhatia) </li>
    
<li>Non-GUI functioning  &amp; Non-GUI test plan execution  (Tushar Bhatia)</li>
    
<li>Removing Swing dependence from base JMeter classes</li>
    
<li>Internationalization (Takashi Okamoto)</li>
    
<li>AllTests bug fix (neth6@atozasia.com)</li>
    
<li>ClassFinder bug fix (neth6@atozasia.com)</li>
    
<li>New Loop Controller</li>
    
<li>Proxy Server records HTTP samples from browser
        (and documented in the user manual)</li> 
<li>Multipart Form support</li>
    
<li>HTTP Header class for Header customization</li>
    
<li>Extracting HTTP Header information from responses (Jamie Davidson)</li>
    
<li>Mailer Visualizer re-added to JMeter</li>
    
<li>JMeter now url encodes parameter names and values</li>
    
<li>listeners no longer give exceptions if their gui's haven't been initialized</li>
    
<li>HTTPS and Authorization working together</li>
    
<li>New Http sampling that automatically parses HTML response
        for images to download, and includes the downloading of these
        images in total time for request (Neth neth6@atozasia.com) </li>
    
<li>HTTP responses from server can be parsed for links and forms,
        and dynamic data can be extracted and added to test samples
        at run-time (documented)</li>
    
<li>New Ramp-up feature (Jonathan O'Keefe)</li>
    
<li>New visualizers (Neth)</li>
    
<li>New Assertions for functional testing</li>

</ul>


<h3>Version 1.6.1</h3>

<ul>
    
<li>Fixed saving and loading of test scripts (no more extra lines)</li>
    
<li>Can save and load special characters (such as "&amp;" and "&lt;").</li>
    
<li>Can save and load timers and listeners.</li>
    
<li>Minor bug fix for cookies (if you cookie value
        contained an "=", then it broke).</li>
    
<li>URL's can sample ports other than 80, and can test HTTPS,
        provided you have the necessary jars (JSSE)</li>

</ul>


<h3>Version 1.6 Alpha</h3>

<ul>
    
<li>New UI</li>
    
<li>Separation of GUI and Logic code</li>
    
<li>New Plug-in framework for new modules</li>
    
<li>Enhanced performance</li>
    
<li>Layering of test logic for greater flexibility</li>
    
<li>Added support for saving of test elements</li>
    
<li>Added support for distributed testing using a single client</li>


</ul>

<h3>Version 1.5.1</h3>

<ul>
    
<li>Fixed bug that caused cookies not to be read if header name case not as expected.</li>
    
<li>Clone entries before sending to sampler - prevents relocations from messing up
        information across threads</li>
    
<li>Minor bug fix to convenience dialog for adding parameters to test sample.
        Bug prevented entries in dialog from appearing in test sample.</li>
    
<li>Added xerces.jar to distribution</li>
    
<li>Added junit.jar to distribution and created a few tests.</li>
    
<li>Started work on new framework.  New files in cvs, but do not effect program yet.</li>
    
<li>Fixed bug that prevent HTTPJMeterThread from delaying according to chosen timer.</li>

</ul>

<p>

<h3>Version 1.5</h3>

<ul>
    
<li>Abstracted out the concept of the Sampler, SamplerController, and TestSample.
        A Sampler represents code that understands a protocol (such as HTTP,
        or FTP, RMI,   SMTP, etc..).  It is the code that actually makes the
        connection to whatever is   being tested.   A SamplerController
        represents code that understands how to organize and run a group
        of test samples.  It is what binds together a Sampler and its test
        samples and runs them.   A TestSample represents code that understands
        how to gather information from the   user about a particular test.
        For a website, it would represent a URL and any   information to be sent
        with the URL.</li>
    
<li>The UI has been updated to make entering test samples more convenient.</li>
    
<li>Thread groups have been added, allowing a user to setup multiple test to run
        concurrently, and to allow sharing of test samples between those tests.</li>
    
<li>It is now possible to save and load test samples.</li>
    
<li>&hellip; and many more minor changes/improvements &hellip;</li>

</ul>

</p>

<p>

<b>Apache JMeter 1.4.1-dev</b>

<ul>
   
<li>Cleaned up URLSampler code after tons of patches for better readability. (SM)</li>
   
<li>Made JMeter send a special "user-agent" identifier. (SM)</li>
   
<li>Fixed problems with redirection not sending cookies and authentication info and removed
     a warning with jikes compilation. Thanks to Wesley Tanaka for the patches (SM)</li>
   
<li>Fixed a bug in the URLSampler that caused to skip one URL when testing lists of URLs and
     a problem with Cookie handling. Thanks to Graham Johnson for the patches (SM)</li>
   
<li>Fixed a problem with POST actions. Thanks to Stephen Schaub for the patch (SM)</li>
 
</ul>
 
</p>
 
<p>
 
<b>Apache JMeter 1.4</b> - Jul 11 1999
  <ul>
   
<li>Fixed a problem with POST actions. Thanks to Brendan Burns for the patch (SM)</li>
   
<li>Added close button to the About box for those window managers who don't provide it.
     Thanks to Jan-Henrik Haukeland for pointing it out. (SM)</li>
   
<li>Added the simple Spline sample visualizer (JPN)</li>

</ul> 
</p>
  
<p>
<b>Apache JMeter 1.3</b> - Apr 16 1999
<ul>
   
<li>Run the Garbage Collector and run finalization before starting to sampling to ensure
     same state every time (SM)</li>
   
<li>Fixed some NullPointerExceptions here and there (SM)</li>
   
<li>Added HTTP authentication capabilities (RL)</li>
   
<li>Added windowed sample visualizer (SM)</li>
   
<li>Fixed stupid bug for command line arguments. Thanks to Jorge Bracer for pointing this out (SM)</li>

</ul> 
</p>
  
<p>
<b>Apache JMeter 1.2</b> - Mar 17 1999
<ul>
   
<li>Integrated cookie capabilities with JMeter (SM)</li>
   
<li>Added the Cookie manager and Netscape file parser (SD)</li>
   
<li>Fixed compilation error for JDK 1.1 (SD)</li> 
</ul> 
</p>

<p> 
<b>Apache JMeter 1.1</b> - Feb 24 1999
<ul>
   
<li>Created the opportunity to create URL aliasing from the properties file as well as the
     ability to associate aliases to URL sequences instead of single URLs (SM) Thanks to
     Simon Chatfield for the very nice suggestions
     and code examples.</li>
   
<li>Removed the TextVisualizer and replaced it with the much more useful FileVisualizer (SM)</li>
   
<li>Added the known bug list (SM)</li>
   
<li>Removed the Java Apache logo (SM)</li>
   
<li>Fixed a couple of typos (SM)</li>
   
<li>Added UNIX makefile (SD)</li> 
</ul> 
</p>

<p> 
<b>Apache JMeter 1.0.1</b> - Jan 25 1999
<ul>
   
<li>Removed pending issues doc issues (SM)</li>
   
<li>Fixed the unix script (SM)</li>
   
<li>Added the possibility of running the JAR directly using "java -jar
     ApacheJMeter.jar" with Java 2 (SM)</li>
   
<li>Some small updates: fixed Swing location after Java 2(tm) release, license update and
     small cleanups (SM)</li>

</ul> 
</p>

<p> 
<b>Apache JMeter 1.0</b> - Dec 15 1998
<ul>
   
<li>Initial version. (SM)</li>

</ul> 
</p>

</div>
<div class="share-links">
      Share this page:
      <ul>
<li class="fb">
<a data-social-url="https://facebook.com/sharer/sharer.php?u=" title="Share on facebook"><i class="fa fa-facebook" aria-hidden="true"></i>share</a>
</li>
<li class="twitter">
<a data-social-url="https://twitter.com/intent/tweet?url=" title="Tweet on twitter"><i class="fa fa-twitter" aria-hidden="true"></i>tweet</a>
</li>
</ul>
</div>
<a href="#top" id="topButton">Go to top</a>
</div>
<div class="footer">
<div class="copyright">
            Copyright &copy;
            1999 &ndash;
            2020
            , Apache Software Foundation
          </div>
<div class="trademarks">Apache, Apache JMeter, JMeter, the Apache
            feather, and the Apache JMeter logo are
            trademarks of the
            Apache Software Foundation.
          </div>
</div>
<script>(function(){
            "use strict";
            // enable 'go to top' button functionality
            document.addEventListener('scroll', function() {
                if (document.body.scrollTop > 500 || document.documentElement.scrollTop > 500) {
                    document.getElementById("topButton").style.display = "block";
                } else {
                    document.getElementById("topButton").style.display = "none";
                }
            });
            // fill in the current location into social links on this page.
            var as = document.getElementsByTagName('a');
            var loc = document.location.href;
            if (!loc.toLowerCase().startsWith('http')) {
                return;
            }
            for (var i=0; i<as.length; i++) {
                var href = as[i].getAttribute('data-social-url');
                if (href !== null) {
                    as[i].href = href + encodeURIComponent(loc);
                }
            }
        })();</script>
</body>
</html>
