Merge branch 'main' into bt-24.2.0
This commit is contained in:
commit
bf3068b34c
12
CHANGELOG.md
12
CHANGELOG.md
|
|
@ -1,5 +1,17 @@
|
|||
# CHANGELOG - sitespeed.io (we use [semantic versioning](https://semver.org))
|
||||
|
||||
## 36.2.5 - 2025-02-03
|
||||
### Fixed
|
||||
* The check for sending Android test through APIs was broken in 36.2.4, fixed in [#4428](https://github.com/sitespeedio/sitespeed.io/pull/4428).
|
||||
|
||||
## 36.2.4 - 2025-02-02
|
||||
### Fixed
|
||||
* The GitHub actions tests on Windows was broken. I think GitHub changed tere heir setup: Suddenly the path to plugins was broken. Rerunning old test that used to work, failed with the same code on our side. It's fixed by [#4426](https://github.com/sitespeedio/sitespeed.io/pull/4426).
|
||||
|
||||
* We have had issues with parsing Android configuration because of the `--android` flag to enable Android tests. The problem was that in some cases the internal configuration object become an Array (instead of an object) and that made some objects to do not work. The PR [#4422](https://github.com/sitespeedio/sitespeed.io/pull/4422) removes `--android` from the cli help, however it will still work as before.
|
||||
|
||||
* Fix so API calls also looks for `--android.enabled` to know if you want to test on Android [#4427](https://github.com/sitespeedio/sitespeed.io/pull/4427).
|
||||
|
||||
## 36.2.3 - 2025-01-30
|
||||
### Fixed
|
||||
* Even better handling of missing runtime settings [#4420](https://github.com/sitespeedio/sitespeed.io/pull/4420).
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
FROM sitespeedio/webbrowsers:chrome-132.0-firefox-134.0-edge-132.0
|
||||
FROM sitespeedio/webbrowsers:chrome-133.0-firefox-135.0-edge-132.0
|
||||
|
||||
ARG TARGETPLATFORM=linux/amd64
|
||||
|
||||
|
|
|
|||
|
|
@ -46,7 +46,10 @@ async function api(options) {
|
|||
|
||||
if (apiOptions.mobile) {
|
||||
apiOptions.api.testType = 'emulatedMobile';
|
||||
} else if (apiOptions.android) {
|
||||
} else if (
|
||||
apiOptions.android === true ||
|
||||
(apiOptions.android && apiOptions.android.enabled === true)
|
||||
) {
|
||||
apiOptions.api.testType = 'android';
|
||||
} else if (apiOptions.safari && apiOptions.safari.ios) {
|
||||
apiOptions.api.testType = 'ios';
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
24.1.1
|
||||
24.2.0
|
||||
|
|
@ -1 +1 @@
|
|||
1.3.0
|
||||
1.4.0
|
||||
|
|
@ -1 +1 @@
|
|||
36.2.3
|
||||
36.2.5
|
||||
|
|
@ -1 +1 @@
|
|||
1.0.5
|
||||
1.0.7
|
||||
|
|
@ -326,7 +326,7 @@ Options:
|
|||
--browsertime.enableVideoRun, --enableVideoRun Make one extra run that collects video and visual metrics. This means you can do your runs with --visualMetrics true --video false --enableVideoRun true to collect visual metrics from all runs and save a video from the profile/video run. If you run it together with --enableProfileRun it will also collect profiling race. [boolean]
|
||||
--browsertime.cjs, --cjs Load scripting files that ends with .js as common js. Default (false) loads files as esmodules. [boolean] [default: false]
|
||||
--browsertime.tcpdump, --tcpdump Collect a tcpdump for each tested URL. The user that runs sitespeed.io should have sudo rights for tcpdump to work. [boolean] [default: false]
|
||||
--browsertime.android, --android Short key to use Android. Will automatically use com.android.chrome for Chrome and stable Firefox. If you want to use another Chrome version, use --chrome.android.package [boolean] [default: false]
|
||||
--browsertime.android.enabled, --android.enabled Short key to use Android. Will automatically use com.android.chrome for Chrome and stable Firefox. If you want to use another Chrome version, use --chrome.android.package [boolean] [default: false]
|
||||
--browsertime.iqr Use IQR, or Inter Quartile Range filtering filters data based on the spread of the data. See https://en.wikipedia.org/wiki/Interquartile_range. In some cases, IQR filtering may not filter out anything. This can happen if the acceptable range is wider than the bounds of your dataset. [boolean] [default: false]
|
||||
--browsertime.preWarmServer, --preWarmServer Do pre test requests to the URL(s) that you want to test that is not measured. Do that to make sure your web server is ready to serve. The pre test requests is done with another browser instance that is closed after pre testing is done. [boolean] [default: false]
|
||||
--browsertime.preWarmServerWaitTime The wait time before you start the real testing after your pre-cache request. [number] [default: 5000]
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
<feed xmlns="http://www.w3.org/2005/Atom">
|
||||
<id>browsertime-release-feed</id>
|
||||
<title>browsertime release feed</title>
|
||||
<updated>2025-01-29T06:22:13.732Z</updated>
|
||||
<updated>2025-01-29T07:51:38.590Z</updated>
|
||||
<generator>https://github.com/jpmonette/feed</generator>
|
||||
<author>
|
||||
<name>Peter Hedenskog</name>
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
<title>browsertime release feed</title>
|
||||
<link>https://www.sitespeed.io</link>
|
||||
<description>New releases and changelog feed of browsertime</description>
|
||||
<lastBuildDate>Wed, 29 Jan 2025 06:22:13 GMT</lastBuildDate>
|
||||
<lastBuildDate>Wed, 29 Jan 2025 07:51:38 GMT</lastBuildDate>
|
||||
<docs>https://validator.w3.org/feed/docs/rss2.html</docs>
|
||||
<generator>https://github.com/jpmonette/feed</generator>
|
||||
<language>en</language>
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
<feed xmlns="http://www.w3.org/2005/Atom">
|
||||
<id>server-release-feed</id>
|
||||
<title>server release feed</title>
|
||||
<updated>2025-01-30T13:38:22.186Z</updated>
|
||||
<updated>2025-01-30T15:28:50.545Z</updated>
|
||||
<generator>https://github.com/jpmonette/feed</generator>
|
||||
<author>
|
||||
<name>Peter Hedenskog</name>
|
||||
|
|
@ -15,6 +15,21 @@
|
|||
<icon>http://www.sitespeed.io/favicon.ico</icon>
|
||||
<rights>All rights reserved 2022, Peter Hedenskog and team</rights>
|
||||
<category term="Web Performance"/>
|
||||
<entry>
|
||||
<title type="html"><![CDATA[server 1.3.0]]></title>
|
||||
<id>https://github.com/sitespeedio/server/blob/main/CHANGELOG.md#1.3.0</id>
|
||||
<link href="https://github.com/sitespeedio/server/blob/main/CHANGELOG.md#1.3.0"/>
|
||||
<updated>2025-01-30T00:00:00.000Z</updated>
|
||||
<summary type="html"><![CDATA[<h3>Added</h3>
|
||||
<ul>
|
||||
<li>Add link to active test in search <a href="https://github.com/sitespeedio/onlinetest/pull/129">#129</a>.</li>
|
||||
</ul>
|
||||
]]></summary>
|
||||
<author>
|
||||
<name>Sitespeed.io</name>
|
||||
<uri>https://www.sitespeed.io</uri>
|
||||
</author>
|
||||
</entry>
|
||||
<entry>
|
||||
<title type="html"><![CDATA[server 1.2.0]]></title>
|
||||
<id>https://github.com/sitespeedio/server/blob/main/CHANGELOG.md#1.2.0</id>
|
||||
|
|
@ -176,21 +191,6 @@
|
|||
<ul>
|
||||
<li>The internal configuration was broken in the way that removing/adding testrunners failed removing correct configurations <a href="https://github.com/sitespeedio/onlinetest/pull/84">#84</a>. This fix also needs <a href="https://github.com/sitespeedio/onlinetest/pull/83">#83</a> in the testrunners.</li>
|
||||
</ul>
|
||||
]]></summary>
|
||||
<author>
|
||||
<name>Sitespeed.io</name>
|
||||
<uri>https://www.sitespeed.io</uri>
|
||||
</author>
|
||||
</entry>
|
||||
<entry>
|
||||
<title type="html"><![CDATA[server 0.4.1]]></title>
|
||||
<id>https://github.com/sitespeedio/server/blob/main/CHANGELOG.md#0.4.1</id>
|
||||
<link href="https://github.com/sitespeedio/server/blob/main/CHANGELOG.md#0.4.1"/>
|
||||
<updated>2024-08-23T00:00:00.000Z</updated>
|
||||
<summary type="html"><![CDATA[<h3>Fixed</h3>
|
||||
<ul>
|
||||
<li>Fix bug so you can choose emulated mobile in GUI <a href="https://github.com/sitespeedio/onlinetest/pull/76">#76</a>.</li>
|
||||
</ul>
|
||||
]]></summary>
|
||||
<author>
|
||||
<name>Sitespeed.io</name>
|
||||
|
|
|
|||
|
|
@ -4,13 +4,24 @@
|
|||
<title>server release feed</title>
|
||||
<link>https://www.sitespeed.io</link>
|
||||
<description>New releases and changelog feed of server</description>
|
||||
<lastBuildDate>Thu, 30 Jan 2025 13:38:22 GMT</lastBuildDate>
|
||||
<lastBuildDate>Thu, 30 Jan 2025 15:28:50 GMT</lastBuildDate>
|
||||
<docs>https://validator.w3.org/feed/docs/rss2.html</docs>
|
||||
<generator>https://github.com/jpmonette/feed</generator>
|
||||
<language>en</language>
|
||||
<copyright>All rights reserved 2022, Peter Hedenskog and team</copyright>
|
||||
<category>Web Performance</category>
|
||||
<atom:link href="https://www.sitespeed.io/feed/server.rss" rel="self" type="application/rss+xml"/>
|
||||
<item>
|
||||
<title><![CDATA[server 1.3.0]]></title>
|
||||
<link>https://github.com/sitespeedio/server/blob/main/CHANGELOG.md#1.3.0</link>
|
||||
<guid>https://github.com/sitespeedio/server/blob/main/CHANGELOG.md#1.3.0</guid>
|
||||
<pubDate>Thu, 30 Jan 2025 00:00:00 GMT</pubDate>
|
||||
<description><![CDATA[<h3>Added</h3>
|
||||
<ul>
|
||||
<li>Add link to active test in search <a href="https://github.com/sitespeedio/onlinetest/pull/129">#129</a>.</li>
|
||||
</ul>
|
||||
]]></description>
|
||||
</item>
|
||||
<item>
|
||||
<title><![CDATA[server 1.2.0]]></title>
|
||||
<link>https://github.com/sitespeedio/server/blob/main/CHANGELOG.md#1.2.0</link>
|
||||
|
|
@ -140,17 +151,6 @@
|
|||
<ul>
|
||||
<li>The internal configuration was broken in the way that removing/adding testrunners failed removing correct configurations <a href="https://github.com/sitespeedio/onlinetest/pull/84">#84</a>. This fix also needs <a href="https://github.com/sitespeedio/onlinetest/pull/83">#83</a> in the testrunners.</li>
|
||||
</ul>
|
||||
]]></description>
|
||||
</item>
|
||||
<item>
|
||||
<title><![CDATA[server 0.4.1]]></title>
|
||||
<link>https://github.com/sitespeedio/server/blob/main/CHANGELOG.md#0.4.1</link>
|
||||
<guid>https://github.com/sitespeedio/server/blob/main/CHANGELOG.md#0.4.1</guid>
|
||||
<pubDate>Fri, 23 Aug 2024 00:00:00 GMT</pubDate>
|
||||
<description><![CDATA[<h3>Fixed</h3>
|
||||
<ul>
|
||||
<li>Fix bug so you can choose emulated mobile in GUI <a href="https://github.com/sitespeedio/onlinetest/pull/76">#76</a>.</li>
|
||||
</ul>
|
||||
]]></description>
|
||||
</item>
|
||||
</channel>
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
<feed xmlns="http://www.w3.org/2005/Atom">
|
||||
<id>sitespeed.io-release-feed</id>
|
||||
<title>sitespeed.io release feed</title>
|
||||
<updated>2025-01-30T13:40:48.761Z</updated>
|
||||
<updated>2025-02-03T08:20:01.115Z</updated>
|
||||
<generator>https://github.com/jpmonette/feed</generator>
|
||||
<author>
|
||||
<name>Peter Hedenskog</name>
|
||||
|
|
@ -16,6 +16,42 @@
|
|||
<icon>http://www.sitespeed.io/favicon.ico</icon>
|
||||
<rights>All rights reserved 2022, Peter Hedenskog and team</rights>
|
||||
<category term="Web Performance"/>
|
||||
<entry>
|
||||
<title type="html"><![CDATA[sitespeed.io 36.2.5]]></title>
|
||||
<id>https://github.com/sitespeedio/sitespeed.io/blob/main/CHANGELOG.md#36.2.5</id>
|
||||
<link href="https://github.com/sitespeedio/sitespeed.io/blob/main/CHANGELOG.md#36.2.5"/>
|
||||
<updated>2025-02-03T00:00:00.000Z</updated>
|
||||
<summary type="html"><![CDATA[<h3>Fixed</h3>
|
||||
<ul>
|
||||
<li>The check for sending Android test through APIs was broken in 36.2.4, fixed in <a href="https://github.com/sitespeedio/sitespeed.io/pull/4428">#4428</a>.</li>
|
||||
</ul>
|
||||
]]></summary>
|
||||
<author>
|
||||
<name>Sitespeed.io</name>
|
||||
<uri>https://www.sitespeed.io</uri>
|
||||
</author>
|
||||
</entry>
|
||||
<entry>
|
||||
<title type="html"><![CDATA[sitespeed.io 36.2.4]]></title>
|
||||
<id>https://github.com/sitespeedio/sitespeed.io/blob/main/CHANGELOG.md#36.2.4</id>
|
||||
<link href="https://github.com/sitespeedio/sitespeed.io/blob/main/CHANGELOG.md#36.2.4"/>
|
||||
<updated>2025-02-02T00:00:00.000Z</updated>
|
||||
<summary type="html"><![CDATA[<h3>Fixed</h3>
|
||||
<ul>
|
||||
<li>The GitHub actions tests on Windows was broken. I think GitHub changed tere heir setup: Suddenly the path to plugins was broken. Rerunning old test that used to work, failed with the same code on our side. It's fixed by <a href="https://github.com/sitespeedio/sitespeed.io/pull/4426">#4426</a>.</li>
|
||||
</ul>
|
||||
<ul>
|
||||
<li>We have had issues with parsing Android configuration because of the <code>--android</code> flag to enable Android tests. The problem was that in some cases the internal configuration object become an Array (instead of an object) and that made some objects to do not work. The PR <a href="https://github.com/sitespeedio/sitespeed.io/pull/4422">#4422</a> removes <code>--android</code> from the cli help, however it will still work as before.</li>
|
||||
</ul>
|
||||
<ul>
|
||||
<li>Fix so API calls also looks for <code>--android.enabled</code> to know if you want to test on Android <a href="https://github.com/sitespeedio/sitespeed.io/pull/4427">#4427</a>.</li>
|
||||
</ul>
|
||||
]]></summary>
|
||||
<author>
|
||||
<name>Sitespeed.io</name>
|
||||
<uri>https://www.sitespeed.io</uri>
|
||||
</author>
|
||||
</entry>
|
||||
<entry>
|
||||
<title type="html"><![CDATA[sitespeed.io 36.2.3]]></title>
|
||||
<id>https://github.com/sitespeedio/sitespeed.io/blob/main/CHANGELOG.md#36.2.3</id>
|
||||
|
|
@ -143,88 +179,6 @@
|
|||
<ul>
|
||||
<li>Disable the CPU/enableProfileRun check introduced in 36.0.0, that affected too many users <a href="https://github.com/sitespeedio/sitespeed.io/pull/4408">#4408</a>.</li>
|
||||
</ul>
|
||||
]]></summary>
|
||||
<author>
|
||||
<name>Sitespeed.io</name>
|
||||
<uri>https://www.sitespeed.io</uri>
|
||||
</author>
|
||||
</entry>
|
||||
<entry>
|
||||
<title type="html"><![CDATA[sitespeed.io 36.0.0]]></title>
|
||||
<id>https://github.com/sitespeedio/sitespeed.io/blob/main/CHANGELOG.md#36.0.0</id>
|
||||
<link href="https://github.com/sitespeedio/sitespeed.io/blob/main/CHANGELOG.md#36.0.0"/>
|
||||
<updated>2025-01-21T00:00:00.000Z</updated>
|
||||
<summary type="html"><![CDATA[<h3>Added</h3>
|
||||
<ul>
|
||||
<li>Update to Coach-core 8.1.1 <a href="https://github.com/sitespeedio/sitespeed.io/pull/4363">#4363</a></li>
|
||||
</ul>
|
||||
<ul>
|
||||
<li>Use the offical Slack plugin instead of node-slack <a href="https://github.com/sitespeedio/sitespeed.io/pull/4360">#4360</a>.</li>
|
||||
</ul>
|
||||
<ul>
|
||||
<li>Firefox 134, Chrome 132 and NodeJS 22 in the Docker container <a href="https://github.com/sitespeedio/sitespeed.io/pull/4395">#4395</a>, <a href="https://github.com/sitespeedio/sitespeed.io/pull/4396">#4396</a> and <a href="https://github.com/sitespeedio/sitespeed.io/pull/4405">#4405</a></li>
|
||||
</ul>
|
||||
<ul>
|
||||
<li>Let the Docker container output the CPU architecture for easier error reporting <a href="https://github.com/sitespeedio/sitespeed.io/pull/4404">#4404</a>.</li>
|
||||
</ul>
|
||||
<h3>Fixed</h3>
|
||||
<ul>
|
||||
<li>Replace dependencies with local code:</li>
|
||||
</ul>
|
||||
<ul>
|
||||
<li>Fix cli command: Use <code>--summaryDetail</code> (not summary-detail) <a href="https://github.com/sitespeedio/sitespeed.io/pull/4376">#4376</a>.</li>
|
||||
</ul>
|
||||
<ul>
|
||||
<li>Remove connectivity output from text since it was broken <a href="https://github.com/sitespeedio/sitespeed.io/pull/4375">#4375</a>.</li>
|
||||
</ul>
|
||||
<ul>
|
||||
<li>Upgrade to co2.js 0.16.4 <a href="https://github.com/sitespeedio/sitespeed.io/pull/4353">#4353</a>.</li>
|
||||
</ul>
|
||||
<ul>
|
||||
<li>Make sure co2 data is only read once at startup <a href="https://github.com/sitespeedio/sitespeed.io/pull/4352">#4352</a>.</li>
|
||||
</ul>
|
||||
<ul>
|
||||
<li>Making the slim container a little smaller <a href="https://github.com/sitespeedio/sitespeed.io/pull/4355">#4355</a>.</li>
|
||||
</ul>
|
||||
<ul>
|
||||
<li>Ugrade to google-cloud/storage-7.14.0 <a href="https://github.com/sitespeedio/sitespeed.io/pull/4361">#4361</a>.</li>
|
||||
</ul>
|
||||
<ul>
|
||||
<li>Upgrade to AWS client 3.717.0 <a href="https://github.com/sitespeedio/sitespeed.io/pull/4368">#4368</a></li>
|
||||
</ul>
|
||||
<ul>
|
||||
<li>Removed the webdriver manager in the Docker container <a href="https://github.com/sitespeedio/sitespeed.io/pull/4390">4390</a>. We don't use it but on MacOS Selenium still uses it to find the driver for Safari so we can only remove it in Docker.</li>
|
||||
</ul>
|
||||
<ul>
|
||||
<li>Fix Wilcoxon NaN values when running the compare plugin <a href="https://github.com/sitespeedio/sitespeed.io/pull/4402">#4402</a>.</li>
|
||||
</ul>
|
||||
]]></summary>
|
||||
<author>
|
||||
<name>Sitespeed.io</name>
|
||||
<uri>https://www.sitespeed.io</uri>
|
||||
</author>
|
||||
</entry>
|
||||
<entry>
|
||||
<title type="html"><![CDATA[sitespeed.io 35.7.5]]></title>
|
||||
<id>https://github.com/sitespeedio/sitespeed.io/blob/main/CHANGELOG.md#35.7.5</id>
|
||||
<link href="https://github.com/sitespeedio/sitespeed.io/blob/main/CHANGELOG.md#35.7.5"/>
|
||||
<updated>2024-12-23T00:00:00.000Z</updated>
|
||||
<summary type="html"><![CDATA[<h3>Fixed</h3>
|
||||
<ul>
|
||||
<li>Update to faststat 0.0.7 <a href="https://github.com/sitespeedio/sitespeed.io/pull/4347">#4347</a>.</li>
|
||||
</ul>
|
||||
<ul>
|
||||
<li>Update dev dependencies <a href="https://github.com/sitespeedio/sitespeed.io/pull/4345">#4345</a>.</li>
|
||||
</ul>
|
||||
<ul>
|
||||
<li>Let analysisstorer know about webpagereplay so that correct information is displayed <a href="https://github.com/sitespeedio/sitespeed.io/pull/4349">#4349</a>.</li>
|
||||
</ul>
|
||||
<ul>
|
||||
<li>Pass on webpagereplay flag to browsertime <a href="https://github.com/sitespeedio/sitespeed.io/pull/4350">#4350</a>.</li>
|
||||
</ul>
|
||||
<ul>
|
||||
<li>Update to Browsertime 23.5.0 <a href="https://github.com/sitespeedio/sitespeed.io/pull/4351">#4351</a></li>
|
||||
</ul>
|
||||
]]></summary>
|
||||
<author>
|
||||
<name>Sitespeed.io</name>
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
<title>sitespeed.io release feed</title>
|
||||
<link>https://www.sitespeed.io</link>
|
||||
<description>New releases and changelog feed of sitespeed.io</description>
|
||||
<lastBuildDate>Thu, 30 Jan 2025 13:40:48 GMT</lastBuildDate>
|
||||
<lastBuildDate>Mon, 03 Feb 2025 08:20:01 GMT</lastBuildDate>
|
||||
<docs>https://validator.w3.org/feed/docs/rss2.html</docs>
|
||||
<generator>https://github.com/jpmonette/feed</generator>
|
||||
<language>en</language>
|
||||
|
|
@ -16,6 +16,36 @@
|
|||
<copyright>All rights reserved 2022, Peter Hedenskog and team</copyright>
|
||||
<category>Web Performance</category>
|
||||
<atom:link href="https://www.sitespeed.io/feed/rss.xml" rel="self" type="application/rss+xml"/>
|
||||
<item>
|
||||
<title><![CDATA[sitespeed.io 36.2.5]]></title>
|
||||
<link>https://github.com/sitespeedio/sitespeed.io/blob/main/CHANGELOG.md#36.2.5</link>
|
||||
<guid>https://github.com/sitespeedio/sitespeed.io/blob/main/CHANGELOG.md#36.2.5</guid>
|
||||
<pubDate>Mon, 03 Feb 2025 00:00:00 GMT</pubDate>
|
||||
<description><![CDATA[<h3>Fixed</h3>
|
||||
<ul>
|
||||
<li>The check for sending Android test through APIs was broken in 36.2.4, fixed in <a href="https://github.com/sitespeedio/sitespeed.io/pull/4428">#4428</a>.</li>
|
||||
</ul>
|
||||
]]></description>
|
||||
<enclosure url="https://www.sitespeed.io/img/logos/sitespeed.io.png" length="0" type="image/png"/>
|
||||
</item>
|
||||
<item>
|
||||
<title><![CDATA[sitespeed.io 36.2.4]]></title>
|
||||
<link>https://github.com/sitespeedio/sitespeed.io/blob/main/CHANGELOG.md#36.2.4</link>
|
||||
<guid>https://github.com/sitespeedio/sitespeed.io/blob/main/CHANGELOG.md#36.2.4</guid>
|
||||
<pubDate>Sun, 02 Feb 2025 00:00:00 GMT</pubDate>
|
||||
<description><![CDATA[<h3>Fixed</h3>
|
||||
<ul>
|
||||
<li>The GitHub actions tests on Windows was broken. I think GitHub changed tere heir setup: Suddenly the path to plugins was broken. Rerunning old test that used to work, failed with the same code on our side. It's fixed by <a href="https://github.com/sitespeedio/sitespeed.io/pull/4426">#4426</a>.</li>
|
||||
</ul>
|
||||
<ul>
|
||||
<li>We have had issues with parsing Android configuration because of the <code>--android</code> flag to enable Android tests. The problem was that in some cases the internal configuration object become an Array (instead of an object) and that made some objects to do not work. The PR <a href="https://github.com/sitespeedio/sitespeed.io/pull/4422">#4422</a> removes <code>--android</code> from the cli help, however it will still work as before.</li>
|
||||
</ul>
|
||||
<ul>
|
||||
<li>Fix so API calls also looks for <code>--android.enabled</code> to know if you want to test on Android <a href="https://github.com/sitespeedio/sitespeed.io/pull/4427">#4427</a>.</li>
|
||||
</ul>
|
||||
]]></description>
|
||||
<enclosure url="https://www.sitespeed.io/img/logos/sitespeed.io.png" length="0" type="image/png"/>
|
||||
</item>
|
||||
<item>
|
||||
<title><![CDATA[sitespeed.io 36.2.3]]></title>
|
||||
<link>https://github.com/sitespeedio/sitespeed.io/blob/main/CHANGELOG.md#36.2.3</link>
|
||||
|
|
@ -122,82 +152,6 @@
|
|||
<ul>
|
||||
<li>Disable the CPU/enableProfileRun check introduced in 36.0.0, that affected too many users <a href="https://github.com/sitespeedio/sitespeed.io/pull/4408">#4408</a>.</li>
|
||||
</ul>
|
||||
]]></description>
|
||||
<enclosure url="https://www.sitespeed.io/img/logos/sitespeed.io.png" length="0" type="image/png"/>
|
||||
</item>
|
||||
<item>
|
||||
<title><![CDATA[sitespeed.io 36.0.0]]></title>
|
||||
<link>https://github.com/sitespeedio/sitespeed.io/blob/main/CHANGELOG.md#36.0.0</link>
|
||||
<guid>https://github.com/sitespeedio/sitespeed.io/blob/main/CHANGELOG.md#36.0.0</guid>
|
||||
<pubDate>Tue, 21 Jan 2025 00:00:00 GMT</pubDate>
|
||||
<description><![CDATA[<h3>Added</h3>
|
||||
<ul>
|
||||
<li>Update to Coach-core 8.1.1 <a href="https://github.com/sitespeedio/sitespeed.io/pull/4363">#4363</a></li>
|
||||
</ul>
|
||||
<ul>
|
||||
<li>Use the offical Slack plugin instead of node-slack <a href="https://github.com/sitespeedio/sitespeed.io/pull/4360">#4360</a>.</li>
|
||||
</ul>
|
||||
<ul>
|
||||
<li>Firefox 134, Chrome 132 and NodeJS 22 in the Docker container <a href="https://github.com/sitespeedio/sitespeed.io/pull/4395">#4395</a>, <a href="https://github.com/sitespeedio/sitespeed.io/pull/4396">#4396</a> and <a href="https://github.com/sitespeedio/sitespeed.io/pull/4405">#4405</a></li>
|
||||
</ul>
|
||||
<ul>
|
||||
<li>Let the Docker container output the CPU architecture for easier error reporting <a href="https://github.com/sitespeedio/sitespeed.io/pull/4404">#4404</a>.</li>
|
||||
</ul>
|
||||
<h3>Fixed</h3>
|
||||
<ul>
|
||||
<li>Replace dependencies with local code:</li>
|
||||
</ul>
|
||||
<ul>
|
||||
<li>Fix cli command: Use <code>--summaryDetail</code> (not summary-detail) <a href="https://github.com/sitespeedio/sitespeed.io/pull/4376">#4376</a>.</li>
|
||||
</ul>
|
||||
<ul>
|
||||
<li>Remove connectivity output from text since it was broken <a href="https://github.com/sitespeedio/sitespeed.io/pull/4375">#4375</a>.</li>
|
||||
</ul>
|
||||
<ul>
|
||||
<li>Upgrade to co2.js 0.16.4 <a href="https://github.com/sitespeedio/sitespeed.io/pull/4353">#4353</a>.</li>
|
||||
</ul>
|
||||
<ul>
|
||||
<li>Make sure co2 data is only read once at startup <a href="https://github.com/sitespeedio/sitespeed.io/pull/4352">#4352</a>.</li>
|
||||
</ul>
|
||||
<ul>
|
||||
<li>Making the slim container a little smaller <a href="https://github.com/sitespeedio/sitespeed.io/pull/4355">#4355</a>.</li>
|
||||
</ul>
|
||||
<ul>
|
||||
<li>Ugrade to google-cloud/storage-7.14.0 <a href="https://github.com/sitespeedio/sitespeed.io/pull/4361">#4361</a>.</li>
|
||||
</ul>
|
||||
<ul>
|
||||
<li>Upgrade to AWS client 3.717.0 <a href="https://github.com/sitespeedio/sitespeed.io/pull/4368">#4368</a></li>
|
||||
</ul>
|
||||
<ul>
|
||||
<li>Removed the webdriver manager in the Docker container <a href="https://github.com/sitespeedio/sitespeed.io/pull/4390">4390</a>. We don't use it but on MacOS Selenium still uses it to find the driver for Safari so we can only remove it in Docker.</li>
|
||||
</ul>
|
||||
<ul>
|
||||
<li>Fix Wilcoxon NaN values when running the compare plugin <a href="https://github.com/sitespeedio/sitespeed.io/pull/4402">#4402</a>.</li>
|
||||
</ul>
|
||||
]]></description>
|
||||
<enclosure url="https://www.sitespeed.io/img/logos/sitespeed.io.png" length="0" type="image/png"/>
|
||||
</item>
|
||||
<item>
|
||||
<title><![CDATA[sitespeed.io 35.7.5]]></title>
|
||||
<link>https://github.com/sitespeedio/sitespeed.io/blob/main/CHANGELOG.md#35.7.5</link>
|
||||
<guid>https://github.com/sitespeedio/sitespeed.io/blob/main/CHANGELOG.md#35.7.5</guid>
|
||||
<pubDate>Mon, 23 Dec 2024 00:00:00 GMT</pubDate>
|
||||
<description><![CDATA[<h3>Fixed</h3>
|
||||
<ul>
|
||||
<li>Update to faststat 0.0.7 <a href="https://github.com/sitespeedio/sitespeed.io/pull/4347">#4347</a>.</li>
|
||||
</ul>
|
||||
<ul>
|
||||
<li>Update dev dependencies <a href="https://github.com/sitespeedio/sitespeed.io/pull/4345">#4345</a>.</li>
|
||||
</ul>
|
||||
<ul>
|
||||
<li>Let analysisstorer know about webpagereplay so that correct information is displayed <a href="https://github.com/sitespeedio/sitespeed.io/pull/4349">#4349</a>.</li>
|
||||
</ul>
|
||||
<ul>
|
||||
<li>Pass on webpagereplay flag to browsertime <a href="https://github.com/sitespeedio/sitespeed.io/pull/4350">#4350</a>.</li>
|
||||
</ul>
|
||||
<ul>
|
||||
<li>Update to Browsertime 23.5.0 <a href="https://github.com/sitespeedio/sitespeed.io/pull/4351">#4351</a></li>
|
||||
</ul>
|
||||
]]></description>
|
||||
<enclosure url="https://www.sitespeed.io/img/logos/sitespeed.io.png" length="0" type="image/png"/>
|
||||
</item>
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
<feed xmlns="http://www.w3.org/2005/Atom">
|
||||
<id>testrunner-release-feed</id>
|
||||
<title>testrunner release feed</title>
|
||||
<updated>2025-01-30T13:38:22.187Z</updated>
|
||||
<updated>2025-01-30T15:28:50.545Z</updated>
|
||||
<generator>https://github.com/jpmonette/feed</generator>
|
||||
<author>
|
||||
<name>Peter Hedenskog</name>
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
<title>testrunner release feed</title>
|
||||
<link>https://www.sitespeed.io</link>
|
||||
<description>New releases and changelog feed of testrunner</description>
|
||||
<lastBuildDate>Thu, 30 Jan 2025 13:38:22 GMT</lastBuildDate>
|
||||
<lastBuildDate>Thu, 30 Jan 2025 15:28:50 GMT</lastBuildDate>
|
||||
<docs>https://validator.w3.org/feed/docs/rss2.html</docs>
|
||||
<generator>https://github.com/jpmonette/feed</generator>
|
||||
<language>en</language>
|
||||
|
|
|
|||
|
|
@ -25,6 +25,10 @@ const version = require('../../package.json').version;
|
|||
|
||||
const configFiles = ['.sitespeed.io.json'];
|
||||
|
||||
function fixAndroidArgs(args) {
|
||||
return args.map(arg => (arg === '--android' ? '--android.enabled' : arg));
|
||||
}
|
||||
|
||||
if (process.argv.includes('--config')) {
|
||||
const index = process.argv.indexOf('--config');
|
||||
configFiles.unshift(process.argv[index + 1]);
|
||||
|
|
@ -214,11 +218,8 @@ function validateInput(argv) {
|
|||
}
|
||||
|
||||
export async function parseCommandLine() {
|
||||
let argvFix = process.argv.map(arg =>
|
||||
arg === '--android' ? '--android.enabled' : arg
|
||||
);
|
||||
|
||||
let yargsInstance = yargs(hideBin(argvFix));
|
||||
const fixedArgs = fixAndroidArgs(hideBin(process.argv));
|
||||
const yargsInstance = yargs(fixedArgs);
|
||||
let parsed = yargsInstance
|
||||
.parserConfiguration({
|
||||
'camel-case-expansion': false,
|
||||
|
|
@ -860,8 +861,8 @@ export async function parseCommandLine() {
|
|||
'Process name of the Activity hosting the WebView. If not given, the process name is assumed to be the same as chrome.android.package.',
|
||||
group: 'Chrome'
|
||||
})
|
||||
.option('browsertime.android', {
|
||||
alias: 'android',
|
||||
.option('browsertime.android.enabled', {
|
||||
alias: ['android.enabled'],
|
||||
type: 'boolean',
|
||||
default: false,
|
||||
describe:
|
||||
|
|
@ -2194,7 +2195,7 @@ export async function parseCommandLine() {
|
|||
|
||||
if (argv.ios) {
|
||||
set(argv, 'safari.ios', true);
|
||||
} else if (argv.android && argv.browser === 'chrome') {
|
||||
} else if (argv.android.enabled === true && argv.browser === 'chrome') {
|
||||
// Default to Chrome Android.
|
||||
set(
|
||||
argv,
|
||||
|
|
|
|||
|
|
@ -1,10 +1,12 @@
|
|||
import path from 'node:path';
|
||||
import { readdir as _readdir } from 'node:fs';
|
||||
import { promisify } from 'node:util';
|
||||
import { fileURLToPath, pathToFileURL } from 'node:url';
|
||||
|
||||
import { importGlobalSilent } from 'import-global';
|
||||
const readdir = promisify(_readdir);
|
||||
const __dirname = path.dirname(import.meta.url);
|
||||
const __filename = fileURLToPath(import.meta.url);
|
||||
const __dirname = path.dirname(__filename);
|
||||
|
||||
const defaultPlugins = new Set([
|
||||
'browsertime',
|
||||
|
|
@ -49,7 +51,7 @@ export async function parsePluginNames(options) {
|
|||
return pluginNames;
|
||||
};
|
||||
|
||||
const files = await readdir(new URL(pluginsDir));
|
||||
const files = await readdir(pluginsDir);
|
||||
|
||||
const builtins = files.map(name => path.basename(name, '.js'));
|
||||
// eslint-disable-next-line unicorn/no-array-callback-reference
|
||||
|
|
@ -60,9 +62,9 @@ export async function loadPlugins(pluginNames, options, context, queue) {
|
|||
const plugins = [];
|
||||
for (let name of pluginNames) {
|
||||
try {
|
||||
let { default: plugin } = await import(
|
||||
path.join(pluginsDir, name, 'index.js')
|
||||
);
|
||||
const pluginPath = path.join(pluginsDir, name, 'index.js');
|
||||
const pluginUrl = pathToFileURL(pluginPath).href;
|
||||
let { default: plugin } = await import(pluginUrl);
|
||||
let p = new plugin(options, context, queue);
|
||||
plugins.push(p);
|
||||
} catch (error_) {
|
||||
|
|
|
|||
|
|
@ -80,40 +80,45 @@ export class DomainsAggregator {
|
|||
if (this.groups[mainDomain] === undefined) {
|
||||
this.groups[mainDomain] = {};
|
||||
}
|
||||
const firstPageId = har.log.pages[0].id;
|
||||
|
||||
for (const entry of har.log.entries) {
|
||||
if (entry.pageref !== firstPageId) {
|
||||
// Only pick the first request out of multiple runs.
|
||||
continue;
|
||||
}
|
||||
if (har.log.pages.length > 0) {
|
||||
const firstPageId = har.log.pages[0].id;
|
||||
|
||||
const domainName = parseDomainName(entry.request.url),
|
||||
domain = this.domains[domainName] || getDomain(domainName),
|
||||
groupDomain =
|
||||
this.groups[mainDomain][domainName] || getDomain(domainName),
|
||||
totalTime = entry.time;
|
||||
|
||||
domain.requestCount++;
|
||||
groupDomain.requestCount++;
|
||||
|
||||
if (isValidTiming(totalTime)) {
|
||||
domain.totalTime.push(totalTime);
|
||||
groupDomain.totalTime.push(totalTime);
|
||||
} else {
|
||||
log.debug('Missing time from har entry for url: ' + entry.request.url);
|
||||
}
|
||||
|
||||
for (const name of timingNames) {
|
||||
const timing = entry.timings[name];
|
||||
|
||||
if (isValidTiming(timing)) {
|
||||
domain[name].push(timing);
|
||||
groupDomain[name].push(timing);
|
||||
for (const entry of har.log.entries) {
|
||||
if (entry.pageref !== firstPageId) {
|
||||
// Only pick the first request out of multiple runs.
|
||||
continue;
|
||||
}
|
||||
|
||||
const domainName = parseDomainName(entry.request.url),
|
||||
domain = this.domains[domainName] || getDomain(domainName),
|
||||
groupDomain =
|
||||
this.groups[mainDomain][domainName] || getDomain(domainName),
|
||||
totalTime = entry.time;
|
||||
|
||||
domain.requestCount++;
|
||||
groupDomain.requestCount++;
|
||||
|
||||
if (isValidTiming(totalTime)) {
|
||||
domain.totalTime.push(totalTime);
|
||||
groupDomain.totalTime.push(totalTime);
|
||||
} else {
|
||||
log.debug(
|
||||
'Missing time from har entry for url: ' + entry.request.url
|
||||
);
|
||||
}
|
||||
|
||||
for (const name of timingNames) {
|
||||
const timing = entry.timings[name];
|
||||
|
||||
if (isValidTiming(timing)) {
|
||||
domain[name].push(timing);
|
||||
groupDomain[name].push(timing);
|
||||
}
|
||||
}
|
||||
this.domains[domainName] = domain;
|
||||
this.groups[mainDomain][domainName] = groupDomain;
|
||||
}
|
||||
this.domains[domainName] = domain;
|
||||
this.groups[mainDomain][domainName] = groupDomain;
|
||||
}
|
||||
}
|
||||
summarize() {
|
||||
|
|
|
|||
178
lib/sitespeed.js
178
lib/sitespeed.js
|
|
@ -51,92 +51,98 @@ function runOptionalFunction(objects, fN) {
|
|||
}
|
||||
|
||||
export async function run(options) {
|
||||
const url = options.urls[0];
|
||||
const timestamp = options.utc ? dayjs.utc() : dayjs();
|
||||
const { storageManager, resultUrls } = resultsStorage(
|
||||
url,
|
||||
timestamp,
|
||||
options
|
||||
);
|
||||
|
||||
if (
|
||||
options.browsertime &&
|
||||
options.browsertime.tcpdump &&
|
||||
!env.SSLKEYLOGFILE
|
||||
) {
|
||||
env.SSLKEYLOGFILE = path.join(
|
||||
storageManager.getBaseDir(),
|
||||
'SSLKEYLOGFILE.txt'
|
||||
);
|
||||
}
|
||||
configure(options);
|
||||
|
||||
// Tell the world what we are using
|
||||
log.info(
|
||||
'Versions OS: %s nodejs: %s sitespeed.io: %s browsertime: %s coach: %s',
|
||||
platform() + ' ' + release(),
|
||||
version,
|
||||
packageJson.version,
|
||||
packageJson.dependencies.browsertime,
|
||||
packageJson.dependencies['coach-core']
|
||||
);
|
||||
|
||||
log.debug('Running with options: %:2j', options);
|
||||
|
||||
let pluginNames = await parsePluginNames(options);
|
||||
|
||||
const plugins = options.plugins;
|
||||
|
||||
// Deprecated setup
|
||||
if (plugins) {
|
||||
if (plugins.disable) {
|
||||
log.warn('--plugins.disable is deprecated, use plugins.remove instead.');
|
||||
plugins.remove = plugins.disable;
|
||||
}
|
||||
if (plugins.load) {
|
||||
log.warn('--plugins.load is deprecated, use plugins.add instead.');
|
||||
plugins.add = plugins.load;
|
||||
}
|
||||
|
||||
// Finalize the plugins that we wanna run
|
||||
// First we add the new ones and then remove, that means remove
|
||||
// always wins
|
||||
pluginNames = [...new Set([...pluginNames, ...toArray(plugins.add)])];
|
||||
|
||||
const removeSet = new Set(toArray(plugins.remove));
|
||||
pluginNames = pluginNames.filter(name => !removeSet.has(name));
|
||||
|
||||
if (plugins.list) {
|
||||
log.info('The following plugins are enabled: %s', pluginNames.join(', '));
|
||||
}
|
||||
}
|
||||
|
||||
// This is the contect where we wanna run our tests
|
||||
const context = {
|
||||
storageManager,
|
||||
resultUrls,
|
||||
timestamp,
|
||||
budget: budgetResult,
|
||||
name: url,
|
||||
log,
|
||||
getLogger,
|
||||
messageMaker,
|
||||
statsHelpers,
|
||||
filterRegistry
|
||||
};
|
||||
const queueHandler = new QueueHandler(options);
|
||||
const runningPlugins = await loadPlugins(
|
||||
pluginNames,
|
||||
options,
|
||||
context,
|
||||
queueHandler
|
||||
);
|
||||
const urlSources = [options.multi ? scriptSource : urlSource];
|
||||
const allPlugins = [...runningPlugins];
|
||||
queueHandler.setup(runningPlugins);
|
||||
|
||||
// Open/start each and every plugin
|
||||
try {
|
||||
const url = options.urls[0];
|
||||
const timestamp = options.utc ? dayjs.utc() : dayjs();
|
||||
const { storageManager, resultUrls } = resultsStorage(
|
||||
url,
|
||||
timestamp,
|
||||
options
|
||||
);
|
||||
|
||||
if (
|
||||
options.browsertime &&
|
||||
options.browsertime.tcpdump &&
|
||||
!env.SSLKEYLOGFILE
|
||||
) {
|
||||
env.SSLKEYLOGFILE = path.join(
|
||||
storageManager.getBaseDir(),
|
||||
'SSLKEYLOGFILE.txt'
|
||||
);
|
||||
}
|
||||
configure(options);
|
||||
|
||||
// Tell the world what we are using
|
||||
log.info(
|
||||
'Versions OS: %s nodejs: %s sitespeed.io: %s browsertime: %s coach: %s',
|
||||
platform() + ' ' + release(),
|
||||
version,
|
||||
packageJson.version,
|
||||
packageJson.dependencies.browsertime,
|
||||
packageJson.dependencies['coach-core']
|
||||
);
|
||||
|
||||
log.debug('Running with options: %:2j', options);
|
||||
|
||||
let pluginNames = await parsePluginNames(options);
|
||||
|
||||
const plugins = options.plugins;
|
||||
|
||||
// Deprecated setup
|
||||
if (plugins) {
|
||||
if (plugins.disable) {
|
||||
log.warn(
|
||||
'--plugins.disable is deprecated, use plugins.remove instead.'
|
||||
);
|
||||
plugins.remove = plugins.disable;
|
||||
}
|
||||
if (plugins.load) {
|
||||
log.warn('--plugins.load is deprecated, use plugins.add instead.');
|
||||
plugins.add = plugins.load;
|
||||
}
|
||||
|
||||
// Finalize the plugins that we wanna run
|
||||
// First we add the new ones and then remove, that means remove
|
||||
// always wins
|
||||
pluginNames = [...new Set([...pluginNames, ...toArray(plugins.add)])];
|
||||
|
||||
const removeSet = new Set(toArray(plugins.remove));
|
||||
pluginNames = pluginNames.filter(name => !removeSet.has(name));
|
||||
|
||||
if (plugins.list) {
|
||||
log.info(
|
||||
'The following plugins are enabled: %s',
|
||||
pluginNames.join(', ')
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
// This is the contect where we wanna run our tests
|
||||
const context = {
|
||||
storageManager,
|
||||
resultUrls,
|
||||
timestamp,
|
||||
budget: budgetResult,
|
||||
name: url,
|
||||
log,
|
||||
getLogger,
|
||||
messageMaker,
|
||||
statsHelpers,
|
||||
filterRegistry
|
||||
};
|
||||
const queueHandler = new QueueHandler(options);
|
||||
const runningPlugins = await loadPlugins(
|
||||
pluginNames,
|
||||
options,
|
||||
context,
|
||||
queueHandler
|
||||
);
|
||||
const urlSources = [options.multi ? scriptSource : urlSource];
|
||||
const allPlugins = [...runningPlugins];
|
||||
queueHandler.setup(runningPlugins);
|
||||
|
||||
// Open/start each and every plugin
|
||||
|
||||
await Promise.all(
|
||||
runOptionalFunction(allPlugins, 'open', context, options)
|
||||
);
|
||||
|
|
@ -180,7 +186,7 @@ export async function run(options) {
|
|||
timestamp: timestamp.format()
|
||||
};
|
||||
} catch (error) {
|
||||
log.error(error);
|
||||
log.error(error.stack);
|
||||
throw error;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,12 +1,12 @@
|
|||
{
|
||||
"name": "sitespeed.io",
|
||||
"version": "36.2.3",
|
||||
"version": "36.2.5",
|
||||
"lockfileVersion": 3,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "sitespeed.io",
|
||||
"version": "36.2.3",
|
||||
"version": "36.2.5",
|
||||
"hasInstallScript": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
"sitespeed.io": "./bin/sitespeed.js",
|
||||
"sitespeed.io-wpr": "./bin/browsertimeWebPageReplay.js"
|
||||
},
|
||||
"version": "36.2.3",
|
||||
"version": "36.2.5",
|
||||
"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.",
|
||||
"keywords": [
|
||||
"performance",
|
||||
|
|
|
|||
Loading…
Reference in New Issue