使用page.getMetrics()获取操纵p中的页面加载时间

Raj*_*Raj 3 javascript node.js google-chrome-headless puppeteer

我正在尝试使用puppeteer来衡量一组网站在我的环境中加载的速度。我的重点是网络连接的质量和网络速度,因此当浏览器下载所有图像和html时,我很高兴知道页面加载所需的时间,外行的加载定义。

通过使用puppeteer,我可以重复运行测试并精确测量加载时间的差异。

我可以看到它64.0.3240.0 (r508693) page.getMetricsevent: 'metrics'降落,这应该有助于我获得所需的东西。

但是作为node和js的新手,我不确定如何读取page.getMetrics以及不同的键/值对中的哪一个在我的上下文中提供了有用的信息。

我目前在读取指标时的可悲尝试如下:

const puppeteer = require('puppeteer');
async function run() {
    const browser = await puppeteer.launch({args: ['--no-sandbox', '--disable-setuid-sandbox']});
    const page = await browser.newPage();
    page.on('load', () => console.log("Loaded: " + page.url()));
    await page.goto('https://google.com');
    const metrics = page.getMetrics();
    console.log(metrics.Documents, metrics.Frames, metrics.JSEventListeners);
    await page.goto('https://yahoo.com');
    await page.goto('https://bing.com');
    await page.goto('https://github.com/login');
    browser.close();
}
run();
Run Code Online (Sandbox Code Playgroud)

非常感谢在此代码方面获得更多帮助的任何帮助:)

Ram*_*iro 9

在最新版本中,您可以page.metrics()使用:

它将返回带有一堆数字的对象,包括:

  • 度量指标采样的时间戳
  • 所有页面布局的合并持续时间
  • 浏览器执行的所有任务的总持续时间。

查看文档以获取完整列表

您可以像这样使用它:

await page.goto('https://github.com/login');
const gitMetrics = await page.metrics();
console.log(gitMetrics.Timestamp) 
console.log(gitMetrics.TaskDuration)
Run Code Online (Sandbox Code Playgroud)