<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!--
   Licensed to the Apache Software Foundation (ASF) under one or more
   contributor license agreements.  See the NOTICE file distributed with
   this work for additional information regarding copyright ownership.
   The ASF licenses this file to You under the Apache License, Version 2.0
   (the "License"); you may not use this file except in compliance with
   the License.  You may obtain a copy of the License at

       http://www.apache.org/licenses/LICENSE-2.0

   Unless required by applicable law or agreed to in writing, software
   distributed under the License is distributed on an "AS IS" BASIS,
   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   See the License for the specific language governing permissions and
   limitations under the License.
-->

<html>
<head>
<link rel="stylesheet" type="text/css" href="./../docs/css/style.css"/>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta name="author" value="JMeter developers">
<meta name="email" value="dev AT jmeter.apache.org">
<title>Apache JMeter - Changes</title>
</head>
<body bgcolor="#ffffff" text="#000000" link="#525D76">
<table border="0" cellspacing="0">
<tr>
<td align="left">
<a href="http://www.apache.org"><img title="Apache Software Foundation" width="387" height="100" src="./../docs/images/asf-logo.gif" border="0"/></a>
</td>
<td align="right">
<a href="http://jmeter.apache.org/"><img width="221" height="102" src="./../docs/images/logo.jpg" alt="Apache JMeter" title="Apache JMeter" border="0"></a>
</td>
</tr>
</table>
<table border="0" cellspacing="4">
<tr><td>
<hr noshade size="1">
</td></tr>
<tr>
<td align="left" valign="top">
<br>
<table border="0" cellspacing="0" cellpadding="2" width="100%">
<tr><td bgcolor="#525D76">
<font color="#ffffff" face="arial,helvetica,sanserif">
<strong>Changes</strong></font>
</td></tr>
<tr><td>
<blockquote>
<p><table border="1" bgcolor="#bbbb00" width="50%" cellspacing="0" cellpadding="2">
<tr><td>

<b>
This page details the changes made in the current version only.
</b>


<br>


Earlier changes are detailed in the 
<a href="changes_history.html">
History of Previous Changes
</a>
.

</td></tr>
</table></p>
<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.

<p><table border="0" cellspacing="0" cellpadding="0"><tr><td><img width='629' height='497' src="./../docs/images/screenshots/changes/2.7/01_os_process_sampler.png"><br>
<font size="-1"></font></td></tr></table></p>


</p>
<p>
OS Process Sampler results example with DNS lookup command 'dig'

<p><table border="0" cellspacing="0" cellpadding="0"><tr><td><img width='877' height='470' src="./../docs/images/screenshots/changes/2.7/02_os_process_example_results.png"><br>
<font size="-1"></font></td></tr></table></p>


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

<p><table border="0" cellspacing="0" cellpadding="0"><tr><td><img width='953' height='336' src="./../docs/images/screenshots/changes/2.7/11_jms_non_persistent_delivery_mode.png"><br>
<font size="-1"></font></td></tr></table></p>


</p>
<p>
Support sending of JMS Object Messages to enable sending Objects unmarshalled from XML by XStream

<p><table border="0" cellspacing="0" cellpadding="0"><tr><td><img width='808' height='726' src="./../docs/images/screenshots/changes/2.7/12_jms_sending_objects.png"><br>
<font size="-1"></font></td></tr></table></p>


</p>
<p>
Enable setting JMS Properties through JMS Publisher sampler

<p><table border="0" cellspacing="0" cellpadding="0"><tr><td><img width='1029' height='470' src="./../docs/images/screenshots/changes/2.7/13_jms_properties.png"><br>
<font size="-1"></font></td></tr></table></p>


</p>
<h3>
Test Action sampler
</h3>
<p>
Allow premature exit from a loop

<p><table border="0" cellspacing="0" cellpadding="0"><tr><td><img width='862' height='167' src="./../docs/images/screenshots/changes/2.7/07_test_action_next_iter.png"><br>
<font size="-1"></font></td></tr></table></p>


