sitespeed.io

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.

MIT License

Downloads
16.3K
Stars
4.6K
Committers
132

Bot releases are hidden (Show)

sitespeed.io -

Published by soulgalore over 1 year ago

Fixed

  • Finally fixed so you can use scripting from the API and removed the paramater testType since we can find that out programatically.

https://github.com/sitespeedio/sitespeed.io/compare/v27.6.1...v27.6.2

sitespeed.io -

Published by soulgalore over 1 year ago

sitespeed.io -

Published by soulgalore over 1 year ago

Fixed

  • More fixes to the upcoming API, and fixing wrong exit code.

Added

  • Firefox and Edge 113 in the Docker container.

https://github.com/sitespeedio/sitespeed.io/compare/v27.5.1...v27.6.0

sitespeed.io -

Published by soulgalore over 1 year ago

Added

  • Use Chrome 113 in the Docker container.

Fixed

  • Fixed wrong error code when exiting, introduced earlier today.
  • More tuning of the coming API.

https://github.com/sitespeedio/sitespeed.io/compare/v27.4.1...v27.5.0

sitespeed.io -

Published by soulgalore over 1 year ago

Fixed

  • Fix broken --firstParty parameter as reported in #3822 and fixed in #3823
  • Fix broken crawler #3820.

https://github.com/sitespeedio/sitespeed.io/compare/v27.3.0...v27.3.1

sitespeed.io -

Published by soulgalore over 1 year ago

Added

  • Upgraded Firefox to 112 and added new Browsertime with updated HAR version.

Fixed

sitespeed.io -

Published by soulgalore over 1 year ago

sitespeed.io -

Published by soulgalore over 1 year ago

Added

  • Chrome 112 in the Docker container.
  • Updated Browsertime:
    • Increased the default wait time from 2 to 5 seconds when a element a clicked and the page complete check runs #1931
    • Upgraded to Chromedriver 112 #1932.
    • If you use --headless Chrome will use the new headless switch #1933.
  • The plugin-lighthouse uses Lighthouse 10.1.0 and --headless=new

https://github.com/sitespeedio/sitespeed.io/compare/v27.0.0...v27.1.0

sitespeed.io -

Published by soulgalore over 1 year ago

27.0.0 - 2023-04-04

Wow it's been many months since I did a new release wih sitespeed.io. I've had a lot to do in my personal life, a lot at work and low energy to finish the big changes I've done in both Browsertime and sitespeed.io. And here it is: 27.0.0. It can still have some rough edges so please report any bugs and I will try to fix them ASAP.

There's been many additions to Browsertime the last months and I'll update the CHANGELOG and make sure the documentation in uptodate the coming weeks.

Breaking changes

The project was transitioned to a pure ESM package both Browsertime #1859 and sitespeed.io #3769. That allow us to stay uptodate with dependencies. This is important for us and will make the project easier to maintain.

CLI users

If you are a command line user and use scripting, you will need to do a change to your scripts or add some extra configuration.

The quick fix: Rename your .js scripting files to .cjs that way NodeJS will treat your file as a common JS file and everything will just work. For example if you have a file names login.js you can rename that to login.cjs and make sure you load that new file. Then sitespeed.io 27.0.0 will just work as before.

The best fix:
Change your code so your scripts also follows ESM. If you have simple scripts you probably just need to change your exports. The old way looked like this:

module.exports = async function(context, commands) {
...
}

change that to:

export default async function (context, commands) {
...
}

If you have more complicated scripts, follow the ESM package guide.

Then rename your file to be named *.mjs. If your file is named collect.js change it to collect.mjs. This is the best fix and will work 100% of the time. That way NodeJS will know that you are using the ESM standard. You can read more in how NodeJs choose to load files.

Another quick fix alternative: As a last alternative add --browsertime.cjs as a parameter to your test. That way the scripting file will be treated as a commonjs file. This is a hack, so to make sure it works, the user that runs Browsertime need to have write privileges to the folder where you have your scripting files. Browsertime will create a package.json file on the same levels as yoru script file. If you already have a package.json there, it will be overwritten.

Non cli users

Documentation coming soon.

Read Sindre Sorhus Pure ESM package guide on how you can move your project.

Plugin creators

Documentattion coming soon. You will need to upgrade your plugin to ESM. You can check how we did it for the Lightouse plugin.

Remove ImageMagick dependency

We moved to use a new Visual Metrics script as default contributed by Gregory Mierzwinski that do not use ImageMagick. Mozilla has used this script for many months and we have internally used it in our test infrastructure since it was first released.

If you run sitespeed.io direct using NodeJs (and not using Docker) you need to install two new Python dependencies OpenCV-Python Numpy. They are used instead of ImageMagick.

python -m pip install --user OpenCV-Python Numpy

If you still want to use ImageMagick you can do that by setting browsertime.visualMetricsPortable false

Fixed

  • All dependencies has been updated to latest versions #3774.

Added

  • A lot of things has happened in Browsertime, checkout the changelog.
  • Updated to Chrome 111, Firefox 111 and Edge 111 in the Docker container.
  • The Lightouse plugin has been updated to Lighthouse 10.
sitespeed.io -

Published by soulgalore almost 2 years ago

Added

  • Update to 0.10.4 co2 and make it possible change model #3736 and the to 0.11.3 in #3741
  • Upgraded Docker container to use Chrome, Edge and Firefox 106.
  • Show start/end date for collected Crux data #3740

Fixed

  • Better explanation for some PageXray metrics #3743.

https://github.com/sitespeedio/sitespeed.io/compare/v26.0.1...v26.1.0

sitespeed.io -

Published by soulgalore about 2 years ago

