History of Changes
Changes are chronologically ordered from top (most recent) to bottom (least recent) Changes: for more info, contact Michael Stover ### Version 2.1.1 #### New functionality: New Include Controller allows a test plan to reference an external jmx file New JUnitSampler added for using JUnit Test classes New Aggregate Graph listener is capable of graphing aggregate statistics Can provide additional classpath entries using the property user.classpath and on the Test Plan element #### Bug fixes: AccessLog Sampler and JDBC test elements populated correctly from 2.0 test plans BSF Sampler now populates filename and parameters from saved test plan Bug 36500 - handle missing data more gracefully in WebServiceSampler Bug 35546 - add merge to right-click menu Bug 36642 - Summariser stopped working in 2.1 Bug 36618 - CSV header line did not match saved data JMeter should now run under JVM 1.3 (but does not build with 1.3) ### Version 2.1 #### New functionality: New Test Script file format - smaller, more compact, more readable New Sample Result file format - smaller, more compact XSchema Assertion XML Tree display CSV DataSet Config item New JDBC Connection Pool Config Element Synchronisation Timer setProperty function Save response data on error Ant JMeter XSLT now optionally shows failed responses and has internal links Allow JavaScript variable name to be omitted Changed following Samplers to set sample label from sampler name All Test elements can be saved as a graphics image to a file Bug 35026 - add RE pattern matching to Proxy Bug 34739 - Enhance constant Throughput timer Bug 25052 - use response encoding to create comparison string in Response Assertion New optional icons Allow icons to be defined via property files New stylesheets for 2.1 format XML test output Save samplers, config element and listeners as PNG Enhanced support for WSDL processing New JMS sampler for topic and queue messages How-to for JMS samplers Bug 35525 - Added Spanish localisation Bug 30379 - allow server.rmi.port to be overridden enhanced the monitor listener to save the calculated stats Functions and variables now work at top level of test plan #### Bug fixes: Bug 34586 - XPath always remained as / BeanShellInterpreter did not handle null objects properly Fix Chinese resource bundle names Save field names if required to CSV files Ensure XML file is closed Correct icons now displayed for TestBean components Allow for missing optional jar(s) in creating menus Changed Samplers to set sample label from sampler name as was the case for HTTP Fix various samplers to avoid NPEs when incomplete data is provided Fix Cookie Manager to use seconds; add debug Bug 35067 - set up filename when using -t option Don't substitute TestElement.* properties by UDVs in Proxy Bug 35065 - don't save old extensions in File Saver Bug 25413 - don't enable Restart button unnecessarily Bug 35059 - Runtime Controller stopped working Clear up any left-over connections created by LDAP Extended Sampler Bug 23248 - module controller didn't remember stuff between save and reload Fix Chinese locales Bug 29920 - change default locale if necessary to ensure default properties are picked up when English is selected. Bug fixes for Tomcat monitor captions Fixed webservice sampler so it works with user defined variables Fixed screen borders for LDAP config GUI elements Bug 31184 - make sure encoding is specified in JDBC sampler TCP sampler - only share sockets with same host:port details; correct the manual Extract src attribute for embed tags in JTidy and Html Parsers ### Version 2.0.3 #### New functionality: XPath Assertion and XPath Function Switch Controller ForEach Controller can now loop through sets of groups Allow CSVRead delimiter to be changed (see jmeter.properties) Bug 33920 - allow additional property files Bug 33845 - allow direct override of Home dir #### Bug fixes: Regex Extractor nested constant not put in correct place (32395) Start time reset to now if necessary so that delay works OK. Missing start/end times in scheduler are assumed to be now, not 1970 Bug 28661 - 304 responses not appearing in listeners DOS scripts now handle different disks better Bug 32345 - HTTP Rewriter does not work with HTTP Request default Catch Runtime Exceptions so an error in one Listener does not affect others Bug 33467 - __threadNum() extracted number wrongly Bug 29186,33299 - fix CLI parsing of "-" in second argument Fix CLI parse bug: -D arg1=arg2. Log more startup parameters. Fix JTidy and HTMLParser parsers to handle form src= and link rel=stylesheet JMeterThread now logs Errors to jmeter.log which were appearing on console Ensure WhileController condition is dynamically checked Bug 32790 ensure If Controller condition is re-evaluated each time Bug 30266 - document how to display proxy recording responses Bug 33921 - merge should not change file name Close file now gives chance to save changes Bug 33559 - fixes to Runtime Controller #### Other changes: To help with variable evaluation, JMeterThread sets "sampling started" a bit earlier (see jmeter.properties) Bug 33796 - delete cookies with null/empty values Better checking of parameter count in JavaScript function Thread Group now defaults to 1 loop instead of forever All Beanshell access is now via a single class; only need BSH jar at run-time Bug 32464 - document Direct Draw settings in jmeter.bat Bug 33919 - increase Counter field sizes Bug 32252 - ForEach was not initialising counters ### Version 2.0.2 #### New functionality: While Controller BeanShell intilisation scripts Result Saver can optionally save failed results only Display as HTML has option not to download frames and images etc Multiple Tree elements can now be enabled/disabled/copied/pasted at once __split() function added (28699) allow Assertion to regard unsuccessful responses - e.g. 404 - as successful (29075) Regex Extractor can now extract data out of http response header as well as the body __log() functions can now write to stdout and stderr URL Modifier can now optionally ignore query parameters #### Bug fixes: If controller now works after the first false condition (31390) Regex GUI was losing track of Header/Body checkbox (29853) Display as HTML now handles frames and relative images Right-click open replaced by merge Fix some drag and drop problems Fixed foreach demo example so it works (30741) SSL password prompt now works again StringFromFile now closes files at end of test; start and end now optional as intended (31342) Fixed text of SOAP Sampler headers Proxy must now be stopped before it can be removed (25145) Link Parser now supports BASE href (25490) (30917) Classfinder ignores duplicate names (22820) Allow Counter value to be cleared (28230) Fix NPE in HTTP Sampler retrieving embedded resources Improve handling of StopTest; catch and log some more errors ForEach Controller no longer runs any samples if first variable is not defined (28663) NPE in remote JDBC execution (30110) Deadlock in stopTest processing (31696) Duration not working correctly when using Scheduler JMeterContext now uses ThreadLocal - should fix some potential NPE errors ### Version 2.0.1 Bug fix release. TBA. ### Version 2.0 HTML parsing improved; now has choice of 3 parsers, and most embedded elements can now be detected and downloaded. Redirects can now be delegated to URLConnection by defining the JMeter property HTTPSamper.delegateRedirects=true (default is false) 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 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. 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) 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 Proxy server has option to skip recording browser headers Proxy restart works better (stop waits for daemon to finish) Scheduler ignores start if it has already passed Scheduler now has delay function added Summariser test element (mainly for non-GUI) testing. This prints summary statistics to System.out and/or the log file every so oftem (3 minutes by default). Multiple summarisers can be used; samples are accumulated by summariser name. 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 Test Plan has a comment field Help Page can now be pushed to background Separate Function help page New / amended functions __property() and __P() functions __log() and __logn() - for writing to the log file _StringFromFile can now process a sequence of files, e.g. dir/file01.txt, dir/file02.txt etc _StringFromFile() funtion can now use a variable or function for the file name New / amended Assertions Response Assertion now works for URLs, and it handles null data better Response Assertion can now match on Response Code and Response message as well HTML Assertion using JTidy to check for well-formed HTML If Controller (not fully functional yet) Transaction Controller (aggregates the times of its children) New Samplers Basic BSF Sampler (optional) BeanShell Sampler (optional, needs to be downloaded from www.beanshell.org Basic TCP Sampler Optionally start BeanShell server (allows remote access to JMeter variables and methods) ### Version 1.9.1 TBA ### Version 1.9 Sample result log files can now be in CSV or XML format New Event model for notification of iteration events during test plan run New Javascript function for executing arbitrary javascript statements Many GUI improvements New Pre-processors and Post-processors replace Modifiers and Response-Based Modifiers. Compatible with jdk1.3 JMeter functions are now fully recursive and universal (can use functions as parameters to functions) Integrated help window now supports hypertext links New Random Function New XML Assertion New LDAP Sampler (alpha code) New Ant Task to run JMeter (in extras folder) New Java Sampler test implementation (to assist developers) More efficient use of memory, faster loading of .jmx files New SOAP Sampler (alpha code) New Median calculation in Graph Results visualizer Default config element added for developer benefit Various performance enhancements during test run New Simple File recorder for minimal GUI overhead during test run New Function: StringFromFile - grabs values from a file New Function: CSVRead - grabs multiple values from a file Functions now longer need to be encoded - special values should be escaped with "\" if they are literal values New cut/copy/paste functionality SSL testing should work with less user-fudging, and in non-gui mode Mailer Model works in non-gui mode New Througput Controller New Module Controller Tests can now be scheduled to run from a certain time till a certain time 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 ThreadGroups can now be run either serially or in parallel (default) New command line options to override properties New Size Assertion ### Version 1.8.1 Bug Fix Release. Many bugs were fixed. Removed redundant "Root" node from test tree. Re-introduced Icons in test tree. Some re-organization of code to improve build process. View Results Tree has added option to view results as web document (still buggy at this point). New Total line in Aggregate Listener (still buggy at this point). Improvements to ability to change JMeter's Locale settings. Improvements to SSL Manager. ### Version 1.8 Improvement to Aggregate report's calculations. Simplified application logging. New Duration Assertion. Fixed and improved Mailer Visualizer. Improvements to HTTP Sampler's recovery of resources (sockets and file handles). Improving JMeter's internal handling of test start/stop. Fixing and adding options to behavior of Interleave and Random Controllers. New Counter config element. New User Parameters config element. Improved performance of file opener. Functions and other elements can access global variables. Help system available within JMeter's GUI. Test Elements can be disabled. Language/Locale can be changed while running JMeter (mostly). View Results Tree can be configured to record only errors. Various bug fixes. Changes: for more info, contact Michael Stover ### Version 1.7.3 New Functions that provide more ability to change requests dynamically during test runs. New language translations in Japanese and German. Removed annoying Log4J error messages. Improved support for loading JMeter 1.7 version test plan files (.jmx files). JMeter now supports proxy servers that require username/password authentication. Dialog box indicating test stopping doesn't hang JMeter on problems with stopping test. GUI can run multiple remote JMeter servers (fixes GUI bug that prevented this). Dialog box to help created function calls in GUI. New Keep-alive switch in HTTP Requests to indicate JMeter should or should not use Keep-Alive for sockets. HTTP Post requests can have GET style arguments in Path field. Proxy records them correctly now. New User-defined test-wide static variables. View Results Tree now displays more information, including name of request (matching the name in the test tree) and full request and POST data. Removed obsolete View Results Visualizer (use View Results Tree instead). Performance enhancements. Memory use enhancements. Graph visualizer GUI improvements. Updates and fixes to Mailer Visualizer. ### Version 1.7.2 JMeter now notifies user when test has stopped running. HTTP Proxy server records HTTP Requests with re-direct turned off. HTTP Requests can be instructed to either follow redirects or ignore them. Various GUI improvements. New Random Controller. New SOAP/XML-RPC Sampler. ### Version 1.7.1 JMeter's architecture revamped for a more complete separation between GUI code and test engine code. Use of Avalon code to save test plans to XML as Configuration Objects All listeners can save data to file and load same data at later date. ### Version 1.7Beta Better XML support for special characters (Tushar Bhatia) Non-GUI functioning & Non-GUI test plan execution (Tushar Bhatia) Removing Swing dependence from base JMeter classes Internationalization (Takashi Okamoto) AllTests bug fix (neth6@atozasia.com) ClassFinder bug fix (neth6@atozasia.com) New Loop Controller Proxy Server records HTTP samples from browser (and documented in the user manual) Multipart Form support HTTP Header class for Header customization Extracting HTTP Header information from responses (Jamie Davidson) Mailer Visualizer re-added to JMeter JMeter now url encodes parameter names and values listeners no longer give exceptions if their gui's haven't been initialized HTTPS and Authorization working together 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) 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) New Ramp-up feature (Jonathan O'Keefe) New visualizers (Neth) New Assertions for functional testing ### Version 1.6.1 Fixed saving and loading of test scripts (no more extra lines) Can save and load special characters (such as "&" and "<"). Can save and load timers and listeners. Minor bug fix for cookies (if you cookie value contained an "=", then it broke). URL's can sample ports other than 80, and can test HTTPS, provided you have the necessary jars (JSSE) ### Version 1.6 Alpha New UI Separation of GUI and Logic code New Plug-in framework for new modules Enhanced performance Layering of test logic for greater flexibility Added support for saving of test elements Added support for distributed testing using a single client ### Version 1.5.1 Fixed bug that caused cookies not to be read if header name case not as expected. Clone entries before sending to sampler - prevents relocations from messing up information across threads Minor bug fix to convenience dialog for adding paramters to test sample. Bug prevented entries in dialog from appearing in test sample. Added xerces.jar to distribution Added junit.jar to distribution and created a few tests. Started work on new framework. New files in cvs, but do not effect program yet. Fixed bug that prevent HTTPJMeterThread from delaying according to chosen timer. ### Version 1.5 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 it's 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. The UI has been updated to make entering test samples more convenient. 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. It is now possible to save and load test samples. ....and many more minor changes/improvements... Apache JMeter 1.4.1-dev ( Stefano Mazzocchi ) Cleaned up URLSampler code after tons of patches for better readability. (SM) Made JMeter send a special "user-agent" identifier. (SM) 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) 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) Fixed a problem with POST actions. Thanks to Stephen Schaub for the patch (SM) Apache JMeter 1.4 - Jul 11 1999 ( Jean-Pierre Norguet , Stefano Mazzocchi ) Fixed a problem with POST actions. Thanks to Brendan Burns for the patch (SM) 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) Added the simple Spline sample visualizer (JPN) Apache JMeter 1.3 - Apr 16 1999 ( Stefano Mazzocchi , Raphaël Luta ) Run the Garbage Collector and run finalization before starting to sampling to ensure same state every time (SM) Fixed some NullPointerExceptions here and there (SM) Added HTTP authentication capabilities (RL) Added windowed sample visualizer (SM) Fixed stupid bug for command line arguments. Thanks to Jorge Bracer for pointing this out (SM) Apache JMeter 1.2 - Mar 17 1999 ( Sean Dowd , Stefano Mazzocchi ) Integrated cookie capabilities with JMeter (SM) Added the Cookie manager and Netscape file parser (SD) Fixed compilation error for JDK 1.1 (SD) Apache JMeter 1.1 - Feb 24 1999 ( Sean Dowd , Stefano Mazzocchi ) 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. Removed the TextVisualizer and replaced it with the much more useful FileVisualizer (SM) Added the known bug list (SM) Removed the Java Apache logo (SM) Fixed a couple of typos (SM) Added UNIX makefile (SD) Apache JMeter 1.0.1 - Jan 25 1999 ( Stefano Mazzocchi ) Removed pending issues doc issues (SM) Fixed the unix script (SM) Added the possibility of running the JAR directly using "java -jar ApacheJMeter.jar" with Java 2 (SM) Some small updates: fixed Swing location after Java 2(tm) release, license update and small cleanups (SM) Apache JMeter 1.0 - Dec 15 1998 ( Stefano Mazzocchi ) Initial version. (SM)
Copyright © 1999-2005, Apache Software Foundation