</p>
<h3>
Webservice Sampler improvements
</h3>
<p>
Add a jmeter property soap.document_cache to control size of Document Cache

<p><table border="0" cellspacing="0" cellpadding="0"><tr><td><img width='270' height='59' src="./../docs/images/screenshots/changes/2.7/14_ws_document_cache.png"><br>
<font size="-1"></font></td></tr></table></p>


</p>
<p>
Make Maintain HTTP Session configurable

<p><table border="0" cellspacing="0" cellpadding="0"><tr><td><img width='833' height='505' src="./../docs/images/screenshots/changes/2.7/15_ws_maintain_session.png"><br>
<font size="-1"></font></td></tr></table></p>


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

<p><table border="0" cellspacing="0" cellpadding="0"><tr><td><img width='1177' height='503' src="./../docs/images/screenshots/changes/2.7/03_aggregate_graph_with_new_cols.png"><br>
<font size="-1"></font></td></tr></table></p>


</p>
<p>
New settings for aggregate graph

<p><table border="0" cellspacing="0" cellpadding="0"><tr><td><img width='1173' height='433' src="./../docs/images/screenshots/changes/2.7/04_aggregate_graph_parameters.png"><br>
<font size="-1"></font></td></tr></table></p>


</p>
<h3>
Improvements of HTML report design generated by JMeter Ant task in extras folder
</h3>
<p>
HTML report example 

<p><table border="0" cellspacing="0" cellpadding="0"><tr><td><img width='1264' height='506' src="./../docs/images/screenshots/changes/2.7/05_jmeter_ant_task_report_success.png"><br>
<font size="-1"></font></td></tr></table></p>


</p>
<p>
HTML report example with some assertion errors

<p><table border="0" cellspacing="0" cellpadding="0"><tr><td><img width='1267' height='550' src="./../docs/images/screenshots/changes/2.7/06_jmeter_ant_task_report_errors.png"><br>
<font size="-1"></font></td></tr></table></p>


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


<p><table border="0" cellspacing="0" cellpadding="0"><tr><td><img width='860' height='403' src="./../docs/images/screenshots/changes/2.7/10_mailer_visualizer_gui.png"><br>
<font size="-1"></font></td></tr></table></p>


</p>
<h3>
New Visual Indicator of number of ERROR/FATAL messages in logs
</h3>
<p>
Indicator shows number of ERROR/FATAL messsages in logs, it can be clicked to toggle Log Viewer panel

<p><table border="0" cellspacing="0" cellpadding="0"><tr><td><img width='815' height='633' src="./../docs/images/screenshots/changes/2.7/16_log_errors_counter.png"><br>
<font size="-1"></font></td></tr></table></p>


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

<p><table border="0" cellspacing="0" cellpadding="0"><tr><td><img width='824' height='165' src="./../docs/images/screenshots/changes/2.7/08_param_button_detail.png"><br>
<font size="-1"></font></td></tr></table></p>


</p>
<p>
Detail box example

<p><table border="0" cellspacing="0" cellpadding="0"><tr><td><img width='702' height='454' src="./../docs/images/screenshots/changes/2.7/09_detail_box.png"><br>
<font size="-1"></font></td></tr></table></p>


</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 Bug 53042):
<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 Bug 52674):
<br>

 

<pre>
public String[] getManagedContentTypes();
</pre>


<pre>
public HTTPSamplerBase createSampler(HttpRequestHdr request, Map<String, String> pageEncodings, Map<String, String> formEncodings);
</pre>


<pre>
public void populateSampler(HTTPSamplerBase sampler, HttpRequestHdr request, Map<String, String> pageEncodings, Map<String, String> 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 Bug 52496).  
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>
Bug 52613 - Using Raw Post Body option, text gets encoded
</li>


<li>
Bug 52781 - Content-Disposition header garbled even if browser compatible headers is checked (HC4) 
</li>


<li>
Bug 52796 - MonitorHandler fails to clear variables when starting a new parse
</li>


<li>
Bug 52871 - Multiple Certificates not working with HTTP Client 4
</li>


