jmeter/xdocs/changes.xml

247 lines
13 KiB
XML
Raw Normal View History

<?xml version="1.0"?>
<!--
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.
-->
<document>
<properties>
<author email="jmeter-dev AT jakarta.apache.org">JMeter developers</author>
<title>Changes</title>
</properties>
<body>
<section name="Changes">
<note>
<b>This page details the changes made in the current version only.</b>
<br></br>
Earlier changes are detailed in the <a href="changes_history.html">History of Previous Changes</a>.
</note>
<!-- =================== -->
<h2>Version 2.3.3</h2>
<h3>Summary of main changes</h3>
<h4>Bug fixes</h4>
<p>
<ul>
</ul>
</p>
<h4>Improvements</h4>
<p>
<ul>
</ul>
</p>
<!-- ========================= End of summary ===================================== -->
<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>
<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 Run/Clear (Ctrl+Shift+E) or Run/Clear All (Ctrl+E) 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 "CookieManager.save.cookies=true".
Also, cookies names are prefixed with "COOKIE_" before they are stored (this avoids accidental corruption of local variables)
To revert to the original behaviour, define the property "CookieManager.name.prefix= " (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 3rd 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 LAST, 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>
<h3>Bug fixes</h3>
<ul>
<li>Bug 45199 - don't try to replace blank variables in Proxy recording</li>
<li>The "prev" and "sampler" objects are now defined for BSF test elements</li>
<li>Prompt to overwrite an existing file when first saving a new test plan</li>
<li>The test element "Save Results to a file" is now shown as a Listener</li>
<li>Amend TestBeans to show the correct popup menu for Listeners</li>
<li>Fix NPE when using nested Transaction Controllers with parent samples</li>
<li>Bug 45185 - CSV dataset blank delimiter causes OOM</li>
<li>Bug 43791 - ensure QueueReceiver is closed</li>
<li>Fix NPE (in DataSourceElement) when using JDBC in client-server mode</li>
<li>Bug 45749 - Response Assertion does not work with a substring that is not a valid RE</li>
<li>Mailer Visualizer documentation now agrees with code i.e. failure/success counts need to be exceeded.</li>
<li>Mailer Visualizer now shows the failure count</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>HTTPSamplers can now use variables in POSTed file names</li>
<li>Bug 45831 - WS Sampler reports incorrect throughput if SOAP packet creation fails</li>
<li>Bug 45887 - TCPSampler: timeout property incorrectly set</li>
<li>Bug 45928 - AJP/1.3 Sampler doesn't retrieve his label from messages.properties</li>
<li>Bug 45904 - Allow 'Not' Response Assertion to succeed with null sample</li>
<li>HTTP, SOAP/XML-RPC and WebService(SOAP) sampler character encodings updated to be more consistent</li>
<li>Bug 45976 - 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>Bug 45425 - JDBC Request does not support Unicode (changed sampler to use UTF-8)</li>
<li>Bug 46016 - avoid possible NPE in JMSSampler</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>Bug 41608 - misleading warning log message removed</li>
<li>CSVSaveService - check for EOF while reading quoted string</li>
<li>Bug 46142 - JMS Receiver now uses MessageID</li>
<li>Bug 46148 - HTTP sampler fails on SSL requests when logging for jmeter.util is set to DEBUG</li>
<li>TCP sampler now calls setupTest() and teardownTest() methods</li>
<li>Bug 45458 - Point to Point JMS in combination with authentication</li>
<li>Bug 45460 - JMS TestPlan elements depend on resource property</li>
<li>Bug 34096 - Duplicate samples not eliminated when writing to CSV files</li>
<li>Bug 44521 - empty variables for a POST in the HTTP Request don't get ignored</li>
<li>Bug 44941 - Throughput controllers should not share global counters</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>Add HeaderAsPropertyRenderer to support header resource names; use this to fix locale changes in various GUI elements</li>
<li>Fixed language change handling for menus (does not yet work for TestBeans)</li>
<li>Fix regex function - was failing to process $m$mid$n$ correctly</li>
<li>Fix Java 1.6 https error: java.net.SocketException: Unconnected sockets not implemented</li>
<li>Bug 46359 - BSF JavaScript Preprocessor cannot access sampler variable on first interation (Implement temporary work-round for BSF-22)</li>
<li>Bug 46332 - HTTP Cookie Manager ignores manually defined cookies (bug introduced in r707810)</li>
<li>Bug 46407 - BSF elements do not load script files, attempt to interpret filename as script</li>
<li>Bug 46423 - I18N of Proxy Recorder</li>
<li>Better handling of Exceptions during test shutdown</li>
<li>Protect against possible NPE in RegexFunction if called during test shutdown.</li>
<li>Correct the variable name "theadName" to "threadName" in the __jexl() and __javaScript() functions</li>
<li>Bug 46522 - Incorrect "Response data" in JDBC sample when column names are missing</li>
<li>Bug 46424 - corrections to French translation</li>
<li>Bug 46436 - Improve error reporting in Proxy Gui</li>
<li>Fix potential thread safety issue in JMeterThread class</li>
<li>Mailer Visualiser - fix parsing of multiple e-mail address when using Test button</li>
<li>Bug 46435 - More verbose error msg for error 501 (Proxy Server)</li>
<li>Bug 46491 - Incorrect value for the last variable in "CSV Data Set Config" (error in processing quoted strings)</li>
<li>The JMeter variable "sample_variables" is sent to all server instances to ensure the data is available to the client.</li>
<li>Bug 46821 - JDBC select request doesn't store the first column in the variables</li>
<li>Fix bug in HTTP file: handling - read bytes, not characters in the default encoding.</li>
<li>Change HTTPS spoofing so https: links are replaced even when URL match fails</li>
<li>Check validity of cookies before storing them.</li>
<li>FTP Sampler now logs out before disconnecting.</li>
<li>Bug 46838 - if there was no data, still need to set latency in HTTPSampler</li>
</ul>
<h3>Improvements</h3>
<ul>
<li>LDAP result data now formatted with line breaks</li>
<li>Add OUT and log variables to __jexl() function</li>
<li>Add log variable to the __javaScript() function</li>
<li>Save Responses to a file can save the generated filename(s) to variables.</li>
<li>Add BSF Listener element</li>
<li>Bug 45200 - MailReaderSampler: store the whole MIME message in the SamplerResult</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>Add Body (unescaped) source option to Regular Expression Extractor.</li>
<li>Added __unescapeHtml() function: decodes Html-encoded text.</li>
<li>Added __escapeHtml() function: encodes text using Html-encoding.</li>
<li>Allow spaces in JMeter path names (apply work-round for Java bug 4496398)</li>
<li>Bug 45694 - Support GZIP compressed logs</li>
<li>Random Variable - new configuration element to create random numeric variables</li>
<li>Bug 45929 - improved French translations</li>
<li>Bug 45571 - JMS Sampler correlation enhancement</li>
<li>Bug 45479 - Support for multiple HTTP Header Manager nodes</li>
<li>Bug 43119 - Save Responses to file: optionally omit the file number</li>
<li>Allow If Controller to use variable expressions (not just Javascript)</li>
<li>Bug 45903 - allow Assertions to apply to sub-samples</li>
<li>Trim spaces from While Controller condition before comparing against LAST, blank or false</li>
<li>Add classname field to TCP Sampler GUIs</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>Use Script to evaluate __jexl() function so can have multiple statements.</li>
<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>Bug 46030 - Extend TCP Sampler to Support Length-Prefixed Binary Data</li>
<li>Process JVM_ARGS last so users can override default settings</li>
<li>Read XML JTL files more efficiently - pass samples to visualisers as they are read, rather than saving them all and then processing them</li>
<li>Added locales.add property to allow for new Locales</li>
<li>Bug 40045 - Allow Results monitor to select a specific connector</li>
<li>Bug 46636 - rmi ports</li>
</ul>
<h3>Non-functional changes</h3>
<ul>
<li>Introduce AbstractListenerGui class to make it easier to create Listeners with no visual output</li>
<li>Assertions 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>
</ul>
</section>
</body>
</document>