Skip to content
Benchmark a WebSocket server's message throughput ⌛
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.
.travis.yml add verbose flag to unittest Jan 30, 2019
LICENSE Update LICENSE Jan 27, 2019

Build Status

📻 WebSocket Benchmarker ⌚️

Message throughput is how fast a WebSocket server can parse and respond to a message. Some people consider this to be a good reference of a framework/library/server's performance. This tool measures the message throughput under load by mocking concurrent clients.


Now with 100% more bleeding edge ⚡️ asyncio goodness.


Python 3.6.5+.

pip install -r requirements.txt


This program expects the host to be an echo server and measures the time between sending a message and recieving the same message back from the host. It performs this for a number of client connections simultaneously and is designed to produce repeatable results.

python will launch the benchmark and print statistics to stdout. If the log file path is to a non-file then one will be created otherwise results will be appended to the existing file.

The raw results are in CSV format with each line representing a client's roundtrip times.

E.g., 0.1, 0.1, 0.1 for one client performing three roundtrips.

Arg Description Default
--h Host address of WebSocket server localhost:3000
--n Number of clients to create 1000
--c Number of concurrent clients 64
--r Roundtrips per client 5
--s Message size in characters 30
--l Path to create or append to a log file ./log.txt


Full end-to-end testing via unittest.

python -m unittest
Ran 3 tests in 8.371s



MIT (c) 2019 healeycodes.

Inspiration taken from the unmaintained JavaScript project websocket-benchmark.

You can’t perform that action at this time.