You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository was archived by the owner on Jan 30, 2025. It is now read-only.
Copy file name to clipboardExpand all lines: ROADMAP.md
+16-32Lines changed: 16 additions & 32 deletions
Original file line number
Diff line number
Diff line change
@@ -30,35 +30,26 @@ Status updates
30
30
Short-term goals
31
31
----------------
32
32
33
-
These are goals achievable within 3-6 months, tentatively done by Q3 2022.
33
+
These are goals tentatively achievable by Q2 2023.
34
34
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>
37
36
38
37
*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.
41
39
42
40
*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.
44
42
45
-
46
-
-**Limited Alpha deployment and testing of the extension in k6 Cloud.**<br>
43
+
-**Public beta in k6 Cloud.**
47
44
48
45
*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.
50
47
51
48
*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`.
59
50
60
51
-**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.
62
53
[This event loop is now available](https://github.com/grafana/k6/pull/2228).
63
54
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.
64
55
@@ -69,25 +60,18 @@ These are goals achievable within 6-12 months, tentatively done by mid 2023.
69
60
When most of the API can be used asynchronously.
70
61
71
62
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
+
--------------
79
65
66
+
These are goals tentatively achievable by Q1 2024.
80
67
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>
83
69
84
70
*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.
88
72
89
73
*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.
91
75
92
76
93
77
-**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
116
100
117
101
118
102
-**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.
120
104
121
105
*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.
123
107
124
108
*Definition of Done*<br>
125
109
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