Custom k6 builds
With k6 extensions, you can create custom k6 binaries to support your specific reliability-testing needs.
Currently, k6 supports two ways to extend its native functionality:
- Output extensions
Send metrics to a custom file format or service. Add custom processing and dispatching.
xk6 makes custom binaries
xk6 is command-line tool and framework written in Go. With xk6, you build custom k6 binaries that bundle one or more extensions written in Go.
With xk6 and the Go toolchain, you can build the k6 binary with the combination of extensions you want. You can use the bundle builder to generate the CLI command that will build your customized k6 binary.
You now have a new option that doesn't require setting a Go environment! Use Docker to build your custom binary.
Support for Docker
Extension use cases
The extensions ecosystem provides endless possibilities to expand the functionality for your k6 testing.
Some reasons you might want to extend k6 include the following:
To add support for a new network protocol
For example, xk6-amqp gives access to resources using the Advanced Message Queueing Protocol (AMQP). With xk6-amqp, your scripts can create message queues and seed messages for tests that include systems like RabbitMQ or ActiveMQ (among others).
To incorporate a client library for test dependency
kubectl. Prepare isolated Namespaces for each test run, or inject environment variables as ConfigMaps.
To format and send metrics to the output of your choice
Suppose your company has consolidated its observability metrics into Prometheus. Use xk6-output-prometheus-remote to publish your k6 test metrics to Prometheus as well!
To improve script performance and efficiency
Perhaps your company uses OpenTelemetry to trace service requests through layers of microservices. Using xk6-distributed-tracing, you can update the