Explore k6 extensions
With over 50 available extensions, the k6 extension ecosystem has many options to meet your requirements and help you incorporate new protocol access, embed a particular client, or improve your test performance. Extensions are developed both by the k6 developers and by the open-source developer community.
Extensions are composable; you can combine any extensions, or mix and match different test cases. You can use Go and xk6 or Docker to build your custom k6 binary:
xk6 build \
--with github.com/grafana/xk6-sql@v0.0.1 \
--with github.com/grafana/xk6-output-prometheus-remote
docker run --rm -u "$(id -u):$(id -g)" -v "${PWD}:/xk6" grafana/xk6 build \
--with github.com/grafana/xk6-sql@v0.0.1 \
--with github.com/grafana/xk6-output-prometheus-remote
Use the table to explore the many extensions. Questions? Feel free to join the discussion about extensions in the k6 Community Forum.
xk6-ansible-vault
Encrypt and decrypt Ansible Vault
xk6-avro
Work with messages using Avro data format
xk6-cable
Test Action Cable and AnyCable functionality
xk6-cache
Enable vendoring remote HTTP modules to a single source-control-friendly file
xk6-celery
Generate load on Celery workers
xk6-chai
Embed k6chaijs into the k6 binary
xk6-client-prometheus-remote
Test Prometheus Remote Write performance
xk6-client-tracing
Client for load testing distributed tracing backends
xk6-coap
Interact with Constrained Application Protocol endpoints
xk6-cognito
Get a cognito access token using USER_SRP_AUTH flow
xk6-couchbase
Load-test Couchbase no-SQL databases
xk6-crypto
Use extended crypto functions
xk6-csv
Parse CSV values
xk6-dashboard
Create a web-based metrics dashboard
xk6-disruptor
Inject faults to test 💣
xk6-dotenv
Load env vars from a .env file
xk6-enhanced
Add enhanced JavaScript compatibility: TypeScript, import JSON files, etc
xk6-es
Output test results to Elasticsearch
xk6-ethereum
K6 extension for ethereum protocols
xk6-exec
Run external commands
xk6-faker
Generate random fake data
xk6-file
Write files
xk6-g0
Write k6 tests in golang
xk6-gcp
A k6 extension for Google Cloud Platform services.
Clone Git repositories from tests
xk6-git
xk6-google-iap
Provides access to Google Auth token
xk6-harbor
Testing Harbor container registry
xk6-httpagg
Aggregate HTTP requests into an HTML report
xk6-input-prometheus
Enables real-time input from prometheus
xk6-interpret
Interpret Go code
xk6-jose
Javascript Object Signing and Encryption (JOSE)
xk6-output-kafka
Export k6 results in real-time to Kafka
xk6-kubernetes
Interact with Kubernetes clusters
xk6-kv
Share key-value data between VUs
xk6-loki
Client for load testing Loki
xk6-mllp
Simple MLLP sender for k6
xk6-mock
Mock HTTP(S) servers
xk6-mongo
Load-test Mongo no-SQL databases
xk6-mqtt
mqtt extension
xk6-nats
Provides NATS support
xk6-neo4j
Interact with Neo4J graph databases
xk6-notification
Create notifications
xk6-oauth-pkce
Generate OAuth PKCE code verifier and code challenge
xk6-opentelemetry
Generate OpenTelemetry signals from k6 tests
xk6-output-clickhouse
Export results to ClickHouse
xk6-output-dynatrace
Export results to Dynatrace
xk6-output-elasticsearch
Export results to Elasticsearch 8.x
xk6-output-error
Add more information into StdErr k6 about requests
xk6-output-influxdb
Export results to InfluxDB v2
xk6-output-kafka
Export k6 results in real-time to Kafka
xk6-output-plugin
Dynamic output extension using your favorite programming language
xk6-output-prometheus-pushgateway
Export results to Prometheus pushgateway
xk6-output-statsd
Enables real-time output of test metrics to a StatsD service
xk6-output-timescaledb
Export k6 results to TimescaleDB
xk6-output-timestream
Export results to AWS Timestream
xk6-playwright
Browser automation and end-to-end web testing using Playwright
xk6-prometheus
Prometheus HTTP exporter for k6
xk6-prompt
Support for input arguments via UI
xk6-proxy
Dynamic proxy support, allow changing the HTTP proxy settings in the script
xk6-pubsub
Google PubSub
xk6-read
Read files and directories
xk6-smtp
Use SMTP protocol to send emails
xk6-sql
Load-test SQL Servers
xk6-sqs
Produce to an SQS queue
xk6-ssh
SSH
xk6-stomp
Client for STOMP protocol
xk6-tcp
Send data to TCP port
xk6-telegram
Interact with Telegram Bots
xk6-toml
Encode and decode TOML values
xk6-top
Updating the current k6 metrics summaries on the terminal during the test run
xk6-tracetest
Support for Tracetest test execution and tracing client
xk6-url
Parse and normalize URLs
xk6-wamp
Add support for WAMP protocol
xk6-yaml
Encode and decode YAML values
Don’t see what you need? Learn how you can create a custom extension.