Medir performance: page load
CODIGO ACTUALIZADO
jest.setTimeout(60000);
const puppeteer = require('puppeteer');
describe('Performance', () => {
let browser;
let page;
beforeEach(async () => {
browser = await puppeteer.launch({
headless: false,
args: ['--no-sandbox', '--disable-setuid-sandbox'],
});
page = await browser.newPage();
});
afterEach(async () => {
await browser.close();
});
test('Medir el performance de la automatizacion', async () => {
await page.goto('https://www.platzi.com/');
await page.waitForSelector('img');
const metrics = await page.metrics();
console.log(metrics);
});
test('Medir el performance de la pagina', async () => {
await page.goto('https://www.platzi.com/');
await page.waitForSelector('img');
const metrics2 = await page.evaluate(() => JSON.stringify(window.performance));
console.log(metrics2);
});
test('Medir el performance del page load', async () => {
await page.tracing.start({ path: 'trace.json' });
await page.goto('https://www.platzi.com/');
await page.tracing.stop();
});
test('Medir el performance del page load con screenshots', async () => {
await page.tracing.start({ path: 'trace-load-screenshots.json', screenshots: true });
await page.goto('https://www.platzi.com/');
await page.tracing.stop();
});
const fs = require('fs');
test('Medir el performance del page load con screenshots y extrayendolos', async () => {
await page.tracing.start({ path: 'trace-load-screenshots.json', screenshots: true });
await page.goto('https://www.platzi.com/');
await page.tracing.stop();
const tracing = JSON.parse(await fs.promises.readFile('trace-load-screenshots.json', 'utf8'));
const traceScreenshots = tracing.traceEvents.filter(event =>
event.cat === 'disabled-by-default-devtools.screenshot' &&
event.name === 'Screenshot' &&
event.args.snapshot
);
for (let i = 0; i < traceScreenshots.length; i++) {
const snap = traceScreenshots[i];
await fs.promises.writeFile(trace-screenshot-${i}.png, snap.args.snapshot, 'base64');
console.log(Imagen trace-screenshot-${i}.png creada);
}
});
});