AutobahnTestsuite Documentation

The AutobahnTestsuite provides a fully automated test suite to verify client and server implementations of the WebSocket protocol for specification conformance and implementation robustness.

Features

  • Over 500 test cases covering WebSocket protocol compliance

  • Framing, Pings/Pongs, Reserved Bits, Opcodes testing

  • Fragmentation and UTF-8 handling validation

  • Limits and performance testing

  • Closing and opening handshake verification

  • WebSocket compression (permessage-deflate extension) support

Installation

Using Docker (Recommended)

docker run -it --rm \
    -v "${PWD}/config:/config" \
    -v "${PWD}/reports:/reports" \
    -p 9001:9001 \
    --name fuzzingserver \
    crossbario/autobahn-testsuite

Using Python Package

pip install autobahntestsuite

Note

The Python package requires Python 2.7 and is primarily maintained for compatibility. We recommend using the Docker image for new deployments.

Usage

Testing WebSocket Servers

# Start the fuzzing server
wstest -m fuzzingserver

# Point your WebSocket client to ws://localhost:9001

Testing WebSocket Clients

# Start your WebSocket server on port 9001
# Then run the fuzzing client
wstest -m fuzzingclient

Docker Usage

# Create configuration directory
mkdir -p config reports

# Run testsuite in fuzzingserver mode (test clients)
docker run -it --rm \
    -v "${PWD}/config:/config" \
    -v "${PWD}/reports:/reports" \
    -p 9001:9001 \
    crossbario/autobahn-testsuite

Test Reports

After running tests, detailed HTML reports are generated showing:

  • Test case results (Pass/Fail/Unimplemented)

  • Protocol compliance summary

  • Detailed failure descriptions

  • Performance metrics

The reports include compliance status for each test case and help identify specific areas where implementations may need improvement.

Resources

Indices and tables