playwright-performance-reporter
Version:
Measure and publish performance metrics from browser dev-tools when running playwright
74 lines (73 loc) • 2.3 kB
TypeScript
import type CDP from 'chrome-remote-interface';
export declare enum HookOrderToMetricOrder {
'onStart' = "startMetrics",
'onStop' = "stopMetrics"
}
export declare enum HookOrderToMeasurementOrder {
'onStart' = "startMeasurement",
'onStop' = "endMeasurement"
}
export declare enum HookOrderToMeasurementOffsetOrder {
'onStart' = "startMeasurementOffset",
'onStop' = "endMeasurementOffset"
}
/**
* Common metric type
*/
export type Metric = Record<string, string | number>;
/**
* Metric type specific for targets
*/
export type TargetMetric = {
metric: Metric;
} & Partial<CDP.Target>;
/**
* Common interface to expose performance metrics during a timeframe
*/
export type PerformanceMetrics = {
/**
* Unix timestamp of start of capture
*/
startMeasurement: number;
/**
* Amount of milliseconds between metric trigger and when it was measured
*/
startMeasurementOffset?: number;
/**
* Unix timestamp of end of capture
*/
endMeasurement: number;
/**
* Amount of milliseconds between metric trigger and when it was measured
*/
endMeasurementOffset?: number;
/**
* Metrics gathered from the extractors
*/
startMetrics: TargetMetric[];
/**
* Metrics gathered from the extractors
*/
stopMetrics: TargetMetric[];
/**
* Metrics gathered from the extractors in sampling mode
*/
samplingMetrics: TargetMetric[];
};
/**
* Plugin to execute before the metrics are fetched. Can be used to make the metrics fetch possible.
*/
export type MeasurePlugin = <T extends CDP.Client>(developmentTools: T) => Promise<any>;
/**
* Start metric measurement and write the preliminary result into the storage
*/
export type OnStartMeasure = <T extends CDP.Client>(accumulator: Metric, developmentTools: T) => Promise<void>;
/**
* Sampling metric measurement and write the result into the storage
*/
export type OnSamplingMeasure = <T extends CDP.Client>(accumulator: Metric, developmentTools: T) => Promise<void>;
/**
* Stop metric measurement and write the result into the storage
*/
export type OnStopMeasure = <T extends CDP.Client>(accumulator: Metric, developmentTools: T) => Promise<void>;
export { type default as CDP } from 'chrome-remote-interface';