Raptor

Raptor is a performance-testing framework for running browser pageload and browser benchmark tests. Raptor is cross-browser compatible and is currently running in production on Firefox Desktop, Firefox Android GeckoView, Fenix, Reference Browser, Chromium, and Chrome.

Raptor currently supports three test types: 1) page-load performance tests, 2) standard benchmark-performance tests, and 3) “scenario”-based tests, such as power, CPU, and memory-usage measurements on Android (and desktop?).

Locally, Raptor can be invoked with the following command:

./mach raptor

We’re in the process of migrating away from webextension to browsertime. Currently, raptor supports both of them, but at the end of the migration, the support for webextension will be removed.

Raptor tests

The following documents all testing we have for Raptor.

Benchmarks

Standard benchmarks are third-party tests (i.e. Speedometer) that we have integrated into Raptor to run per-commit in our production CI.

Custom

Browsertime tests that use a custom pageload test script. These use the pageload type, but may have other intentions.

Desktop

Tests for page-load performance. The links direct to the actual websites that are being tested.

Interactive

Browsertime tests that interact with the webpage. Includes responsiveness tests as they make use of this support for navigation. These form of tests allow the specification of browsertime commands through the test manifest.

reddit-billgates-post-1

Owner: PerfTest Team

  • accept zero vismet: true

  • alert on: fcp, loadtime

  • alert threshold: 2.0

  • apps: firefox, chrome, chromium

  • browser cycles: 10

  • expected: pass

  • gecko profile entries: 14000000

  • gecko profile interval: 1

  • interactive: true

  • lower is better: true

  • measure: fnbpaint, fcp, dcf, loadtime

  • page cycles: 25

  • page timeout: 90000

  • playback: mitmproxy

  • playback pageset manifest: mitm6-windows-firefox-reddit-billgates-post.manifest

  • playback version: 6.0.2

  • test cmds: [“measure.start”, “billg”], [“navigate”, “https://www.reddit.com/user/thisisbillgates/”], [“wait.byTime”, 500], [“measure.stop”, “”], [“measure.start”, “posts”], [“click.byXpathAndWait”, “/html/body/div[1]/div/div[2]/div[2]/div/div/div/div[2]/div[2]/div/div/div/a[2]”], [“wait.byTime”, 500], [“measure.stop”, “”], [“measure.start”, “comments”], [“click.byXpathAndWait”, “/html/body/div[1]/div/div[2]/div[2]/div/div/div/div[2]/div[2]/div/div/div/a[3]”], [“wait.byTime”, 500], [“measure.stop”, “”], [“wait.byTime”, 500],

  • test url: https://www.reddit.com/user/thisisbillgates/

  • type: pageload

  • unit: ms

  • use live sites: false

  • Test Task:

test-linux1804-64-clang-trunk-qr/opt

Test Name

mozilla-central

autoland

mozilla-release

mozilla-beta

browsertime-responsiveness-firefox-reddit-billgates-post-1-e10s

browsertime-responsiveness-firefox-reddit-billgates-post-1-fis-e10s

test-linux1804-64-qr/opt

Test Name

mozilla-central

autoland

mozilla-release

mozilla-beta

browsertime-responsiveness-firefox-reddit-billgates-post-1-e10s

browsertime-responsiveness-firefox-reddit-billgates-post-1-fis-e10s

test-linux1804-64-shippable-qr/opt

Test Name

mozilla-central

autoland

mozilla-release

mozilla-beta

browsertime-responsiveness-chrome-reddit-billgates-post-1-e10s

browsertime-responsiveness-chromium-reddit-billgates-post-1-e10s

browsertime-responsiveness-firefox-reddit-billgates-post-1-e10s

browsertime-responsiveness-firefox-reddit-billgates-post-1-fis-e10s

test-macosx1014-64-shippable-qr/opt

Test Name

mozilla-central

autoland

mozilla-release

mozilla-beta

browsertime-responsiveness-chrome-reddit-billgates-post-1-e10s

browsertime-responsiveness-chromium-reddit-billgates-post-1-e10s

browsertime-responsiveness-firefox-reddit-billgates-post-1-e10s

browsertime-responsiveness-firefox-reddit-billgates-post-1-fis-e10s

test-macosx1015-64-shippable-qr/opt

Test Name

mozilla-central

autoland

mozilla-release

mozilla-beta

browsertime-responsiveness-chrome-reddit-billgates-post-1-e10s

browsertime-responsiveness-chromium-reddit-billgates-post-1-e10s

browsertime-responsiveness-firefox-reddit-billgates-post-1-e10s

browsertime-responsiveness-firefox-reddit-billgates-post-1-fis-e10s

test-windows10-32-qr/opt

Test Name

mozilla-central

autoland

mozilla-release

mozilla-beta

browsertime-responsiveness-firefox-reddit-billgates-post-1-e10s

browsertime-responsiveness-firefox-reddit-billgates-post-1-fis-e10s

test-windows10-32-shippable-qr/opt

Test Name

mozilla-central

autoland

mozilla-release

mozilla-beta

browsertime-responsiveness-chrome-reddit-billgates-post-1-e10s

browsertime-responsiveness-chromium-reddit-billgates-post-1-e10s

browsertime-responsiveness-firefox-reddit-billgates-post-1-e10s

browsertime-responsiveness-firefox-reddit-billgates-post-1-fis-e10s

test-windows10-64-qr/opt

Test Name

mozilla-central

autoland

mozilla-release

mozilla-beta

browsertime-responsiveness-firefox-reddit-billgates-post-1-e10s

browsertime-responsiveness-firefox-reddit-billgates-post-1-fis-e10s

test-windows10-64-shippable-qr/opt

Test Name

mozilla-central

autoland

mozilla-release

mozilla-beta

browsertime-responsiveness-chrome-reddit-billgates-post-1-e10s

browsertime-responsiveness-chromium-reddit-billgates-post-1-e10s

browsertime-responsiveness-firefox-reddit-billgates-post-1-e10s

browsertime-responsiveness-firefox-reddit-billgates-post-1-fis-e10s

reddit-billgates-post-2

Owner: PerfTest Team

  • accept zero vismet: true

  • alert on: fcp, loadtime

  • alert threshold: 2.0

  • apps: firefox, chrome, chromium

  • browser cycles: 10

  • expected: pass

  • gecko profile entries: 14000000

  • gecko profile interval: 1

  • interactive: true

  • lower is better: true

  • measure: fnbpaint, fcp, dcf, loadtime

  • page cycles: 25

  • page timeout: 90000

  • playback: mitmproxy

  • playback pageset manifest: mitm6-windows-firefox-reddit-billgates-post.manifest

  • playback version: 6.0.2

  • test cmds: [“measure.start”, “billg”], [“navigate”, “https://www.reddit.com/user/thisisbillgates/”], [“wait.byTime”, 500], [“measure.stop”, “”], [“click.byXpathAndWait”, “/html/body/div[1]/div/div[2]/div[2]/div/div/div/div[2]/div[2]/div/div/div/a[3]”], [“wait.byTime”, 500], [“measure.start”, “hot”], [“click.byXpathAndWait”, “/html/body/div[1]/div/div[2]/div[2]/div/div/div/div[2]/div[4]/div[1]/div[1]/div[2]/a[2]”], [“wait.byTime”, 500], [“measure.stop”, “”], [“measure.start”, “top”], [“click.byXpathAndWait”, “/html/body/div[1]/div/div[2]/div[2]/div/div/div/div[2]/div[4]/div[1]/div[1]/div[2]/a[3]”], [“wait.byTime”, 500], [“measure.stop”, “”], [“wait.byTime”, 500],

  • test url: https://www.reddit.com/user/thisisbillgates/

  • type: pageload

  • unit: ms

  • use live sites: false

  • Test Task:

test-linux1804-64-clang-trunk-qr/opt

Test Name

mozilla-central

autoland

mozilla-release

mozilla-beta

browsertime-responsiveness-firefox-reddit-billgates-post-2-e10s

browsertime-responsiveness-firefox-reddit-billgates-post-2-fis-e10s

test-linux1804-64-qr/opt

Test Name

mozilla-central

autoland

mozilla-release

mozilla-beta

browsertime-responsiveness-firefox-reddit-billgates-post-2-e10s

browsertime-responsiveness-firefox-reddit-billgates-post-2-fis-e10s

test-linux1804-64-shippable-qr/opt

Test Name

mozilla-central

autoland

mozilla-release

mozilla-beta

browsertime-responsiveness-chrome-reddit-billgates-post-2-e10s

browsertime-responsiveness-chromium-reddit-billgates-post-2-e10s

browsertime-responsiveness-firefox-reddit-billgates-post-2-e10s

browsertime-responsiveness-firefox-reddit-billgates-post-2-fis-e10s

test-macosx1014-64-shippable-qr/opt

Test Name

mozilla-central

autoland

mozilla-release

mozilla-beta

browsertime-responsiveness-chrome-reddit-billgates-post-2-e10s

browsertime-responsiveness-chromium-reddit-billgates-post-2-e10s

browsertime-responsiveness-firefox-reddit-billgates-post-2-e10s

browsertime-responsiveness-firefox-reddit-billgates-post-2-fis-e10s

test-macosx1015-64-shippable-qr/opt

Test Name

mozilla-central

autoland

mozilla-release

mozilla-beta

browsertime-responsiveness-chrome-reddit-billgates-post-2-e10s

browsertime-responsiveness-chromium-reddit-billgates-post-2-e10s

browsertime-responsiveness-firefox-reddit-billgates-post-2-e10s

browsertime-responsiveness-firefox-reddit-billgates-post-2-fis-e10s

test-windows10-32-qr/opt

Test Name

mozilla-central

autoland

mozilla-release

mozilla-beta

browsertime-responsiveness-firefox-reddit-billgates-post-2-e10s

browsertime-responsiveness-firefox-reddit-billgates-post-2-fis-e10s

test-windows10-32-shippable-qr/opt

Test Name

mozilla-central

autoland

mozilla-release

mozilla-beta

browsertime-responsiveness-chrome-reddit-billgates-post-2-e10s

browsertime-responsiveness-chromium-reddit-billgates-post-2-e10s

browsertime-responsiveness-firefox-reddit-billgates-post-2-e10s

browsertime-responsiveness-firefox-reddit-billgates-post-2-fis-e10s

test-windows10-64-qr/opt

Test Name

mozilla-central

autoland

mozilla-release

mozilla-beta

browsertime-responsiveness-firefox-reddit-billgates-post-2-e10s

browsertime-responsiveness-firefox-reddit-billgates-post-2-fis-e10s

test-windows10-64-shippable-qr/opt

Test Name

mozilla-central

autoland

mozilla-release

mozilla-beta

browsertime-responsiveness-chrome-reddit-billgates-post-2-e10s

browsertime-responsiveness-chromium-reddit-billgates-post-2-e10s

browsertime-responsiveness-firefox-reddit-billgates-post-2-e10s

browsertime-responsiveness-firefox-reddit-billgates-post-2-fis-e10s

Live

A set of test pages that are run as live sites instead of recorded versions. These tests are available on all browsers, on all platforms.

medium-article

Owner: PerfTest Team

test-android-hw-g5-7-0-arm7-qr/opt

Test Name

mozilla-central

autoland

mozilla-release

mozilla-beta

browsertime-tp6m-live-fenix-medium-article-e10s

browsertime-tp6m-live-geckoview-medium-article-e10s

test-android-hw-g5-7-0-arm7-shippable-qr/opt

Test Name

mozilla-central

autoland

mozilla-release

mozilla-beta

browsertime-tp6m-live-chrome-m-medium-article-e10s

browsertime-tp6m-live-fenix-medium-article-e10s

browsertime-tp6m-live-geckoview-medium-article-e10s

test-android-hw-p2-8-0-android-aarch64-qr/opt

Test Name

mozilla-central

autoland

mozilla-release

mozilla-beta

browsertime-tp6m-live-fenix-medium-article-e10s

browsertime-tp6m-live-geckoview-medium-article-e10s

test-android-hw-p2-8-0-android-aarch64-shippable-qr/opt

Test Name

mozilla-central

autoland

mozilla-release

mozilla-beta

browsertime-tp6m-live-chrome-m-medium-article-e10s

browsertime-tp6m-live-fenix-medium-article-e10s

browsertime-tp6m-live-geckoview-medium-article-e10s

test-android-hw-p2-8-0-arm7-qr/opt

Test Name

mozilla-central

autoland

mozilla-release

mozilla-beta

browsertime-tp6m-live-fenix-medium-article-e10s

browsertime-tp6m-live-geckoview-medium-article-e10s

test-android-hw-p2-8-0-arm7-shippable-qr/opt

Test Name

mozilla-central

autoland

mozilla-release

mozilla-beta

browsertime-tp6m-live-chrome-m-medium-article-e10s

browsertime-tp6m-live-fenix-medium-article-e10s

browsertime-tp6m-live-geckoview-medium-article-e10s

test-android-hw-s7-8-0-android-aarch64-qr/opt

Test Name

mozilla-central

autoland

mozilla-release

mozilla-beta

browsertime-tp6m-live-fenix-medium-article-e10s

browsertime-tp6m-live-geckoview-medium-article-e10s

test-android-hw-s7-8-0-android-aarch64-shippable-qr/opt

Test Name

mozilla-central

autoland

mozilla-release

mozilla-beta

browsertime-tp6m-live-chrome-m-medium-article-e10s

browsertime-tp6m-live-fenix-medium-article-e10s

browsertime-tp6m-live-geckoview-medium-article-e10s

people-article

Owner: PerfTest Team

  • alert on: fcp, loadtime

  • alert threshold: 2.0

  • apps: geckoview, fenix, refbrow, chrome-m, firefox, chrome, chromium

  • browser cycles: 15

  • expected: pass

  • lower is better: true

  • page cycles: 25

  • page timeout: 60000

  • test url: https://people.com/amp-stories/royal-a-to-z/

  • type: pageload

  • unit: ms

  • use live sites: true

  • Test Task:

test-android-hw-g5-7-0-arm7-qr/opt

Test Name

mozilla-central

autoland

mozilla-release

mozilla-beta

browsertime-tp6m-live-fenix-people-article-e10s

browsertime-tp6m-live-geckoview-people-article-e10s

test-android-hw-g5-7-0-arm7-shippable-qr/opt

Test Name

mozilla-central

autoland

mozilla-release

mozilla-beta

browsertime-tp6m-live-chrome-m-people-article-e10s

browsertime-tp6m-live-fenix-people-article-e10s

browsertime-tp6m-live-geckoview-people-article-e10s

test-android-hw-p2-8-0-android-aarch64-qr/opt

Test Name

mozilla-central

autoland

mozilla-release

mozilla-beta

browsertime-tp6m-live-fenix-people-article-e10s

browsertime-tp6m-live-geckoview-people-article-e10s

test-android-hw-p2-8-0-android-aarch64-shippable-qr/opt

Test Name

mozilla-central

autoland

mozilla-release

mozilla-beta

browsertime-tp6m-live-chrome-m-people-article-e10s

browsertime-tp6m-live-fenix-people-article-e10s

browsertime-tp6m-live-geckoview-people-article-e10s

test-android-hw-p2-8-0-arm7-qr/opt

Test Name

mozilla-central

autoland

mozilla-release

mozilla-beta

browsertime-tp6m-live-fenix-people-article-e10s

browsertime-tp6m-live-geckoview-people-article-e10s

test-android-hw-p2-8-0-arm7-shippable-qr/opt

Test Name

mozilla-central

autoland

mozilla-release

mozilla-beta

browsertime-tp6m-live-chrome-m-people-article-e10s

browsertime-tp6m-live-fenix-people-article-e10s

browsertime-tp6m-live-geckoview-people-article-e10s

test-android-hw-s7-8-0-android-aarch64-qr/opt

Test Name

mozilla-central

autoland

mozilla-release

mozilla-beta

browsertime-tp6m-live-fenix-people-article-e10s

browsertime-tp6m-live-geckoview-people-article-e10s

test-android-hw-s7-8-0-android-aarch64-shippable-qr/opt

Test Name

mozilla-central

autoland

mozilla-release

mozilla-beta

browsertime-tp6m-live-chrome-m-people-article-e10s

browsertime-tp6m-live-fenix-people-article-e10s

browsertime-tp6m-live-geckoview-people-article-e10s

Mobile

Page-load performance test suite on Android. The links direct to the actual websites that are being tested.

Scenario

Tests that perform a specific action (a scenario), i.e. idle application, idle application in background, etc.

Unittests

These tests aren’t used in standard testing, they are only used in the Raptor unit tests (they are similar to raptor-tp6 tests though).