- Replaced Chrome-trace with Tracium in #816.
- Bumped all dependencies that needed a bump #817.
- Upgraded to Chrome-trace 0.2.2 that hopefully fixes the miss matched thread ids that happens for some URLs.
- The shrinkwrap file was broken with errors for the latest Chromedriver.
- Chrome 74 in the Docker container and Chromedriver 74.
- Scripting throws error with an exact error message of what went wrong instead of the wrapped Chromedriver error. The error is also added to the error array in the output json so you can see what goes wrong #815.
-
You can add your own errors in scripting with
commands.error(message)
#813. -
You can add a title and description to your script with
commands.meta.setTitle(title)
andcommands.meta.setDescription(desc)
#814.
- Bugfix: If a page failed, it was left out of the HAR file, making the flow broken if you used scripting #812.
- Bugfix: If you test using a script and one of the URLs failed to load, the error was reported on wrong URL. Fixed in #811.
- New release since npm had problem and broke the 4.6.1 release.
- Remove Timestamp from CDP performance.
- Report duration metrics in CDP performance in ms.
- The cli had wrong name for visualElements (was visuaElements). Fixed + alias to the old wrong one.
-
Enable use of Chrome DevTools Protocol. We now uses a modified version of Selenium that can use CDP. We also automatically collect the CDP performance metrics Performance.getMetrics (you can turn that off with
--chrome.cdp.performance false
). We also enabled raw use of the CDP in scripting:cdp.sendAndGet(command, args)
andcdp.send(command, args)
#807 -
Report loadEventEnd as a separate metric (you don't need to get it from the Navigation Timings section) #808.
- Make sure you can test the same URLs within the same script. There are users that logs in and logs out the user on the same URL and that breakes since we use the URL to create all the files for that URL. This hack adds a incremental query parameter to the URL.#805.
- Better logging if Visual Metrics fails. Add --verbose to see the output from Visual Metrics.
- Recording visual metrics and clicking on links (the combination) was broken on Android phones as reported in #802 fixed in #803.
- Use Chrome 73 in the Docker container (and latest Chromedriver)
- Use Firefox 66 in the Docker container.
- Automatically catch if a user that uses a script misses calling measure.stop() #798.
- If a runs fail, make sure Browsertime fails more gracefully #799.
- Add padding to video when using width/height not divisible by 2. Thank you Ferdinand Holzer for the PR #790
- Fixed broken delay time between runs (delay only worked when iterations > 2 and did not delay the last two runs) #784.
- Use 15% fuzz (instead of 10%) when finding the last visual frame in Visual Metrics and allow 0 pixels difference #786
- Added extra check so that we don't add metrics to the HAR if we failed to get metrics.
-
Multiple fixes to make sure that if a URL fails, we should add that error to the error array of the Browsertime json instead of just failing #779, #781 and #782.
-
Fail fast if a user script can't be parsed #783.
- Fine tuned and changed so 0.05 % (before it was 0.01%) of the pixels can differ when finding last visual change #777.
- If a Visual Element wasn't found, we used to log that as an error, instead log as info #775.
-
Another go at fixing the flicker of the timer in the video #773. Thanks ponyo877 for the PR.
-
When trying to find the last visual change, a 0.01 % difference in pixels are now OK. We had problems finding too small difference that was picked up by Visual Metrics #774.
- 4.4.1 introduced small flicker on the timer. #772 fixes that and change the look of the timer.
- There are two new cache clear commands: cache.clearKeepCookies() and cache.clear() (only working on Desktop) #769.
- Updated RUM Speed Index to include upstream fix #766.
- Make sure the body of the page is shown when setting the fullscreen to orange (when recording the video) #767
- Testing redirect URLs was broken since 8.0. If you test a URL, use that URL and if you click on a link, usethe URL from the browser #768.
- Add text by CSS selector (new command) addText.bySelector(text, selector) #764,
- click.byJs and click.byJsAndWait now uses JavaScript in backend instead of Selenium = will work on hidden links #765.
- Command set value by id was broken, it used to set the value to the id #761.
- I've missed that for some URLs (as in this login you could have an alias for an URL but the URL was actually slightly different. For example, you login to a site and the login step redirect to a URL and for that URL one value of a GET parameter differs. So with this fix we lock the alias tyo one specific URL. If your URL change and you use an alias, the first variation of the URL will be used #763.
- Inserting metrics into the HAR file calculated the wrong page number if you tested multiple pages #760.
- Commnad set.innerHtml was broken and click by xpath could not handle "-signs #759.
- Rollbacked the the tmp dirs for Visual Metrics #758.
-
The HAR file had wrong visual metrics as reported in #754. Fixed in #756.
-
Fixed borders when running Visual Metrics to try to avoid small orange in the first frame for Chrome #755 fixed in #757.
- Ooops, click.byClassName and click.byClassNameAndWait broke in 4.2.0 #753.
- Fixed so that
js.run()
returns whatever it gets back so you can script and get whatever you need from your page #749.
- New help command set to set innerHtml, innerText and value of element. #750.
- Added click.bySelector and rewrote most of click methods to use plain JavaScript instead of Selenium (so it will work on hidden elements) #751.
- Upgraded the Docker container to use Chrome 72 and Firefox 65
- Upgraded to Chromedriveer 2.45.0 #743.
- Upgraded to Geckkodriver 0.24.0 #742.
- Disable Firefox updates during testing #741.
- New command:
js.runAndWait('')
that makes it possible to run your own JavaScript, click a link and wait on page navigation #747.
- Bugfix: In 4.0.3 upgrade of Visual Metrics removed a couple fixes that should be there #740.
- Bugfix: The font in the video was to big when testing on mobile/emulated mobile in Chrome #738.
-
Bugfix: Calculating Visual Complete 85/95/99 was broken IF the complete process went backward (first hitting 85% and then going down to < than 85%). We used to always take the first metric over 85% and then stick to it. Now we choose the last time it breaks the 85/95/99% metric #732.
-
We updated the Visual Metrics lib to use the latest upstream version. We haven't updated for a while and we had issues where the progress was calculated wrong #730.
- Clearing browser trace log (Chrome only) happend before we started the video instead of after the video #727.
- Doing a script navigation before measuring one URL broke Visual Metrics, fixed in #726.
- Firefox proxy port not being set properly. Thank you dpalmeiro for the fix and PR #702.
- Disable dev-shm by default for Chrome #697, thank you Vitalii Tverdokhlib for the PR. Docs will be updated when we release next stable.
- Fixed broken boolean preference for Firefox, thank you @dpalmeiro) for the fix #683.
- Added support for
--spa
configuration that will: Automatically use hash/params in file names and wait X seconds for no request in resource timing api as pageCompleteCheck #700 #698. - Support for coming timeToContentfulPaint in Firefox (Nigthly at the moment) #675.
- Upgraded to Chrome-HAR 0.9.1.
- Updated Chrome to 71 and Firefox 64 in the Docker container.
- Updated to Chromedriver 2.44.
- Support for navigating by script. More docs on the way #666.
- Support for testing multiple pages #685 with using a navigation script. Read the documentation.
- Upgraded to newer version of installers of Chromedriver and Geckodriver: less dependencies and the ability to skip installing drivers #681.
- It's now easier if you want to run stable Chrome on Android. Just add --android (and make sure you started ADB) instead of setting application name and disable xvfb #688.
- New switch command to switch to other frames/windows #721 #723.
- Added --videoParams.debug to get a video of a full iteration (all pre/post and script/URLs) #722.
- Get the Fully Loaded metric from the HAR instead of the Resource Timing API #720.
- All data files (videos/screenshots etc) follows the pattern of sitespeed.io and are stored in a folder strucure from the page URL#694. The files are referenced in the browsertime.json. If you just want to test one URL at each time, you can keep the old structure with
--useSameDir
.
Read about what has changed in 4.0.
-
New default trace categories for chrome.timeline:
-*,devtools.timeline -> -, devtools.timeline, disabled-by-default-devtools.timeline, disabled-by-default-devtools.timeline.stack
#677 and #679. -
With the support of testing multiple pages, the structure of the result has changed (sorry there was no way avoiding that). The old structure of the result looked like:
{
"info": {
"browsertime": {
"version": "3.0.0"
}, ...
And the new one returns a array, where each tested page is an result in that array.
[{
"info": {
"browsertime": {
"version": "3.0.0"
}, ...
}]
That means JSON consumers needs to change the code, even if you only test one page.
The naming of videos, screenshots and trace logs has changed to include page number.
-
We removed pre/post scripts becasue now you can just run them without any extra parameters. You can now run your script like this:
browsertime preScript.js https://www.sitespeed.io postScript.js
. At the same time we added support for testing multiple pages after each other:browsertime https://www.sitespeed.io https://www.sitespeed.io/documentation/
where the browser will stay open between the two different pages #690. -
Changing default screen size from 1200x960 to 1366x768 #691.
- --videoParams.combine isn't implemented for the current version (yet).
- Updated Docker to use latest Firefox and Chrome to avoid using the update me popup in Firefox.
-
Add
--verbose
and Visual Metrics will log to a log file in the video dir (that makes it easier for people that report bugs) #662. -
Disable GPU for Chrome when running with xvfb #659.
-
Get Server Timings #657. This works fine in Chrome and should(?) work in Firefox but I cannot get it to work. I'll create an upstream issue when I get the time.#
-
Support Firefox timeToFirstInteractive #656. This is Firefox Nightly at the moment, try it on an Mac with:
browsertime --firefox.nightly https://www.wikipedia.org -n 1
. At the moment it looks like the metric takes some time for Firefox to calculate so we end the test before it is finished. You can try it out with changing--pageCompleteCheck
. -
Chrome on Android has a different CLI args setup #668.
-
We changed how we remove the orange frames from the video when you collect visual metrics. In the old version we used ffprobe to find the start point. That sometimes made us inlcude the orange frame in the videos (it was broken when running on Android). We now get the value from VisualMetrics directly and tune the video in two steps: First remove the orange frames and then add the text #665.
-
Running in Docker we always tried to do a hard kill on FFMPEG, but we onlyu need that on Docker desktop #670.
-
Fixed how we go from orange to white on an Android phone, by always making the screen orange and then unload it to white. This makes the visual metrics match the video #672.
-
If you run on ARM we just skip installing the Chromedriver instead of just hanging ...
-
Changed from moment to DayJS #667.
-
Moved the logging of options from the CLI to the engine (using verbose) so you always have the ability to log the options #671.
- Removing --startwhite in Visual Metrics introduced higher deviation in metrics for Chrome #655.
- Using Firefox 63 in the Docker container.
- Chromedriver 2.43.0
- Fixes the bug when you try to set the cookie but it is cleared by --cacheClearRaw. See #13. And thank you Omri for the PR!
- Upgraded to Chrome 70 in the Docker file.
- Upgraded to latest Chrome trace to support new trace in Chrome 70.
- The orange screen for Firefox was broken in 3.8.0 and in 3.8.1. Let me make it work in both Chrome and FF #651.
- In 3.8.0 Firefox visual metrics was broken if you use the Browsertime extension (the first visual change was higher than it should). The problem was that orange div (that is used for video) didn't work with perfectly with the extension server #649.
- The
--pageCompleteCheck
now accepts an inline JavaScript (for backward compatibility) or a path to a javascript file (enhancement request). Thank you Don Walling for the PR.
- Updated to latest Chrome-har (0.5.0) that pickup navigations within the page.
- Fixes for video: Make sure the layer of orange is full screen. Remove the layer instead of making it white and make sure visual metrics doesn't need to start white. All these three fixes helps us test pages in a flow of URLs. #648. This will change the look and feel of he video when you test with --preURL: instead of starting white, it will start preURL content on the screen. The metrics will be the same, the video will look different.
- Upstream fixes of Visual Metrics, choosing max size of content widths to skip Chromes requests info #645.
- We had a check that FF is 61 or later for the HAR export trigger to work. However that fix makes sitespeed.io break when you run with mobile options, see sitespeedio/sitespeed.io#2178 (comment). It also makes Firefox tests to break as long as you set a different user agent. We are now on FF 62 so we can just remove the check.
- Upgraded to Geckodriver 0.23.0
- Upgraded to NodeJS 8.12.0 in the Docker container.
- Cleanup of the Visual Elements script #641.
-
Automatically add all visual elements to the HAR timings (so you can see them in PerfCascade) #642.
-
You can run your own JavaScript in Firefox that will be executed on document_start. Use --injectJs #643.
- Upgrading to a new version of the Browsertime extension that sets a request header for basic auth instead of using internal WebExtension code #643. See Bug #2151.
- Turned on the Firefox only metric: timeToDomContentFlushed #637.
- Pick up stddev for all metrics #638.
- If a visualElement is missing, we log the error instead of throwing it #639.
-
We support timings for visual elements (by adding
--visuaElements
). Browsertime picks up the largest image and the largest H1. You can also configure your own elements--scriptInput.visualElements
. First let give creds to the ones that deserves it: As far as we know Sergey Chernyshev was the first one that introduced the idea of measuring individual elements in his talk Using Heat Maps to improve Web Performance Metrics. A couple of years later this was implemented by the people behind SpeedCurve, that later on contributed back the implementation to WebPageTest (calling it "hero"-elements). Patrick Meenan (the creator of WebPageTest) moved on the implementation to Visual Metrics that Browsertime uses to pickup visual metrics from the video. We tuned the implementation a little and now it is ready to release. -
We also added a new feature: If you run your own custom script you can now feed it with different input by using
--scriptInput.*
. Say you have a script named myScript you can pass on data to it with--scriptInput.myScript 'super-secret-string'
. More about this in the documentation the coming weeks. -
Upgraded to Chromedriver 2.42.0
- In some cases Chrome returns an empty HAR and that made us throw an error. This make sure the HAR has a page before we use it #630.
- Tech: We unified how we change the background color from orange to white when we record the video (to be able to know when the navigation start) PR 634.
- Upgraded to Chromedriver 2.41.0.
- Upgraded to Chrome 69 and Firefox 62 in the Docker container.
- There been several reports on bugs when using a preScript to login and then measure a page. The problem has been how we find the first frame + a bug that didn't make the video with orange frames between different pages. Thats been fixed now in #633.
- Tech: Browsertime now logs under the browsertime name and we unified the log format to be the same as sitespeed.io. Add --verbose to log by name (useful for running Browsertime in sitespeed.io) and log the pageComplete check JavaScript only in debug mode (instead of verbose).
- Updated to Chrome 68 in the Docker container.
- Added extra check for not use full time out if you navigate to the same URL #625.
- Increase timeout to wait for page navigation. Before it was 5s, now it is 50s #623.
- If you configured to not keep the video, there was a miss-match when removing the video (we also tried to remove the screenshot dir), so you got an error in the log. That is fixed by #621.
- Handle . (dot) in userTiming names #618.
- You can now add multiple cookies by adding --cookie multiple times #619.
- Updated the Browsertime extension to 0.13.0. The new version takes care of the difference on how Firefox and Chrome implements the API. In the old version, clearing the cache with --cacheClearRaw throwed an error. That is fixed now.
- The Browsertime-extension was broken in Firefox, probably since there was a change in extension handling in FF 55 and effecting us in FF 61.
- You can now easy add a cookie. At the moment we only support one cookie but let us fix that after the summer holiday
--cookie name=value
- Upgraded to Geckodriver 0.21.0 https://github.com/mozilla/geckodriver/releases/tag/v0.21.0
- The Docker container uses Firefox 61 stable.
- You can now set the device serial if you run multiple devices to reverse the traffic when you run Android devices from Ubuntu. Set -e DEVICE_SERIAL=PHONE_ID. If you run this before, the reverse of tcp failed.
- We now clear the console log before testing (in Chrome) #611.
- We fixed so that you can collect the netlog in Chrome even though you turn off getting the HAR #612.
- Upgraded Chromedriver to 2.40.0.
- Upgraded ADB in the Docker container work with Chromedriver > 2.39 fixing problems running on Docker Ubuntu driving Chrome on Android.
- Upgraded Firefox 61 to beta 13 (form beta 5) in Docker.
- Updated Chrome-HAR to 0.4.1 to be extra careful when we check for pushed responses.
- Upgraded to Chromedriver 2.39
- Upgraded to Chrome 67
- We reverted the change of using pageLoadStrategy none as default (we now use normal as we done since day 1). This means it is easier for users that uses pre/post script = you will get control when the page has finished loading instead of when navigation starts. You can still use the none option by adding
--pageLoadStrategy none
to your run (that is useful if you want to end your tests earlier).
- Fixing setting ifb0 twice in Throttle.
- Another go trying to fix Throttle in Docker for multiple URLs.
- Upgraded Throttle to 0.4.0 to hopefully fix sitespeedio/sitespeed.io#2063
- Upgrade to chrome-har 0.4.0, with a fix for including HTTP/2 assets in HARs.
- The current official version of the HAR Export Trigger doesn't work on 60 (you need 61). Let us not run the plugin on 60 #603.
- Rollbacked the Firefox HAR export since the new version breaks support for FF 60 (I missed that) and the new HAR misses content fields.
- In Docker with Firefox we now don't choose the netmonitor devtools tab, hopefully making less CPU impact when we collect the HAR #598.
- npm ping issues making our packages not go out as they should, lets try it again. The problem is the npm registry https://github.com/npm/registry/issues/327
- Another fix for making it possible to run on Android phones on SauceLabs: You can now use the Browsertime extension, for example --cacheClearRaw.
- Using --android flag to disable setting the window size didn't work. You need to do that to run on real devices on SauceLabs. We don't recommend to do it, but we know people do that so we want to keep it working.
- The original problem of sitespeedio/sitespeed.io#2040 happens if we set an output dir and the mp4 file already exits when we tries to convert it. This fix removes the file if it exists before converting #594.
- Use the stdin ignore flag when converting video files using FFMPEG, hopefully fixing freezing converts reported in sitespeedio/sitespeed.io#2040 #592.
- We upgraded our own build of the HAR Export trigger to use the official one #589.
- More solid solution to wait in navigation to start #590.
- Better logs to understand why convert the video sometimes fails/halts.
- Updated Firefox 61b3 to Firefox 61b5
- Bugfix: Wait longer before Firefox has finished navigated see sitespeedio/sitespeed.io#2040 fixed with #584.
- Updated WebPageReplay with fix for "Improve replay determinism". Build 2018-05-14.
- Use -e to set which port to use for WebPageReplay in Docker. Use -e WPR_HTTP_PORT=X and -e WPR_HTTPS_PORT=Y
- Fixed broken license file for WPR.
- Updated Docker dependencies so downloaded files are remove -> smaller Docker file. Thanks @sodabrew for the PRs.
- Another go at making WebPageReplay work with ADB (small fix)
- Browsertime + WebPageReplay returned an error code instead of 0 after a succesful run (Docker container only).
- Removed chrome.loadTimes from RUMSpeedIndex to get rid of Chrome warnings.
We have worked a lot to make Browsertime 3.0 the best version so far. Read the blog post about the 3.0 release. And please read the breaking changes before you update!
- We have removed the use of Bluebird Promises and now uses async/await and native Promises.
- In some cases we leaked Bluebird promises, this is changed to native promises.
- Running the engine took a promise that eventually became the scripts. Now you need to run with the scripts directly (no promises) to simplify the flow.
- We updated the browsers in the Docker container to Chrome 66 and latest Firefox 61 beta.
- You can now turn on the MOZ HTTP log for Firefox with
--firefox.collectMozLog
#451 see https://developer.mozilla.org/en-US/docs/Mozilla/Debugging/HTTP_logging - Upgraded to new Browsertime extension with support for web sockets.
- You can now choose niceness level for FFMPEG during a recording using
--videoParams.nice
. With this you can finetune the prio for the FFMPEG process. - In the browsertime.json you now get errors in the errors array. This makes it possible for us to gracefully handle if one of the runs fails.
- You can now gzip the HAR file by adding
--gzipHar
to your run. - Option to end test on 5s of inactivity #574. Do it by adding
--pageCompleteCheckInactivity
. - Updated Throttle to 0.3.
- You can now add a resultURL to the video/screenshots in the HAR.
- The netlog is now gzipped from Chrome.
- You can now install your own extension: #552.
- We now use the latest and greatest Visual Metrics #542 and always get the viewport, hopefully fixing the problem with last visual change that sometimes happens for emulated mobile.
- Updated Chrome-HAR that fixes problems in Chrome 66.
- New version of the trace parser (for CPU metrics) with updated feature list.
- Move video out of pre/post scripts. When we first started with the video we used the pre/post structure. That was ok to move fast but one of the negatives is that stopping the video happen after we collected all metrics. We now stop the video exactly when the the page is finished loading #448.
- In the browsretime.json mdev was never formatted, now we use 4 decimals (make the JSON more readable) #453.
- Modernized the JavaScript we use to collect the metrics, see #457.
- Fixed so that Chrome on Android can use the ExtensionServer (clear the cache, add request headers etc) #470.
- Better handling of Chrome emulated mobile: We now set the correct window size for phones #528
- Errors is now an array of an array: one run can produce multiple errors.
- Store the Chromedriver log in the result directory (before it was stored where you run Browsertime) #452.
- Metrics like first paint, resource timings and paint timings was reported with 8 decimals in worst cases. Reporting in full ms is ok #455.
- The video now ends on Last Visual Change + 1 s (before it could go on as long as the video was recorded).
- All Chrome trace files are now gzipped #517
- Firefox preferences now uses mostly the same settings as Mozilla do in their performance tests #524.
- Store extra JSON and screenshots per run (and collect stats between runs). We want to make Browsertime as mean and clean as possible: Store all extra JSONs (chrome trace categories, console log and more), and the screenshots between runs (before they where stored on exit). This is good because it will decrease the memory impact but it is non backward compatible change! Sitespeed.io and other tools need to change how they handle extra JSONs and the screenshot. Browsertime users that uses browsertime from the command line will not see any change. We also moved most stats to be collected between runs, that is needed for CPU stats since we store the data and throws it away between runs #449.
- We disabled the old HAR Export trigger (max Firefox 54). And we now uses the new https://github.com/devtools-html/har-export-trigger/ that needs Firefox 60 or later to work.
- We renamed the options to get Visual Metrics to be
--visualMetrics
instead of --speedIndex. When we first introduced Visual Metrics Speed Index was more known, but it has always been a thorn in the side to call the option that. In Docker we collect Visual Metrics by default. - We use sharp to store/convert screenshots. Screenshots are now located in the screenshots folder, named after each run. Default are now jpg screenshots. #468. Checkout all the new
--screenshotParams
configurations. - Remove deprecated (renamed) options experimental.dumpChromePerflog (use chrome.collectPerfLog) and chrome.dumpTraceCategoriesLog (use chrome.collectTracingEvents).
- Remove broken support for video recording on macOS (Docker on mac still works).
- Removed deprecated (renamed) option videoRaw. Always use
--videoParams.addTimer
(boolean) if you want to toggle timer/metrics in the video - We now use pageLoadStrategy "none". That means if you run your own pageCompleteCheck you can now end your test whenever you want (before onLoad if you want) #501.
- We changed how we change between orange to white when we record a video. Depending on your machine, Selenium/WebDriver introduced latency the old way we did the switch #503.
- We removed collecting Resource Timing data as default #505. If you still need the metrics, you can still run the script: https://github.com/sitespeedio/browsertime/blob/2.x/browserscripts/timings/resourceTimings.js.
- You can now choose what kind of response bodies you want to store in your HAR file . Instead of using
--firefox.includeResponseBodies
to include all bodies you can now use--firefox.includeResponseBodies
[none,all,html]#518. - We cleaned up how you collect trace logs from Chrome. If you want the devtools.timeline log (and CPU spent metrics), just use
--chrome.timeline
. If you want to configure trace categories yourself, use--chrome.traceCategories
- File names are now based on 1 and not 0 so the first file from the first iteration is named something with -1. #536.
-
We rollbacked the HAR exporter to the one that works in FF 54 and will wait on FF 61 until we update. That means that the 2.x branch and releases will stay locked to FF54 in the Docker file while we are working in Browsertime 3.0. The current way of using the new HAR exporter adds about 1 second overhead on our test pages on dasgboard.sitespeed.io.
-
Upgraded Chrome-HAR with fixes for Chrome 66 and when network error happans.
- User Timing measurements was handled incorrect so they was never sent correctly to Graphite. Thanks @knaos for reporting and finding the issue.
- Firefox 60 vs 61 has changed what is returned by the HAR export trigger. We now handles both.
- Reverting fix for Chrome 65 disabling infobars. We use Chrome 66 now.
- Updated Docker to use Chrome 66 beta and FF 61 Nightly
- Updated to the new HAR Export plugin for Firefox, needs Firefox 60 to work (beta/nightly)
- Updated Docker container to use Chrome 65 and Firefox 60 (currently nightly, soon beta)
- If you run in verbose mode and the run fails, Browsertime will try to take a screenshot of the screen to make it esier to understand why it fails. Thanks Vitaliy Honcharenko for the PR! #508.
- Fixed better way to end the tests when running WebPageReplay #460.
- Do not try to replay if recording fails for WebPageReplay
- Default wait time is loadEventEnd + 5 s (before 2s) for WebPageReplay
- If recording or accessing the URL fails then do to replay for WebPageReplay
- Handle filenames with % for FFMPEG sitespeedio/sitespeed.io#1911
- Updated to Chromedriver 2.36
- Updated to Geckodriver 0.20.0
- Updated to Chrome-har 0.3.0
- Added offset for video in Chrome 65 (that broken infobar) #489.
- Turn off OCSP request for Firefox when running WebPageReplay
- Parse --firefox.preferences values as Numbers if they are a number :)
- New version of the trace parser (for CPU metrics) with updated feature list.
- New updated Browsertime extension adding support for web sockets.
- Return missing promises when getting the console log.
- Use pre compiled version of WebPageReplay to minimise the size of the Docker container #443.
-
You can now get more meaningful CPU metrics out of Chrome (both by category and per event type). Use it by adding --chrome.traceCategories devtools.timeline --chrome.collectTracingEvents --chrome.collectCPUMetrics. #434. We use https://github.com/WPO-Foundation/trace-parser to parse the Chrome trace log.
-
You can now get the Chrome console log by --chrome.collectConsoleLog. It will be written to disk (one file per run) #345.
-
We increased the probesize again for FFMPEG #441, maybe it can help people running without setting connectivity and have video problems.
-
Another go at fixing so that Chromedriver doesn't hang (sometimes) following SeleniumHQ/docker-selenium#87 #442 in the Docker container.
-
The start script in the Docker file handled parameters wrong. #430.
-
Updated to Chrome 64 in the WebPageReplay Docker container.
- Another WebPageReplay bug: Setting correct ports for WebPageReplaying
- Replaying and ADB failed in the WebPageReplay Docker container (always trying to reply).
-
You can now run WebPageReplay in the Docker container together with your Android phone.
-
The WPR Docker is updated with Firefox 58.
-
Updated to Chromedriver 2.35.0
-
Removed chrome.loadTimes that will be deprecated in Chrome 64 #417. Instead use the paint timing API.
-
We had introduced a problem with getting the trace log from Chrome that could make getting the log tiemout see #420, the original issue is a bug in Chromedriver 2.29+ see #337
- Trap WebPageReplay so you can stop running it the command line (WebPageReplay Docker container).
- Updated to Chromedriver 2.34
- The new experimental alpha Docker container including WebPageReplay, wasn't working completely, updated version https://github.com/sitespeedio/browsertime#using-webpagereplay
- Upgrade to Chrome 63 in the default Dockerfile
- There's a new experimental Docker container including WebPageReplay, it's kind of a alpha feature and you can test it out if you want: https://github.com/sitespeedio/browsertime#using-webpagereplay
-
Some Android phones video didn't work as we expected, having different values when analyzing the white background #408.
-
Instead of hardcoded path to the sdcard for Android, we now fetch it dynamically #409.
- We have started using await/async!
- We now use latest NodeJS 8.9, so you need to upgrade
- The default framerate for video is now 30, before it was 60. If you want to keep using 60, add
--videoParams.framerate 60
- The default engine when you run in Docker is now "external" instead of tc, that means if you want to change the connectivity you need to do that with Docker networks or use the bundled Throttle engine. We also removed TSProxy and tc. Please use Docker networks or Throttle as engine.
- Recording videos is now done in two steps: First record as lossless as possible and then convert to a viewable format #378.
- Upgraded to Selenium 3.6 #380.
- You can now turn on/off the filmstrip screenshots (
--videoParams.createFilmstrip
), set the quality (--videoParams.filmstripQuality
), and choose if you want them in full video size (--videoParams.filmstripFullSize
) #385. - It is now easy to run Firefox Nightly, Beta and Developer edition on Mac OS X. Just add
--firefox.nightly
,--firefox.beta
or--firefox.developer
to the cli (for Linux you need point out the location with--firefox.binaryPath
#384 - You can now configure which display number xvfb will use (default 99) #389.
- Automatically collect video and visual metrics in Docker.
- Setting default values for video parameters, making it easier to run Browsertime in NodeJS #394.
- Added configurable wait time (
--videoParams.androidVideoWaitTime
default is 5000 ms) for pulling the video from mobile to the server #393. - You can now run Firefox against insecure certs
--firefox.acceptInsecureCerts
#399 - Added TimeToNonBlank for Firefox.
- You can now create a video that includes what you run in preScript and postScript by
--videoParams.combine
- Adding package-lock.json via node 8 for consistent dependency install
-
We removed TSProxy and tc (sltc) as connectivity engines since none of them worked 100%. Instead user Docker networks or the new Throttle engine #379. The default engine when you run in Docker is now external, before it was tc.
-
The default framerate for video is now 30 (before 60). See
--videoParams.framerate
. We have done a lot of testing on C4.large on AWS and 60 fps adds too much overhead that makes metrics unstable. -
We upgraded to use NodeJS 8 and you should do that too.
- Always run the extension first, then prescripts #395.
- Tighten Firefox settings (calling home etc).
- Escape path names with = sign for FFProbe.
- Updated to Throttle 0.1.0 that fixes a bug so we get a promise when we set connectivity on localhost on Linux and always remove filters before setting new ones. Throttle is now more robust.
- Updated version of throttle that sets the correct delay on localhost (before the delay was *2).
- Upgraded to Chromedriver 2.33.0 that fixes running Chrome > 61
- Updated version of throttle so that route runs with sudo.
- Removed the check for custom connectivity so you ca set just latency if that's what you want.
- Larger default bottom margin when calculating Visual Metrics #375.
- Fixed log check for missmatch between iterations and created pages.
- Upgaded Throttle with a bug fix so that the ingress filter is removed in Linux.
- Let VisualMetrics use the same bottom margin as WebaPageTest.
- Use Chromedriver 2.32.0
- Silence XVFB by default. Add -vv (or higher) to let XVFB send to default stderr.
- New way to throttle your connection using Throttle: https://github.com/sitespeedio/throttle - still very early release, test at your own risk :)
- Always (yes always) use no-sandbox for Chrome when running in Docker.
- Even bigger bottom margin (20px) for videos to make emulated mobile lastVisualChange correct.
- Easy to run Firefox Nightly, just pass --firefox.nightly (and -b firefox)
- Support for running Firefox and Chrome in headless mode --headless. You need Firefox Nightly or Chrome stable #361
- Upgraded to Chrome 61 in the Dockerfile
- You can now change the framerate of the video with --videoParams.framerate
- You can also change the constant rate factor of the video --videoParams.crf see https://trac.ffmpeg.org/wiki/Encode/H.264#crf
- Added visualComplete95 and visualComplete99 metrics.
- Old parameter videoRaw is renamed to --videoParams.addTimer to toogle timer/text in the video (old videoRaw is deprecated but still works).
-
Changed Docker workdir so it is possible to use pre/post script in Docker. This means you need to map your volume as "$(pwd)":/browsertime #363
-
Changed the bottom margin for videos (made it a little larger) to fix lastVisualChange when emulating mobile sitespeed.io #1690
- More metrics in the HAR: We now add Visual metrics, connectivity and domContentLoadedTime/domInteractiveTime. They are then picked up by PerfCascade. This was earlier done in sitespeed.io.
- Correct naming in the CLI help when emulating an iPhone ('iPhone 6'). It was changed in Chromedriver 2.31.0 (or was it 2.30.0?).
- Added missing browser name in the HAR when you run as Chrome as emulated.
- New go at VisualMetrics to try to avoid those partly orange screens for Chrome.
- Upgrade to Chrome 60 stable from 60 beta in the Docker container
- Upgrading to Chromedriver 2.31.0
- Upgrading to Selenium 3.5
- We now support adding request headers, blocking domains and using basic auth in Firefox since latest Selenium and @tobli:s PR for supporting Web Extensions in Firefox!
- Latest NodeJS 6.11.1 in the Docker container.
- Upgrade to Geckodriver 0.18.0 for Firefox.
- Fine tuning choosing orange frames see #1673 sitespeed.io
- Upgraded chrome-har to fix sitespeedio/sitespeed.io#1654
- Upgraded Docker to use latest Chrome beta and include fonts for Hindi, Thai, Japanese, Chinese and Korean.
- Upgraded (again) from Chromedriver 2.28 to 2.30 with a very special hack #347.
- Downgraded (again) from Chromedriver 2.30 to 2.28 to get --chrome.collectTracingEvents to work again.
- Upgraded to Chromedriver 2.30.0 fixes #337.
- Upgraded to Geckodriver 0.17.0 seems to fix #321
- Pickup metrics from the Paint Timing API #344, will work in Chrome 60.
- Updated the Docker container to Firefox 54 and Chrome 60 (beta) to fix the background color problem. Chrome bug 727046
- Updated to latest NodeJS and FFMPeg in the Docker container.
- Set Selenium capabilities (hidden pro feature for now).
- Added --preURLDelay (in ms) so you can choose how long time you want to wait until you hit the main URL after the pre URL.
- Fixed setting proxy using --proxy.http and --proxy.https #338
- Updated to chrome-har 0.2.1 that: add "serverIPAddress" field to entries, set bodySize for requests correctly, set bodySize and compression for responses correctly, and add _transferSize field for responses, just like Chrome does.
- Downgraded to Chromedriver 2.29 to 2.28 to get --chrome.collectTracingEvents to work again (hope for a fix in 2.30).
- Setting Firefox preferences with values true/false didn't work as expected. #336
- Reverted changes in 1.2.4 since it caused firstVisualChange to fire to early on desktop. #335
- Internal: New version of VisualMetrics that catches frames that is partly in one (gray/orange) color.
-
URLs with a comma-sign (",") broke Browsertime if you also collected VisualMetrics #333.
-
New version of VisaulMetrics (thanks Pat) that makes possible to remove those grey background that started to appear in Chrome 58 if you run it in emulated mode. The original bug created to early first visual render in emulated mode #323.
- The video for Firefox now works with different view ports #329.
- More safe way to find the first white frame when cutting an creating the video #331]
- Get Chrome NetLog (--chrome.collectNetLog) now also works on Android #306
- Remove a couple of more black pixels in the video from Firefox
- Removed the black borders in the video from Firefox #285.
- Support for Basic Auth in Chrome (Firefox will have it in 54 as long as SeleniumHQ/selenium#3846 gets released). Use --basicAuth username@password #328.
- You can now run Android devices in your Docker container on Ubuntu. Check the README for more info. Inspired by https://github.com/sorccu/docker-adb.
- New version of the browsertime extension to turn off save password bubble for Chrome.
- Block requests by domain (--block) and add request headers (-r name:value). Only works in Chrome for now, it will get fixed for Firefox when SeleniumHQ/selenium#3846 is released in Selenium.
- Upgrade to Selenium 3.4.0 and Geckodriver 0.15.0 to get Firefox 53.0 working.
- Docker container now uses Chrome 58 and Firefox 53.
- Same code as beta 34, but a different feeling. =)
- Support for video and SpeedIndex on Android. This is still experimental and we need help to test it on different devices!
- Support legacy option for experimental.dumpChromePerflog and chrome.dumpTraceCategoriesLog from the CLI.
- Catch all type of errors if the browsers fail to start and do a retry.
- Show backendtime in the summary output in the CLI.
- Collect and save Chrome's netlog with --chrome.collectNetLog - thank you https://github.com/worenga
- Option to maximize browser window #275 thanks again @worenga
- Add --chrome.chromedriverPath option, for using a custom chromedriver binary.
- Show VisualComplete 85% in the video and in the CLI summary.
- Include timestamps entry in result json, with timestamps for when each iteration starts.
- Renamed experimental.dumpChromePerflog to chrome.collectPerfLog. The previous name is deprecated, but will still work for now.
- Renamed chrome.dumpTraceCategoriesLog to chrome.collectTracingEvents. The previous name is deprecated, but will still work for now.
- Ensure output directory is created before starting a run (and before storageManager is passed to preScripts).
- Use Chromedriver 2.28
- Extracted (and improved) Chrome perflog->HAR parsing to separate npm module.
- New metric when you collect video/SpeedIndex: VisualComplete85% as suggested by @jeroenvdb
- Increased max time to parse the performance log 60s -> 90s
- Smarter way to parse (or rather cleanup) the Chrome trace logs, following the code in Lighthouse: GoogleChrome/lighthouse#538. Mad props for cleaning up the log :) Fixes #281
- You can dump the Chrome trace categories to disk by using --chrome.dumpTraceCategoriesLog and load the file in Chrome timeline. You can also choose which trace categories you wanna use with --chrome.traceCategories. #270
- Improved detection of http2 pushed assets for Chrome. #261
- Added connectivity.engine external to use when you set the connectivity outside of Browsertime #277
- Make it possible to include response bodies in the HAR from Firefox using --firefox.includeResponseBodies #264
- Set Firefox preferences through the CLI #268
- Add check if entry is not undefined and request exists when creating the Chrome HAR fixes#272
- New option
--userTimingWhitelist
to pass a whitelist regex for filtering userTimings from results
- Updated example of login via pre-script to properly wait for login form to be submitted before continuing.
- Simpliefied check in Chrome if a response is pushed (only use pushStart)
- Renamed _was_push to _was_pushed as following same name standard as WPT if an entry is HTTP/2 pushed
- Aligned priority information in HAR with WebPageTest.
- Upgraded to Geckodriver 0.14.0
- The combination of not cropping out the center of the screen and changin back to default values for Firefox deciding when the screen is orange, made all metrics happen to early for FF.
- Different values for Chrome/Firefox to define when the screen is still orange, to make sure VisualMetrics doesn't pick up the orange screen.
- Upgraded to Geckodriver 0.13.0
- Upgraded to Chromedriver 2.27.0
- Eliminate the risk to get a too early first visual change that happens sometimes in Chrome by changing VisualMetrics (see #247 and #255):
- We removed the center cropping of images when visual metrics checks if an image is orange/white. The cropping made us miss the small orange lines that sometimes appear only in Chrome.
- We also fine tuned (and made configurable) the number when the diff of two images (orange and white) is ... orange.
- We re-arranged how we record the screen to record as little extra video as possible.
- Upgraded to Geckodriver 0.12.0
- Pickup changed prio when Chrome changes prio for requests
- Updated the Docker container to use ImageMagick 6.9.7-2 to fix sitespeedio#247
- Added 3g connectivity profile 3gem for Emerging markets to keep in sync with WebPageTest.
- Removed crf settings when recording a video to fix sitespeedio#247
- Use VisualMetrics with viewport config to best case find better start values
- Ignore 5% of the height/width when calculate firstVisualChange fixed #244
- Upgraded to Chromedriver 2.26
- Changed to use straight walltime when generating HAR for HTTP/2 in Chrome (fixes problems when assets was in wrong order)
- Log request missing matching request id on debug level instead of warning
-
Setting 'network.dns.disableIPv6': true for Firefox makes Firefox in Docker 5s faster :/
-
Added trap in Docker image to be able to break your runs.
- Increased time to wait for browser to start before starting video (now 1.5 s)
- Log last visual change in the info logs after a run.
- Added _was_pushed using same standard as WebPageTest.
- Skip checking the first 5 frames when looking for when the video start (that makes the firstVisualRender more stable).
- Getting right URL for initiator in Chrome.
- Display lastVisualChange in the video (and 2px smaller texts for metrics)
- Fine tune the values on when to catch the first frame #236 to make firstVisualRender more accurate when using preURL
- Default resource timing buffer is now 600 when you run with video.
- Set your own alias for connectivity sitespeedio#222
- Remove the orange color from the video (that makes us sync start) and added optional timer and metrics in the HTML
- You can now choose if you want to have a video: --video and --speedIndex
- Use --preURL to hit a URL before you access the URL you wanna analyze
- We use connectivity engine tc by default in Docker.
- The final mp4 is now compatible with all modern browsers, thank you Walter Ebert for the help!
- Local cache HAR entries in Firefox is removed sitespeedio#227
- Beta.12 broke android testing by setting viewport, fixed for next release.
- Chrome now always start inside of Docker, we finally got rid of the Chrome doesn't start in time problem SeleniumHQ/docker-selenium#87 (comment)
- Add a alias/custom name to your connectivity profile. Thank you @jpvincent for the idea! sitespeedio/sitespeed.io#1329
- Cli option to remove the created video (record the video to get SpeedIndex and then remove the video).
- Video is now mp4.
- Better exit handling when killing FFMpeg , overall code cleanup for ffmpeg/video
- Introduced small wait time before record video that makes the connection problem for 3g using tc go away (hopefully).
- Videos are now named after the run.
- Disabled infobars in Chrome (they messed up start render and SpeedIndex).
- Added initiator of each request entry to chrome HAR
- Output SpeedIndex & firstVisualChange in the logs if you use VisualMetrics
- Generating HAR files from Chrome caused a crash in some cases. (#209)
- Entry timings in HAR files from Chrome were strings instead of numbers.
- One extra fix for outputing timing metrics in the console: If timing metrics is < 1000 ms don't convert to seconds and let always have fixed
size for mdev fixing many numbers for SpeedIndex.
- Configure proxies with --proxy.http and --proxy.https
- New TSProxy that is less complex
- Upgraded Selenium to 3.0.1 (no beta!)
- Upgraded Geckodriver to 0.11.1
- Updated minimum NodeJS to 6.9.0 (same as Selenium). IMPORTANT: Selenium 3.0.0 will not work on NodeJS 4.x so you need to update.
- Export chrome perflog dumps as json in extraJson property of the result, instead of a string in the extras property. Only relevant to api users.
- Upgraded sltc so we use 0.6.0 with simplified tc that actually works
- We now run xvfb from inside NodeJS so we can set the screen size, making it easy to record the correct size for VisualMetrics. We also use environment variables that starts with BROWSERTIME so we can turn on xvfb easily on Docker.
- Set default device to eth0 when running tc (without using the CLI).
- Also count the main request in number of requests when printing to the log.
- And output the total transfer size of the tested page.
- New version of TSProxy hopefully fixing the connect problems for some sites (wikipedia) see catchpoint/WebPageTest.tsproxy#9
- Removed option to not get statistics for the runs.
- Rollbacked SLTC so we only use tc, to make it work out of the box on Ubuntu.
- Moved the summary line to the logs and inside the engine so users of the API will get the same treatment.
- Add chrome-esque summary line to stdout #189 thank you @moos for the PR!
- Removed JSON input for setting connectivity custom profile, use cli params instead.
- Updated to Selenium v3.0.0-beta-3
- Updated to HAR export trigger beta 10 to make FF 49 functional
- Updated to chromedriver 2.24.
- Query parameters in HAR files from Chrome are now correct
- HAR files from Chrome now include cookies and POST data (with some limitations)
- Log excplicit when the HAR export trigger fails, so it is easy to report the problem.
- Increased the default script timeout from 40 s to 80 s.
- Log script name if a script fails to make it easier to find failing scripts.
- Renamed the browserscripts/timings/timings.js → browserscripts/timings/pageTimings.js
-
This is the first beta of 1.0. 1.0 is a TOTAL rewrite from 0.12.3. We don't use BrowserMobProxy anymore (so you don't need Java). To get the HAR from Firefox we use the HAR Export Trigger and Chrome we parse the timeline log and generates the HAR file.
-
The beta-1 has no way of blocking requests, if you need that functionality you should wait with upgrading.
- Upgraded Selenium to work with Firefox 47.0.1
- Add ability to block urls (e.g. return 404) based on regex.
- Fix parsing of --headers and --connectionRaw options. Note that JSON strings needs to be properly quoted when passed on the command line, e.g. --headers '{"name":"value"}'
- Upgrade selenium-webdriver to 2.47. This means dropping node 0.10 support, but allowing installation on node 4.x.
- Don't log 'Storing ...har' when har generation is turned off.
- Handle cases where HAR file from MobProxy is lacking log.browser without crashing.
- Set correct Browsertime version in HAR file (previously was always 1.0)
- Remove --useProxy option and replace with a --noProxy flag. Please update your scripts if you use this
- Bug fix: Running multiple tests, included same requests many many times in one HAR #91
- Bug fix: Show correct browser and version in the HAR file #90
- Remove level prefix (e.g. info: ) from console log lines. Log files aren't affected.
- Normalized Navigation Timing Data: All navigation timing metrics are now relative from Navigation start instead of using timestamps #88
- Navigation Timings are now included in the statistics so you can get median times for all Navigation Timing metrics.
- Upgrading Selenium version to 2.46.1 that makes it work on Windows (again).
- Upgrading selenium version to 2.46.0 that will make Firefox (38) useable again.
- Increased timeouts to be 2 minutes instead of 1 minute. Running using mobile2g times out a lot.
- Added more default connection types: mobile2g and mobile3gslow
- Ability to avoid sandbox mode when runnig Chrome (use with care)
- Possible to configure a selenium server (hopefully make IE run smoother on Windows and Chrome on Linux).
- User timing marks was missing from statistics since 0.9. This puts then back!
- Timeout a run if it takes too long. On Linux Chrome/Chromedriver can hang, making Browsertime hang. This fix kill the chromedriver and signal an error if it happens.
- Fixed installation issue on npm v0.12.0, Windows 7 (thanks Patrick Wieczorek)
- Hello HTTPS! We now proxy HTTPS traffic making HAR Files containing HTTPS requests.
- Internet Explorer: Clean session between runs, ignore zoom settings and set proxy per process
- Internal: Killing Chromedriver on Linux if it is up and running after a finished round. Need to be run after each URL when we have a working timeout for Chrome.
- Fixed incorrect HAR files generated by version 0.9.0 (page title was missing).
- Renaming resourceTiming to resourceTimings to follow our pattern.
- New data structure in the output JSON, better support for custom Metrics. Note if you fetch values from the JSON, you will need to change how you do it.
- Latest Selenium supports IE and Safari without the Selenium jar, use it! Safari users, install SafariDriver.safariextz from http://selenium-release.storage.googleapis.com/index.html?path=2.45/
- Safari doesn't support pageLoadTimeout, disable for Safari
- Cleaned up the use of javascript that runs in the browser: get name from the filename and keep scripts simple. #77
- Running Browsertime on node.js version 0.8 is no longer supported (or tested).
- Fix incorrect calculation of serverConnectionTime in json output.
- Removed toJSON method from Resource Timing data from Firefox
- Getting window size from the actual window.
- Internally: Get metrics and static values from the browser using JS.
- Set the page title in the HAR
- Added more timings per page, follow WPT style in the HAR
- Changed name of parameter scriptPath to customScripts to better match what it does
- Locking versions in package.json to be SAFE
- Update to Selenium 2.45.1 to get latest bug fixes.
- Avoid hangs when fetching urls by explicitly set timeout values in Selenium drivers.
- New Selenium version (2.45) to support Firefox 36
- Fix that kills the BMP on Windows (using taskkill)
- Log to standard log when uncaught exception happens, so that it will be propagated to sitespeed.io
- So we have a real proble with processes that just hangs, it happens on when we get an uncaught exception, one of the problems is Selenium/Chromedriver, we will try to fix the main issue but for now we will exit the process #74
-
You can now choose to supply a Javascript that will decide when a run is finished. The default script is 'return window.performance.timing.loadEventEnd>0'. Use the parameter --waitScript
-
The browsermob prixy will now test a port and use it if it's free. Before the port was hardcoded.
- Upgraded to the new BrowserMobProxy 2.0.0
- Ooops, what happend? the new version is written in NodeJS, instead of Java.
- Check out the README or --help to see new input format.
- You can now run your own javascript in the browser and get the data back in the JSON.
- Support for getting timings using PhantomJS 2.
- Limit the connection speed.
- Add support for sending BASIC AUTH credentials, by specifying the --basic-auth option.
- Add support for generating har files, by specifying the --har-file option.
- Add support for sending request headers by specifying the --headers option.
- Bugfix: Set right values for serverResponseTime
- Upgrade Selenium to version 2.41.
- Fix crash while trying to run resource timing measurements in Firefox.
- Provide better error messages if chromedriver, IEDriverServer or Firefox is missing.
- Upgraded to latest version of Selenium, for (hopefully) increased stability in the interaction with browsers.
- Suppress chromedriver diagnostics output (Starting ChromeDriver...) when running Chrome
- Add --verbose and --debug option for getting additional information printed as Browsertime runs.
- Windows support - Browsertime now ships with a bat file, and Internet Explorer has been confirmed to work.
- Collect resource timing metrics (http://www.w3.org/TR/resource-timing/), included when outputting all metrics using the --raw option.
- Add support for specifying http proxy, using a new --proxyHost option.
- Updated maven groupId and Java package name to use net.browsertime instead of com.soulgalore. This does not affect users of the command line tool, only programmers embedding the browsertime jar in other tools.
- Added ignore zoom settings for Internet Explorer and type for msFirstPaint
- Include browserTimeVersion entry in static page data.
- User Timing marks and measures should now be compatible with Firefox 25. Custom user marks are also converted to "synthetic" measures, with duration as time from the navigationStart event. This way user marks are also included in statistics.
- Added frontEndTime (responseEnd & loadEventStart) & backEndTime (navigationStart, responseStart) measurements to make it cleaner when comparing.
- Collect page data (browser version etc.) on first timing run. This reduces the number of times the browser is launched, making Browsertime run faster.
- Added -t option to set timeout value when loading urls (default remains 60 seconds).
- Created packages as zip and tar.gz that includes a shell script to run Browsertime, all jars, README, and CHANGELOG.
- Add --raw flag to control if data for individual runs is included in output. The default is to not include run data. NOTE - this is a change in the default output from 0.1.
- Add optional --compact flag to disable pretty printing of xml and json.
- Update format of xml/json (NOTE - incompatible changes from 0.1)
- all metrics and statistics are now floating point numbers
- numbers in json output are now represented as strings (surrounded by quotes). This is an unfortunate side-effect of avoiding printing numbers in scientific notation.
- time property of marks and measurements have been renamed startTime
- measurements and statistics are now sorted according to start time.
- Changed max wait time for the Selenium driver from 30 s to 60 s
- Updated org.seleniumhq.selenium:selenium-java from 2.35.0 to 2.37.1
- Fix for Firefox 25 that added toJson in window.performance.timings
- First release