Autobahn|Testsuite

The Autobahn|Testsuite provides a fully automated test suite to verify client and server implementations of the WebSocket Protocol for specification conformance and implementation robustness.

Autobahn|Testsuite also provides a couple of other tools useful for WebSocket (and WAMP) implementors and developers.

For installation, see Installation. For usage, please see Usage.

Reports

Check out the test reports:

Details on the test setup used with creating the above reports.

Users

Autobahn|Testsuite is used by numerous projects and companies across the industry:

What users are saying:

“Autobahn was a huge help during the standardization and early development of WebSocket in Firefox. It helped find many nasty corner conditions in a clean and repeatable way.

Interoperation testing like this really moves the Open Web forward.”

Patrick McManus, Mozilla Firefox


“The Jetty project has been active in the development of the websocket protocol and lack of a comprehensive test suite was an impediment to the standardisation of the protocol. The Autobahn test suit has filled that void and been warmly embraced by our websocket engineers at Intalio as it has been invaluable for evaluating the protocol development, improving inter operability and monitoring adoption of new/optional features.

Our own implementation and the wider websocket ‘ecosystem’ are significantly better due to the availability of Autobahn.”

Greg Wilkins, Jetty author, Chief Architect at Intalio


“During the time of implementing the latest WebSocket version in Netty and Undertow we were searching for a way to test our implementations and make sure they are 100% RFC compliant. While we already had unit tests in place there was a lack of good tests for the whole implementation. Using the AutobahnTestsuite for this purpose allowed us to concentrate on the implementation and made it easy to catch regressions as soon as possible.”

Norman Maurer, Principal Software Engineer at Red Hat

Test Suite Coverage

The test suite will check an implementation by doing basic WebSocket conversations, extensive protocol compliance verification and performance and limits testing.

Contains over 500 test cases covering

  • Framing
  • Pings/Pongs
  • Reserved Bits
  • Opcodes
  • Fragmentation
  • UTF-8 Handling
  • Limits/Performance
  • Closing Handshake
  • Opening Handshake (under development)
  • WebSocket compression (permessage-deflate extension)

Other Tools

Besides the automated testsuite (aka “fuzzing” server/client), wstest also includes a number of other handy modes that aid WebSocket and WAMP developers:

  • WebSocket echo server and client
  • WebSocket broadcast server (and client driver)
  • Testee modes to test AutobahnPython against the test suite
  • wsperf controller and master (see below for more)
  • WAMP server and client, for developing WAMP implementations
  • WebSocket Mass-Connect

Please see the Usage for further information.

Contact

Get in touch on IRC #autobahn on chat.freenode.net or join the mailing list.

Indices and tables

Reactive Manifesto: We are reactive banner