sitespeed.io 31.0.1 → 31.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.github/workflows/windows.yml +5 -2
- package/CHANGELOG.md +41 -0
- package/bin/sitespeed.js +11 -2
- package/lib/cli/cli.js +8 -0
- package/lib/plugins/browsertime/index.js +7 -0
- package/lib/plugins/html/templates/url/metrics/inp.pug +23 -5
- package/npm-shrinkwrap.json +17 -17
- package/package.json +2 -2
|
@@ -21,8 +21,11 @@ jobs:
|
|
|
21
21
|
CHROMEDRIVER_SKIP_DOWNLOAD: true
|
|
22
22
|
GECKODRIVER_SKIP_DOWNLOAD: true
|
|
23
23
|
- run: choco outdated
|
|
24
|
-
- name:
|
|
25
|
-
run:
|
|
24
|
+
- name: Show versions
|
|
25
|
+
run: powershell "Get-AppxPackage -Name *MicrosoftEdge.* | Foreach Version"
|
|
26
|
+
shell: cmd
|
|
27
|
+
#- name: Install dependencies
|
|
28
|
+
# run: choco install microsoft-edge
|
|
26
29
|
- name: Run Edge test
|
|
27
30
|
run: node bin/sitespeed.js -b edge https://www.sitespeed.io/
|
|
28
31
|
shell: cmd
|
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,46 @@
|
|
|
1
1
|
# CHANGELOG - sitespeed.io (we use [semantic versioning](https://semver.org))
|
|
2
2
|
|
|
3
|
+
## 31.1.1 - 2024-01-08
|
|
4
|
+
### Fixed
|
|
5
|
+
* When displaying interaction to next paint, there where some copy/paste from largest contentful paint that sometimes broke the HTML (my fault). Fixed in [#4042](https://github.com/sitespeedio/sitespeed.io/pull/4052).
|
|
6
|
+
|
|
7
|
+
## 31.1.0 - 2024-01-07
|
|
8
|
+
|
|
9
|
+
We updated the [scripting documentation](https://www.sitespeed.io/documentation/sitespeed.io/scripting/) to be generated directly from Browsertime (using JSDoc). This makes the documentation so much easier to navigate. It's not 100% perfect yet so please feel free to send PRs with updates :)
|
|
10
|
+
|
|
11
|
+
The new version of Browsertime also adds code completion/IntelliSense support. Read [here](https://www.sitespeed.io/documentation/sitespeed.io/scripting/tutorial-08-Setting-Up-IntelliSense.html) on how to set it up. Make sure to start your scripting like this:
|
|
12
|
+
|
|
13
|
+
```JavaScript
|
|
14
|
+
/**
|
|
15
|
+
* @param {import('browsertime').BrowsertimeContext} context
|
|
16
|
+
* @param {import('browsertime').BrowsertimeCommands} commands
|
|
17
|
+
*/
|
|
18
|
+
export default async function (context, commands) {
|
|
19
|
+
|
|
20
|
+
};
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
### Added
|
|
24
|
+
* Update to [Browsertime 21.0.0](https://github.com/sitespeedio/browsertime/blob/main/CHANGELOG.md#2100---2024-01-07):
|
|
25
|
+
* Upgraded to [Geckodriver 0.34.0](https://github.com/mozilla/geckodriver/releases/tag/v0.34.0) [#2049](https://github.com/sitespeedio/browsertime/pull/2049).
|
|
26
|
+
* Collect CPU consumption for Firefox. Turn that on with `--firefox.powerConsumption true` and including `power` as a geckoProfilerParams.features [#2046](https://github.com/sitespeedio/browsertime/pull/2046).
|
|
27
|
+
* Added more commands for mouse click on text [#2054](https://github.com/sitespeedio/browsertime/pull/2054).
|
|
28
|
+
* Updated AndroidCommand so you can run shell on your Android device as root [#2055](https://github.com/sitespeedio/browsertime/pull/2055).
|
|
29
|
+
* If you mark a test as failure, the exit code from Browsertime will be 1. If the exitCode is set in scripting, we use that and will not change that [#2057](https://github.com/sitespeedio/browsertime/pull/2057).
|
|
30
|
+
* Generate documentation for scripting using JSDoc [#2059](https://github.com/sitespeedio/browsertime/pull/2059).
|
|
31
|
+
* Make it easy to use Seleniums action API. Get access to the new command using commands.action.getActions() and chain the action. [#2061](https://github.com/sitespeedio/browsertime/pull/2061)
|
|
32
|
+
* Make sure the visual metrics files are inlcuded in the Docker file [#2053](https://github.com/sitespeedio/browsertime/pull/2053).
|
|
33
|
+
* Removing QVH from the npm package (used for iPhone video recording but not working) [#2051](https://github.com/sitespeedio/browsertime/pull/2051)
|
|
34
|
+
* Removing visual metrics test images from the npm package [#2050](https://github.com/sitespeedio/browsertime/pull/2050).
|
|
35
|
+
* Removed the Chromedriver fix that was needed when Chrome for testing broke testing on Chrome :D [#2045](https://github.com/sitespeedio/browsertime/pull/2045).
|
|
36
|
+
* Refactor of commands/context object to prepare for supporting JSDoc and a little TypeScript to add code completion/IntelliSense in editors [#2047](https://github.com/sitespeedio/browsertime/pull/2047).
|
|
37
|
+
* Updated documentation for scripting with better JSDoc [#204](https://github.com/sitespeedio/browsertime/pull/2048).
|
|
38
|
+
* The code for getting Interaction to next paint was broken. This PR fixes it, make the code cleaner and gives more attribution [#2060](https://github.com/sitespeedio/browsertime/pull/2060).
|
|
39
|
+
* If you use `process.exitCode` in your scripting, it will be respected by sitespeed.io and exit with that exit code [#4044](https://github.com/sitespeedio/sitespeed.io/pull/4044).
|
|
40
|
+
|
|
41
|
+
### Fixed
|
|
42
|
+
* If a run is markedAsFailure in your Browsertime script, sitespeed.io exits with an error code [#4047](https://github.com/sitespeedio/sitespeed.io/pull/4047).
|
|
43
|
+
|
|
3
44
|
## 31.0.1 - 2023-12-28
|
|
4
45
|
### Fixed
|
|
5
46
|
* Hopefully removing "rsd" metrics in InfluxDB see [#4039](https://github.com/sitespeedio/sitespeed.io/pull/4039).
|
package/bin/sitespeed.js
CHANGED
|
@@ -148,6 +148,14 @@ async function start() {
|
|
|
148
148
|
execSync('xdg-open ' + result.localPath + '/index.html');
|
|
149
149
|
}
|
|
150
150
|
|
|
151
|
+
// If one of the URLs is marked as a failure in Browsertime
|
|
152
|
+
// then set the exit code
|
|
153
|
+
for (let bt of result.browsertime) {
|
|
154
|
+
if (bt.markedAsFailure === 1) {
|
|
155
|
+
process.exitCode = 1;
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
|
|
151
159
|
if (
|
|
152
160
|
parsed.options.budget &&
|
|
153
161
|
Object.keys(result.budgetResult.failing).length > 0
|
|
@@ -157,8 +165,9 @@ async function start() {
|
|
|
157
165
|
}
|
|
158
166
|
|
|
159
167
|
if (
|
|
160
|
-
!budgetFailing ||
|
|
161
|
-
|
|
168
|
+
(!budgetFailing ||
|
|
169
|
+
(parsed.options.budget && parsed.options.budget.suppressExitCode)) &&
|
|
170
|
+
process.exitCode === undefined
|
|
162
171
|
) {
|
|
163
172
|
process.exitCode = 0;
|
|
164
173
|
}
|
package/lib/cli/cli.js
CHANGED
|
@@ -724,6 +724,14 @@ export async function parseCommandLine() {
|
|
|
724
724
|
type: 'number',
|
|
725
725
|
group: 'Firefox'
|
|
726
726
|
})
|
|
727
|
+
.option('browsertime.firefox.powerConsumption', {
|
|
728
|
+
alias: 'firefox.powerConsumption',
|
|
729
|
+
type: 'boolean',
|
|
730
|
+
default: false,
|
|
731
|
+
describe:
|
|
732
|
+
'Enable power consumption collection (in Wh). To get the consumption you also need to set firefox.geckoProfilerParams.features to include power.',
|
|
733
|
+
group: 'Firefox'
|
|
734
|
+
})
|
|
727
735
|
.option('browsertime.firefox.geckodriverArgs', {
|
|
728
736
|
alias: 'firefox.geckodriverArgs',
|
|
729
737
|
describe:
|
|
@@ -360,10 +360,17 @@ export default class BrowsertimePlugin extends SitespeedioPlugin {
|
|
|
360
360
|
run.memory = result[resultIndex].memory[runIndex];
|
|
361
361
|
}
|
|
362
362
|
|
|
363
|
+
if (result[resultIndex].powerConsumption) {
|
|
364
|
+
run.powerConsumption =
|
|
365
|
+
result[resultIndex].powerConsumption[runIndex];
|
|
366
|
+
}
|
|
367
|
+
|
|
363
368
|
if (result[resultIndex].extras) {
|
|
364
369
|
run.extras = result[resultIndex].extras[runIndex];
|
|
365
370
|
}
|
|
366
371
|
|
|
372
|
+
run.markedAsFailure = result[resultIndex].markedAsFailure;
|
|
373
|
+
|
|
367
374
|
if (
|
|
368
375
|
result[resultIndex].cdp &&
|
|
369
376
|
result[resultIndex].cdp.performance
|
|
@@ -1,11 +1,29 @@
|
|
|
1
1
|
if browsertime.pageinfo && browsertime.pageinfo.interactionToNextPaintInfo!== undefined
|
|
2
2
|
a#interactionToNextPaint
|
|
3
3
|
h3 Interaction to Next Paint
|
|
4
|
-
p Interaction to Next Paint (INP) is a metric that try to measure responsiveness. It's useful if you are testing user journeys Read more about
|
|
4
|
+
p Interaction to Next Paint (INP) is a metric that try to measure responsiveness. It's useful if you are testing user journeys. Read more about
|
|
5
5
|
a(href='https://web.dev/inp/') Interaction to Next Paint
|
|
6
6
|
| .
|
|
7
7
|
.row
|
|
8
|
-
p The measured latency was #{h.time.ms(browsertime.pageinfo.interactionToNextPaintInfo.latency)}.
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
8
|
+
p The measured latency was #{h.time.ms(browsertime.pageinfo.interactionToNextPaintInfo.latency)}.
|
|
9
|
+
table
|
|
10
|
+
tr
|
|
11
|
+
td
|
|
12
|
+
b Event type
|
|
13
|
+
td #{browsertime.pageinfo.interactionToNextPaintInfo.eventType}
|
|
14
|
+
tr
|
|
15
|
+
td
|
|
16
|
+
b Element type
|
|
17
|
+
td #{browsertime.pageinfo.interactionToNextPaintInfo.tagName}
|
|
18
|
+
tr
|
|
19
|
+
td
|
|
20
|
+
b Element class name
|
|
21
|
+
td #{browsertime.pageinfo.interactionToNextPaintInfo.className}
|
|
22
|
+
tr
|
|
23
|
+
td
|
|
24
|
+
b Event target
|
|
25
|
+
td #{browsertime.pageinfo.interactionToNextPaintInfo.eventTarget}
|
|
26
|
+
tr
|
|
27
|
+
td
|
|
28
|
+
b Load state when the event happened
|
|
29
|
+
td #{browsertime.pageinfo.interactionToNextPaintInfo.loadState}
|
package/npm-shrinkwrap.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "sitespeed.io",
|
|
3
|
-
"version": "31.
|
|
3
|
+
"version": "31.1.1",
|
|
4
4
|
"lockfileVersion": 2,
|
|
5
5
|
"requires": true,
|
|
6
6
|
"packages": {
|
|
7
7
|
"": {
|
|
8
8
|
"name": "sitespeed.io",
|
|
9
|
-
"version": "31.
|
|
9
|
+
"version": "31.1.1",
|
|
10
10
|
"license": "MIT",
|
|
11
11
|
"dependencies": {
|
|
12
12
|
"@google-cloud/storage": "6.9.5",
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
"@tgwf/co2": "0.13.10",
|
|
16
16
|
"aws-sdk": "2.1327.0",
|
|
17
17
|
"axe-core": "4.8.2",
|
|
18
|
-
"browsertime": "
|
|
18
|
+
"browsertime": "21.0.0",
|
|
19
19
|
"cli-color": "2.0.3",
|
|
20
20
|
"coach-core": "8.0.2",
|
|
21
21
|
"concurrent-queue": "7.0.2",
|
|
@@ -985,9 +985,9 @@
|
|
|
985
985
|
}
|
|
986
986
|
},
|
|
987
987
|
"node_modules/@sitespeed.io/geckodriver": {
|
|
988
|
-
"version": "0.
|
|
989
|
-
"resolved": "https://registry.npmjs.org/@sitespeed.io/geckodriver/-/geckodriver-0.
|
|
990
|
-
"integrity": "sha512
|
|
988
|
+
"version": "0.34.0",
|
|
989
|
+
"resolved": "https://registry.npmjs.org/@sitespeed.io/geckodriver/-/geckodriver-0.34.0.tgz",
|
|
990
|
+
"integrity": "sha512-/AT910tNizgPVey9sSeYpJWt85GwkllGwGGCbnaB6VId/BJNeHfjst1mIIUr628UfUVQDOPJ1z6x0lcCjh6unw==",
|
|
991
991
|
"hasInstallScript": true,
|
|
992
992
|
"dependencies": {
|
|
993
993
|
"node-downloader-helper": "2.1.5",
|
|
@@ -1759,15 +1759,15 @@
|
|
|
1759
1759
|
}
|
|
1760
1760
|
},
|
|
1761
1761
|
"node_modules/browsertime": {
|
|
1762
|
-
"version": "
|
|
1763
|
-
"resolved": "https://registry.npmjs.org/browsertime/-/browsertime-
|
|
1764
|
-
"integrity": "sha512-
|
|
1762
|
+
"version": "21.0.0",
|
|
1763
|
+
"resolved": "https://registry.npmjs.org/browsertime/-/browsertime-21.0.0.tgz",
|
|
1764
|
+
"integrity": "sha512-DRc3Zlz0VlhRH9Vq+7x8KTR6KO9slZ6CisC2Qt63LnR/NjZgR9IXBhxUi/5ncbvwq/pNgplwgFEa8T2hJbHCbw==",
|
|
1765
1765
|
"dependencies": {
|
|
1766
1766
|
"@cypress/xvfb": "1.2.4",
|
|
1767
1767
|
"@devicefarmer/adbkit": "3.2.5",
|
|
1768
1768
|
"@sitespeed.io/chromedriver": "120.0.6099-71",
|
|
1769
1769
|
"@sitespeed.io/edgedriver": "120.0.2210-77",
|
|
1770
|
-
"@sitespeed.io/geckodriver": "0.
|
|
1770
|
+
"@sitespeed.io/geckodriver": "0.34.0",
|
|
1771
1771
|
"@sitespeed.io/throttle": "5.0.0",
|
|
1772
1772
|
"@sitespeed.io/tracium": "0.3.3",
|
|
1773
1773
|
"btoa": "1.2.1",
|
|
@@ -10017,9 +10017,9 @@
|
|
|
10017
10017
|
}
|
|
10018
10018
|
},
|
|
10019
10019
|
"@sitespeed.io/geckodriver": {
|
|
10020
|
-
"version": "0.
|
|
10021
|
-
"resolved": "https://registry.npmjs.org/@sitespeed.io/geckodriver/-/geckodriver-0.
|
|
10022
|
-
"integrity": "sha512
|
|
10020
|
+
"version": "0.34.0",
|
|
10021
|
+
"resolved": "https://registry.npmjs.org/@sitespeed.io/geckodriver/-/geckodriver-0.34.0.tgz",
|
|
10022
|
+
"integrity": "sha512-/AT910tNizgPVey9sSeYpJWt85GwkllGwGGCbnaB6VId/BJNeHfjst1mIIUr628UfUVQDOPJ1z6x0lcCjh6unw==",
|
|
10023
10023
|
"requires": {
|
|
10024
10024
|
"node-downloader-helper": "2.1.5",
|
|
10025
10025
|
"node-stream-zip": "1.15.0",
|
|
@@ -10601,15 +10601,15 @@
|
|
|
10601
10601
|
}
|
|
10602
10602
|
},
|
|
10603
10603
|
"browsertime": {
|
|
10604
|
-
"version": "
|
|
10605
|
-
"resolved": "https://registry.npmjs.org/browsertime/-/browsertime-
|
|
10606
|
-
"integrity": "sha512-
|
|
10604
|
+
"version": "21.0.0",
|
|
10605
|
+
"resolved": "https://registry.npmjs.org/browsertime/-/browsertime-21.0.0.tgz",
|
|
10606
|
+
"integrity": "sha512-DRc3Zlz0VlhRH9Vq+7x8KTR6KO9slZ6CisC2Qt63LnR/NjZgR9IXBhxUi/5ncbvwq/pNgplwgFEa8T2hJbHCbw==",
|
|
10607
10607
|
"requires": {
|
|
10608
10608
|
"@cypress/xvfb": "1.2.4",
|
|
10609
10609
|
"@devicefarmer/adbkit": "3.2.5",
|
|
10610
10610
|
"@sitespeed.io/chromedriver": "120.0.6099-71",
|
|
10611
10611
|
"@sitespeed.io/edgedriver": "120.0.2210-77",
|
|
10612
|
-
"@sitespeed.io/geckodriver": "0.
|
|
10612
|
+
"@sitespeed.io/geckodriver": "0.34.0",
|
|
10613
10613
|
"@sitespeed.io/throttle": "5.0.0",
|
|
10614
10614
|
"@sitespeed.io/tracium": "0.3.3",
|
|
10615
10615
|
"btoa": "1.2.1",
|
package/package.json
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
"sitespeed.io": "./bin/sitespeed.js",
|
|
6
6
|
"sitespeed.io-wpr": "./bin/browsertimeWebPageReplay.js"
|
|
7
7
|
},
|
|
8
|
-
"version": "31.
|
|
8
|
+
"version": "31.1.1",
|
|
9
9
|
"description": "sitespeed.io is an open-source tool for comprehensive web performance analysis, enabling you to test, monitor, and optimize your website’s speed using real browsers in various environments.",
|
|
10
10
|
"keywords": [
|
|
11
11
|
"performance",
|
|
@@ -83,7 +83,7 @@
|
|
|
83
83
|
"@tgwf/co2": "0.13.10",
|
|
84
84
|
"aws-sdk": "2.1327.0",
|
|
85
85
|
"axe-core": "4.8.2",
|
|
86
|
-
"browsertime": "
|
|
86
|
+
"browsertime": "21.0.0",
|
|
87
87
|
"coach-core": "8.0.2",
|
|
88
88
|
"cli-color": "2.0.3",
|
|
89
89
|
"concurrent-queue": "7.0.2",
|