зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1701927 - Extend the PerfStats test to be a user journey, capturing all useful metrics r=sparky
Previously the test only visited a single site. We now capture metrics over a user journey of visiting 5 sites cold and then the same sites warm. This gives a more representative view of performance. Differential Revision: https://phabricator.services.mozilla.com/D110833
This commit is contained in:
Родитель
8eeb880d84
Коммит
27a084549a
|
@ -242,7 +242,7 @@ hw-g5-perfstats-gv:
|
|||
--verbose
|
||||
--perfherder
|
||||
--perfherder-app geckoview
|
||||
--perfherder-metrics name:HttpChannelCompletion_Cache,unit:ms name:HttpChannelCompletion_Network,unit:ms
|
||||
--perfherder-metrics name:HttpChannelCompletion_Cache,unit:ms name:HttpChannelCompletion_Network,unit:ms name:DisplayListBuilding,unit:ms name:Reflowing,unit:ms name:Styling,unit:ms
|
||||
--browsertime-iterations 10
|
||||
--hooks testing/performance/hooks_perfstats.py
|
||||
testing/performance/perftest_perfstats.js
|
||||
|
@ -272,7 +272,7 @@ hw-p2-perfstats-gv:
|
|||
--verbose
|
||||
--perfherder
|
||||
--perfherder-app geckoview
|
||||
--perfherder-metrics name:HttpChannelCompletion_Cache,unit:ms name:HttpChannelCompletion_Network,unit:ms
|
||||
--perfherder-metrics name:HttpChannelCompletion_Cache,unit:ms name:HttpChannelCompletion_Network,unit:ms name:DisplayListBuilding,unit:ms name:Reflowing,unit:ms name:Styling,unit:ms
|
||||
--browsertime-iterations 10
|
||||
--hooks testing/performance/hooks_perfstats.py
|
||||
testing/performance/perftest_perfstats.js
|
||||
|
@ -302,7 +302,7 @@ hw-g5-perfstats-fenix:
|
|||
--verbose
|
||||
--perfherder
|
||||
--perfherder-app fenix
|
||||
--perfherder-metrics name:HttpChannelCompletion_Cache,unit:ms name:HttpChannelCompletion_Network,unit:ms
|
||||
--perfherder-metrics name:HttpChannelCompletion_Cache,unit:ms name:HttpChannelCompletion_Network,unit:ms name:DisplayListBuilding,unit:ms name:Reflowing,unit:ms name:Styling,unit:ms
|
||||
--browsertime-iterations 10
|
||||
--hooks testing/performance/hooks_perfstats.py
|
||||
testing/performance/perftest_perfstats.js
|
||||
|
@ -332,7 +332,7 @@ hw-p2-perfstats-fenix:
|
|||
--verbose
|
||||
--perfherder
|
||||
--perfherder-app fenix
|
||||
--perfherder-metrics name:HttpChannelCompletion_Cache,unit:ms name:HttpChannelCompletion_Network,unit:ms
|
||||
--perfherder-metrics name:HttpChannelCompletion_Cache,unit:ms name:HttpChannelCompletion_Network,unit:ms name:DisplayListBuilding,unit:ms name:Reflowing,unit:ms name:Styling,unit:ms
|
||||
--browsertime-iterations 10
|
||||
--hooks testing/performance/hooks_perfstats.py
|
||||
testing/performance/perftest_perfstats.js
|
||||
|
|
|
@ -231,7 +231,7 @@ perfstats:
|
|||
--browsertime-geckodriver ${MOZ_FETCHES_DIR}/geckodriver
|
||||
--output $MOZ_FETCHES_DIR/../artifacts
|
||||
--perfherder
|
||||
--perfherder-metrics name:HttpChannelCompletion_Cache,unit:ms name:HttpChannelCompletion_Network,unit:ms
|
||||
--perfherder-metrics name:HttpChannelCompletion_Cache,unit:ms name:HttpChannelCompletion_Network,unit:ms name:DisplayListBuilding,unit:ms name:Reflowing,unit:ms name:Styling,unit:ms
|
||||
--browsertime-iterations 10
|
||||
--hooks testing/performance/hooks_perfstats.py
|
||||
testing/performance/perftest_perfstats.js
|
||||
|
|
|
@ -245,7 +245,7 @@ perfstats:
|
|||
--browsertime-geckodriver ${MOZ_FETCHES_DIR}/geckodriver
|
||||
--output $MOZ_FETCHES_DIR/../artifacts
|
||||
--perfherder
|
||||
--perfherder-metrics name:HttpChannelCompletion_Cache,unit:ms name:HttpChannelCompletion_Network,unit:ms
|
||||
--perfherder-metrics name:HttpChannelCompletion_Cache,unit:ms name:HttpChannelCompletion_Network,unit:ms name:DisplayListBuilding,unit:ms name:Reflowing,unit:ms name:Styling,unit:ms
|
||||
--browsertime-iterations 10
|
||||
--hooks testing/performance/hooks_perfstats.py
|
||||
testing/performance/perftest_perfstats.js
|
||||
|
|
|
@ -193,7 +193,7 @@ perfstats:
|
|||
--browsertime-node ${MOZ_FETCHES_DIR}/node/node.exe
|
||||
--output $MOZ_FETCHES_DIR/../artifacts
|
||||
--perfherder
|
||||
--perfherder-metrics name:HttpChannelCompletion_Cache,unit:ms name:HttpChannelCompletion_Network,unit:ms
|
||||
--perfherder-metrics name:HttpChannelCompletion_Cache,unit:ms name:HttpChannelCompletion_Network,unit:ms name:DisplayListBuilding,unit:ms name:Reflowing,unit:ms name:Styling,unit:ms
|
||||
--browsertime-iterations 10
|
||||
--hooks testing/performance/hooks_perfstats.py
|
||||
testing/performance/perftest_perfstats.js
|
||||
|
|
|
@ -2,15 +2,37 @@
|
|||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
|
||||
const url = "https://www.google.com";
|
||||
const urls = [
|
||||
"https://accounts.google.com",
|
||||
"https://cnn.com/ampstories/us/why-hurricane-michael-is-a-monster-unlike-any-other",
|
||||
"https://stackoverflow.com/questions/927358/how-do-i-undo-the-most-recent-commits-in-git",
|
||||
"https://expedia.com/Hotel-Search?destination=New+York%2C+New+York&latLong=40.756680%2C-73.986470®ionId=178293&startDate=&endDate=&rooms=1&_xpid=11905%7C1&adults=2",
|
||||
"https://m.imdb.com/title/tt0083943/",
|
||||
];
|
||||
|
||||
const idle_delay = 10000;
|
||||
|
||||
async function test(context, commands) {
|
||||
await commands.wait.byTime(5000);
|
||||
await commands.wait.byTime(idle_delay);
|
||||
|
||||
await commands.navigate(url);
|
||||
await commands.wait.byTime(5000);
|
||||
await commands.measure.start();
|
||||
|
||||
return commands.measure.start(url);
|
||||
// Cold
|
||||
for (const url of urls) {
|
||||
await commands.navigate(url);
|
||||
await commands.wait.byTime(idle_delay);
|
||||
}
|
||||
|
||||
await commands.navigate("about:blank");
|
||||
await commands.wait.byTime(idle_delay);
|
||||
|
||||
// Warm
|
||||
for (const url of urls) {
|
||||
await commands.navigate(url);
|
||||
await commands.wait.byTime(idle_delay);
|
||||
}
|
||||
|
||||
return commands.measure.stop();
|
||||
}
|
||||
|
||||
module.exports = {
|
||||
|
@ -20,7 +42,7 @@ module.exports = {
|
|||
description: "Collect perfstats for the given site",
|
||||
longDescription: `
|
||||
This test launches browsertime with the perfStats option (will collect low-overhead timings, see Bug 1553254).
|
||||
The test currently runs a single site, google.com - the top-ranking global Alexa site.
|
||||
The test currently runs a short user journey. A selection of popular sites are visited, first as cold pageloads, and then as warm.
|
||||
`,
|
||||
usage: `
|
||||
./mach perftest --hook testing/performance/hooks_perfstats.py \
|
||||
|
|
Загрузка…
Ссылка в новой задаче