Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Created by
brew bump
Created with
brew bump-formula-pr
.release notes
clear
functionality to the browser module'slocator
classes.k6/html
.k6/experimental/timers
for stabilization.Breaking changes
loadimpact/k6
docker image. If you still use it, please migrate to the grafana/k6 image.timeout
option forisVisible
andisHidden
since the API no longer waits for the element to appear on the page.New features
Web Dashboard
The new 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.Once enabled and the test script is running, navigate to http://localhost:5665 in your web browser to access the dashboard.
Test report
The web dashboard also offers an HTML test report (see an example) 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.Add
clear
to thelocator
class browser#1149The new
clear
method on thelocator
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.
Add tracing to the browser module browser#1100
The browser module now generates traces that provide a representation of its inner workings, such as API methods executed (for example
browser.newPage
andpage.goto
), page navigations, and 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. Check out the documentation to learn more about it.gRPC streaming API becomes part of the k6 core #3490
With this release, gRPC's streaming API becomes part of the core's
k6/net/grpc
module. The experimentalk6/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 versionv0.51.0
).To migrate your scripts, replace
k6/experimental/grpc
withk6/net/grpc
in your script imports, and the code should work as before.k6/html: Extract selection from element #3519
k6/html
has been around for a while and allows you to search within an HTML document with a jQuery-like API called Selection, and also has support for the more standard Element that represents DOM element.For a long time, you could get an Element from a Selection using the
.get(index)
, 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:
In order to support the above example, you can use
selection
, without going to the element: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()
which returns a selection for its element.Thanks to @Azhovan! :bow: :tada:
Collect usage data on imported internal modules and outputs #3525
k6 now collects usage data of the modules and outputs that are being used when the usage report is enabled. The data collection is only related to the built-in k6 modules and outputs. Private, custom modules and extensions are never collected. The usage report is enabled by default in k6, but it is possible to opt-out using the 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
@mem
for working on it!console
in the k6 logs.grafana.com/docs/k6/latest/
.Bug fixes
console
.BigInt
parsing.isVisible
andisHidden
so that it doesn't wait for an element to match with the givenselector
, allowing it to continue on with the test script when elements are not on the page.dblClick
so that it works withonDblClick
and performs two clicks on the specified element.Maintenance and internal improvements
CODEOWNERS
from GitHub Action.open
andrequire
and their handling of paths.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.