Browsertime - Your browser, your page, your scripts!
Access the Web Performance Timeline, from your browser, in your terminal!
Browsertime allows you to:
- Query timing data directly from the browser, to access Navigation Timing, User Timing, Resource Timing, first paint and RUM Speed Index.
- Generate HAR files (using HAR Export trigger for Firefox and parsing the Chrome log for Chrome).
A simple example
$ bin/browsertime.js https://www.sitespeed.io
Load https://www.sitespeed.io in Chrome three times. Results are stored in a json file (browsertime.json) with the timing data, and a har file (browsertime.har) in browsertime-results/www.sitespeed.io/$date/
I want more examples
Checkout the examples.
Browsertime supports Firefox and Chrome on desktop. On Android we support Chrome. Yep that's it for now.
But we want to support Opera (on Android) https://github.com/tobli/browsertime/issues/150 and when Safari 10 is available, we will add it too. And when(?!) iOS Safari supports WebDriver we will add that too.
How does it work
To get the HAR from Firefox we use the HAR Export Trigger and Chrome we parse the timeline log and generates the HAR file.
Oh and you can run your own Selenium script before (
--preScript) and after (
--postScript) a URL is accessed so you can login/logout or do whatever you want.
Test using Docker
You can build and test changes using Docker locally. Using Docker is cool because we have ready made containers with Firefox/Chrome and all the dependencies needed for running VisualMetrics to get SpeedIndex.
$ docker build -t sitespeedio/browsertime . $ docker run --privileged --shm-size=1g --rm -v "$(pwd)":/browsertime-results sitespeedio/browsertime -n 1 -c cable --video --speedIndex https://www.sitespeed.io/
The rewrite to 1.0
With 1.0 we dropped BrowsermobProxy so you don't need Java
If you would would like to get started there are a few examples that can be found in the docs folder. If you run into any issues getting started using Browsertime visit our Issues Page for some common issues/solutions. If you still cannot resolve the problem and feel the issue is within browsertime feel free to open an issue.