【问题标题】:Using Puppeteer/Headless Chrome to report performance metrics使用 Puppeteer/Headless Chrome 报告性能指标
【发布时间】:2018-06-12 22:16:38
【问题描述】:

我正在尝试使用 Puppeteer 使用无头 Chrome,并试图找到如何报告首次绘制时间。我一直在查看 Chrome DevTools Performance API 并注意到有一个 Performance.metrics 但是当我订阅该事件时它从未触发。

const client = page._client
await client.send('Page.enable')
await client.send('DOM.enable')
await client.send('Performance.enable')
client.on('Performance.metrics', (obj) => {
   console.log({obj})
})
await page.goto('http://example.com', {waitUntil: 'networkidle2'})

但是事件观察者永远不会被触发。关于如何观察 Performance 中的指标数据有什么建议吗?

【问题讨论】:

    标签: performance-testing puppeteer google-chrome-headless


    【解决方案1】:

    如果您询问First Meaningful Paint,您可以使用:

    await page.goto('http://example');
    
    await page.waitFor(1000);
    const performanceMetrics = await page._client.send('Performance.getMetrics'); 
    console.log(performanceMetrics);
    

    我写了一篇文章"Test website performance with Puppeteer",其中有一章专门讨论FirstMeaningfulPaint

    【讨论】:

    • 谢谢!这正是我所需要的。我认为我需要在观察事件上使用 observable 而不是 send 命令返回一个对象。
    • 顺便说一下,@Everettss,您的网站此时已关闭。 :(
    • @Kangaroo.H 感谢您的报告!对于给您带来的暂时不便,我们深表歉意。
    • @Everettss 又上线了。干得好!
    • waitFor 真的很关键。为什么选择1000?如果在这 1000 毫秒内没有发生第一次有意义的绘制怎么办...
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-07
    • 2018-07-24
    • 2019-09-04
    • 1970-01-01
    • 2018-07-05
    • 2019-03-17
    相关资源
    最近更新 更多