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 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.
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.
News
- Jul 20 2015 Tsung
1.6.0 is available. Web dashboard added.
- Apr 9 2014 Tsung
1.5.1 is available. MQTT support added.
- May 24 2013 Tsung
1.5.0 is available. Websocket, BOSH and AMQP
(experimental) support added.
- Jan 4 2012 Tsung
1.4.2 is available
- Nov 21 2011 Tsung is now in
debian
- Sep 13
2011 Tsung
1.4.1 is available ! This is a bugfix only release.
- Sep 5
2011 Tsung
1.4.0 is available !
- Apr 6
2011 Github mirror available. Should be synchronized with the master branch on gitorious
- Aug 17
2010 Tsung
1.3.3 is available ! Only bugfixes in this release
- Jun 20
2010 Tsung
1.3.2 is available ! Many
bugfixes and
enhancements
- Feb 2 2010 Migration to Git
- Sep 10
2009 Tsung
1.3.1 is available ! Many
bugfixes and
enhancements: Release notes
- Sep 16
2008 Tsung
1.3.0 is available ! WebDAV, LDAP and MySQL support added, many
bugfixes and other enhancements
- Mar 25 2007 A tutorial: Writing a Tsung plugin has been contributed by tty
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 , XMPP/Jabber, BOSH, MQTT and AMQP
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, Munin 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, POST, PUT, DELETE, HEAD, OPTIONS, PATCH methods
- Cookies are automatically handled
- 'GET If-modified since' type of request
- WWW-authentication Basic and Digest
- 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
- Websocket
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
- PubSub, MUC, Virtual Hosts
- BOSH & XMPP over Websocket
PostgreSQL
- Authentication (password or MD5)
- Basic and extended Queries
- Proxy mode to record sessions
MySQL
This plugin works only with MySQL version 4.1 and higher.
- Secured authentication method only (MySQL >= 4.1)
- Basic Queries
LDAP
- Bind
- Add, search, modify queries
- starttls (only with R12B-0 Erlang and up)
AMQP
- basic publish and consume
- publisher confirm and consumer ack
- qos
MQTT
It supports MQTT V3.1
- Connect to mqtt broker with options
- Publish mqtt messages to the broker
- Subscribe/unsubscribe topics
- Support QoS 0 and QoS 1s MQTT V3.1.