Tsung is an open-source multi-protocol distributed load
testing tool
It can be used to stress HTTP, SOAP, PostgreSQL and
Jabber/XMPP servers. Tsung (formerly known as IDX-Tsunami) is a free
software released under the GPLv2 license.
The purpose of Tsung is to simulate users in order to test
the scalability and performances of IP based client/server
applications. You can use it to do load and stress testing of
your servers. Currently, HTTP, PostgreSQL and XMPP(Jabber) protocols have been
implemented and tested, but it can be easily extended.
It can be distributed on several client machines and
is able to simulate thousands of virtual users concurrently.
Tsung is developped in Erlang, an open-source
language made by Ericsson for building robust fault-tolerant
distributed applications.
Tsung is supported by Process-One
News
Main features
-
High Performance: the load can be distributed on a
cluster of client machines
-
Multi-protocols using a plugin system: HTTP, SOAP and Jabber
are currently supported. SSL is also supported.
-
Several IP addresses can be used on a single machine
using the underlying OS IP Aliasing
-
OS monitoring (CPU, memory and network trafic) using
SNMP or Erlang agents on remote servers.
- XML configuration system; several sessions can be used to
simulate differents type of users. Dynamic sessions can be
easily described in XML (this can be used to retrieve at
runtime an ID from the server output and use it later in the
session).
- In order to generate a realistic trafic, user thinktimes
and the arrival rate can be randomize using a probability
distribution (exponential currently)
- HTML reports can be
generated during the load to view response times measurement,
server CPU, etc.
HTTP
- HTTP/1.0 and HTTP/1.1 support
- GET and POST requests
- Cookies are automaticaly handled
- 'GET If-modified since' type of request
- WWW-authentication Basic
- Proxy mode to record sessions using a Web browser.
- Basic support for SOAP using the HTTP mode (the SOAPAction HTTP header is handle).
Jabber
- Authentication, presence and register messages
- Chat messages to online or offline users
- Roster set and get requests
- Global users' synchronisation can be set on specific actions
PostgreSQL
- Authentication (password)
- Basic Queries