grafana / xk6-disruptor

Extension for injecting faults into k6 tests
https://k6.io/docs/javascript-api/xk6-disruptor/
GNU Affero General Public License v3.0
89 stars 9 forks source link

Update module go.k6.io/k6 to v0.49.0 #378

Closed renovate[bot] closed 6 months ago

renovate[bot] commented 9 months ago

Mend Renovate

This PR contains the following updates:

Package Change Age Adoption Passing Confidence
go.k6.io/k6 v0.47.0 -> v0.49.0 age adoption passing confidence

Release Notes

grafana/k6 (go.k6.io/k6) ### [`v0.49.0`](https://togithub.com/grafana/k6/releases/tag/v0.49.0) [Compare Source](https://togithub.com/grafana/k6/compare/v0.48.0...v0.49.0) k6 `v0.49.0` is here 🎉! This release: - Adds a built-in [web dashboard](https://grafana.com/docs/k6/latest/results-output/web-dashboard/) that displays test results in real time. - Introduces `clear` functionality to the browser module's `locator` classes. - Merges the gRPC experimental module back into the gRPC core module. - Enables the ability to get the selection from an element in `k6/html`. - Collects internal modules and outputs used by a script. - Prepares `k6/experimental/timers` for stabilization. #### Breaking changes - [#​3494](https://togithub.com/grafana/k6/pull/3494) stops updating `loadimpact/k6` docker image. If you still use it, please migrate to the [grafana/k6](https://hub.docker.com/r/grafana/k6) image. - [browser#1111](https://togithub.com/grafana/xk6-browser/pull/1111) removes `timeout` option for `isVisible` and `isHidden` since the API no longer waits for the element to appear on the page. #### New features ##### Web Dashboard The new [web dashboard](https://grafana.com/docs/k6/latest/results-output/web-dashboard/) brings real-time visualization to load testing. This feature allows users to monitor test progress and analyze results dynamically, enhancing the overall testing experience. ##### Real-time test results Activate this feature using the environment variable `K6_WEB_DASHBOARD=true`. For this initial release, the dashboard is not enabled by default to allow users to opt into this new experience as it evolves. ```bash K6_WEB_DASHBOARD=true k6 run script.js ``` Once enabled and the test script is running, navigate to [http://localhost:5665](http://localhost5665) in your web browser to access the dashboard. ![k6 Web Dashboard Overview](https://togithub.com/grafana/xk6-dashboard/blob/master/screenshot/k6-dashboard-overview-light.png?raw=true) ##### Test report The web dashboard also offers an HTML test report (see [an example](https://togithub.com/grafana/xk6-dashboard/blob/master/screenshot/k6-dashboard-html-report-screen-view.png?raw=true)) for detailed analysis, enabling easy sharing and downloading capabilities for collaboration. To access and download the report, click on the **Report** button in the dashboard's top right corner or use the `K6_WEB_DASHBOARD_EXPORT` environment variable. ```bash K6_WEB_DASHBOARD=true K6_WEB_DASHBOARD_EXPORT=test-report.html k6 run script.js ``` ##### Add `clear` to the `locator` class [browser#1149](https://togithub.com/grafana/xk6-browser/pull/1149) The new `clear` method on the `locator` class clears the text boxes and input fields. This is useful when navigating to a website where the text boxes and input fields already contain a value that needs to be cleared before filling it with a specific value.
Expand to see an example of the new functionality. ```javascript import { check } from 'k6'; import { browser } from 'k6/experimental/browser'; export const options = { scenarios: { ui: { executor: 'shared-iterations', options: { browser: { type: 'chromium', }, }, }, }, } export default async function() { const context = browser.newContext(); const page = context.newPage(); await page.goto('https://test.k6.io/my_messages.php', { waitUntil: 'networkidle' }); // To mimic an input field with existing text. page.locator('input[name="login"]').type('admin'); check(page, { 'not_empty': p => p.locator('input[name="login"]').inputValue() != '', }); // Clear the text. page.locator('input[name="login"]').clear(); check(page, { 'empty': p => p.locator('input[name="login"]').inputValue() == '', }); page.close(); } ```
##### Add tracing to the browser module [browser#1100](https://togithub.com/grafana/xk6-browser/pull/1100) The browser module now generates traces that provide a representation of its inner workings, such as API methods executed (for example `browser.newPage` and `page.goto`), page navigations, and [Web Vitals](https://grafana.com/docs/k6/latest/using-k6-browser/metrics/#googles-core-web-vitals) measurements. Currently, the instrumented methods are a subset of all the methods exposed by the browser module API, but this will be extended in the future. The traces generation for the browser module depends on the overall `k6` traces option introduced in [v0.48.0](https://togithub.com/grafana/k6/releases/tag/v0.48.0). Check out the [documentation](https://grafana.com/docs/k6/latest/using-k6/k6-options/reference/#traces-output) to learn more about it. ##### gRPC streaming API becomes part of the k6 core [#​3490](https://togithub.com/grafana/k6/pull/3490) With this release, gRPC's streaming API becomes part of the core's `k6/net/grpc` module. The experimental `k6/experimental/grpc` has been back-merged into the core. You can still use import `k6/experimental/grpc` for a couple of releases, but it's deprecated and will be removed in the future (planned in k6 version `v0.51.0`). To migrate your scripts, replace `k6/experimental/grpc` with `k6/net/grpc` in your script imports, and the code should work as before. ##### k6/html: Extract selection from element [#​3519](https://togithub.com/grafana/k6/pull/3519) [`k6/html`](https://grafana.com/docs/k6/latest/javascript-api/k6-html/) has been around for a while and allows you to search within an HTML document with a jQuery-like API called [Selection](https://grafana.com/docs/k6/latest/javascript-api/k6-html/selection/), and also has support for the more standard [Element](https://grafana.com/docs/k6/latest/javascript-api/k6-html/element/) that represents DOM element. For a long time, you could get an Element from a Selection using the [`.get(index)`](https://grafana.com/docs/k6/latest/javascript-api/k6-html/selection/selection-get/), but you couldn't get back to a Selection from an Element. This is not a common case, but one that requires quite a bit of code. For example, see the following jQuery snippet: ```javascript let li = http.get("https://test.k6.io").html().find("li"); li.each(function(_, element) { // here element is an element not a selection // but what if for each li we want to select something more? // in jquery that will be: let container = $(element).closest('ul.header-icons'); // but what should `$` do? // in a browser there is only 1 html document that you have access to // in k6 though you can be working with multiple ones, so `$` can't know which one it should // work against }); ``` In order to support the above example, you can use `selection`, without going to the element: ```javascript let li = http.get("https://test.k6.io").html().find("li"); for (; li.size() > 0; li = li.next()) { let ul = li.closest('ul.header-icons'); // li here is still a selection and we iterate over it. } ``` This is not always possible though, and arguably isn't what most users will naturally do. Because of this, we have now added a new [`.selection()`](https://grafana.com/docs/k6/latest/javascript-api/k6-html/element/element-selection/) which returns a selection for its element. ```javascript let li = http.get("https://test.k6.io").html().find("li"); li.each(function(_, element) { let container = element.selection().closest('ul.header-icons'); // .. more code }); ``` Thanks to [@​Azhovan](https://togithub.com/Azhovan)! :bow: :tada: ##### Collect usage data on imported internal modules and outputs [#​3525](https://togithub.com/grafana/k6/pull/3525) k6 now collects usage data of the modules and outputs that are being used when the [usage report](https://grafana.com/docs/k6/latest/misc/usage-collection) is enabled. The data collection is only related to the built-in k6 modules and outputs. Private, custom modules and extensions [are never collected](https://togithub.com/grafana/k6/blob/f35e67902605877ebf2c5e9c8673cd7faf4cdc1e/cmd/report.go#L33-L57). The usage report is enabled by default in k6, but it is possible to opt-out using the [no-usage-report](https://grafana.com/docs/k6/latest/using-k6/k6-options/reference/#no-usage-report) option. We always want to improve the product, but at the same time, we need to pay attention to where we allocate our resources. Having data of what are the most used modules and outputs gives us better confidence to make decisions because we are supported by data. The data can let us know what percentage of our users will benefit from the introduction of a new feature and also, how many of them would be impacted in case of a breaking change. #### UX improvements and enhancements - [#​3529](https://togithub.com/grafana/k6/pull/3529) enables the k6 cloud traces output by default. - [#​3440](https://togithub.com/grafana/k6/pull/3440) adds a fallback for using built-in certificates if the OS provides none. Thanks to `@mem` for working on it! - [browser#1104](https://togithub.com/grafana/xk6-browser/pull/1104) adds support for browser module traces metadata. Users can define *key-value* metadata that will be included as attributes in every generated span. - [browser#1135](https://togithub.com/grafana/xk6-browser/pull/1135) improves the array output from `console` in the k6 logs. - [browser#1137](https://togithub.com/grafana/xk6-browser/pull/1137), [browser#1145](https://togithub.com/grafana/xk6-browser/pull/1145) improves the error messages displayed when Chrome or Chromium isn't found. - [#​3543](https://togithub.com/grafana/k6/pull/3543) replaces documentation URLs to `grafana.com/docs/k6/latest/`. #### Bug fixes - [#​3485](https://togithub.com/grafana/k6/pull/3485) fixes the REST API always logging a 200 status code response, which was found as part of fixing lint issues in the code. - [browser#1129](https://togithub.com/grafana/xk6-browser/pull/1129) mitigates the risk of panics when the website under test uses the `console`. - [browser#1133](https://togithub.com/grafana/xk6-browser/pull/1133) fixes `BigInt` parsing. - [browser#1108](https://togithub.com/grafana/xk6-browser/pull/1108), [browser#1110](https://togithub.com/grafana/xk6-browser/pull/1110) fixes `isVisible` and `isHidden` so that it doesn't wait for an element to match with the given `selector`, allowing it to continue on with the test script when elements are not on the page. - [browser#1121](https://togithub.com/grafana/xk6-browser/pull/1121) fixes `dblClick` so that it works with `onDblClick` and performs two clicks on the specified element. - [browser#1152](https://togithub.com/grafana/xk6-browser/pull/1152) fixes a nil pointer dereference when navigating around on SPA websites. #### Maintenance and internal improvements - [#​3204](https://togithub.com/grafana/k6/pull/3204) internal refactor to make future distributed execution work easier. With a small fix to tests in [#​3531](https://togithub.com/grafana/k6/pull/3531). Thanks to [@​na--](https://togithub.com/na--) :tada:. - Lint fixes throughout the k6 code base [#​3460](https://togithub.com/grafana/k6/pull/3460), [#​3462](https://togithub.com/grafana/k6/pull/3462), [#​3463](https://togithub.com/grafana/k6/pull/3463), [#​3478](https://togithub.com/grafana/k6/pull/3478), [#​3479](https://togithub.com/grafana/k6/pull/3479), [#​3480](https://togithub.com/grafana/k6/pull/3480), [#​3481](https://togithub.com/grafana/k6/pull/3481), [#​3482](https://togithub.com/grafana/k6/pull/3482), [#​3483](https://togithub.com/grafana/k6/pull/3483), [#​3484](https://togithub.com/grafana/k6/pull/3484), [#​3485](https://togithub.com/grafana/k6/pull/3485), [#​3495](https://togithub.com/grafana/k6/pull/3495). - [#​3473](https://togithub.com/grafana/k6/pull/3473) refinements to the release process. - Dependency updates across k6 [#​3500](https://togithub.com/grafana/k6/pull/3500), [#​3501](https://togithub.com/grafana/k6/pull/3501), [#​3502](https://togithub.com/grafana/k6/pull/3502), [#​3503](https://togithub.com/grafana/k6/pull/3503), [#​3509](https://togithub.com/grafana/k6/pull/3509), [#​3513](https://togithub.com/grafana/k6/pull/3513), [#​3537](https://togithub.com/grafana/k6/pull/3537), [#​3539](https://togithub.com/grafana/k6/pull/3539), [#​3540](https://togithub.com/grafana/k6/pull/3540). - [#​3489](https://togithub.com/grafana/k6/pull/3489) migrates pull-requests assignment to `CODEOWNERS` from GitHub Action. - [#​3496](https://togithub.com/grafana/k6/pull/3496) checks for security issues with a scheduled trivy scan. - [#​3517](https://togithub.com/grafana/k6/pull/3517) adds unit tests to the cloadapi package. This is the first contribution by external contributor [@​nilskch](https://togithub.com/nilskch). Thanks for this [@​nilskch](https://togithub.com/nilskch) :bow:. - [#​3520](https://togithub.com/grafana/k6/pull/3520) stops using deprecated by golang net.Dialer.DualStack option. - [#​3526](https://togithub.com/grafana/k6/pull/3526) refactors to JavaScript package test around `open` and `require` and their handling of paths. - [#​3527](https://togithub.com/grafana/k6/pull/3527) generates test certificates for more tests during the test. This, among other things, fixes macOS tests. - [#​3528](https://togithub.com/grafana/k6/pull/3528) enables macOS tests in GitHub Actions. - [browser#1134](https://togithub.com/grafana/xk6-browser/pull/1134) adds a new error type when parsing objects. - [browser#1107](https://togithub.com/grafana/xk6-browser/pull/1107), [browser#1109](https://togithub.com/grafana/xk6-browser/pull/1109) refactor internals. #### Roadmap As mentioned earlier, there's work in progress to make xk6-timers stable as part of the next release. You can find more information on issue [#​3297](https://togithub.com/grafana/k6/issues/3297). ### [`v0.48.0`](https://togithub.com/grafana/k6/releases/tag/v0.48.0) [Compare Source](https://togithub.com/grafana/k6/compare/v0.47.0...v0.48.0) k6 v0.48.0 is here 🎉! This release includes: - Numerous long-awaited breaking changes. - A new `k6 new` subcommand to generate a new test script. - A new `k6/experimental/fs` module for file interactions. - CPU and network throttling support for the k6 browser module. #### Breaking changes This release includes several breaking changes, mainly cleaning up deprecations from previous versions. They should have a straightforward migration process, and not heavily impact existing users. - [#​3448](https://togithub.com/grafana/k6/pull/3448) limits metric names, aligning to both OpenTelemetry (OTEL) and Prometheus name requirements, while still being limited to 128 ASCII characters. Warnings about the limit started in [v0.45](https://togithub.com/grafana/k6/releases/tag/v0.45.0). - [#​3439](https://togithub.com/grafana/k6/pull/3439) changes the `Client` signature in `k6/experimental/redis` module. Refer to the module-related section below. - [#​3350](https://togithub.com/grafana/k6/pull/3350) removes the `grpc.invoke()`'s parameter `headers`, deprecated in k6 [v0.37](https://togithub.com/grafana/k6/releases/tag/v0.37.0). Use the `metadata` parameter instead. - [#​3389](https://togithub.com/grafana/k6/pull/3389) removes the `--logformat` flag, deprecated in [v0.38](https://togithub.com/grafana/k6/releases/tag/v0.38.0). Use the `--log-format` flag instead. - [#​3390](https://togithub.com/grafana/k6/pull/3390) removes all CSV output's CLI arguments, deprecated in [v0.35](https://togithub.com/grafana/k6/releases/tag/v0.35.0). This change makes the CSV output consistent with other output formats. - [#​3365](https://togithub.com/grafana/k6/pull/3365) removes the `k6 convert` CLI command, deprecated in [v0.41](https://togithub.com/grafana/k6/releases/tag/v0.41.0). Use the [har-to-k6](https://togithub.com/grafana/har-to-k6) package instead. - [#​3451](https://togithub.com/grafana/k6/pull/3451) removes logic that would attempt to prepend a `https://` scheme to module specifiers that were not recognized. Deprecated in k6 [v0.25](https://togithub.com/grafana/k6/releases/tag/v0.25.0). Use full URLs if you want to load remote modules instead. #### New features ##### Add `k6 new` subcommand [#​3394](https://togithub.com/grafana/k6/pull/3394) `k6` now has a `new` subcommand that generates a new test script. This is useful for new users who want to get started quickly, or for experienced users who want to save time when creating new test scripts. To use the subcommand, open your terminal and type: ```bash k6 new [filename] ``` If no filename is provided, k6 uses `script.js` as the default filename. The subcommand will create a new file with the provided name in the current directory, and populate it with a basic test script that can be run with `k6 run`. ##### Add a `k6/experimental/fs` module [#​3165](https://togithub.com/grafana/k6/pull/3165) `k6` now has a new `k6/experimenal/fs` module providing a memory-efficient way to handle file interactions within your test scripts. It currently offers support for opening files, reading their content, seeking through it, and retrieving metadata about them. Unlike the traditional [open](https://grafana.com/docs/k6/latest/javascript-api/init-context/open/) function, which loads a file multiple times into memory, the filesystem module reduces memory usage by loading the file as little as possible, and sharing the same memory space between all VUs. This approach significantly reduces the memory footprint of your test script and lets you load and process large files without running out of memory. For more information, refer to the [module documentation](https://grafana.com/docs/k6/latest/javascript-api/k6-experimental/fs/).
Expand to see an example of the new functionality. This example shows the new module usage: ```javascript import fs from 'k6/experimental/fs'; // k6 doesn't support async in the init context. We use a top-level async function for `await`. // // Each Virtual User gets its own `file` copy. // So, operations like `seek` or `read` won't impact other VUs. let file; (async function () { file = await open('bonjour.txt'); })(); export default async function () { // About information about the file const fileinfo = await file.stat(); if (fileinfo.name != 'bonjour.txt') { throw new Error('Unexpected file name'); } const buffer = new Uint8Array(128); let totalBytesRead = 0; while (true) { // Read into the buffer const bytesRead = await file.read(buffer); if (bytesRead == null) { // EOF break; } // Do something useful with the content of the buffer totalBytesRead += bytesRead; // If bytesRead is less than the buffer size, we've read the whole file if (bytesRead < buffer.byteLength) { break; } } // Check that we read the expected number of bytes if (totalBytesRead != fileinfo.size) { throw new Error('Unexpected number of bytes read'); } // Seek back to the beginning of the file await file.seek(0, SeekMode.Start); } ```
##### Redis (m)TLS support and new Client constructor options [#​3439](https://togithub.com/grafana/k6/pull/3439), [xk6-redis/#​17](https://togithub.com/grafana/xk6-redis/pull/17) In this release, the `k6/experimental/redis` module receives several important updates, including breaking changes. ##### Connection URLs The `Client` constructor now supports connection URLs to configure connections to Redis servers or clusters. These URLs can be in the format `redis://[[username][:password]@​][host][:port][/db-number]` for standard connections, or `rediss://[[username][]:password@]][host][:port][/db-number]` for TLS-secured connections. For more details, refer to the [documentation](https://grafana.com/docs/k6/latest/javascript-api/k6-experimental/redis/). ##### Example usage ```javascript import redis from 'k6/experimental/redis'; const redisClient = new redis.Client('redis://someusername:somepassword@localhost:6379/0'); ``` ##### Revamped Options object The `Client` constructor has been updated with a new [Options](https://grafana.com/docs/k6/latest/javascript-api/k6-experimental/redis/redis-options/) object format. This change aligns the module with familiar patterns from Node.js and Deno libraries, offering enhanced flexibility and control over Redis connections. For more details, refer to the [documentation](https://grafana.com/docs/k6/latest/javascript-api/k6-experimental/redis/redis-options/).
Expand to see an example of the new functionality. This example shows the usage of the new `Options` object: ```javascript import redis from 'k6/experimental/redis'; const redisClient = new redis.Client({ socket: { host: 'localhost', port: 6379, }, username: 'someusername', password: 'somepassword', }); ```
##### (m)TLS support The Redis module now includes (m)TLS support, enhancing security for connections. This update also improves support for Redis clusters and sentinel modes (failover). For connections using self-signed certificates, enable k6's [insecureSkipTLSVerify](https://grafana.com/docs/k6/latest/using-k6/k6-options/reference/#insecure-skip-tls-verify) option (set to `true`).
Expand to see an example of the new functionality. This example shows the configuration of a TLS connection: ```javascript import redis from 'k6/experimental/redis'; const redisClient = new redis.Client({ socket: { host: 'localhost', port: 6379, tls: { ca: [open('ca.crt')], cert: open('client.crt'), // client certificate key: open('client.key'), // client private key }, }, }); ```
##### Add tracing instrumentation [#​3445](https://togithub.com/grafana/k6/pull/3445) `k6` now supports a new *traces output* option that allows you to configure the output for traces generated during its execution. This option can be set through the `--traces-output` argument in the `k6 run` command or by setting the `K6_TRACES_OUTPUT` environment variable. Currently, no traces are generated by `k6` itself, but this feature represents the first step towards richer tracing functionalities in `k6` and its extensions. By default traces output is set to `none`, and currently the only supported output is `otel` which uses the [opentelemetry-go](https://togithub.com/open-telemetry/opentelemetry-go)'s [Open Telemetry](https://opentelemetry.io/) API and SDK implementations. The format for the `otel` *traces output* configuration is the following: --traces-output=[,opt1=val1,opt2=val2] Where `opt`s can be one of the following options: - `proto`: Specifies the protocol to use in the connection to the traces backend. Supports `grpc` *(default)* and `http`. - `header.`: Specifies an additional header to include in the connection to the traces backend. Example: K6_TRACES_OUTPUT=https://traces.k6.io/v1/traces,proto=http,header.Authorization=Bearer token ##### Add support for browser module's `page.throttleCPU` [browser#1095](https://togithub.com/grafana/xk6-browser/pull/1095) The browser module now supports throttling the CPU from chrome/chromium's perspective by using the `throttleCPU` API, which helps emulate slower devices when testing the website's frontend. It requires an argument of type `CPUProfile`, which includes a `rate` field that is a slow-down factor, where `1` means no throttling, `2` means 2x slowdown, and so on. For more details, refer to the [documentation](https://grafana.com/docs/k6/v0.48.x/javascript-api/k6-experimental/browser/page/throttlecpu). ```js ... const context = browser.newContext(); const page = context.newPage(); try { page.throttleCPU({ rate: 4 }); ... ``` ##### Add support for browser module's `page.throttleNetwork` [browser#1094](https://togithub.com/grafana/xk6-browser/pull/1094) The browser module now supports throttling the characteristics of the network from chrome/chromium's perspective by using the `throttleNetwork` API, which helps emulate slow network connections when testing the website's frontend. It requires an argument of type `NetworkProfile`, with a definition of: ```ts export interface NetworkProfile { /* * Minimum latency from request sent to response headers received (ms). */ latency: number; /* * Maximal aggregated download throughput (bytes/sec). -1 disables download * throttling. */ download: number; /* * Maximal aggregated upload throughput (bytes/sec). -1 disables upload * throttling. */ upload: number; } ``` You can either define your own network profiles or use the ones we have defined by importing `networkProfiles` from the `browser` module. For more details, refer to the [documentation](https://grafana.com/docs/k6/v0.48.x/javascript-api/k6-experimental/browser/page/throttlenetwork). ```js import { browser, networkProfiles } from 'k6/experimental/browser'; ... const context = browser.newContext(); const page = context.newPage(); try { page.throttleNetwork(networkProfiles['Slow 3G']); ... ``` #### k6's documentation is moving under [grafana.com/docs/k6](https://grafana.com/docs/k6) It's not directly part of the k6 v0.48 release, but we believe it is worth mentioning that we're moving the documentation from [k6.io/docs](https://k6.io/docs/) to [grafana.com/docs/k6](https://grafana.com/docs/k6). The legacy documentation space `k6.io/docs` will be available for a while, but we encourage you to update your bookmarks and links to the new domain. #### UX improvements and enhancements - [browser#1074](https://togithub.com/grafana/xk6-browser/pull/1074) adds a new `browser.closeContext()` [method](https://grafana.com/docs/k6/v0.48.x/javascript-api/k6-experimental/browser/closecontext) to facilitate closing the current active browser context. - [#​3370](https://togithub.com/grafana/k6/pull/3370) adds a new flag `--profiling-enabled` which enables exposing [pprof](https://go.dev/blog/pprof) profiling endpoints. The profiling endpoints are exposed on the same port as the HTTP REST API under the `/debug/pprof/` path. This can be useful for extension developers. - [#​3442](https://togithub.com/grafana/k6/pull/3442) adds a new `--version` flag, which has the same output as `k6 version` command. Thanks, [@​ffapitalle](https://togithub.com/ffapitalle)! - [#​3423](https://togithub.com/grafana/k6/pull/3423) adds an environment variable `K6_INFLUXDB_PROXY` to the InfluxDB output which allows specifying proxy. Thanks, [@​IvanovOleg](https://togithub.com/IvanovOleg)! - [#​3398](https://togithub.com/grafana/k6/pull/3398) enables k6 cloud traces by default. - [#​3400](https://togithub.com/grafana/k6/pull/3400) sets a binary-based cloud output (a.k.a. cloud output v2) as the default version for streaming metrics from a local test run via `-o cloud`. - [#​3452](https://togithub.com/grafana/k6/pull/3452) adds `fsext.Abs` helper function. #### Bug fixes - [#​3380](https://togithub.com/grafana/k6/pull/3380) corrects `console.debug()`, aligning `-v` output to `--console-output` and `stdout`. - [#​3416](https://togithub.com/grafana/k6/pull/3416) prints the stack trace when there's an exception in `handleSummary()`. - [#​3438](https://togithub.com/grafana/k6/pull/3438) prevents an error on HTTP requests with `content-encoding` header and HTTP statuses known for having no body. - [browser#1077](https://togithub.com/grafana/xk6-browser/pull/1077) fixes `browserContext.clearPermissions` to clear permissions without panic. - [browser#1042](https://togithub.com/grafana/xk6-browser/pull/1042) fixes `browserContext.waitForEvent` which involved promisifying the `waitForEvent` API. - [browser#1078](https://togithub.com/grafana/xk6-browser/pull/1078) fixes request interception deadlock to improve stability. - [browser#1101](https://togithub.com/grafana/xk6-browser/pull/1101) fixes `page.$` so that it returns `null` when no matches with given selector are found. - [#​3397](https://togithub.com/grafana/k6/pull/3397), [#​3427](https://togithub.com/grafana/k6/pull/3427), [#​3417](https://togithub.com/grafana/k6/pull/3417) update `goja` dependency. Fixes a possible panic and proper handling circular types at `JSON.stringify`. Fixes an issue about dumping the correct stack trace when an error is re-thrown. - [browser#1106](https://togithub.com/grafana/xk6-browser/pull/1106) fixes an NPE on NavigateFrame when navigate occurs in the same document. - [browser#1096](https://togithub.com/grafana/xk6-browser/pull/1096) fixes a panic when trying to interact within nested `iframe`s. Thanks, [@​bandorko](https://togithub.com/bandorko)! #### Maintenance and internal improvements - [#​3378](https://togithub.com/grafana/k6/pull/3378) fixes usage of `gh` in GitHub actions creating the OSS release. - [#​3386](https://togithub.com/grafana/k6/pull/3386), [#​3387](https://togithub.com/grafana/k6/pull/3387), [#​3388](https://togithub.com/grafana/k6/pull/3388), [browser#1047](https://togithub.com/grafana/xk6-browser/pull/1047) update dependencies. - [#​3393](https://togithub.com/grafana/k6/pull/3393), [#​3399](https://togithub.com/grafana/k6/pull/3399) fix lint issues in the `js` package. - [#​3381](https://togithub.com/grafana/k6/pull/3381) disables temporarily ARM tests on GitHub Actions. - [#​3401](https://togithub.com/grafana/k6/pull/3401), [#​3469](https://togithub.com/grafana/k6/pull/3469) refactors a Makefile, removes `make ci-like-lint` in favor of `make lint`. Updates a golangci-lint version to v1.55.2. - [#​3410](https://togithub.com/grafana/k6/pull/3410) fixes the `tests` reference in the all rule of the Makefile. Thanks, [@​flyck](https://togithub.com/flyck)! - [#​3402](https://togithub.com/grafana/k6/pull/3402) adds a test-case for the `k6 cloud`. - [#​3421](https://togithub.com/grafana/k6/pull/3421) updates dependencies for xk6 integration tests. - [browser#1075](https://togithub.com/grafana/xk6-browser/pull/1075), [browser#1076](https://togithub.com/grafana/xk6-browser/pull/1076) refactors `clearPermissions` and `grantPermissions`. - [browser#1043](https://togithub.com/grafana/xk6-browser/pull/1043) refines tests. - [browser#1069](https://togithub.com/grafana/xk6-browser/pull/1069), [browser#1090](https://togithub.com/grafana/xk6-browser/pull/1090) refactor internal. - [browser#1102](https://togithub.com/grafana/xk6-browser/pull/1102) uses `force` and `noWaitAfter` in `frame.newAction`. - [#​3443](https://togithub.com/grafana/k6/pull/3443) mentions that k6-core team aims to support the last two major golang versions for building a k6 binary. - [#​3437](https://togithub.com/grafana/k6/pull/3437) switches k6 cloud traces to a new hostname. - [#​3429](https://togithub.com/grafana/k6/pull/3429) increases timeout expectations for the `TestSetupTimeout` test. - [#​3446](https://togithub.com/grafana/k6/pull/3446) moves log tokenizer to `lib/strvals` package. #### Roadmap ##### Graduating from experimental It has been a while since we've introduced the `k6/experimental` namespace. This namespace was specifically created to test new features before we fully committed to them. Thanks to it, we have been able to iterate on features and receive valuable feedback from the community before adding them to the core of k6. In the following releases, we're going to graduate `k6/experimental/grpc` and `k6/experimental/timers`. These modules' "experimental" versions will remain available for a couple of releases, but the goal is to remove the "experimental" imports for them in favor of the core-only imports. ##### New dashboard features We're happy to announce our work on a new, upcoming dashboard feature. Based on the [xk6-dashboard](https://togithub.com/grafana/xk6-dashboard) extension, this upcoming feature will enable you to visualize your test runs and their results in your web browser, in real time. The k6 maintainers team is starting to work towards its integration into the core of k6, and we're aiming to release it in the next couple of releases. While the final user-experience might differ, you can already try it out by following the instructions in the [xk6-dashboard](https://togithub.com/grafana/xk6-dashboard) repository. We update the extension on a regular basis as we're converging towards the first release of the feature in k6. Go ahead and give it a try! Let us know what you think about it!

Configuration

📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

â™» Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.



This PR has been generated by Mend Renovate. View repository job log here.

CLAassistant commented 9 months ago

CLA assistant check
Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.
You have signed the CLA already but the status is still pending? Let us recheck it.

pablochacin commented 6 months ago

Closed in favor of #388

renovate[bot] commented 6 months ago

Renovate Ignore Notification

Because you closed this PR without merging, Renovate will ignore this update (v0.49.0). You will get a PR once a newer version is released. To ignore this dependency forever, add it to the ignoreDeps array of your Renovate config.

If you accidentally closed this PR, or if you changed your mind: rename this PR to get a fresh replacement PR.