Important: This documentation is about an older version. It's relevant only to the release noted, many of the features and functions have been updated or replaced. Please view the current version.
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-remotedocker 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-remoteUse 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-fasthttp
Enable RPS increase & file streaming on HTTP/1.1 requests
xk6-file
Write files
xk6-g0
Write k6 tests in golang
xk6-gcp
A k6 extension for Google Cloud Platform services.
xk6-git
Clone Git repositories from tests
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-kafka
Load test Apache Kafka. Includes support for Avro messages.
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-nostr
Interact with Nostr relays
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-plist
Parse/serialize property list (.plist) payloads
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-webtransport
Add support for webtransport protocol
xk6-yaml
Encode and decode YAML values
Don’t see what you need? Learn how you can create a custom extension.
Was this page helpful?
Related resources from Grafana Labs