<li>
Bug 52885 - Proxy : Recording issues with HTTPS, cookies starting with secure are partly truncated
</li>


<li>
Bug 52886 - Proxy : Recording issues with HTTPS when spoofing is on, secure cookies are not always changed
</li>


<li>
Bug 52897 - HTTPSampler : Using PUT method with HTTPClient4 and empty Content Encoding and sending files leads to NullPointerException
</li>


<li>
Bug 53145 - HTTP Sampler - function in path evaluated too early
</li>


</ul>
<h3>
Other Samplers
</h3>
<ul>


<li>
Bug 51737 - TCPSampler : Packet gets converted/corrupted
</li>


<li>
Bug 52868 - BSF language list should be sorted
</li>


<li>
Bug 52869 - JSR223 language list currently uses BSF list which is wrong
</li>


<li>
Bug 52932 - JDBC Sampler : Sampler is not marked in error in an Exception which is not of class IOException, SQLException, IOException occurs
</li>


<li>
Bug 52916 - JDBC Exception if there is an empty user defined variable
</li>


<li>
Bug 52937 - Webservice Sampler : Clear Soap Documents Cache at end of Test 
</li>


<li>
Bug 53027 - Jmeter starts throwing exceptions while using SMTP Sample in a test plan with HTTP Cookie Mngr or HTTP Request Defaults
</li>


<li>
Bug 53072 - JDBC PREPARED SELECT statements should return results in variables like non prepared SELECT
</li>


</ul>
<h3>
Controllers
</h3>
<ul>


<li>
Bug 52968 - Option Start Next Loop in Thread Group does not mark parent Transaction Sampler in error when an error occurs
</li>


<li>
Bug 50898 - IncludeController : NullPointerException loading script in non-GUI mode if Includers use same element name
</li>


</ul>
<h3>
Listeners
</h3>
<ul>


<li>
Bug 43450 - Listeners/Savers assume SampleResult count is always 1; fixed Generate Summary Results
</li>


</ul>
<h3>
Assertions
</h3>
<ul>


<li>
Bug 52848 - NullPointer in "XPath Assertion"
</li>


</ul>
<h3>
Functions
</h3>
<ul>


</ul>
<h3>
I18N
</h3>
<ul>


<li>
Bug 52551 - Function Helper Dialog does not switch language correctly
</li>


<li>
Bug 52552 - Help reference only works in English
</li>


</ul>
<h3>
General
</h3>
<ul>


<li>
Bug 52639 - JSplitPane divider for log panel should be hidden if log is not activated
</li>


<li>
Bug 52672 - Change Controller action deletes all but one child samplers
</li>


<li>
Bug 52694 - Deadlock in GUI related to non AWT Threads updating GUI
</li>


<li>
Bug 52678 - Proxy : When doing replacement of UserDefinedVariables, partial values should not be substituted
</li>


<li>
Bug 52728 - CSV Data Set Config element cannot coexist with BSF Sampler in same Thread Plan
</li>


<li>
Bug 52762 - Problem with multiples certificates: first index not used until indexes are restarted
</li>


<li>
Bug 52741 - TestBeanGUI default values do not work at second time or later
</li>


<li>
Bug 52783 - oro.patterncache.size property never used due to early init
</li>


<li>
Bug 52789 - Proxy with Regexp Matching can fail with NullPointerException in Value Replacement if value is null
</li>


<li>
Bug 52645 - Recording with Proxy leads to OutOfMemory
</li>


<li>
Bug 52679 - User Parameters columns narrow
</li>


<li>
Bug 52843 - Sample headerSize and bodySize not being accumulated for subsamples
</li>


<li>
Bug 52967 - The function __P() couldn't use default value when running with remote server in GUI mode.
</li>


<li>
Bug 50799 - Having a non-HTTP sampler in a http test plan prevents multiple header managers from working
</li>


<li>
Bug 52997 - Jmeter should not exit without saving Test Plan if saving before exit fails
</li>


<li>
Bug 53136 - Catching Throwable needs to be carefully handled
</li>


