1# Changelog # 2 3## [1.7.0] - 2017-08-28 - Major enhancements and bugfixes ## 4### Fixed ### 5- [#117] Closing TCP connection in think state considered an error? 6- [#121] Unable to send a line feed in websoscket request 7- [#126] Timeouts for *get_next_session* not reported correctly 8- [#136] MAX_PROC not actually changeable 9- [#161] Websocket match randomly fail 10- [#162] *<load duration>* not working along with *<session><for>*? 11- [#204] Timeout won't apply unless something happen to socket 12- [#218] Certificates are not getting set/sent correctly 13- [PR #148] clear accumulated data when websocket closed 14- [PR #183] fix formula for load average 15- [PR #202] fixing oauth 1.0 authorization header creation, signature with body, alphanumerical nonce 16- [PR #228] Where IQ PING was enabled from XMPP server. Tsung cannot reply 17 18### Changed ### 19- [#136] Speedup Tsung starting when using hundreds of clients 20- [#145] Update or remove eldap in favor of OTP's eldap 21- [#150] Distributed Erlang Port Range Hard-Coded 22- [#159] Use new time API when building Tsung with otp R18 23- [PR #124] Rename configure.in to configure.ac 24- [PR #125] Work around compiler warning and provide backward compatibility 25- [PR #198] Record extra headers in the HTTP proxy recorder 26- minimum erlang version is R16B 27 28### Added ### 29- [#132] WSS connections 30- [#182] add option to set websocket subprotocols 31- [#189] Add direct-ip support for tsung nodes interconnection 32- [#201] add option to start a phase after all generated users in the previous phase have finished their session 33- [#225] stop entire test execution in do 34- [#242] tsung to support Linux client to using a range of secondary IP addresses 35- [PR #151] Add option to specify SSL protocol 36- [PR #153] Add latency measurement to XMPP MUC and PubSub 37- [PR #233] BOSH support for chunked transfer encoding. 38- [PR #235] Provide regex to use with varnish log 39- [PR #240] Added Jabber support for SASL EXTERNAL 40- add option to start tsung with only the web view (to view old runs stats) 41 42## [1.6.0] - 2015-07-20 - Major enhancements and bugfixes ## 43### Fixed ### 44- [TSUN-225] - SSL Session Caching Issues 45- [TSUN-292] - Indecipherable error with no arrivalphase elements 46- [TSUN-294] - Logging(?) of unmatched dyn vars puts lot of pressure on controller 47- [TSUN-295] - tsung status crashes test run 48- [TSUN-296] - Reported response size in dumpfile seems to be way too low 49- [TSUN-297] - Float values in thinktimes substitution 50- [TSUN-305] - Can't connect with +TLS to ejabberd/XMPP 51- [TSUN-308] - Handle *ssl_closed* in *ts_client* 52- [TSUN-309] - RNG Seeding is too weak and causes collisions 53- [TSUN-312] - Handle cast new beam failed 54- [TSUN-316] - LDAP scenarios fail when compiled with R16A/B due to *asn1rt_ber_bin* 55- [TSUN-320] - `get_os_data(freemem, {unix, linux})` crashes on Linux 3.10.0 56- [PR #91] - [MQTT] Last Will and Testament should not be included if will_topic is not set. 57- [PR #104] - Fix problem with MQTT SUBACK packages 58- [PR #107] - Fix crash when `use_controller_vm="false"` and controller id is not empty 59- [PR #109] - Fix race condition in `ts_utils:make_dir/1` 60 61### Changed ### 62- [TSUN-307] - Allow all HTTP headers to be overridden by <http_header> 63- [PR #111] - Add subst for amqp exchange, routingKey and queue name 64- [PR #79] - added support for mqtt user and password 65- [PR #81] - Allow setting of dynamic vars for MQTT's username and password 66- [PR #93] - Add two config option 67 68### Added ### 69- [TSUN-290] - Add a web dashboard embedded in tsung controller 70- [TSUN-293] - Enable node local dumptraffic log 71- [TSUN-304] - Add command line option to add additional erlang module load paths 72- [TSUN-306] - Add connection_timeout option 73- [PR #106] - XMPP message latency measurement 74 75## [1.5.1] - 2014-04-07 - Major enhancements and bugfixes ## 76### Fixed ### 77- [TSUN-250] - BOSH Crash 78- [TSUN-252] - Too many requests when using max_restart 79- [TSUN-253] - Code blocks in html version of user manual is unreadable 80- [TSUN-256] - Unexpected ack="global" behaviour on BOSH 81- [TSUN-265] - Wrong header line in tsung.dump 82- [TSUN-270] - Substitution not working in <websocket/> path attribute 83- [TSUN-271] - SSL does not work with erlang >= R16 84- [TSUN-272] - Support literal IPv6 addresses when defining servers 85- [TSUN-278] - Tsung 1.5.0 is notable to do https out of the box when it is compiled from tarballs 86- [TSUN-279] - Tsung 1.5.0 is not able to do substitution of hostname or port in a URL. It only can do substitution of path 87- [TSUN-281] - Fix debian build for Tsung 1.5, replaces DocBook with Sphinx 88- [TSUN-285] - In some rare conditions in a distributed setup, Tsung fails to start the load test. 89- [TSUN-287] - request.max statistic lower than request.mean 90- [PR #71] - oAuth bug fix, PUT method 91- [PR #41] - Fix websocket path subst 92- [PR #44] - Add bidi attribute to change_type 93- [PR #49] - Fix websocket close issue: we should wait a close response 94 95### Changed ### 96- [TSUN-255] - Fix unused vars in tq_amqp 97- [TSUN-259] - Tsung in Fedora 98- [TSUN-268] - Use xmerl_sax_parser:file/2 in case of xml parsing error 99- [TSUN-276] - Add text frame support for websocket 100- [TSUN-284] - Do not use boot files to start tsung and tsung_controller applications 101- [PR #51] - Updated dygraph charting library to the latest release 102- [PR #65] - AMQP: add multiple channel, add waitForConfirms and waitForMessages 103- [PR #70] - Add bosh_path config option 104- [PR #74] - Add text frame support for Websocket, and update doc 105 106### Added ### 107- [TSUN-260] - Add option to change popularities of sessions for each phase 108- [TSUN-264] - New comparison operators 109- [TSUN-269] - Logging of request tags to dumpfile 110- [TSUN-275] - Add MQTT support 111- [TSUN-280] - Tsung to support pkcs#12 certificates or at least cacerts, clientcerts and keys 112- [PR #42] 113 - Adding *all_except_body* option to *ts_http request* subst. 114 - Adding mysqladmin monitoring options to erlang monitors. 115 - Adding mean rate calculation to tsung_stats reports. 116 - Adding *--title option* to set header of report 117- [PR #75] - Support SSL/TLS client certificate file attributes for jabber starttls 118 119## [1.5.0] - 2013-05-24 - Major enhancements and bugfixes ## 120### Fixed ### 121- [TSUN-208] - in the jabber plugin, substitutions for raw request doesn't work in some cases. 122- [TSUN-209] - If tag doesn't work with Tsung 1.4.2 123- [TSUN-212] - Incorrect ERTS version being set on build. 124- [TSUN-215] - normal ack timeout shouldn't used for global ack 125- [TSUN-217] - If statement breaks on empty string 126- [TSUN-218] - Race condition in tsung-recorder 127- [TSUN-219] - Site fails to load via proxy recorder 128- [TSUN-220] - Large configuration files trigger error 129- [TSUN-229] - compatibility with erlang R15B 130- [TSUN-230] - can't connect with TLS + ejabberd 131- [TSUN-232] - Tsung for bosh protocol doesn't send a empty request to keep the user session alive. 132- [TSUN-234] - Error encoding json string with escape_uri 133- [TSUN-238] - Content-Length parsing broken 134- [TSUN-241] - Invalid link Other in the graph.html 135- [TSUN-245] - Message when dtd is not found not trivial 136 137### Changed ### 138- [TSUN-174] - add an option to set resource in XMPP 139- [TSUN-222] - Support unsubscribe operation for Jabber pubsub module 140- [TSUN-228] - allow substitutions on cookies 141- [TSUN-236] - Add probability support for servers 142- [TSUN-242] - add timestamp and request duration in dump=protocol for http 143- [TSUN-246] - http PATCH support 144 145### Added ### 146- [TSUN-214] - Ability to pass attributes for node creation for XMPP pubsub protocol. 147- [TSUN-227] - add new dynamic variable to get server hostname and port 148- [TSUN-231] - add option to use weights instead of probabilities for sessions 149- [TSUN-239] - add BOSH support 150- [TSUN-240] - add websocket support 151- [TSUN-244] - Percentile computation 152- [TSUN-248] - add AMQP support 153 154## [1.4.2] - 2012-01-04 - Minor enhancements and bugfixes ## 155### Fixed ### 156- [TSUN-199] - computation of NUsers is wrong 157- [TSUN-206] - build failure with erlang R15B 158 159### Changed ### 160- [TSUN-202] - IPv6 support 161- [TSUN-203] - snmp oids should be customizable in the config file 162- [TSUN-205] - handle dyn_variables as array in test conditions (if/until/while) 163 164### Added ### 165- [TSUN-191] - allow outputting log to stdout 166- [TSUN-192] - structured log output (JSON) 167- [TSUN-193] - accept configuration from stdin 168- [TSUN-197] - Have bug and error message on stderr and not stdout. 169 170## [1.4.1] - 2011-09-13 - Minor bugfixes ## 171### Fixed ### 172- [TSUN-188] - munin plugin is not working in 1.4.0 173- [TSUN-189] - the controller VM is not used in some case 174- [TSUN-190] - pgsql recorder can record a connect request in an already connected session 175 176## [1.4.0] - 2011-09-05 - Major enhancements and bugfixes ## 177### Fixed ### 178- [TSUN-129] - regexp (defined in match or dynvars) can fail when chunk encoding is used. 179- [TSUN-150] - Munin monitoring broken by cpu stats config request 180- [TSUN-163] - Tsung doesn't detect subdomains. 181- [TSUN-166] - snmp monitoring does not work with erlang R14A 182- [TSUN-171] - maxnumber set in a phase is not always enforced 183- [TSUN-172] - auth sasl can't authenticate against ejabberd 184- [TSUN-178] - some characters can make url and headers rewriting fail in the recorder 185- [TSUN-179] - tsung generated message stanzas are not XMPP compliant 186- [TSUN-180] - file server crash if a dynamic substitution use it 187- [TSUN-182] - When many clients are configured with few static users, none of them are launched. 188- [TSUN-183] - tsung can stop too soon in some cases 189- [TSUN-184] - *random_number* with start and end actually returns a number from start+1 to end 190- [TSUN-187] - Client IP scan is very slow on Linux; also uses obsolete `ifconfig` 191 192### Changed ### 193- [TSUN-54] - tsung is very slow when a lot of dynamic variables are set 194- [TSUN-96] - generating more than 64k connections from a single machine 195- [TSUN-106] - Add content-encoding support for dynvar extraction 196- [TSUN-123] - add option to read usernames from an exteraln file for jabber 197- [TSUN-125] - use the new re module everywhere instead of regexp/gregexp 198- [TSUN-152] - Add *state_rcv* record as parameter to *get_message* function. 199- [TSUN-153] - dynvar used in match may contain regexp special characters 200- [TSUN-185] - handle postgresql extended protocol 201 202### Added ### 203- [TSUN-162] - add foreach tag (loop when a dyn_variable is a list) 204- [TSUN-164] - add a switch to allow light queries/replies logging 205- [TSUN-165] - add a way to synchronize users for all plugins. 206- [TSUN-167] - add do=dump option to matching 207- [TSUN-168] - thinktimes value could be dynamically generated with dyn_variable 208- [TSUN-181] - add option to simulate slow connections 209 210## [1.3.3] - 2010-08-17 - Minor bugfixes ## 211### Fixed ### 212- [TSUN-154] - parent proxy doesn't work anymore in 1.3.x (tested with 1.3.2 and 1.3.0). 213- [TSUN-155] - url substitution is broken in some cases 214- [TSUN-156] - Tsung not using sessions with low probabilities 215- [TSUN-157] - ssl doesn't work with erlang R14A 216- [TSUN-158] - failure when a proxy is used and an URL substitution is set 217- [TSUN-159] - HTTP cookies support is broken when a proxy is used 218- [TSUN-160] - tsung can sometimes hang at the beginning using distributed setup 219- [TSUN-161] - if statement not allowed in a transaction 220 221## [1.3.2] - 2010-06-14 - Major bugfixes and enhancements ## 222### Fixed ### 223- [TSUN-128] - Apostrophes cause string to convert to deep list in setdynvars with Erlang function. 224- [TSUN-130] - static users starting time is wrong 225- [TSUN-131] - tsung can stop too early when static users are used 226- [TSUN-132] - http cookies: accept domains equals to hostname with a leading "." 227- [TSUN-133] - proxy-recorder with SSL fails on large client packets (multiple TCP packets) 228- [TSUN-138] - when an error occured( for ex a timeout during a request) and a client exits, started transactions are not updated 229- [TSUN-140] - tsung does not honor the Proxy-Connection: keep-Alive or Connection: keep-Alive header if the proxy is HTTP/1.0 230- [TSUN-142] - http recorder can fail with https rewriting and chunked encoding 231- [TSUN-147] - UDP & bidi does not seem to work 232- [TSUN-148] - dynvar not found when used in match 233- [TSUN-149] - tsung doesn't work with Amazon Elastic load balancing 234- [TSUN-151] - tsung_stats.pl produces invalid `*.gplot` files 235 236### Changed ### 237- [TSUN-82] - XMPP vhost support 238- [TSUN-127] - add ability tu use floats for thinktimes 239- [TSUN-139] - option to set random seed for launchers. 240- [TSUN-141] - add dynamic variable support for postgres 241- [TSUN-146] - New tsplot yfactor configuration support breaks most common configurations 242 243### Added ### 244- [TSUN-135] - add support for SASL ANONYMOUS and PLAIN authentication for XMPP 245- [TSUN-136] - add new plugin distributed testing of filesystem (nfs for ex), using a generic mode for executing erlang functions on clients nodes 246- [TSUN-137] - add a way to mix requests types inside a single session 247- [TSUN-143] - global time limit for the load test 248- [TSUN-145] - tsung should support json parsing for dynamic variable 249 250## [1.3.1] - 2009-09-09 - Major bugfixes and enhancements ## 251### Fixed ### 252- [TSUN-92] - the computation of the minimum for sample_counter is wrong 253- [TSUN-93] - maxnumber not respected if several clients are used 254- [TSUN-102] - dyn_variable configuration fails if variable name is not a valid erlang atom 255- [TSUN-103] - Network error handling in munin plugin 256- [TSUN-104] - tsung-plotter can't handle the os_mon statistics 257- [TSUN-108] - Cannot handle complicated dyn_var name 258- [TSUN-109] - Tsung status displays always phase one even if you have more than one phase 259- [TSUN-110] - Cookie header not present if the URL is dynamically generated by a previous redirection (302) 260- [TSUN-117] - Bug in HTTP: empty header can be generated in some case 261- [TSUN-118] - HTTPS proxy recorder: ts_utils:to_https incorrectly handles Content-Length for POST requests 262- [TSUN-119] - tsung can crash when reading empty values from a csv file 263- [TSUN-122] - same http cookie key with different domains don't work 264 265### Changed ### 266- [TSUN-47] - ts_mon can be a bottleneck during very high load testing 267- [TSUN-77] - Structural requests or goto-like action for match in HTTP 268- [TSUN-81] - Dynamic variables API 269- [TSUN-83] - file_server using fixed tuple instead of list 270- [TSUN-85] - external entity should be copied into the log directory of a run. 271- [TSUN-87] - add dynamic code evaluation in set_dynvars 272- [TSUN-88] - add mkactivity method support in webdav 273- [TSUN-91] - reduce memory consumption by hibernating client process while in think state 274- [TSUN-97] - disable smp erlang for client beam for performance reason 275- [TSUN-98] - try several times to connect to the server before aborting a session 276- [TSUN-99] - make substitution work in <match> 277- [TSUN-100] - improve scalability of ts_launcher 278- [TSUN-105] - Add load average statistic to server monitoring 279- [TSUN-111] - add option to manually add a cookie in http requests 280- [TSUN-113] - split tsung command into two separate tsung and tsung-recorder commands 281- [TSUN-116] - add ability to run several tsung running in parallel on the same hosts 282- [TSUN-120] - Https recorder: Remove "Secure" from "Set-Cookie" header. 283 284### Added ### 285- [TSUN-25] - add a way to start sessions in a specific order at specified times 286- [TSUN-89] - include tsung-plotter into the tsung distribution 287- [TSUN-90] - add support for monitoring server cpu/mem using munin-node 288- [TSUN-94] - add log action for match 289- [TSUN-95] - add a default dyn_variable with a unique tsung_userid 290- [TSUN-107] - add MUC support to the jabber doc/plugin 291- [TSUN-114] - add option to apply function to data before looking for a match 292- [TSUN-115] - add pubsub support to the jabber plugin 293 294## [1.3.0] - 2008-09-03 - Major bugfixes and enhancements ## 295### Fixed ### 296- [TSUN-30] - SNMP monitoring gives an error 297- [TSUN-57] - using -l with a relative path make distributed load fails with timeout error 298- [TSUN-60] - https recorder broken if an HTML document includes absolute urls 299- [TSUN-67] - Typo breaks recording of if-modified-since headers 300- [TSUN-68] - some sites doesn't work with ":443" added in the "Host" header with https 301- [TSUN-71] - Tsung does not work with R12B (httpd_util funs removed) 302- [TSUN-73] - Wrong parsing HTTP multipart/form-data in http request - POST form doesn't work 303- [TSUN-75] - can not define more -pa arguments 304- [TSUN-84] - dyn variables that don't match should be set to an empty string 305 306### Changed ### 307- [TSUN-40] - problem to rewrite url for https with gzip-encoded html. 308- [TSUN-48] - tcp/udp buffer size should be customizable in the XML config file. 309- [TSUN-59] - if a User-Agent header is set in <header>, it should override the global one. 310- [TSUN-62] - add abilty to loop back to a previous request in a session 311- [TSUN-63] - check for ssl and crypto application at compile time 312- [TSUN-65] - enhance dynamic variables. 313- [TSUN-66] - add global mean and counter computation and reporting for samples 314- [TSUN-69] - add option to read content of a POST request from an external file 315- [TSUN-79] - setting 'Host' header with http_header doesn't work as expected 316 317### Added ### 318- [TSUN-56] - ldap plugin 319- [TSUN-58] - add a new statistics backend to dump all stats in a file 320- [TSUN-61] - add a Webdav plugin 321- [TSUN-64] - add md5 authentication in the pgsql plugin 322- [TSUN-72] - Add support for defining dyn_variables using XPath 323- [TSUN-78] - mysql plugin 324- [TSUN-80] - add random thinktime with in a given range ( [min,max]) 325- [TSUN-76] - add explanation for errors name in the documentation 326 327### [1.2.2] - 2008-02-23 - Minor bugfixes and enhancements ### 328### Fixed ### 329- [TSUN-30] - SNMP monitoring gives an error 330- [TSUN-31] - dyn_variable usage 331- [TSUN-35] - udp is not working 332- [TSUN-36] - default regexp for dyn_variable doesn't work in all case 333- [TSUN-38] - server monitoring crash if an ethernet interface's name is more than 6 chars long 334- [TSUN-39] - https recording doesn't work with most browsers 335- [TSUN-43] - session should not terminate if rosterjid is not defined 336- [TSUN-49] - <match> doesn't work with jabber plugin 337- [TSUN-51] - tsung does not work with R12B (httpd_util funs removed) 338- [TSUN-53] - postgresql errors not reported in all cases 339- [TSUN-55] - no error counter when userid_max is reached 340 341### Changed ### 342- [TSUN-14] - no_ack messages and asynchronous msg sent by the server are not available in the reports 343- [TSUN-27] - handle bidirectional protocols 344- [TSUN-28] - Refactoring needed to ease the change of the userid / password generation code 345- [TSUN-29] - Multiple file_server support 346- [TSUN-32] - make snmp server options tunable 347- [TSUN-34] - add costum http headers 348- [TSUN-44] - tsung should ignore whitespace keepalive from xmpp server 349- [TSUN-45] - add kernel-poll support for better performance 350- [TSUN-46] - add number of open connections in statistics 351- [TSUN-47] - ts_mon can be a bottleneck during very high load testing 352- [TSUN-50] - use the whole range of Id (from 0 to userid_max) before reusing already used Ids 353 354### Added ### 355- [TSUN-26] - Ability to loop on a given sequence of phase 356- [TSUN-52] - Adding comment during script capture 357- [TSUN-41] - add support for parent proxy for http only (not https) 358 359## [1.2.1] - 2006-10-07 - Minor bugfixes and enhancements ## 360### Fixed ### 361- [TSUN-5] get traffic from all interfaces instead of only *eth0* in erlang os monitoring (Linux) 362- [TSUN-18 the pgsql recorder fails if the client doesn't try first an SSL connection 363- [TSUN-19] a % character in some requests (eg. type=sql for pgsql) make the config_server crash. 364- [TSUN-20] pgsql client fails while parsing data from server 365- [TSUN-21] substitution in URL is not working properly when a new server or port is set 366- [TSUN-23] set default http version (1.1) 367- [TSUN-24] destination=previous doesn't work (jabber) 368 369### Changed ### 370- [TSUN-15] listen port is now customizable with the command line 371- [TSUN-17] add option to setup postgresql server IP and port at runtime for the recorder 372- [TSUN-22] add support for PUT, DELETE and HEAD methods for http 373 374## [1.2.0] - 2006-05-29 - Major feature enhancements ## 375### Fixed ### 376- fix beams communication problem introduced in new erlang releases. 377- fix several small problems with 'use_controller_vm' option 378- fix regression in recorder for WWW-Authentication (anders.nygren@gmail.com) 379- fix presence:roster request 380- fix online: must use presence:initial to switch to online status 381- fix single user agent case. 382- minor fixes for HTTP parsing 383 384### Changed ### 385- change name: idx-tsunami is now called tsung 386- import snmp_mgr src from R9C2 to enable SNMP with R10B 387- rebuild boot scripts if erlang version is different from compile time 388- many DTD improvements 389- improved match: add loop|abort|restart on (no)match behavior, multiple match tags is now possible (suggested by msmith@truelink.com) 390- ip is no more mandatory (default is 0.0.0.0) 391- close client socket when connection:closed is ask by the server (this should enable https recording with IE) 392- roster enhancements (jasonwtucker@gmail.com) 393 394### Added ### 395- add new plugin: pgsql for postgresql load testing 396- new: it's now possible to set multiple servers (selected at runtime by round robin) 397- add size_rcv stats 398- freemem and packet stats for Solaris (jasonwtucker@gmail.com) 399- clients and monitoring can use hosts list defined in environment variables, for use with batch schedulers (openpbs/torque, LSF and OAR) 400- performance improvements in stats engine for very high load (use session_cache) 401- add plugin architecture in recorder; add pgsql plugin 402- add *presence:directed* , *presence:broadcast* & *presence:final* requests for jabber (jasonwtucker@gmail.com) 403- sip-digest authentication (jasonwtucker@gmail.com) 404- add pubsub support (mickael.remond@process-one.net) 405 406## [1.1.0] - 2005-09-05 - Major feature enhancements ## 407 408### Added ### 409- new feature: HTTP proxy load testing in now possible (set *http_use_server_as_proxy* to true) 410- add dynamic substitution support for jabber 411- add 'raw' type of msg for Jabber (use the new 'data' attribute) 412- UserAgent is now customizable for HTTP testing 413 414### Changed ### 415- add the dynamic variable list to dynamic substitutions 416- 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 417- internal: Host header is now set during configuration phase 418 419### Fixed ### 420- fix bash script for solaris (jasonwtucker@gmail.com) 421- fix: several 'idx-tsunami status' can be run simultaneously (reported by Adam Spotton) 422- fix last phase duration 423- fix recorder: must log absolute url if only the scheme has changed 424 425## [1.0.3] - 2005-07-08 - Minor bugfixes ## 426 427### Fixed ### 428- fix broken https recording Thx to johann.messner@jku.at for bug reporting : 429- fix: forgot to add *"?"* when an URL is absolute and had a query part 430- 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 431- fix Host: header when port is != 80 432 433### Added ### 434- add *ts_file_server* module 435 436### Changed ### 437- allow multiple 'dyn_variable' in DTD 438 439## [1.0.2] - 2005-06-06 - Minor bugfixes ## 440 441### Fixed ### 442- 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) 443- update configure scripts (should build on RHEL3/x86_64) 444 445### Changed ### 446- remote beam startup is now tunable (-r ssh/rsh) 447- internal changes in ts_os_mon (suggested by R. Lenglet) 448 449## [1.0.1] - 2004-11-18 - Major bugfixes ## 450 451### Fixed ### 452- fix: broken free mem on non linux arch (Matthew Schulkind) 453- small fixes to the DTD Thx to Jonathan Bresler for testing and bug reporting : 454- fix: broken 'global', 'local' and 'no_ack' requests and size computation 455- fix: broken ids in jabber messages 456- fix: broken online/offline in user_server 457- default thinktime can now be overriden 458 459### Added ### 460- add script to convert apache log file (combined) to idx-tsunami XML 461 462### Changed ### 463- improved configure: add *--with-erlang* option and xmerl PATH detection idx-tsunami now compiles both with R9C and R10B 464- many improvements/fixes in analyse_msg.pl 465 466## [1.0] - 2004-08-13 - Minor bugfixes ## 467 468### Fixed ### 469- fix: broken path when building debian package 470- fix add_dynparams for jabber 471 472### Added ### 473- add rpm target in makefile 474- implement status 475- add 'match' in graph and doc 476 477## [1.0.beta7] - 2004-07-20 - Minor bugfixes ## 478 479### Fixed ### 480- HTTP: really (?) fix parsing of no content-length with connection:close 481- better handling of configure (--prefix is working) 482- fix: ssl_ciphers option is working again 483 484### Changed ### 485- add different types of output backend (currently, only 'text' works; 'rrdtool' is started but unfinished) 486 487## [1.0.beta6] - 2004-05-05 - Minor feature enhancements ## 488 489### Added ### 490- add a DTD for the configuration file 491- add dynamic request substitution (mickael.remond@erlang-fr) 492- add dynamic variable parsing from response (can be used later in the session for request substitution) 493- add response pattern to match (log if not match) 494 495### Fixed ### 496- HTTP: fix partial header parsing (mickael.remond@erlang-fr.org) 497- HTTP: fix chunk parsing when the chunk-size is split across two packets 498- HTTP: fix parsing of no content-length with connection:close case 499- fix: do not connect in init anymore; this fix too long phases when connection time is high. 500 501### Changed ### 502- check for bad input (config file, <client> name) 503- merge client and client_rcv processes into a single process 504- connect stat is now for both new connections and reconnections 505- check phase duration in launcher 506- various code cleanup 507 508## [1.0.beta5] - 2004-03-25 - Major Feature enhancements ## 509### Added ### 510- add SNMP monitoring (not yet customizable) 511- SOAP Support: IDX-Tsunami can now record and replay SOAP HTTP scenario. The SOAPAction HTTP header is now recorded 512 513### Fixed ### 514- fix remote start: log filename is now encoded to avoid bad parsing of log_file by 'erl' 515- Added ~/.idx-tsunami creation in idx-tsunami script if the directory does not already exist 516- HTTP: fix Cookie support: Cookie are not necessarily separated by "; " 517- 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 518 519### Changed ### 520- Extension of XML attribute entity normalisation 521- HTTP: Content-type support in the recorder (needed to handle non-HTML form encoded posts) 522- add autoconf support to detect Erlang installation path 523- 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. 524 525## [1.0.beta4] - 2004-03-16 - Minor bugfixes ## 526### Fixed ### 527- fix lost cookie when transfer-encoding:chunked is used 528- fix config parsing (the last request of the last page of a sesssion was not marked as endpage) 529- don't crash anymore on error during start or stop 530 531## [1.0.beta3] - 2004-02-24 - Minor feature enhancements ## 532 533### Fixed ### 534- fix stupid bug in start script for recorder 535- HTTP: fix '&' writes in the XML recorder for 'content' attribute 536 537### Changed ### 538- HTTP: enhanced Cookies parsing ('domain' and 'path' implemented). 539- ssl_ciphers can be customized 540- change log directory structure: all log files in one directory per test 541- change stats names: page_resptime -> page, response_time -> request 542 543### Added ### 544- add HTML reports (requires the perl Template toolkit) 545 546## [1.0.beta2] - 2004-02-11 - Minor feature enhancements ## 547 548### Changed ### 549- reorganise the sources 550- add tools to build a debian package 551- fix documentations 552- add minimalistic man page 553- syntax change: GETIMS +date replace by GET +'if_modified_since' 554 555## [1.0.beta1] - 2005-02-03 - Major Feature Enhancements ## 556 557### Added ### 558- rewrite the configuration engine. Now use an XML file. 559- add recording application: use as a HTTP proxy to record session into XML format 560- 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) 561- can now use several IPs per client host 562- several arrival phases can be set with different arrival rates and duration 563- can set test duration instead of number of users 564- add user defined statistics using a 'transaction' tag 565 566### Fixed ### 567- HTTP: fix cookies and POST handling (mickael.remond@erlang-fr.org) 568- HTTP: rewrite the parser (faster and cleaner) 569- fix bad timeout computation when close occur for persistent client 570- bugfixes and other enhancements. 571- fix memory leak with ssl (half-closed connections) 572 573## [0.2.1] - 2003-12-09 - Minor bugfixes and small enhancements ## 574 575### Changed ### 576- optimize session memory consumption: use an ets table to store session setup 577- HTTP: preliminary chunked-encoding support in HTTP/1.1 578- HTTP: Absolute URL are handled (server and port can be overridden ) 579- no more .hosts.erlang required 580- add stats on simultaneous users 581 582### Fixed ### 583- HTTP: fix crash when content-length is not set in headers 584- HTTP: fix POST method 585 586## [0.2.0] - 2003-08-29 - Major Feature Enhancements ## 587 588### Added ### 589- add 'realtime' stats 590- add new 'parse' type of protocol 591- add reconnection support (persistent client) 592- add basic HTTP and HTTPS support 593- split the application in two parts: a single controller (tsunami_controller), and the clients (tsunami) 594- switch to R9C 595 596 597## [0.1.1] - 2002-08-13 - Bugfix realease ## 598 599### Fixed ### 600- fix config file 601- fix few typos in docs 602- fix init script 603- few optimizations in user_server.erl 604- switch to R8B 605 606## [0.1.0] - 2001-05-30 - Initial release ## 607 608[Unreleased]: https://github.com/processone/tsung/compare/v1.6.0...HEAD 609[1.6.0]: https://github.com/processone/tsung/compare/v1.5.1...v1.6.0 610[1.5.1]: https://github.com/processone/tsung/compare/v1.5.0...v1.5.1 611[1.5.0]: https://github.com/processone/tsung/compare/v1.4.2...v1.5.0 612[1.4.2]: https://github.com/processone/tsung/compare/v1.4.1...v1.4.2 613[1.4.1]: https://github.com/processone/tsung/compare/v1.4.0...v1.4.1 614[1.4.0]: https://github.com/processone/tsung/compare/v1.3.3...v1.4.0 615[1.3.3]: https://github.com/processone/tsung/compare/v1.3.2...v1.3.3 616[1.3.2]: https://github.com/processone/tsung/compare/v1.3.1...v1.3.2 617[1.3.1]: https://github.com/processone/tsung/compare/v1.3.0...v1.3.1 618[1.3.0]: https://github.com/processone/tsung/compare/v1.2.2...v1.3.0 619[1.2.2]: https://github.com/processone/tsung/compare/v1.2.1...v1.2.2 620[1.2.1]: https://github.com/processone/tsung/compare/v1.2.0...v1.2.1 621[1.2.0]: https://github.com/processone/tsung/compare/v1.1.0...v1.2.0 622[1.1.0]: https://github.com/processone/tsung/compare/v1.0.2...v1.1.0 623[1.0.2]: https://github.com/processone/tsung/compare/v1.0.1...v1.0.2 624[1.0.1]: https://github.com/processone/tsung/compare/v0.2.1...v1.0.1 625[0.2.1]: https://github.com/processone/tsung/compare/v0.2.0...v0.2.1 626[0.2.0]: https://github.com/processone/tsung/compare/v0.1.1...v0.2.0 627[0.1.1]: https://github.com/processone/tsung/compare/v0.1.0...v0.1.1 628[PR #148]: https://github.com/processone/tsung/pull/148 629[PR #183]: https://github.com/processone/tsung/pull/183 630[PR #202]: https://github.com/processone/tsung/pull/202 631[PR #228]: https://github.com/processone/tsung/pull/228 632[PR #124]: https://github.com/processone/tsung/pull/124 633[PR #125]: https://github.com/processone/tsung/pull/125 634[PR #198]: https://github.com/processone/tsung/pull/198 635[PR #151]: https://github.com/processone/tsung/pull/151 636[PR #153]: https://github.com/processone/tsung/pull/153 637[PR #233]: https://github.com/processone/tsung/pull/233 638[PR #235]: https://github.com/processone/tsung/pull/235 639[PR #240]: https://github.com/processone/tsung/pull/240 640[PR #91]: https://github.com/processone/tsung/pull/91 641[PR #104]: https://github.com/processone/tsung/pull/104 642[PR #107]: https://github.com/processone/tsung/pull/107 643[PR #109]: https://github.com/processone/tsung/pull/109 644[PR #111]: https://github.com/processone/tsung/pull/111 645[PR #79]: https://github.com/processone/tsung/pull/79 646[PR #81]: https://github.com/processone/tsung/pull/81 647[PR #93]: https://github.com/processone/tsung/pull/93 648[PR #106]: https://github.com/processone/tsung/pull/106 649[PR #71]: https://github.com/processone/tsung/pull/71 650[PR #41]: https://github.com/processone/tsung/pull/41 651[PR #44]: https://github.com/processone/tsung/pull/44 652[PR #49]: https://github.com/processone/tsung/pull/49 653[PR #51]: https://github.com/processone/tsung/pull/51 654[PR #65]: https://github.com/processone/tsung/pull/65 655[PR #70]: https://github.com/processone/tsung/pull/70 656[PR #74]: https://github.com/processone/tsung/pull/74 657[PR #42]: https://github.com/processone/tsung/pull/42 658[PR #75]: https://github.com/processone/tsung/pull/75 659[#117]: https://github.com/processone/tsung/issues/117 660[#121]: https://github.com/processone/tsung/issues/121 661[#126]: https://github.com/processone/tsung/issues/126 662[#136]: https://github.com/processone/tsung/issues/136 663[#161]: https://github.com/processone/tsung/issues/161 664[#162]: https://github.com/processone/tsung/issues/162 665[#204]: https://github.com/processone/tsung/issues/204 666[#218]: https://github.com/processone/tsung/issues/218 667[#136]: https://github.com/processone/tsung/issues/136 668[#145]: https://github.com/processone/tsung/issues/145 669[#150]: https://github.com/processone/tsung/issues/150 670[#159]: https://github.com/processone/tsung/issues/159 671[#132]: https://github.com/processone/tsung/issues/132 672[#182]: https://github.com/processone/tsung/issues/182 673[#189]: https://github.com/processone/tsung/issues/189 674[#201]: https://github.com/processone/tsung/issues/201 675[#225]: https://github.com/processone/tsung/issues/225 676[#242]: https://github.com/processone/tsung/issues/242 677