Tsung is a distributed load testing tool. It is protocol-independent and can currently be used to stress HTTP, WebDAV, PostgreSQL, MySQL, LDAP, AMQP, and XMPP/Jabber servers. It simulates user behavior using an XML description file, reports many measurements in real time (statistics can be customized with transactions, and graphics generated using gnuplot). For HTTP, it supports 1.0 and 1.1, has a proxy mode to record sessions, supports GET, POST, PUT, and DELETE methods, cookies, and basic/digest authentication. It also has support for SSL, WebSocket, and BOSH.
This program was written to help test the Open Projects dancer-ircd. It simulates client activity by selecting random servers to connect to and random actions out of a list. It can handle hundreds of simultaneous connections, and can replay a log file of what it has previously done in order to help isolate the actions which cause the daemon to have problems, using methods such as binary chops. Please note that although at this point code is only written to test ircds, it is hoped that this will be extended in the future to other types of daemons.