Skip to content

grafana/xk6-websockets

Repository files navigation

xk6-websockets

This extension adds a PoC Websockets API implementation to k6.

This is meant to try to implement the specification as close as possible without doing stuff that don't make sense in k6 like:

  1. not reporting errors
  2. not allowing some ports and other security workarounds
  3. supporting Blob as message

It supports additional k6 specific features such as:

  • Custom metrics tags
  • Cookie jar
  • Headers customization
  • Support for ping/pong which isn't part of the specification
  • Compression Support (The only supported algorithm currently is deflate)

It is implemented using the xk6 system.

Requirements

Getting started

  1. Build the k6's binary:
$ make build
  1. Run an example:
$ ./k6 run ./examples/test-api.k6.io.js

Discrepancies with the specifications

  • binaryType is "ArrayBuffer" by default instead of "Blob" and will throw an exception if it's tried to be changed as "Blob" is not supported by k6.