MyGit

v0.52.0

grafana/k6

版本发布时间: 2024-06-25 19:10:45

grafana/k6最新发布版本:v0.54.0(2024-09-30 17:50:44)

k6 v0.52.0 is here 🎉! Some special mentions included in this release:

Breaking changes

Switch goja to our own fork named sobek #3775

To accelerate the development speed and bring ECMAScript Modules (ESM) support to k6 earlier (https://github.com/grafana/k6/issues/3265), we have decided to create a fork of the goja project under the Grafana GitHub organization, named sobek.

Starting on this release, k6 (and its extensions) now use sobek instead of the original goja, for all (of the publicly exposed parts of the API) except for a couple of packages that are only used internally by k6.

All k6 extensions linked in the docs have had a PR for this transition opened, as explained in this comment. Any extension author who hasn't gotten a PR can follow the same steps.

Find further details in #3772 and #3773.

Panics are no longer being captured #3777

Since this release, Go panics are no longer being captured by k6. This means that if a panic occurs while running a test, the k6 process will crash, and the panic stack trace will be printed to the console.

We decided to change this behavior because it's something that was left from the past as a safeguard, but it's not as good as it might seem. For most cases with multiple goroutines/async, it's not enough and also makes a bunch of potential bugs seem like less of an issue.

Thus, this will help us to identify and fix bugs earlier, improve the overall stability of k6, and most likely make the experience of developing k6 extensions friendlier.

lib.State no longer has Group #3750

As the result of refactoring the implementation of group and check methods, in order to decouple them, and thus enable other future improvements, the lib.State object no longer has a Group field.

This change should not affect most users, except for a couple of extensions, for which the use of Group was already questionable:

Other breaking changes

New features

Experimental support for TypeScript and ES6+ using esbuild #3738

This release of k6 introduces experimental support for TypeScript and ES6+ using esbuild, thanks to a new compatibility mode named experimental_enhanced.

k6 run --compatibility-mode=experimental_enhanced script.js

With this new compatibility mode, the test source code is transformed using esbuild instead of Babel, which also means that source files with the extension ".ts" are loaded by esbuild's TypeScript loader, which results in partial TypeScript support: it removes the type information but doesn't provide type safety.

k6/browser has graduated from an experimental module #3793

The browser module is now available as k6/browser instead of k6/experimental/browser. The previous k6/experimental/browser module will be removed on September 23rd, 2024. Refer to the migration guide for more information on how to update your scripts.

k6/browser has now a fully Async API browser#428

This release introduces a fully Async API for the k6/browser module. This means that nearly all the methods in the module now return promises. This change is part of the ongoing effort to make the browser module more user-friendly and easier to use. Please see the browser documentation for more information on how to use the new Async API.

Related Changes:

UX improvements and enhancements

Bug fixes

Maintenance and internal improvements

Roadmap

Native ECMAScript modules

As mentioned above, the k6 team has forked goja into sobek and is currently working on native ECMAScript modules support. The current work in progress can be found in this PR and any feedback is welcome.

As part of that there likely will be some breaking changes due to the current not native support allowing stuff that shouldn't work. Like for example mixing CommonJS and ESM in the same file. Which is for example why we have added a warning that it won't work.

Support across multiple files is also not standard but due to amount of users that seems to be mixing them across files a lot of work has been done to support it. It is still likely that in the future warnings and potentially at some point future breaking changes will be enacted.

OpenTelemetry metrics output

We're also happy to share that this release cycle, we've been working on xk6-output-opentelemetry, a k6 output extension that allows you to send k6 metrics to OpenTelemetry-compatible backends. We're looking for feedback from the community. If you're interested, please try it and let us know via the extension repository!

Depending on the feedback, we plan to include this extension as an experimental output in the next k6 release.

相关地址:原始地址 下载(tar) 下载(zip)

1、 k6-v0.52.0-checksums.txt 754B

2、 k6-v0.52.0-linux-amd64.deb 26.06MB

3、 k6-v0.52.0-linux-amd64.rpm 28.51MB

4、 k6-v0.52.0-linux-amd64.tar.gz 27.42MB

5、 k6-v0.52.0-linux-arm64.tar.gz 25.82MB

6、 k6-v0.52.0-macos-amd64.zip 27.44MB

7、 k6-v0.52.0-macos-arm64.zip 26.35MB

8、 k6-v0.52.0-spdx.json 209.02KB

9、 k6-v0.52.0-windows-amd64.msi 28.14MB

10、 k6-v0.52.0-windows-amd64.zip 27.7MB

查看:2024-06-25发行的版本