尝试使用 puppeteer 框架获取 UI 性能 KPI,我有以下脚本
const puppeteer = require('puppeteer');
const select = require('puppeteer-select');
(async () => {
const launchOptions = {
headless: false,
executablePath: 'C:\\Program Files (x86)\\Google\\Chrome\\Application\\chrome.exe',
args: ['--start-maximized',
'--disable-web-security',
'--disable-features=IsolateOrigins,site-per-process'],
defaultViewport: null
};
const browser = await puppeteer.launch(launchOptions);
const url = "http://app.contries/user_interface";
const page = await browser.newPage();
try {
//Launch URL
await page.goto(url);
const performanceTiming = JSON.parse(
await page.evaluate(() => JSON.stringify(window.performance.timing))
);
console.log(performanceTiming);
} catch (error) {
console.error(error);
} finally {
await page.waitFor(10000);
console.log("Closing the browser session")
await browser.close();
}
})();
上面这段脚本的输出是:
connectStart: 1600180693460,
navigationStart: 1600180692020,
loadEventEnd: 1600180700487,
domLoading: 1600180697154,
secureConnectionStart: 0,
fetchStart: 1600180692021,
domContentLoadedEventStart: 1600180700039,
responseStart: 1600180697148,
responseEnd: 1600180697215,
domInteractive: 1600180700038,
domainLookupEnd: 1600180693460,
redirectStart: 0,
requestStart: 1600180693764,
unloadEventEnd: 0,
unloadEventStart: 0,
domComplete: 1600180700205,
domainLookupStart: 1600180693460,
loadEventStart: 1600180700205,
domContentLoadedEventEnd: 1600180700089,
redirectEnd: 0,
connectEnd: 1600180693764
如何从上述输出中获取以下 KPI:
- 标题时间
- 开始渲染的时间
- 互动时间
- DNS查询时间
- 连接时间
- 第一个字节的时间
- 到最后一个字节的时间
- 整体等待