Help build the future of open source observability software Open positions

Check out the open source projects we support Downloads

Reliable, predictable, and scalable performance testing: Grafana k6 1.0 is here

Reliable, predictable, and scalable performance testing: Grafana k6 1.0 is here

2025-05-07 5 min

For nearly a decade, Grafana k6 has enabled teams to proactively improve application reliability, preventing fires in production by igniting controlled ones during testing. The open source performance testing tool, acquired by Grafana Labs in 2021, has evolved to become a cornerstone of modern performance and reliability testing.

And today at GrafanaCON 2025, we’re celebrating the first major release of the k6 OSS project. 

Grafana k6 1.0, now generally available, delivers a number of features, such as TypeScript support, support for extensions, revamped test insights, and clear support and versioning guarantees, to empower the next decade of reliability testing.

But this release isn’t just about version numbers or the latest features. It’s about trust. With k6 1.0, we’re doubling down on our commitment to make performance and reliability testing more predictable, scalable, and developer-friendly — whether you’re simulating 10 users or 100,000.

Let’s unpack what’s inside.

Production-grade stability you can build on

While earlier k6 versions achieved backward compatibility through careful maintenance, we hadn’t formally guaranteed the software and its APIs’ stability between releases. k6 1.0 establishes this foundation through three specific changes to how we build, release, and support k6:

  1. SemVer at last: k6 now follows Semantic Versioning, which means breaking changes only arrive in major releases (like 2.0) after explicit deprecation warnings.
  2. Support guarantees: Each major release version receives critical fixes for at least two years. Planning to stay on a previous release? You’re covered. Jumping to the latest? We’ll guide you.
  3. Public API surface: k6 extensions can now reliably build on k6’s public Go modules, which we guarantee will remain stable and SemVer-compliant throughout each major release cycle.

To learn more about these development, support, and versioning practices, please refer to our technical documentation.

New superpowers for your test suite

In addition to the enhancements above related to stability and predictability, k6 1.0 elevates your reliability testing suite with the following features.

Native TypeScript support

With the release of k6 1.0, we’ve answered one of our most frequent community requests: first-class TypeScript support. 

No transpilation needed, no hairy workflows. Write more robust, predictable, and easier-to-maintain tests with type safety and IDE autocomplete, and reuse your existing TypeScript code and types directly in your k6 tests.

JavaScript
import http from 'k6/http';  
import { expect } from 'https://jslib.k6.io/k6-testing/0.3.0/index.js';

interface PizzaRequest {
    maxCaloriesPerSlice: number;
    mustBeVegetarian: boolean;
    excludedIngredients: string[];
}

export default function () {  
  const res = http.post('https://quickpizza.grafana.com/api/pizza', JSON.stringify({
    maxCaloriesPerSlice: Math.floor(Math.random() * 1000),
    mustBeVegetarian: Math.random() < 0.5
  } as PizzaRequest));
  
  expect(res.status).as("Pizza API response").toEqual(200); // From k6-testing jslib
}

Extend k6 without forking: extensions are now supported by k6

We are excited to announce that k6 1.0 introduces support for extensions through a phased rollout, with extensions now being supported when using k6 cloud run and k6 cloud run –local-execution modes of execution, and support for k6 run expected in a future release.

This update enables seamless integration of pre-approved extensions in Grafana Cloud k6, our fully managed performance testing platform powered by k6 OSS. Extensions now work out-of-the-box where supported, with k6 automatically handling dependencies. Simply import the supported extension of your choice in your script, run it, and k6 will handle the rest.

Here is an example using the k6/x/faker extension to generate test data:

JavaScript
import faker from 'k6/x/faker';

Use any of the functionalities provided by the extension throughout your script; for example, create a random name using the faker.person class:

JavaScript
import faker from 'k6/x/faker';

export default function () {
  console.log(faker.person.firstName());
}

Then, run your script as you normally would using the k6 cloud run command. No need for dedicated tooling anymore; it just works:

k6 cloud run script.js

Find signal in the noise with our revamped test insights

k6 1.0 also ships with another frequently requested feature from the community: a modernized end-of-test summary, including:

  • Scenario-specific metrics
  • Group-specific metrics
  • Hierarchical grouping of results
  • Improved checks results
  • Different levels of granularity of the information collected and displayed

By default, k6 run will now display a compact and modernized version of the end-of-test results, focused on the results most important to you and your team.

Using the full summary mode, however, k6 will tell the whole story and help you identify bottlenecks:

k6 run --summary-mode=full script.js
A screenshot of k6 test results in a terminal.

To learn more, please visit our  end-of-test summary documentation.

More quality of life improvements

For the 1.0 release, k6 maintainers took a number of other steps to  improve the user experience. These include:

  • Graduated modules: The k6/browser, k6/net/grpc, and k6/crypto modules are now stable.
  • Enhanced Grafana Cloud integration: Stream local test results to Grafana Cloud k6 with the k6 cloud run –local-execution mode.
  • Revamped and enriched k6 cloud command: The command has been restructured and enriched to become the central place for all your interactions with Grafana Cloud k6 from the command-line.

…and many other updates that we invite you to explore in the official k6 1.0 release notes on GitHub.

Thank you to the Grafana k6 community!

To everyone who contributed features, filed or fixed bugs, wrote extensions, or advocated for reliability testing with k6 at their org — thank you. With 27k+ GitHub stars, 200+ contributors, and tests run of any scale, in every time zone, you’ve made k6 what it is today. It’s been amazing to watch k6 evolve over the years; what started as an early-stage load testing tool grew into a robust performance testing tool, and now, is an end-to-end reliability testing tool used by teams all over the world. 

You can learn more about k6, including how to get started, in our technical documentation. And as always, we’d love to hear your feedback (you can find us on GitHub!) to continue shaping the future of Grafana k6 together. 

Happy testing!