UNPKG

playwright-performance-reporter

Version:

Measure and publish performance metrics from browser dev-tools when running playwright

45 lines (44 loc) 1.34 kB
import { performanceDomainPlugin } from '../plugins/index.js'; export class AllPerformanceMetrics { name = 'allPerformanceMetrics'; plugins = [ performanceDomainPlugin, ]; /** * @inheritdoc */ async onStart(accumulator, developmentTools) { await this.common(accumulator, developmentTools); } /** * @inheritdoc */ async onSampling(accumulator, developmentTools) { await this.common(accumulator, developmentTools); } /** * @inheritdoc */ async onStop(accumulator, developmentTools) { await this.common(accumulator, developmentTools); } /** * Common function for onStart and onStop hook */ async common(accumulator, client) { return new Promise(resolve => { client.send('Performance.getMetrics', (error, cdpResponse) => { if (!cdpResponse || Boolean(error)) { resolve(false); return; } if (cdpResponse.metrics.length === 0) { resolve(false); return; } Object.assign(accumulator, Object.fromEntries(cdpResponse.metrics.map(metric => [metric.name, metric.value]))); resolve(true); }); }); } }