mirror of
git://develop.git.wordpress.org/
synced 2025-02-24 00:24:52 +01:00
Adds new tests for localized sites as well as the dashboard. Also amends Server-Timing output to measure memory usage in all scenarios. Props swissspidy, joemcgill, flixos90, mukesh27, mamaduka. See #59656. Fixes #59815. git-svn-id: https://develop.svn.wordpress.org/trunk@57083 602fd350-edb4-49c9-b593-d223f7449a82
57 lines
1.4 KiB
JavaScript
57 lines
1.4 KiB
JavaScript
/**
|
|
* WordPress dependencies
|
|
*/
|
|
import { test } from '@wordpress/e2e-test-utils-playwright';
|
|
|
|
/**
|
|
* Internal dependencies
|
|
*/
|
|
import { camelCaseDashes } from '../utils';
|
|
|
|
const results = {
|
|
timeToFirstByte: [],
|
|
largestContentfulPaint: [],
|
|
lcpMinusTtfb: [],
|
|
};
|
|
|
|
test.describe( 'Front End - Twenty Twenty One', () => {
|
|
test.use( {
|
|
storageState: {}, // User will be logged out.
|
|
} );
|
|
|
|
test.beforeAll( async ( { requestUtils } ) => {
|
|
await requestUtils.activateTheme( 'twentytwentyone' );
|
|
} );
|
|
|
|
test.afterAll( async ( {}, testInfo ) => {
|
|
await testInfo.attach( 'results', {
|
|
body: JSON.stringify( results, null, 2 ),
|
|
contentType: 'application/json',
|
|
} );
|
|
} );
|
|
|
|
const iterations = Number( process.env.TEST_RUNS );
|
|
for ( let i = 1; i <= iterations; i++ ) {
|
|
test( `Measure load time metrics (${ i } of ${ iterations })`, async ( {
|
|
page,
|
|
metrics,
|
|
} ) => {
|
|
await page.goto( '/' );
|
|
|
|
const serverTiming = await metrics.getServerTiming();
|
|
|
|
for ( const [ key, value ] of Object.entries( serverTiming ) ) {
|
|
results[ camelCaseDashes( key ) ] ??= [];
|
|
results[ camelCaseDashes( key ) ].push( value );
|
|
}
|
|
|
|
const ttfb = await metrics.getTimeToFirstByte();
|
|
const lcp = await metrics.getLargestContentfulPaint();
|
|
|
|
results.largestContentfulPaint.push( lcp );
|
|
results.timeToFirstByte.push( ttfb );
|
|
results.lcpMinusTtfb.push( lcp - ttfb );
|
|
} );
|
|
}
|
|
} );
|