# Tsung

> Tsung is an open source, self-hosted protocol and API load tool from Tsung community, scripted in Erlang, XML.

- Canonical: https://perf.jmeter.ai/tools/tsung/
- Official: https://github.com/processone/tsung
- Source: https://github.com/processone/tsung
- Vendor: Tsung community
- Category: Protocol/API Load
- License: Open Source — Free; GPL-2.0 license.
- Deployment: Self-hosted
- Status: Active
- Scripting: Erlang, XML
- Protocols: HTTP, HTTPS, WebDAV, LDAP, XMPP
- OS support: Linux, macOS
- First released: 2001
- Latest release: 1.8.0 (2023-03-02)
- Last verified: 2026-08-11

## What it is
Tsung is an Erlang-based distributed load testing tool. XML scenarios model users and support several network protocols with statistical reporting.

## Choose it when
- API and protocol throughput or latency campaigns
- Teams that prefer open-source licensing and self-hosting options
- Groups comfortable scripting in Erlang, XML

## Look elsewhere when
- Teams unwilling to operate generators, results storage, and scaling

## Architecture
Tsung is commonly operated as self-hosted software with scenario authoring in Erlang, XML. Concurrency and distribution depend on how you size workers or injectors.

## Pricing
Tsung is open-source software released under the GPLv2 license and is free to use with no licensing fees or subscription costs.

## Compare
- [Apache JMeter vs Tsung](https://perf.jmeter.ai/vs/apache-jmeter-vs-tsung/) — The practical split is the authoring language: Java, Groovy for Apache JMeter, Erlang, XML for Tsung.
- [Grafana k6 vs Tsung](https://perf.jmeter.ai/vs/grafana-k6-vs-tsung/) — The practical split is the authoring language: JavaScript, TypeScript for Grafana k6, Erlang, XML for Tsung.
- [Gatling vs Tsung](https://perf.jmeter.ai/vs/gatling-vs-tsung/) — The practical split is the authoring language: Java, Scala, Kotlin for Gatling, Erlang, XML for Tsung.
- [Locust vs Tsung](https://perf.jmeter.ai/vs/locust-vs-tsung/) — The practical split is the authoring language: Python for Locust, Erlang, XML for Tsung.
- [Artillery vs Tsung](https://perf.jmeter.ai/vs/artillery-vs-tsung/) — The practical split is the authoring language: JavaScript, TypeScript for Artillery, Erlang, XML for Tsung.
- [Taurus vs Tsung](https://perf.jmeter.ai/vs/taurus-vs-tsung/) — The practical split is the authoring language: Python, YAML for Taurus, Erlang, XML for Tsung.
- [Tsung alternatives](https://perf.jmeter.ai/alternatives/tsung/)

## FAQ
### Who is Tsung for?
Tsung is best for engineers focused on API and protocol-level throughput and latency. It is open source, so teams can self-host and extend it. Vendor: Tsung community. Deployment model: self-hosted. Free; GPL-2.0 license. Confirm details against the official site and a short proof-of-concept in your environment.

### How does Tsung differ from Artillery?
Compared with Artillery, scripting centers on Erlang, XML rather than JavaScript, TypeScript. Tsung lists protocols HTTP, HTTPS, WebDAV, LDAP, XMPP; Artillery lists HTTP, HTTPS, WebSocket, Socket.IO, MQTT. Status is active versus active. Use the Test Rig to compare full specs side by side before a proof-of-concept.

### What scripting language and concurrency model does Tsung use?
Tsung uses Erlang, XML for scripting or scenario definition. Runtime model: protocol-oriented virtual users configured through the product workflow. OS support: Linux, macOS. Protocols: HTTP, HTTPS, WebDAV, LDAP, XMPP. Match these to how your team already authors tests and which systems you must drive under load.

### What is the cloud or enterprise path for Tsung?
Tsung is primarily self-hosted; teams typically run generators on their own machines, CI runners, or private cloud. Plan for generator capacity, network access to targets, and result storage yourself. As open source, commercial support or hosted siblings may exist separately. Check the official site. Pricing note: Free; GPL-2.0 license.

### What are known limitations of Tsung?
Tsung limitations to weigh: self-hosted tools require you to provision, scale, and observe load generators yourself. Status: active. Always validate against your target protocols and scale with a proof-of-concept. Confirm details against the official site and a short proof-of-concept in your environment.

---
Curated by NaveenKumar Namachivayam (QAInsights) · methodology: https://perf.jmeter.ai/about/#methodology · corrections: https://github.com/QAInsights/Performance-Testing-Tools/issues/new?title=Tool%20submission%3A%20&body=Tool%20name%3A%20%0AOfficial%20URL%3A%20%0AWhat%20should%20be%20added%20or%20corrected%3F%20%0A