在 puppeteer 中使用 page.getMetrics() 获取页面加载时间
Using page.getMetrics() to get page load time in puppeteer
我正在尝试使用 puppeteer 来衡量一组网站在我的环境中的加载速度。我的重点是网络连接的质量和网络速度,所以我很高兴知道页面 load 所花费的时间,对于外行人的加载定义,当所有图像和html 由浏览器下载。
通过使用 puppeteer,我可以 运行 重复测试并精确测量加载时间的差异。
我可以在 64.0.3240.0 (r508693)
中看到 page.getMetrics
和 event: 'metrics'
已经着陆,这应该可以帮助我找到我要找的东西。
但是作为 node 和 js 的新手,我不确定如何阅读 page.getMetrics
以及不同的 key/value 对中的哪一个在我的上下文中提供了有用的信息。
我目前阅读指标的可悲尝试如下:
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();
非常感谢任何帮助使此代码成为更受人尊敬的东西的人:)
在最近的版本中,您有 page.metrics()
可用:
它会return一个带有一堆数字的对象,包括:
- 获取指标样本时的时间戳
- 所有页面布局的总持续时间
- 浏览器执行的所有任务的总持续时间。
查看 full list
的文档
你可以这样使用它:
await page.goto('https://github.com/login');
const gitMetrics = await page.metrics();
console.log(gitMetrics.Timestamp)
console.log(gitMetrics.TaskDuration)
我正在尝试使用 puppeteer 来衡量一组网站在我的环境中的加载速度。我的重点是网络连接的质量和网络速度,所以我很高兴知道页面 load 所花费的时间,对于外行人的加载定义,当所有图像和html 由浏览器下载。
通过使用 puppeteer,我可以 运行 重复测试并精确测量加载时间的差异。
我可以在 64.0.3240.0 (r508693)
中看到 page.getMetrics
和 event: 'metrics'
已经着陆,这应该可以帮助我找到我要找的东西。
但是作为 node 和 js 的新手,我不确定如何阅读 page.getMetrics
以及不同的 key/value 对中的哪一个在我的上下文中提供了有用的信息。
我目前阅读指标的可悲尝试如下:
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();
非常感谢任何帮助使此代码成为更受人尊敬的东西的人:)
在最近的版本中,您有 page.metrics()
可用:
它会return一个带有一堆数字的对象,包括:
- 获取指标样本时的时间戳
- 所有页面布局的总持续时间
- 浏览器执行的所有任务的总持续时间。
查看 full list
的文档你可以这样使用它:
await page.goto('https://github.com/login');
const gitMetrics = await page.metrics();
console.log(gitMetrics.Timestamp)
console.log(gitMetrics.TaskDuration)