K6 v0.39.0, future roadmap of k6 OSS, Test Builder improvements, and more

:eyes: Originally posted at https://k6.io/blog/k6-product-update-v0-39/

Who says things slow down in the summer? Don’t let the hot sun and a little time off bog down your applications. This month, turn down the heat with k6 Operator support for Cloud output, org-level API tokens, and our most powerful Test Builder to date.

:raised_hands: v0.39.0 released

k6 v0.39.0 is here! This release primarily contains bug fixes and minor enhancements (better cookie handling and CSV output). For a full list of the enhancements, check out Release Notes.

We would also like to inform the community about a few important features that we’re currently working on and give notice of breaking changes we plan to make in the near future. These features include:

  • We like to test new features as xk6 extensions until they’re ready to be merged into core, such as xk6-websockets, xk6-timers, and xk6-redis. But leaving them as extensions may also make it more difficult for people to test them. In the next k6 v0.040.0 release, we will be releasing these as built-in k6 modules under k6/experimental/ import paths to serve as a new middle ground between the unstable and purely external xk6 extensions and the stable built-in k6 APIs.
  • We are working on supporting ECMAScript modules natively in k6 and will announce any breaking changes in the release notes of the k6 version that they happen in.
  • We have also slowly been refactoring and improving how k6 handles metrics. These changes will pave the way for exciting new features like an improved Prometheus Remote Write output module and distributed tracing.

Read more about our plan and potential breaking changes in the Roadmap and future plans section of Release Notes.

:sparkles: New in k6 Cloud

  • New Organization-level API tokens grant organization-wide access for actions not tied to a user. You can use it to run tests without linking the run to a specific user, e.g. when running tests from a CI platform.

  • Test Builder now supports creating multiple script scenarios in a test.

  • The new deleteSensitiveData option enables deleting sensitive data as soon as the test starts. The deleteSensitiveData option is unavailable in default subscriptions. If you want to activate it, contact our CS team at support@k6.io.
  • k6 Cloud now supports Grafana Single Sign On for Grafana Cloud users.

:wrench: New in k6-operator

k6-operator is a Kubernetes operator for running distributed k6 tests in your cluster. Starting with v0.0.7 k6 operator has support for Cloud output, as a subscription feature. This means you can now run distributed tests in your K8s cluster, send results to k6 Cloud, and visualize them in the app. Read this complete tutorial to learn more about how to use the k6-Operator project.

apiVersion: k6.io/v1alpha1
kind: K6
metadata:
  name: k6-sample
spec:
  parallelism: 4
  script:
    configMap:
      name: crocodile-stress-test
      file: test.js

Some other improvements in v0.0.7 include:

  • Addition of resource limits
  • Support for Istio
  • Support for securityContext

For a full list of new features, check out the k6-Operator v0.0.7 release notes.

:globe_with_meridians: New in xk6-browser

xk6-browser is our extension for browser automation to test end-to-end websites.

In xk6-browser v0.3.0, we released a few new features including:

  • Implemented Browser.on(event).
  • Exposed preconfigured mobile device emulation settings.
  • Made concealed elements clickable.

xk6-browser v0.4.0 features a new Locator API that makes it easier to work with dynamically changing elements. Read more in our release notes.

In this video, we walk you through how to get started with xk6-browser.

:gear:New in k6 Extensions

xk6-kubernetes: Updates related to execution of ephemeral containers and configurable image pull policy for pods and jobs. Check out this video on what it is and how to use it.

xk6-chaos: We’re refactoring this extension right now to avoid duplicating functionality in xk6-kubernetes. For chaos experiments, please use xk6-kubernetes with the k6-chaos JavaScript library.

xk6-amqp: Enable explicitly setting the content type for message payloads.

xk6-redis: General and performance improvements in preparation for merge into k6 core.

:newspaper_roll: Must-reads

Happy testing!

-The k6 team