Fixed

  • Upgrading to Browsertime 16.17.0 that contains a fix to collect battery temperature on Android, making it possible to send the data to Graphite again.

https://github.com/sitespeedio/sitespeed.io/compare/v26.0.0...v26.0.1

sitespeed.io -

Published by soulgalore about 2 years ago

26.0.0 - 2022-09-23

Hi and welcome to 26.0.0! There's a couple of small fixes and additions and one breaking change. You are only affected by the breaking change if you used to use --graphite.perIteration (sending data for all iterations to Graphite) or if you used --graphite.skipSummary (do not send summary information). Please read the changed section if you are affected!

When you upgrade to 26.0.0 you will have an easier way of sending data per run to Graphite, there will be a blog post better explaining how you can use it.

Changed

Sending metrics per run to Graphite:

  • The default setup did miss a lot of important performance metrics, so you needed to set them up yourself. That is fixed in this PR.
  • There where a lot of data sent from PageXray, third party and the coach per run. That was not smart since those metrics rarely change between runs and take a lot of space. This PR sets default so none of those metrics are sent
  • We introduce a limited set of run metrics from Browsertime (visual metrics and Google Web Vitals and a couple of more) that can be used when sending data per run. This will help you keep track of those metrics together with the default median/min/max values. More info coming up. It's enabled by default, disable it with --browsertime.limitedRunData false
  • Sending data per run to Graphite was broken: We sent a new key per run meaning it will take up a lot of extra space in Graphite. With this fix we send them under the run key. That way we can configure Graphite to keep data under that key that happened every 20 s (or however fast it takes to do one run) and then automatically remove the data after a week.
  • Graphite configuration --graphite.perIteration and --graphite.skipSummary is removed. You can now configure which data to send to Graphite by using --graphite.messages. By default we send pageSummary (data summarised per URL) and summary (data summarised per domain). If you want to send pageSummary and run data (data for each run) you can do that with by adding --graphite.messages run --graphite.messages pageSummary.
  • We removed the possibility to send VisualProgress and videoRecordingStart data to the datasource since that is something you do not need there.
  • We updated Grafana and the Graphite container to latest versions. The Graphite container contains storage-schemas.conf configuration that is a good default:
[sitespeed_crux]
pattern = ^sitespeed_io\.crux\.
retentions = 1d:1y

[sitespeed_run]
pattern = ^sitespeed_io\.(.*)\.(.*)\.run\.
retentions = 20s:8d

[sitespeed]
pattern = ^sitespeed_io\.
retentions = 30m:40d

When you send data per run to Graphite it is stored every 20 second (do not make runs more often than that) and saved for 8 days. If you test many URLs this can still be a lot of data so use https://m30m.github.io/whisper-calculator/ to calculate how much space you need.

See PR #3721.

Added

  • Checkout the pre built Raspberry Pi image for running sitespeed.io tests on your Android phone.
  • Upgraded to Firefox 105 and Edge 105 in the Docker container.
  • Upgraded to Browsertime 16.16.0
  • Include --preURL information in the latest storer info #3729.

Fixed

  • Fix graphite.sendAnnotation option #3726.
  • Show timestamp when each run happens on the run page #3730.

https://github.com/sitespeedio/sitespeed.io/compare/v25.11.0...v26.0.0

sitespeed.io -

Published by soulgalore about 2 years ago

Added

  • Make it possible to configure run options for AXE (before you could only configure configuration options) #3718. Checkout how to configure AXE.
  • Removed showing if the page is an AMP page (that battle was won a long time ago) and instead show information from the Network information API when its available #3719.

https://github.com/sitespeedio/sitespeed.io/compare/v25.10.0...v25.11.0

sitespeed.io -

Published by soulgalore about 2 years ago

Added

  • Updated to Chrome 105 and Firefox 104 in the Docker container #3717.

https://github.com/sitespeedio/sitespeed.io/compare/v25.9.1...v25.10.0

sitespeed.io -

Published by soulgalore about 2 years ago

Fixed

  • Updated to Browsertime 16.5.1 thar makes sure long tasks are measured direct after the test finish. This fixes late long tasks that happens on slow devices caused by Browsertime collecting metrics.

https://github.com/sitespeedio/sitespeed.io/compare/v25.9.0...v25.9.1

sitespeed.io -

Published by soulgalore about 2 years ago

Added

  • Updated to Browsertime 16.15.0 that include your Android phones connected wifi name in the result. That is now showed in the runtime settings page.

  • Show relative standard deviation on the compare runs page #3716.

https://github.com/sitespeedio/sitespeed.io/compare/v25.8.3...v25.9.0

sitespeed.io -

Published by soulgalore about 2 years ago

  • Ooops, it turns out 25.8.2 didn't fix the preWarm issue, it's fixed in 3715.

https://github.com/sitespeedio/sitespeed.io/compare/v25.8.2...v25.8.3

sitespeed.io -

Published by soulgalore about 2 years ago

Fixed

  • Updated Browsertime to 16.14.2 that fixes --browsertime.preWarmServer on Android and iOS.

https://github.com/sitespeedio/sitespeed.io/compare/v25.8.1...v25.8.2

sitespeed.io -

Published by soulgalore about 2 years ago

Fixed

  • Updated Browsertime to 16.14.1 that adds a guard for null values in rsd (this fixes the warning logs happening in 25.8.0).

https://github.com/sitespeedio/sitespeed.io/compare/v25.8.0...v25.8.1

sitespeed.io -

Published by soulgalore about 2 years ago

Added

  • Updated to Browsertime 16.14.0. that collects relative standard deviation for metrics and the number of processes that runs on the server when you start a test.

https://github.com/sitespeedio/sitespeed.io/compare/v25.7.3...v25.8.0