release notes/v1.0.0.md
After 9 years of iteration and countless community contributions, we're thrilled to announce Grafana k6 v1.0.
While many features and capabilities in this release were introduced gradually in previous versions, k6 v1.0 marks a turning point: a commitment to stability, formal support guarantees, and transparency in how we evolve and develop the project from here. This milestone is more than a version number; it's about trust, reliability, and empowering you to test confidently.
This release wouldn't be possible without you:
It's been amazing to watch k6 grow from a simple load testing command-line tool into a comprehensive reliability tool, used by teams worldwide and supported by a passionate and dedicated community.
To everyone who filed bugs, built extensions and libraries, or championed k6:οΈ Thank you! You've shaped what k6 is today. πββοΈ
π Read more in our versioning and stability guarantees guide.
Write type-safe and maintainable testsβno transpilation needed. Simply save your file with a .ts extension and run it directly using k6 run script.ts.
import http from 'k6/http';
// PizzaRequest defines the request body format the quickpizza API expects
export interface PizzaRequest {
maxCaloriesPerSlice: number;
mustBeVegetarian: boolean;
}
export default function () {
const payload: PizzaRequest = {
maxCaloriesPerSlice: 500, // Type-checked!
mustBeVegetarian: true,
}
http.post(
'https://quickpizza.grafana.com/api/pizza',
JSON.stringify(payload),
{
headers: {
"Content-Type": "application/json",
"Authorization": "Token " + "abcdef0123456789"
} as Record<string, string>
});
}
With k6 v1.0, extensions now work out of the box in k6 cloud run and k6 cloud run --local-execution. Support for k6 run is coming soon.
β No more xk6 toolchain. β No manual builds. β Import an extension's module and go.
import faker from 'k6/x/faker';
export default function () {
console.log(faker.person.firstName());
}
To try the experimental feature, first enable its feature flag, then run it on Grafana Cloud with the following command:
K6_BINARY_PROVISIONING=true k6 cloud run script.js,
or if you want to run it locally and stream the results to Grafana Cloud then use:
K6_BINARY_PROVISIONING=true k6 cloud run --local-execution script.js
The new end-of-test summary makes it easier to understand results and spot issues:
compact (default): big picture results, focusing on essentials.full: full picture results, providing granularity.k6 run --summary-mode=full script.ts
k6/browser, k6/net/grpc, and k6/crypto are now production-ready.k6 cloud run --local-execution.