Tsung is a multi-protocol distributed load testing tool.
It can be used to test the scalability and performances of IP based client/server applications (supported protocols: HTTP, WebDAV, SOAP, PostgreSQL, MySQL, LDAP, MQTT, AMQP and Jabber/XMPP).
It can simulate a huge number of simultaneous user from a single machine; moreover, you can distribute the users on cluster for machines. When used on cluster, you can generate a really impressive load on a server with a modest cluster, easy to set-up and to maintain. You can also use Tsung on a cloud like EC2.
This is free and open source software.
Key Features
- High Performance: Tsung can simulate a huge number of simultaneous users per physical computer: It can simulates thousands of users on a single CPU (Note: a simulated user is not always active: it can be idle during a thinktime period). Traditional injection tools can hardly go further than a few hundreds (Hint: if all you want to do is requesting a single URL in a loop, use ab; but if you want to build complex scenarios with extended reports, Tsung is for you).
- Distributed: the load can be distributed on a cluster of client machines
- Multi-Protocols using a plug-in system: HTTP (both standard web traffic and SOAP), WebDAV, Jabber/XMPP and PostgreSQL are currently supported. LDAP and MySQL plugins were first included in the 1.3.0 release.
- SSL support
- Several IP addresses can be used on a single machine using the underlying OS IP Aliasing
OS monitoring (CPU, memory and network traffic) using Erlang agents on remote servers or SNMP - XML configuration system: complex user’s scenarios are written in XML. Scenarios can be written with a simple browser using the Tsung recorder (HTTP and PostgreSQL only).
Dynamic scenarios: You can get dynamic data from the server under load (without writing any code) and re-inject it in subsequent requests. You can also loop, restart or stop a session when a string (or regexp) matches the server response. - Mixed behaviours: several sessions can be used to simulate different type of users during the same benchmark. You can define the proportion of the various behaviours in the benchmark scenario.
- Stochastic processes: in order to generate a realistic traffic, user thinktimes and the arrival rate can be randomized using a probability distribution (currently exponential)
Website: github.com/processone/tsung
Support:
Developer: Nicolas Niclausse and contributors
License: GNU General Public License v2.0
Tsung is written in Erlang. Learn Erlang with our recommended free books and free tutorials.
Related Software
| Web Server Benchmarking Tools | |
|---|---|
| Locust | Easy to use, scriptable and scalable performance testing tool |
| Apache JMeter | Load testing and performance measurement application |
| k6 | Modern load testing tool for developers and testers in the DevOps era |
| wrk | Modern HTTP benchmarking tool |
| Siege | HTTP regression testing and benchmarking utility |
| AutoCannon | Fast HTTP/1.1 benchmarking tool |
| Tsung | Multi-protocol distributed load testing tool |
| bombardier | Uses fasthttp instead of Go’s default http library, |
| ApacheBench | Apache (and other web servers) benchmark tool |
| Cassowary | Modern HTTP/S, intuitive & cross-platform load testing tool built in Go |
| Drill | HTTP load testing application written in Rust |
| httperf | HTTP load generator |
| FunkLoad | Web testing tool in the same spirit as Perl's WWW::Mechanize |
Read our verdict in the software roundup.
Explore our comprehensive directory of recommended free and open source software. Our carefully curated collection spans every major software category.This directory is part of our ongoing series of informative articles for Linux enthusiasts. It features hundreds of detailed reviews, along with open source alternatives to proprietary solutions from major corporations such as Google, Microsoft, Apple, Adobe, IBM, Cisco, Oracle, and Autodesk. You’ll also find interesting projects to try, hardware coverage, free programming books and tutorials, and much more. Discovered a useful open source Linux program that we haven’t covered yet? Let us know by completing this form. |

