Skip to content


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Tsung plugin for WebSockets
branch: master

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
include Support setting an Origin header when connecting.
README.rst Add an example WebSockets server.
ws.pem Add an example WebSockets server.


WebSockets for Tsung

A plugin for Tsung ( for load-testing WebSockets servers.

Draws inspiration from the tsung_websocket project (, various other Erlang WebSockets implementations and the Tsung plugin tutorial (


Why not just build on tsung_websockets? The reasons are:

  • for some reason it didn't work out of the box
  • it supports WebSockets as a transport protocol so you can run others like XMPP on top of it, and I didn't need that
  • it includes a lot of unrelated code
  • I wanted to try Erlang


Get the source and build dependencies for Tsung. On Debian use:

apt-get source tsung
sudo apt-get build-dep tsung

For Ubuntu or other distros you'll have to download the source from upstream:

sudo apt-get install erlang-nox python-matplotlib gnuplot libtemplate-perl openssh-client openssh-server
tar xzf tsung-1.4.2.tar.gz

Copy the DTD and provided Erlang files from tsung_ws to the Tsung source tree:

cp tsung_ws/tsung-1.0.dtd tsung-x.x.x/
cp tsung_ws/include/ts_websocket.hrl tsung-x.x.x/include/
cp tsung_ws/src/tsung_controller/ts_config_websocket.erl tsung-x.x.x/src/tsung_controller/
cp tsung_ws/src/tsung/ts_websocket.erl tsung-x.x.x/src/tsung/

Compile Tsung:

cd tsung-x.x.x/
./configure --prefix=$HOME/local/tsung
make install

Tsung uses SSH to launch monitoring and controller processes, make sure your user can connect to localhost without needing a password (this assumes you have generated an SSH key before):

cat $HOME/.ssh/ >> $HOME/.ssh/authorized_keys

Start the example Python WebSockets server (you will need Twisted and a fork of txWebSocket) and run Tsung using the provided configuration file:

sudo apt-get install python-twisted
sudo pip install -e git://
cd ../tsung_ws/
$HOME/local/tsung/bin/tsung -f websocket.xml -m /tmp/tsung.log start

After the run is done, you can generate an HTML report:

mkdir report
cd report
$HOME/local/tsung/lib/tsung/bin/ --stats /tmp/tsung.log

Loose ends

More error checking, handling continuation and binary frames, better logging.

Something went wrong with that request. Please try again.