k6 extension to k6 extension to use the WebTransport protocol. Implemented using the xk6 system and webtransport-go.
Supports:
- bidirectional streams
- datagrams
This project is a work in progress. Feedback and contributions are welcome!
To build a k6
binary with this extension, first ensure you have the prerequisites:
- Go
- Git
Then:
- Install
xk6
:
go install go.k6.io/xk6/cmd/xk6@latest
- Build the binary:
xk6 build --with github.com/kelseyaubrecht/xk6-webtransport@latest
- Bidirectional stream
- Write
- ReadAll
- ReadFull
- ReadAtLeast
An example of using the extension to create a bidirection stream. More in examples.
import wt from "k6/x/webtransport";
export default function () {
const url = "https://localhost:443/webtransport";
wt.connect(url);
let data = [0, 1, 2, 3, 4];
wt.write(data);
const response = wt.readAll();
// handle response
wt.close();
}
Metric | Type | Description |
---|---|---|
webtransport_read_bytes | counter | Total bytes read |
webtransport_read_count | counter | Total read count |
webtransport_read_size | trend | Trends of read size per operation |
webtransport_write_bytes | counter | Total bytes written |
webtransport_write_count | counter | Total write count |
webtransport_write_size | trend | Trends of write size per operation |
webtransport_datagrams_sent_count | counter | Number of sent datagrams |
webtransport_datagrams_sent_bytes | counter | Total bytes sent in datagrams |
webtransport_datagrams_received_count | counter | Number of received datagrams |
webtransport_datagrams_received_bytes | counter | Total bytes received in datagrams |