ResourceReceiveResponse против ResourceFini sh в трассировке кукловода - PullRequest
0 голосов
/ 09 апреля 2020

Я пытаюсь вычислить общее время, затраченное на запрос из 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());
...