Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
tag: v1.3.3
Fetching contributors…

Cannot retrieve contributors at this time

file 366 lines (346 sloc) 20.077 kb
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366
1.3.2 -> 1.3.3 Minor bugfixes (17 Aug 2010)
Bugfix:
    * [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)
Bugfix:
    * [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] - tsung_stats.pl produces invalid *.gplot files
Improvements:
    * [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)
Bugfix:
    * [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
Improvements:
    * [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)
Bugfix:
    * [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
Improvements:
    * [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])
Tasks:
    * [TSUN-76] - add explanation for errors name in the documentation

1.2.1 -> 1.2.2 Minor bugfixes and enhancements (23 Feb 2008)
Bugfix:
    * [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
Improvements:
    * [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)
    Bugfix:
    - [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)
    Improvement:
    - [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 msmith@truelink.com)
    - freemem and packet stats for Solaris (jasonwtucker@gmail.com)
    - fix several small problems with 'use_controller_vm' option
    - ip is no more mandatory (default is 0.0.0.0)
    - 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)
    Recorder:
    - add plugin architecture in recorder; add pgsql plugin
    - fix regression in recorder for WWW-Authentication
      (anders.nygren@gmail.com)
    - close client socket when connection:closed is ask by the server
      (this should enable https recording with IE)
    Jabber:
    - fix presence:roster request
    - add presence:directed , presence:broadcast & presence:final requests
      for jabber (jasonwtucker@gmail.com)
    - roster enhancements (jasonwtucker@gmail.com)
    - sip-digest authentication (jasonwtucker@gmail.com)
    - fix online: must use presence:initial to switch to online status
    - add pubsub support (mickael.remond@process-one.net)
    Http:
    - 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 (jasonwtucker@gmail.com)
    - 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 johann.messner@jku.at for bug reporting :
    - fix: forgot to add "?" when an URL is absolute and had a query
      part
    - 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 analyse_msg.pl

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 (mickael.remond@erlang-fr.org)
    - 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 mickael.remond@erlang-fr.org :
    - 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
      format
    - add support to OS monitoring (cpu, memory, network). Currently, use an
      erlang agent on the remote nodes; SNMP is on the TODO list.
      (mickael.remond@erlang-fr.org)
    - can now use several IPs per client host
    - several arrival phases can be set with different arrival rates and
      duration
    - can set test duration instead of number of users
    - add user defined statistics using a 'transaction' tag
    - HTTP: fix cookies and POST handling (mickael.remond@erlang-fr.org)
    - 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)
Something went wrong with that request. Please try again.