forked from processone/tsung
/
CHANGES
288 lines (269 loc) · 14.4 KB
/
CHANGES
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
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)