Я пытаюсь вычислить общее время, затраченное на запрос из chrome trace. Я получаю след с помощью кукловода. Я знаю, что могу вычислить время, вычитая ts
из NavigationStart
времени, но я не уверен, стоит ли вычитать из ResourceReceiveResponse
событие ts или ResourceFinish
ts.
Я использую кукловод версии 2.1. 0
Вот мой код отслеживания
let args = puppeteer.defaultArgs().filter(arg => arg !== '--enable-devtools-experiments');
args.push('--enable-devtools-experiments');
let x = {
headless : false,
devtools : true,
args : ['--no-sandbox']
};
const browser = await puppeteer.launch({ ignoreDefaultArgs: true, args });
const page = await browser.newPage();
await page._client.send('Performance.enable');
await page.tracing.start({
// Use these categories instead of the puppeteer defaults
categories: [
'disabled-by-default-v8.cpu_profiler',
"disabled-by-default-v8.runtime_stats",
'devtools.timeline',
'v8.execute'
]
});
await page.goto("http://localhost:3000/check", {waitUntil: 'load', timeout: 0});
const metrics = await page._client.send('Performance.getMetrics');
const getTimeFromMetrics = (metrics, name) => metrics.metrics.find(x => x.name === name).value * 1000;
const navigationStart = getTimeFromMetrics(metrics, 'NavigationStart');
console.log(navigationStart);
// await page.goto("http://js-perf-tracker.dcos-apps.ncal.reports.mn/check", {waitUntil: 'load', timeout: 0});
const trace = JSON.parse(await page.tracing.stop());