`nav-bench` is a new prototype benchmark which measures pageload and sub navigation performance across 5 sites (Amazon, BBC, DuckDuckGo, Reddit, Wikipedia) in a single combined browsertime session. Score is calculated as the geomean of 60000 (ms) /SpeedIndex (ms) across all sites and cycles (inspired by LoadLine) Runs at tier 3 (for now) on: - Linux (ubuntu 24.04) - Windows 11 - Windows 11 (ref) - macOS (aarch64) Uses the recently added mitmproxy 12.2.1 `nav-serverplayback.py` is a separate script rather than an extension of `alt-serverplayback.py` for a couple of reasons: 1. API incompatibility between mitmproxy 12.2.1 and 8.1.1/11.0.0 it did not make sense for a single script to satisfy all versions without significan branching logic 2. Extending `alt-serverplayback.py` risks regressiong every existing tp6 test which relies on it. Modifying it would require re-validating everything. This "duplication" is temporary. Bug 2025545 tracks upgrading everything to mitmproxy 12 (or whatever the latest is at the time) and Bug 2025374 tracks upstreaming some changes to use mitmproxy built-in flags entirely. Co-authored-by: Andrew Creskey <acreskey@mozilla.com> Differential Revision: https://phabricator.services.mozilla.com/D301754
100 lines
3.1 KiB
JSON
100 lines
3.1 KiB
JSON
{
|
|
"desktop": [
|
|
{
|
|
"name": "reddit-nav",
|
|
"type": "interactive",
|
|
"test_url": "https://www.reddit.com/r/IAmA/comments/m8n4vt/im_bill_gates_cochair_of_the_bill_and_melinda/",
|
|
"test_cmds": [
|
|
["measure.start", "load"],
|
|
[
|
|
"navigate",
|
|
"https://www.reddit.com/r/IAmA/comments/m8n4vt/im_bill_gates_cochair_of_the_bill_and_melinda/"
|
|
],
|
|
["wait.byTime", 6000],
|
|
["measure.stop", ""],
|
|
["measure.start", "interaction"],
|
|
["click.bySelectorAndWait", "#pdp-credit-bar a"],
|
|
["wait.byTime", 4000],
|
|
["measure.stop", ""]
|
|
]
|
|
},
|
|
{
|
|
"name": "wikipedia-nav",
|
|
"type": "interactive",
|
|
"test_url": "https://en.wikipedia.org/wiki/Barack_Obama",
|
|
"test_cmds": [
|
|
["measure.start", "load"],
|
|
["navigate", "https://en.wikipedia.org/wiki/Barack_Obama"],
|
|
["wait.byTime", 3000],
|
|
["measure.stop", ""],
|
|
["measure.start", "interaction"],
|
|
["click.bySelectorAndWait", "a[href=\"/wiki/Honolulu\"]"],
|
|
["wait.byTime", 3000],
|
|
["measure.stop", ""]
|
|
]
|
|
},
|
|
{
|
|
"name": "google-slides-nav",
|
|
"type": "interactive",
|
|
"test_url": "https://docs.google.com/presentation/d/1Ici0ceWwpFvmIb3EmKeWSq_vAQdmmdFcWqaiLqUkJng/edit?usp=sharing",
|
|
"test_cmds": [
|
|
["measure.start", "load"],
|
|
[
|
|
"navigate",
|
|
"https://docs.google.com/presentation/d/1Ici0ceWwpFvmIb3EmKeWSq_vAQdmmdFcWqaiLqUkJng/edit?usp=sharing"
|
|
],
|
|
["wait.byTime", 5000],
|
|
["measure.stop", ""]
|
|
]
|
|
},
|
|
{
|
|
"name": "amazon-nav",
|
|
"type": "interactive",
|
|
"test_url": "https://www.amazon.ca/s?k=laptop&ref=nb_sb_noss_1",
|
|
"test_cmds": [
|
|
["measure.start", "load"],
|
|
["navigate", "https://www.amazon.ca/s?k=laptop&ref=nb_sb_noss_1"],
|
|
["wait.byTime", 4000],
|
|
["measure.stop", ""],
|
|
["measure.start", "interaction"],
|
|
[
|
|
"click.bySelectorAndWait",
|
|
"[data-component-type=\"s-search-result\"] a.a-link-normal[href*=\"/dp/\"]"
|
|
],
|
|
["wait.byTime", 4000],
|
|
["measure.stop", ""]
|
|
]
|
|
},
|
|
{
|
|
"name": "duckduckgo-nav",
|
|
"type": "interactive",
|
|
"test_url": "https://duckduckgo.com/?q=mandelbrot+set",
|
|
"test_cmds": [
|
|
["measure.start", "load"],
|
|
["navigate", "https://duckduckgo.com/?q=mandelbrot+set"],
|
|
["wait.byTime", 5000],
|
|
["measure.stop", ""],
|
|
["measure.start", "interaction"],
|
|
["click.bySelectorAndWait", "nav ul li:nth-of-type(2) > a"],
|
|
["wait.byTime", 5000],
|
|
["measure.stop", ""]
|
|
]
|
|
},
|
|
{
|
|
"name": "bbc-nav",
|
|
"type": "interactive",
|
|
"test_url": "https://www.bbc.com/news/",
|
|
"test_cmds": [
|
|
["measure.start", "load"],
|
|
["navigate", "https://www.bbc.com/news/"],
|
|
["wait.byTime", 4000],
|
|
["measure.stop", ""],
|
|
["measure.start", "interaction"],
|
|
["click.bySelectorAndWait", "a[href*=\"bbcindepth\"]"],
|
|
["wait.byTime", 3000],
|
|
["measure.stop", ""]
|
|
]
|
|
}
|
|
]
|
|
}
|