Run extensions using Binary Provisioning
Caution
This is an experimental feature. Breaking changes might occur prior to the feature being made generally available.
k6 supports extensions as a way of extending k6 native functionality, and support a wider variety of use cases.
Using k6 with extensions locally requires users to build a custom k6 binary that includes the extension, which can then be used to run a test script. With the Binary Provisioning feature, Grafana Cloud k6 users can run tests with a limited set of extensions, without having to manually build a k6 binary.
The archive
and inspect
commands also support Binary Provisioning to allow creating archives for Grafana Cloud.
Before you begin
To use Binary Provisioning, you’ll need:
- k6 v1.0 or greater installed on your machine.
- A Grafana Cloud account.
Set the Binary Provsioning environment flag
To enable Binary Provisioning, you must set the K6_BINARY_PROVISIONING
environment variable to true
:
export K6_BINARY_PROVISIONING=true
export K6_BINARY_PROVISIONING=true
$Env:K6_BINARY_PROVISIONING = "true"
Log in to Grafana Cloud
To use Binary Provisioning, you must
authenticate to Grafana Cloud using the k6 cloud login
command:
k6 cloud login --token <API_TOKEN>
Run a test
After setting the K6_BINARY_PROVISIONING
environment variable and logging in to Grafana Cloud, you can run a test using the k6 cloud run
command:
k6 cloud run --local-execution script.js
k6 cloud run --local-execution --quiet script.js
k6.exe cloud run --local-execution --quiet script.js
k6.exe cloud run --local-execution --quiet script.js
As an example, you can save this script to your machine and run it in Grafana Cloud. It uses the xk6-faker extension to generate a random first name.
import faker from 'k6/x/faker';
export default function () {
console.log(faker.person.firstName());
}
You should see an output similar to the following:
INFO[0000] The current k6 binary doesn't satisfy all dependencies, it is required to provision a custom binary. deps="k6/x/faker*"
INFO[0000] A new k6 binary has been provisioned with version(s): k6:v1.0.0 k6/x/faker:v0.4.3
time="2025-04-24T12:59:24+02:00" level=info msg=Zelma source=console
TOTAL RESULTS
EXECUTION
iteration_duration.....................: avg=759.06µs min=759.06µs med=759.06µs max=759.06µs p(90)=759.06µs p(95)=759.06µs
iterations.............................: 1 1061.414505/s
NETWORK
data_received..........................: 0 B 0 B/s
data_sent..............................: 0 B 0 B/s
The output includes information about which dependencies were detected, and the version for the dependencies used to run the test.
Limitations
- Only extensions supported in Grafana Cloud are supported.
- Output extensions are not supported.
- Running scripts from stdin is not supported.
- Only files with extensions
.js
,.ts
or.tar
can be used. Other extensions will not invoke the Binary Provisioning mechanism.