Skip to content
This repository was archived by the owner on Jan 30, 2025. It is now read-only.

Commit fbcd5a4

Browse files
authored
Merge pull request #658 from grafana/update_roadmap
Update project roadmap
2 parents a92e140 + e4fe2f6 commit fbcd5a4

File tree

1 file changed

+16
-32
lines changed

1 file changed

+16
-32
lines changed

ROADMAP.md

Lines changed: 16 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -30,35 +30,26 @@ Status updates
3030
Short-term goals
3131
----------------
3232

33-
These are goals achievable within 3-6 months, tentatively done by Q3 2022.
33+
These are goals tentatively achievable by Q2 2023.
3434

35-
- **Stabilize the existing functionality and fix any major, high-impact, and blocking bugs.**<br>
36-
Tool stability is something we take very seriously and users shouldn't run into any major showstopping issues.
35+
- **Make xk6-browser a part of standard distribution of k6.**<br>
3736

3837
*How will we achieve this?*<br>
39-
By manually testing the application in different scenarios, adding more automated tests, and addressing reports from internal and external users.
40-
Any issues found that have a considerable user impact will be given highest priority and fixed ASAP.
38+
xk6-browser will become an [experimental module](https://k6.io/docs/javascript-api/k6-experimental/) of k6, and thus available to use in load tests that utilize standard k6 release builds.
4139

4240
*Definition of Done*<br>
43-
This is difficult to gauge, but at some point we should stop running into any major issues on a frequent basis and should consider this goal as reached.
41+
A load test script that imports `k6/experimental/browser` can be executed using the latest release build of k6. The browser-level APIs provided by xk6-browser are available for use within this script.
4442

45-
46-
- **Limited Alpha deployment and testing of the extension in k6 Cloud.**<br>
43+
- **Public beta in k6 Cloud.**
4744

4845
*How will we achieve this?*<br>
49-
Soon we will create a small-scale deployment for internal use and specific customers, meant to test the basic integration of the extension in k6 Cloud.
46+
Cloud builds will start using k6 releases that include xk6-browser as an experimental module.
5047

5148
*Definition of Done*<br>
52-
When the extension is usable in k6 Cloud; i.e. scripts can run and test results are shown. Frontend changes are not required at this stage.
53-
54-
55-
Mid-term goals
56-
--------------
57-
58-
These are goals achievable within 6-12 months, tentatively done by mid 2023.
49+
Load tests executed in Cloud can use xk6-browser API by importing `k6/experimental/browser`.
5950

6051
- **Transition our API to be async/`Promise` based.**<br>
61-
Currently (April 2022), most of our API is synchronous. This is due to the historical fact that k6 didn't support async behavior because of a missing per-VU event loop.
52+
At the moment, most of our API is synchronous. This is due to the historical fact that k6 didn't support async behavior because of a missing per-VU event loop.
6253
[This event loop is now available](https://github.com/grafana/k6/pull/2228).
6354
Async APIs are important for a browser-testing tool, since most browser behavior and [CDP](https://chromedevtools.github.io/devtools-protocol/) (the protocol we use to communicate with the browser) is event-based. We need to expose an async API to implement this missing functionality and reach feature parity with tools like Playwright or Puppeteer.
6455

@@ -69,25 +60,18 @@ These are goals achievable within 6-12 months, tentatively done by mid 2023.
6960
When most of the API can be used asynchronously.
7061

7162

72-
- **Beta availability of the extension in k6 Cloud for all users.**<br>
73-
74-
*How will we achieve this?*<br>
75-
The deployment should be optimized and the extension thoroughly tested before making it available to all users. Frontend changes should be done at this point, and usage costs (CPU, RAM, storage) and pricing details should be determined, followed by public announcements of the availability. Features such as screen capture, video recording, downloading, and file uploading should be available.
76-
77-
*Definition of Done*<br>
78-
When all users are eligible to upgrade to a plan that includes browser testing.
63+
Mid-term goals
64+
--------------
7965

66+
These are goals tentatively achievable by Q1 2024.
8067

81-
- **Merge the extension into the main k6 repository.**<br>
82-
k6 and Grafana consider browser testing to be another strategy under the testing umbrella, along with performance, contract, and other types of testing that modern web applications benefit from. As such, the scope of the k6 tool will expand to include functional/E2E testing using browser automation, with the ultimate goal of merging the xk6-browser extension into the main k6 repository as a core JS module.
68+
- **Global availability of the extension in k6 Cloud for all users.**<br>
8369

8470
*How will we achieve this?*<br>
85-
Once the extension and API are relatively stable, and it's well-tested in k6 Cloud, we will create a PR to the main k6 repository with the extension code. Then we will deprecate the standalone xk6-browser repository, and point users to use the main k6 binary instead.
86-
87-
This will be a minor breaking change, as scripts will have to import `k6/browser` instead of `k6/x/browser`, and CI jobs will need to change, but the functionality should remain the same.
71+
The deployment should be optimized and the extension thoroughly tested before making it available to all users. Frontend changes should be done at this point, and usage costs (CPU, RAM, storage) and pricing details should be determined, followed by public announcements of the availability.
8872

8973
*Definition of Done*<br>
90-
Once the extension has been merged into the k6 repository.
74+
The import path for xk6-browser is updated to `k6/browser` and the API is considered to be stable.
9175

9276

9377
- **Increase test code coverage; refactor problematic areas of the codebase; fix "flaky" tests, linter issues, etc.**<br>
@@ -116,10 +100,10 @@ These are goals achievable after a year, and don't have a clear date of delivery
116100

117101

118102
- **Feature parity with Playwright and Puppeteer.**<br>
119-
Currently, our functionality is limited compared to more mature projects like Playwright and Puppeteer. We plan to expand this gradually and reach or exceed the features offered by other browser automation tools.
103+
Currently, our functionality is limited compared to more mature projects like Playwright and Puppeteer. We plan to expand this gradually and reach or exceed the features offered by other browser automation tools, such as screen capture, video recording, downloading, and file uploading.
120104

121105
*How will we achieve this?*<br>
122-
By prioritizing new features to add based on API importance and user feedback. After the short-term stability improvements are made, our main focus will be to add more missing features and close the current feature gap.
106+
By prioritizing new features to add based on API importance and user feedback. Once our standalone and Cloud users are able to execute feasible complex scenarios, our main focus will be to add more missing features and close the current feature gap.
123107

124108
*Definition of Done*<br>
125109
When we implement all of the functionality found in other tools that makes sense for xk6-browser. This is intentionally vague at the moment, and we'll refine it as we make progress.

0 commit comments

Comments
 (0)