Tsung is an open-source multi-protocol distributed load
testing tool
It can be used to stress HTTP, WebDAV, SOAP,
PostgreSQL, MySQL, LDAP 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 performance of IP based client/server
applications. You can use it to do load and stress testing of
your servers. Many protocols have been
implemented and tested, and it can be easily extended. WebDAV, LDAP and
MySQL support have been added recently (experimental).
It can be distributed on several client machines and
is able to simulate hundreds of thousands of virtual users concurrently (or
even millions if you have enough hardware ...).
Tsung is developed in Erlang, an open-source
language made by Ericsson for building robust fault-tolerant
distributed applications.
Tsung is supported by Process-One
News
- Sep 16
2008 Tsung
1.3.0 is available ! WebDAV, LDAP and MySQL support added, many
bugfixes and other enhancements
- Mar 4 2008 Tsung 1.2.2 is available !
- Mar 25 2007 A tutorial: Writing a Tsung plugin has been contributed by tty
- Nov 16 2006 Tsung 1.2.1 is available !
-
Sep 5 2006 pgFouine now supports Tsung and helps you to generate load sessions for PostgreSQL testing.
Main features
-
High Performance: the load can be distributed on a
cluster of client machines
-
Multi-protocols using a plugin system: HTTP, WebDAV, SOAP,
PostgreSQL, MySQL, LDAP and XMPP/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 traffic) using
SNMP or Erlang agents on remote servers.
- XML configuration system; several sessions can be used to
simulate different 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 traffic, user think-times
and the arrival rate can be randomize using a probability
distribution
- 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 automatically 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).
- WebDAV extensions
XMPP (Jabber)
- Authentication, presence and register messages
- Chat messages to online or offline users
- Roster set and get requests
- Global users' synchronization can be set on specific actions
PostgreSQL
- Authentication (password or MD5)
- Basic Queries
MySQL
This plugin is experimental. It works only with MySQL version 4.1 and higher.
- Secured authentication method only (MySQL >= 4.1)
- Basic Queries
LDAP
This plugin is experimental
- Bind
- Add, search, modify queries
- starttls (only with R12B-0 Erlang and up)