Skip to content
Tsung plugin for WebSockets
Erlang Python
Find file
Latest commit 4395d4e Sep 16, 2012 @wulczer Support setting an Origin header when connecting.
Some servers accept or reject connections based on the Origin header
and so the client needs to have an option to set it.
Failed to load latest commit information.
include Support setting an Origin header when connecting. Sep 16, 2012
src Support setting an Origin header when connecting. Sep 16, 2012
LICENSE Add license file. Mar 25, 2012
README.rst Mention loose ends in the readme. Mar 25, 2012 Add an example WebSockets server. Mar 25, 2012
websocket.xml Support setting an Origin header when connecting. Sep 16, 2012


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.