UNPKG

playwright-performance-reporter

Version:

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

98 lines (97 loc) 2.69 kB
import type CDP from 'chrome-remote-interface'; import { type ChromiumMetricObserver, type Metric, type ObserverOptions } from '../../../types/index.js'; /** * Options for the NetworkActivityObserver */ export type NetworkActivityObserverOptions = ObserverOptions & { /** * When true, sampling returns full details array. When false (default), only aggregated values. */ includeDetailsInSampling?: boolean; }; /** * Network activity data for a single request */ export type NetworkActivity = { requestId: string; url: string; method: string; status?: number; transferSize?: number; duration?: number; timestamp: number; }; /** * Aggregated network metrics */ export type NetworkAggregatedMetrics = { totalNetworkRequests: number; totalNetworkTransferSize: number; totalNetworkDuration: number; }; /** * Network activity observer result */ export type NetworkActivityResult = NetworkAggregatedMetrics & { networkActivities: NetworkActivity[]; }; export declare class NetworkActivityObserver implements ChromiumMetricObserver { protected options?: NetworkActivityObserverOptions | undefined; readonly name = "networkActivity"; readonly plugins: import("../../../index.js").ChromiumMeasurePlugin[]; private readonly includeDetailsInSampling; private readonly requestStartTimes; private readonly requestMethods; private readonly networkActivities; private readonly subscriptions; private isEnabled; constructor(options?: NetworkActivityObserverOptions | undefined); /** * @inheritdoc */ onStart(accumulator: Metric, developmentTools: CDP.Client): Promise<void>; /** * @inheritdoc */ onSampling(accumulator: Metric, developmentTools: CDP.Client): Promise<void>; /** * @inheritdoc */ onStop(accumulator: Metric, developmentTools: CDP.Client): Promise<void>; /** * Common function for all lifecycle hooks */ private common; /** * Setup network event listeners */ private setupListeners; /** * Setup requestWillBeSent event listener * * @param client */ private setupRequestWillBeSent; /** * Setup responseReceived event listener * * @param client */ private setupResponseReceived; /** * Setup loadingFinished event listener * * @param client */ private setupLoadingFinished; /** * Setup loadingFailed event listener * * @param client */ private setupLoadingFailed; /** * Calculate aggregated metrics from collected activities */ private calculateAggregatedMetrics; }