Skip to content


Subversion checkout URL

You can clone with
Download ZIP
Fetching contributors…
Cannot retrieve contributors at this time
416 lines (395 sloc) 22.5 KB
1.4.1 -> 1.4.2 Minor enhancements and bugfixes (4 Jan 2012)
* [TSUN-199] - computation of NUsers is wrong
* [TSUN-206] - build failure with erlang R15B
* [TSUN-202] - IPv6 support
* [TSUN-203] - snmp oids should be customizable in the config file
* [TSUN-205] - handle dyn_variables as array in test conditions (if/until/while)
New Features:
* [TSUN-191] - allow outputting log to stdout
* [TSUN-192] - structured log output (JSON)
* [TSUN-193] - accept configuration from stdin
* [TSUN-197] - Have bug and error message on stderr and not stdout.
1.4.0 -> 1.4.1 Minor bugfixes (13 Sep 2011)
* [TSUN-188] - munin plugin is not working in 1.4.0
* [TSUN-189] - the controller VM is not used in some case
* [TSUN-190] - pgsql recorder can record a connect request in an already connected session
1.3.3 -> 1.4.0 Major enhancements and bugfixes (5 Sep 2011)
* [TSUN-129] - regexp (defined in match or dynvars) can fail when chunk encoding is used.
* [TSUN-150] - Munin monitoring broken by cpu stats config request
* [TSUN-163] - Tsung doesn't detect subdomains.
* [TSUN-166] - snmp monitoring does not work with erlang R14A
* [TSUN-171] - maxnumber set in a phase is not always enforced
* [TSUN-172] - auth sasl can't authenticate against ejabberd
* [TSUN-178] - some characters can make url and headers rewriting fail in the recorder
* [TSUN-179] - tsung generated message stanzas are not XMPP compliant
* [TSUN-180] - file server crash if a dynamic substitution use it
* [TSUN-182] - When many clients are configured with few static users, none of them are launched.
* [TSUN-183] - tsung can stop too soon in some cases
* [TSUN-184] - 'random_number' with start and end actually returns a number from start+1 to end
* [TSUN-187] - Client IP scan is very slow on Linux; also uses obsolete "ifconfig"
* [TSUN-54] - tsung is very slow when a lot of dynamic variables are set
* [TSUN-96] - generating more than 64k connections from a single machine
* [TSUN-106] - Add content-encoding support for dynvar extraction
* [TSUN-123] - add option to read usernames from an external file for jabber
* [TSUN-125] - use the new re module everywhere instead of regexp/gregexp
* [TSUN-152] - Add "state_rcv" record as parameter to "get_message" function.
* [TSUN-153] - dynvar used in match may contain regexp special characters
* [TSUN-185] - handle postgresql extended protocol
New Features:
* [TSUN-162] - add foreach tag (loop when a dyn_variable is a list)
* [TSUN-164] - add a switch to allow light queries/replies logging
* [TSUN-165] - add a way to synchronize users for all plugins.
* [TSUN-167] - add do=dump option to matching
* [TSUN-168] - thinktimes value could be dynamically generated with dyn_variable
* [TSUN-181] - add option to simulate slow connections
1.3.2 -> 1.3.3 Minor bugfixes (17 Aug 2010)
* [TSUN-154] - parent proxy doesn't work anymore in 1.3.x (tested with 1.3.2 and 1.3.0).
* [TSUN-155] - url substitution is broken in some cases
* [TSUN-156] - Tsung not using sessions with low probabilities
* [TSUN-157] - ssl doesn't work with erlang R14A
* [TSUN-158] - failure when a proxy is used and an URL substitution is set
* [TSUN-159] - HTTP cookies support is broken when a proxy is used
* [TSUN-160] - tsung can sometimes hang at the beginning using distributed setup
* [TSUN-161] - if statement not allowed in a transaction
1.3.1 -> 1.3.2 Major bugfixes and enhancements (14 Jun 2010)
* [TSUN-128] - Apostrophes cause string to convert to deep list in setdynvars with Erlang function.
* [TSUN-130] - static users starting time is wrong
* [TSUN-131] - tsung can stop too early when static users are used
* [TSUN-132] - http cookies: accept domains equals to hostname with a leading "."
* [TSUN-133] - proxy-recorder with SSL fails on large client packets (multiple TCP packets)
* [TSUN-138] - when an error occured( for ex a timeout during a request) and a client exits, started transactions are not updated
* [TSUN-140] - tsung does not honor the Proxy-Connection: keep-Alive or Connection: keep-Alive header if the proxy is HTTP/1.0
* [TSUN-142] - http recorder can fail with https rewriting and chunked encoding
* [TSUN-147] - UDP & bidi does not seem to work
* [TSUN-148] - dynvar not found when used in match
* [TSUN-149] - tsung doesn't work with Amazon Elastic load balancing
* [TSUN-151] - produces invalid *.gplot files
* [TSUN-82] - XMPP vhost support
* [TSUN-127] - add ability tu use floats for thinktimes
* [TSUN-139] - option to set random seed for launchers.
* [TSUN-141] - add dynamic variable support for postgres
* [TSUN-146] - New tsplot yfactor configuration support breaks most common configurations
New Features:
* [TSUN-135] - add support for SASL ANONYMOUS and PLAIN authentication for XMPP
* [TSUN-136] - add new plugin distributed testing of filesystem (nfs for ex), using a generic mode for executing erlang functions on clients nodes
* [TSUN-137] - add a way to mix requests types inside a single session
* [TSUN-143] - global time limit for the load test
* [TSUN-145] - tsung should support json parsing for dynamic variable
1.3.0 -> 1.3.1 Major bugfixes and enhancements (9 Sep 2009)
* [TSUN-92] - the computation of the minimum for sample_counter is wrong
* [TSUN-93] - maxnumber not respected if several clients are used
* [TSUN-102] - dyn_variable configuration fails if variable name is not a valid erlang atom
* [TSUN-103] - Network error handling in munin plugin
* [TSUN-104] - tsung-plotter can't handle the os_mon statistics
* [TSUN-108] - Cannot handle complicated dyn_var name
* [TSUN-109] - Tsung status displays always phase one even if you have more than one phase
* [TSUN-110] - Cookie header not present if the URL is dynamically generated by a previous redirection (302)
* [TSUN-117] - Bug in HTTP: empty header can be generated in some case
* [TSUN-118] - HTTPS proxy recorder: ts_utils:to_https incorrectly handles Content-Length for POST requests
* [TSUN-119] - tsung can crash when reading empty values from a csv file
* [TSUN-122] - same http cookie key with different domains don't work
* [TSUN-47] - ts_mon can be a bottleneck during very high load testing
* [TSUN-77] - Structural requests or goto-like action for match in HTTP
* [TSUN-81] - Dynamic variables API
* [TSUN-83] - file_server using fixed tuple instead of list
* [TSUN-85] - external entity should be copied into the log directory of a run.
* [TSUN-87] - add dynamic code evaluation in set_dynvars
* [TSUN-88] - add mkactivity method support in webdav
* [TSUN-91] - reduce memory consumption by hibernating client process while in think state
* [TSUN-97] - disable smp erlang for client beam for performance reason
* [TSUN-98] - try several times to connect to the server before aborting a session
* [TSUN-99] - make substitution work in <match>
* [TSUN-100] - improve scalability of ts_launcher
* [TSUN-105] - Add load average statistic to server monitoring
* [TSUN-111] - add option to manually add a cookie in http requests
* [TSUN-113] - split tsung command into two separate tsung and tsung-recorder commands
* [TSUN-116] - add ability to run several tsung running in parallel on the same hosts
* [TSUN-120] - Https recorder: Remove "Secure" from "Set-Cookie" header.
New Features:
* [TSUN-25] - add a way to start sessions in a specific order at specified times
* [TSUN-89] - include tsung-plotter into the tsung distribution
* [TSUN-90] - add support for monitoring server cpu/mem using munin-node
* [TSUN-94] - add log action for match
* [TSUN-95] - add a default dyn_variable with a unique tsung_userid
* [TSUN-107] - add MUC support to the jabber doc/plugin
* [TSUN-114] - add option to apply function to data before looking for a match
* [TSUN-115] - add pubsub support to the jabber plugin
1.2.2 -> 1.3.0 Major bugfixes and enhancements (03 Sep 2008)
* [TSUN-30] - SNMP monitoring gives an error
* [TSUN-57] - using -l with a relative path make distributed load fails with timeout error
* [TSUN-60] - https recorder broken if an HTML document includes absolute urls
* [TSUN-67] - Typo breaks recording of if-modified-since headers
* [TSUN-68] - some sites doesn't work with ":443" added in the "Host" header with https
* [TSUN-71] - Tsung does not work with R12B (httpd_util funs removed)
* [TSUN-73] - Wrong parsing HTTP multipart/form-data in http request - POST form doesn't work
* [TSUN-75] - can not define more -pa arguments
* [TSUN-84] - dyn variables that don't match should be set to an empty string
* [TSUN-40] - problem to rewrite url for https with gzip-encoded html.
* [TSUN-48] - tcp/udp buffer size should be customizable in the XML config file.
* [TSUN-59] - if a User-Agent header is set in <header>, it should override the global one.
* [TSUN-62] - add abilty to loop back to a previous request in a session
* [TSUN-63] - check for ssl and crypto application at compile time
* [TSUN-65] - enhance dynamic variables.
* [TSUN-66] - add global mean and counter computation and reporting for samples
* [TSUN-69] - add option to read content of a POST request from an external file
* [TSUN-79] - setting 'Host' header with http_header doesn't work as expected
New Features:
* [TSUN-56] - ldap plugin
* [TSUN-58] - add a new statistics backend to dump all stats in a file
* [TSUN-61] - add a Webdav plugin
* [TSUN-64] - add md5 authentication in the pgsql plugin
* [TSUN-72] - Add support for defining dyn_variables using XPath
* [TSUN-78] - mysql plugin
* [TSUN-80] - add random thinktime with in a given range ( [min,max])
* [TSUN-76] - add explanation for errors name in the documentation
1.2.1 -> 1.2.2 Minor bugfixes and enhancements (23 Feb 2008)
* [TSUN-30] - SNMP monitoring gives an error
* [TSUN-31] - dyn_variable usage
* [TSUN-35] - udp is not working
* [TSUN-36] - default regexp for dyn_variable doesn't work in all case
* [TSUN-38] - server monitoring crash if an ethernet interface's name is more than 6 chars long
* [TSUN-39] - https recording doesn't work with most browsers
* [TSUN-43] - session should not terminate if rosterjid is not defined
* [TSUN-49] - <match> doesn't work with jabber plugin
* [TSUN-51] - tsung does not work with R12B (httpd_util funs removed)
* [TSUN-53] - postgresql errors not reported in all cases
* [TSUN-55] - no error counter when userid_max is reached
* [TSUN-14] - no_ack messages and asynchronous msg sent by the server are not available in the reports
* [TSUN-27] - handle bidirectional protocols
* [TSUN-28] - Refactoring needed to ease the change of the userid / password generation code
* [TSUN-29] - Multiple file_server support
* [TSUN-32] - make snmp server options tunable
* [TSUN-34] - add costum http headers
* [TSUN-44] - tsung should ignore whitespace keepalive from xmpp server
* [TSUN-45] - add kernel-poll support for better performance
* [TSUN-46] - add number of open connections in statistics
* [TSUN-47] - ts_mon can be a bottleneck during very high load testing
* [TSUN-50] - use the whole range of Id (from 0 to userid_max) before reusing already used Ids
New Features:
* [TSUN-26] - Ability to loop on a given sequence of phase
* [TSUN-52] - Adding comment during script capture
* [TSUN-41] - add support for parent proxy for http only (not https)
1.2.0 -> 1.2.1 Minor bugfixes and enhancements (07 Oct 2006)
- [TSUN-5] get traffic from all interfaces instead of only eth0
in erlang os monitoring (Linux)
- [TSUN-18 the pgsql recorder fails if the client doesn't try
first an SSL connection
- [TSUN-19] a % character in some requests (eg. type=sql for
pgsql) make the config_server crash.
- [TSUN-20] pgsql client fails while parsing data from server
- [TSUN-21] substitution in URL is not working properly when a new server
or port is set
- [TSUN-23] set default http version (1.1)
- [TSUN-24] destination=previous doesn't work (jabber)
- [TSUN-15] listen port is now customizable with the command line
- [TSUN-17] add option to setup postgresql server IP and port at runtime
for the recorder
- [TSUN-22] add support for PUT, DELETE and HEAD methods for http
1.1.0 -> 1.2.0 Major feature enhancements (29 May 2006)
- change name: idx-tsunami is now called tsung
- add new plugin: pgsql for postgresql load testing
- new: it's now possible to set multiple servers (selected at runtime
by round robin)
- add size_rcv stats
- fix beams communication problem introduced in new erlang releases.
- import snmp_mgr src from R9C2 to enable SNMP with R10B
- rebuild boot scripts if erlang version is different from compile time
- many DTD improvements
- improved match: add loop|abort|restart on (no)match behavior,
multiple match tags is now possible (suggested by
- freemem and packet stats for Solaris (
- fix several small problems with 'use_controller_vm' option
- ip is no more mandatory (default is
- clients and monitoring can use hosts list defined in environment
variables, for use with batch schedulers (openpbs/torque, LSF and OAR)
- performance improvements in stats engine for very high load
(use session_cache)
- add plugin architecture in recorder; add pgsql plugin
- fix regression in recorder for WWW-Authentication
- close client socket when connection:closed is ask by the server
(this should enable https recording with IE)
- fix presence:roster request
- add presence:directed , presence:broadcast & presence:final requests
for jabber (
- roster enhancements (
- sip-digest authentication (
- fix online: must use presence:initial to switch to online status
- add pubsub support (
- fix single user agent case.
- minor fixes for HTTP parsing
1.0.3 -> 1.1.0 Major feature enhancements (5 Sep 2005)
- new feature: HTTP proxy load testing in now possible (set
http_use_server_as_proxy to true)
- add dynamic substitution support for jabber
- add 'raw' type of msg for Jabber (use the new 'data' attribute)
- add the dynamic variable list to dynamic substitutions
- UserAgent is now customizable for HTTP testing
- Add an option to run all components (controller and launcher)
within a single erlang beam (use_controller_vm). Should ease
idx-tsunami use for light load tests
- fix bash script for solaris (
- fix: several 'idx-tsunami status' can be run simultaneously
(reported by Adam Spotton)
- internal: Host header is now set during configuration phase
- fix last phase duration
- fix recorder: must log absolute url if only the scheme has changed
1.0.2 -> 1.0.3 Minor bugfixes (8 Jul 2005)
- add ts_file_server module
- fix broken https recording
Thx to for bug reporting :
- fix: forgot to add "?" when an URL is absolute and had a query
- fix regression in the recorder (introduced in 1.0.2): must use CAPS
for method, wrong content-length in recorder causing POST requests
to silently fail
- allow multiple 'dyn_variable' in DTD
- fix Host: header when port is != 80
1.0.1 -> 1.0.2: Minor bugfixes (6 Jun 2005)
- fix: the recorder is working now with R10B: replace call to
httpd_parse:request_header in recorder by an
internal func (the func was removed in R10B)
- update configure scripts (should build on RHEL3/x86_64)
- remote beam startup is now tunable (-r ssh/rsh)
- internal changes in ts_os_mon (suggested by R. Lenglet)
1.0 -> 1.0.1: Major bugfixes (18 Nov 2004)
- fix: broken free mem on non linux arch (Matthew Schulkind)
- add script to convert apache log file (combined) to idx-tsunami XML
- improved configure: add --with-erlang option and xmerl PATH detection
idx-tsunami now compiles both with R9C and R10B
- small fixes to the DTD
Thx to Jonathan Bresler for testing and bug reporting :
- fix: broken 'global', 'local' and 'no_ack' requests and size computation
- fix: broken ids in jabber messages
- fix: broken online/offline in user_server
- default thinktime can now be overriden
- many improvements/fixes in
1.0.beta7 -> 1.0: Minor bugfixes (13 Aug 2004)
- fix: broken path when building debian package
- add rpm target in makefile
- implement status
- add 'match' in graph and doc
- fix add_dynparams for jabber
1.0.beta6 -> 1.0.beta7: Minor bugfixes (20 Jul 2004)
- HTTP: really (?) fix parsing of no content-length with connection:close
- better handling of configure (--prefix is working)
- add different types of output backend (currently, only 'text'
works; 'rrdtool' is started but unfinished)
- fix: ssl_ciphers option is working again
1.0.beta5 -> 1.0.beta6: Minor feature enhancements (5 May 2004)
- add a DTD for the configuration file
- add dynamic request substitution (mickael.remond@erlang-fr)
- add dynamic variable parsing from response (can be used
later in the session for request substitution)
- add response pattern to match (log if not match)
- HTTP: fix partial header parsing (
- HTTP: fix chunk parsing when the chunk-size is split across two packets
- HTTP: fix parsing of no content-length with connection:close case
- check for bad input (config file, <client> name)
- merge client and client_rcv processes into a single process
- fix: do not connect in init anymore; this fix too long phases when
connection time is high.
- connect stat is now for both new connections and reconnections
- check phase duration in launcher
- various code cleanup
1.0.beta4 -> 1.0.beta5: Major Feature enhancements (25 Mar 2004)
- add SNMP monitoring (not yet customizable)
- fix remote start: log filename is now encoded to avoid bad
parsing of log_file by 'erl'
Patches from :
- Added ~/.idx-tsunami creation in idx-tsunami script if the directory
does not already exist
- Extension of XML attribute entity normalisation
- HTTP: fix Cookie support: Cookie are not necessarily separated by "; "
- HTTP: fix long POST request in the recorder: dorecord message
was missing enclosing curly brackets, and the body length counter
were mistakenly taking the header size in its total
- HTTP: Content-type support in the recorder (needed to handle
non-HTML form encoded posts)
- add autoconf support to detect Erlang installation path
- SOAP Support: IDX-Tsunami can now record and replay SOAP HTTP
scenario. The SOAPAction HTTP header is now recorded
- Preliminary Windows support: A workaround has been introduced in
the code to handle behaviour difference between Erlang Un*x and
Erlang Windows on how the command-line is handled. When an
assumtion is made on the string type of a parameter, it should be
check that this is actually a string and not an atom.
1.0.beta3 -> 1.0.beta4: Minor bugfixes (16 Mar 2004)
- fix lost cookie when transfer-encoding:chunked is used
- fix config parsing (the last request of the last page of a
sesssion was not marked as endpage)
- don't crash anymore on error during start or stop
1.0.beta2 -> 1.0.beta3: Minor feature enhancements (24 Feb 2004)
- fix stupid bug in start script for recorder
- HTTP: fix '&' writes in the XML recorder for 'content' attribute
- HTTP: enhanced Cookies parsing ('domain' and 'path' implemented).
- ssl_ciphers can be customized
- change log directory structure: all log files in one directory per test
- add HTML reports (requires the perl Template toolkit)
- change stats names: page_resptime -> page, response_time -> request
1.0.beta1 -> 1.0.beta2: Minor feature enhancements (11 Feb 2004)
- reorganise the sources
- add tools to build a debian package
- fix documentations
- add minimalistic man page
- syntax change: GETIMS +date replace by GET +'if_modified_since'
0.2.1 -> 1.0.beta1: Major Feature Enhancements (3 Feb 2004)
- rewrite the configuration engine. Now use an XML file.
- add recording application: use as a HTTP proxy to record session into XML
- add support to OS monitoring (cpu, memory, network). Currently, use an
erlang agent on the remote nodes; SNMP is on the TODO list.
- can now use several IPs per client host
- several arrival phases can be set with different arrival rates and
- can set test duration instead of number of users
- add user defined statistics using a 'transaction' tag
- HTTP: fix cookies and POST handling (
- HTTP: rewrite the parser (faster and cleaner)
- fix bad timeout computation when close occur for persistent client
- bugfixes and other enhancements.
- fix memory leak with ssl (half-closed connections)
0.2.0 -> 0.2.1: Minor bugfixes and small enhancements (9 Dec 2003)
- optimize session memory consumption: use an ets table to store session setup
- HTTP: fix crash when content-length is not set in headers
- HTTP: fix POST method
- HTTP: preliminary chunked-encoding support in HTTP/1.1
- HTTP: Absolute URL are handled (server and port can be overridden )
- no more .hosts.erlang required
- add stats on simultaneous users
0.1.1 -> 0.2.0: Major Feature Enhancements (Aug 2003)
- add 'realtime' stats
- add new 'parse' type of protocol
- add reconnection support (persistent client)
- add basic HTTP and HTTPS support
- split the application in two parts: a single controller (tsunami_controller),
and the clients (tsunami)
- switch to R9C
0.1.0 -> 0.1.1: Bugfix realease (Aug 2002)
- fix config file
- fix few typos in docs
- fix init script
- few optimizations in user_server.erl
- switch to R8B
0.1.0: Initial release (May 2001)
Jump to Line
Something went wrong with that request. Please try again.