Tsung – Open-source multi-protocol distributed load testing tool

Sponsored Link
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 ...).

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, 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/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
PubSub, MUC, Virtual Hosts


Authentication (password or MD5)
Basic Queries

This plugin works only with MySQL version 4.1 and higher.

Secured authentication method only (MySQL >= 4.1)
Basic Queries


Add, search, modify queries
starttls (only with R12B-0 Erlang and up)

Install Tsung on ubuntu

Download deb package from here  once you have deb package you can install by double clicking on it.

You can check here how to use Tsung from here


Sponsored Link

Related posts

2 thoughts on “Tsung – Open-source multi-protocol distributed load testing tool

  1. Hello. I am very new to load testing. I want to do Performance Analysis of a messaging server for an enterprise application which uses XMPP. I want to test the performance during login, chat sessions, presence service notifications, etc., when under load. Tsung seems to be an apt tool for my requirements.

    I am not able to completely analyse the results (both graphical and statistical) that I have obtained. I have referred the Tsung documentation and other websites. But I still have few queries. Could someone please help me with this??

    Here are log details from ‘connect.txt’. This load is generated for max 100 users with arrivalphase of 1min and interarrival of 0.5second.

    0 1.3 0.8100961538461539 0.3003341117366558 1.364990234375 0.566162109375 0 0
    10 2.3 1.0076851222826086 0.28226948557783504 1.384033203125 0.55517578125 0.8100961538461539 13
    20 1.5 0.9711100260416666 0.2764732010730768 1.384033203125 0.5380859375 0.9363335503472222 36
    30 2.2 1.1567937677556817 0.36105147083378225 1.93896484375 0.5380859375 0.9465619255514706 51
    40 1.4 0.9898332868303571 0.2942442039408825 1.93896484375 0.5380859375 1.0099194670376712 73
    50 1.3 1.0449969951923077 0.28618096652614605 1.93896484375 0.5380859375 1.0066872081537357 87
    60 0 0 0 1.93896484375 0.5380859375 1.01166748046875 100
    70 0 0 0 1.93896484375 0.5380859375 1.01166748046875 100
    80 0 0 0 1.93896484375 0.5380859375 1.01166748046875 100
    90 0 0 0 1.93896484375 0.5380859375 1.01166748046875 100
    100 0 0 0 1.93896484375 0.5380859375 1.01166748046875 100
    110 0 0 0 1.93896484375 0.5380859375 1.01166748046875 100
    111 0 0 0 1.93896484375 0.5380859375 1.01166748046875 100

    Main Statistics:

    Name: connect
    highest 10sec mean: 1.16msec
    lowest 10sec mean: 0.971msec
    Highest Rate: 2.3/sec
    Mean rate: 0.73/sec
    Mean: 1.01msec
    Count: 100

    Now consider the data line for 20seconds. As per ‘stats.conf’, ‘connect’ is of type ‘sample’ and the format is:
    name: connect;
    count (during the last10sec): 1.5;
    mean: 0.9711100260416666;
    stddev: 0.2764732010730768;
    max: 1.384033203125;
    min: 0.5380859375;
    globalmean: 0.9363335503472222;
    globalcount: 36;

    1) What is count exactly? I can tell that (using globalcount) from 0-10 sec 13 users were connected. From 10-20 sec 23 more users were connected. But what is count representing?
    2) mean is calculated every 10 sec. But what is globalmean? How is it calculated?
    3) max and min are representing maximum and minimum of what ?
    4) How is Mean Rate calculated in Main Statistics table?
    5) As per the log file, lowest 10sec mean must be 0.81. But why is it 0.97msec in Main Statistics table?

    Any pointers or directions will be really helpful!!!

    Thanks and Regards

Leave a comment

Your email address will not be published. Required fields are marked *