</ul>
<h2>
Improvements
</h2>
<h3>
HTTP Samplers
</h3>
<ul>


</ul>
<h3>
Other samplers
</h3>
<ul>


<li>
Bug 52775 - JMS Publisher : Add Non Persistent Delivery option
</li>


<li>
Bug 52810 - Enable setting JMS Properties through JMS Publisher sampler
</li>


<li>
Bug 52938 - Webservice Sampler : Add a jmeter property soap.document_cache to control size of Document Cache
</li>


<li>
Bug 52939 - Webservice Sampler : Make MaintainSession configurable
</li>


<li>
Bug 53073 - Allow to assign the OUT result of a JDBC CALLABLE to JMeter variables
</li>


<li>
Bug 53164 - New System Sampler
</li>


<li>
Bug 53172 - OS Process Sampler - allow specification of Environment Variables
</li>


<li>
Bug 52936 - JMS Publisher : Support sending of JMS Object Messages
</li>


</ul>
<h3>
Controllers
</h3>
<ul>


</ul>
<h3>
Listeners
</h3>
<ul>


<li>
Bug 52603 - MailerVisualizer : Enable SSL , TLS and Authentication
</li>


<li>
Bug 52698 - Remove Graph Full Results Listener
</li>


<li>
Bug 53070 - Change Aggregate graph to Clustered Bar chart, add more columns (median, 90% line, min, max) and options, fixed some bugs
</li>


<li>
Bug 53246 - Mailer Visualizer: improve GUI design and I18N
</li>


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


</ul>
<h3>
Functions
</h3>
<ul>


</ul>
<h3>
I18N
</h3>
<ul>


<li>
Mailer Visualizer has been internationalized. French translation added. (see Bug 53246)
</li>


</ul>
<h3>
General
</h3>
<ul>


<li>
Bug 45839 - Test Action : Allow premature exit from a loop
</li>


<li>
Bug 52614 - MailerModel.sendMail has strange way to calculate debug setting
</li>


<li>
Bug 52782 - Add a detail button on parameters table to show detail of a Row
</li>


<li>
Bug 52674 - Proxy : Add a Sampler Creator to allow plugging HTTP based samplers using potentially non textual POST Body (AMF, Silverlight...) and customizing them for others
</li>


<li>
Bug 52934 - GUI : Open Test plan with the tree expanded to the testplan level and no further and select the root of the tree
</li>


<li>
Bug 52941 - Improvements of HTML report design generated by JMeter Ant task extra
</li>


<li>
Bug 53042 - Introduce a new method in Sampler interface to allow Sampler to decide wether a config element applies to Sampler
</li>


<li>
Bug 52771 - Documentation : Added RSS feed on JMeter Home page under link "Subscribe to What's New"
</li>


<li>
Bug 42784 - Show the number of errors logged in the GUI
</li>


<li>
Bug 53256 - Make Clear All command clean LogViewer content
</li>


<li>
Bug 53261 - Make "Error/fatal" counter added in Bug 42784 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>
Bug 52675 - Refactor Proxy and HttpRequestHdr to allow Sampler Creation by Proxy
</li>


<li>
Bug 52680 - Mention version in which function was introduced
</li>


<li>
Bug 52788 - 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>
Bug 53129 - 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>
</blockquote>
</p>
</td></tr>
<tr><td><br></td></tr>
</table>
<br>
</td>
</tr>
<tr><td>
<hr noshade size="1">
</td></tr>
<tr>
<td>
<table width=100%>
<tr>
<td align="center">
<font color="#525D76" size="-1"><em>
Copyright &copy; 1999-2012, Apache Software Foundation
</em></font>
</td>
</tr>
<tr><td colspan="2">
<div align="center"><font color="#525D76" size="-1">
Apache, Apache JMeter, JMeter, the Apache feather, and the Apache JMeter logo are
trademarks of the Apache Software Foundation.
</font>
</div>
</td></tr>
</table>
</td>
</tr>
</table>
</body>
</html>






























