UNPKG

playwright-performance-reporter

Version:

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

68 lines (67 loc) 1.83 kB
import { ChromiumDevelopmentTools, } from '../browsers/chromium/index.js'; import { FirefoxDevelopmentTools, } from '../browsers/firefox/index.js'; import { WebkitDevelopmentTools, } from '../browsers/webkit/index.js'; export class MetricsEngine { /** * Client reference to the browser */ browser; /** * Options for connection to the browser */ browserOptions = {}; /** * Starts client * * @param browser which client to setup */ async setupBrowser(browser, options) { this.browserOptions = options; switch (browser) { case 'chromium': { this.browser = new ChromiumDevelopmentTools(this.browserOptions); break; } case 'firefox': { this.browser = new FirefoxDevelopmentTools(this.browserOptions); break; } case 'webkit': { this.browser = new WebkitDevelopmentTools(this.browserOptions); break; } default: { this.browser = undefined; return false; } } await this.browser?.connect(); return true; } /** * Shutdown client */ destroy() { this.browser?.destroy(); this.browser = undefined; } /** * Get current running client */ getBrowser() { return this.browser?.getBrowserName(); } /** * Dispatches metric fetch from browser and return metric * * @param metric which metric to measure * @param hookOrder step to run */ async getMetric(metric, hookOrder) { try { return await this.browser?.getMetric(metric, hookOrder); } catch { } return undefined; } }