Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
83 changes: 83 additions & 0 deletions release notes/v1.3.0.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,83 @@
k6 v1.3.0 is here 🎉! This release includes:

- Browser module gets `locator.locator`, `locator.contentFrame`, `locator.boundingBox`, `locator.filter`, `locator.getBy*`, `frame.getBy*`, `FrameLocator.locator`, `Framelocator.getBy*`, and `page.waitForResponse`.
- `<Summary of new features>` (_one or multiple bullets_)

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
## Breaking changes
As per our [stability guarantees](https://grafana.com/docs/k6/latest/reference/versioning-and-stability-guarantees/), breaking changes across minor releases are allowed only for experimental features.
### Breaking changes for experimental modules
The experimental Open Telemetry

Placeholder for #5164

## Deprecations

- [`#5118`](https://github.com/grafana/k6/pull/5118), deprecates `--no-summary` in favor of `--summary-mode=disabled`
- [`#5138`](https://github.com/grafana/k6/pull/5138), deprecates `--summary mode=legacy`
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- [`#5138`](https://github.com/grafana/k6/pull/5138), deprecates `--summary mode=legacy`
- [`#5138`](https://github.com/grafana/k6/pull/5138), deprecates `--summary-mode=legacy`


## New features

### `locator.locator` [#5073](https://github.com/grafana/k6/pull/5073)

The `locator.locator` method allows you to define locators relative to a parent locator, enabling powerful locator chaining and nesting. This feature lets you create more precise element targeting by combining multiple selectors in a hierarchical manner.

```javascript
await page
.locator('[data-testid="inventory"]')
.locator('[data-item="apples"]')
.locator('button.add')
.click();
```

This nesting capability provides a more intuitive way to navigate complex DOM structures and serves as the foundation for other `locator` APIs in this release that require such hierarchical targeting.

_optional intro here_

### `frameLocator.locator` [#5075](https://github.com/grafana/k6/pull/5075)

_what, why, and what this means for the user_

### `locator.contentFrame` [#5075](https://github.com/grafana/k6/pull/5075)

_what, why, and what this means for the user_

### `locator.boundingBox` [#5076](https://github.com/grafana/k6/pull/5076)

_what, why, and what this means for the user_

### `locator.filter` [#5114](https://github.com/grafana/k6/pull/5114), [#5131](https://github.com/grafana/k6/pull/5131)

_what, why, and what this means for the user_

### `page.waitForResponse` [#5002](https://github.com/grafana/k6/pull/5002)

_what, why, and what this means for the user_

### `frame.getBy*`, `locator.getBy*` [#5105](https://github.com/grafana/k6/pull/5105), [#5106](https://github.com/grafana/k6/pull/5106)

_what, why, and what this means for the user_

## UX improvements and enhancements

- [#5164](https://github.com/grafana/k6/pull/5164) Rate metrics are now exported as a single counter with a label that can have two values: zero and nonzero.
- [#5117](https://github.com/grafana/k6/pull/5117) Unifies unauthenticated errors for Cloud commands.
- [#5125](https://github.com/grafana/k6/pull/5125) Changes a warn log to a debug when a worker type is used on a website under test.
- [#5111](https://github.com/grafana/k6/pull/5111) Adds retries to actionability based APIs (`locator`) when elements aren't visible.
- [#5004](https://github.com/grafana/k6/pull/5004) Removes undefined headers from `route.continue`/`fulfill`.
- [#4984](https://github.com/grafana/k6/pull/4984) Adds link to documentation in `k6 --help` output.

## Bug fixes

- [#5079](https://github.com/grafana/k6/pull/5079) Fixes version of k6 when it is build with xk6.
- [#5057](https://github.com/grafana/k6/pull/5057) Fixes a panic on the deprecated `k6 login cloud` command. Thanks @indygriffiths for reporting it!
- [#5059](https://github.com/grafana/k6/pull/5059) Fixes group order in end of test summary when scenarios are used.
- [#5081](https://github.com/grafana/k6/pull/5081) Fixes auto extension resolution only working if binary is called `k6` after a fix in v1.2.2.
- [#5089](https://github.com/grafana/k6/pull/5089) Fixes gRPC calls not using loaded types and erroring out, especially around the usage of `Any`.
- [#5071](https://github.com/grafana/k6/pull/5071), [#5086](https://github.com/grafana/k6/pull/5086) Fixes `click` action in browser module when working in `iframe`s and CORS.
- [#5084](https://github.com/grafana/k6/pull/5084) Fixes a browser module issue when adopting elements from `util` to `main` execution contexts in Chromium.

## Maintenance and internal improvements

- [#5074](https://github.com/grafana/k6/pull/5074), [#5078](https://github.com/grafana/k6/pull/5078) Uses common.IsNullish through the code instead of other variants of it or custom helpers.
- [#5072](https://github.com/grafana/k6/pull/5072), [#5107](https://github.com/grafana/k6/pull/5107), [#5108](https://github.com/grafana/k6/pull/5108) Update k6packager debian to latest LTS and fixes due to the update.
- [#5051](https://github.com/grafana/k6/pull/5051), [#5052](https://github.com/grafana/k6/pull/5052), [#5053](https://github.com/grafana/k6/pull/5053) Adds tests and refactors `getBy*` and `waitForURL` implementations.
- [#5101](https://github.com/grafana/k6/pull/5101) Updates times to nanoseconds to make tests less flakey in CI.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- [#5101](https://github.com/grafana/k6/pull/5101) Updates times to nanoseconds to make tests less flakey in CI.
- [#5101](https://github.com/grafana/k6/pull/5101) Updates times to nanoseconds to make tests less flakey in CI.
- [#5122](https://github.com/grafana/k6/pull/5122) Migrates to use a new code signing process for Windows binaries instead of using the static code-signing certificate. Thanks @martincostello for the contribution!

- [#5048](https://github.com/grafana/k6/pull/5048) Updates release issue template after v1.2.0
- [#5046](https://github.com/grafana/k6/pull/5046) Adds architecture overview and code authoring instructions for Claude Code and alike.

## _Optional_ Roadmap
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
## _Optional_ Roadmap
## Roadmap


_Discussion of future plans_
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
_Discussion of future plans_
### OpenTelemetry stabilization
We aim to stabilize OpenTelemetry's experimental metric output, promoting vendor neutrality for metric outputs. OpenTelemetry is becoming the standard protocol for metric format in observability. Our goal is to enable k6 users to utilize their preferred metric backend storage without any technological imposition.

Loading