perfrunner-core
Version:
Automated UI performance test tool to measure performance changes for the web apps and sites
66 lines (65 loc) • 1.88 kB
TypeScript
import { Page } from 'puppeteer';
declare type TraceEvents = TraceEvent[];
export declare type Trace = {
traceEvents: TraceEvents;
};
declare type TraceEventName = 'ResourceFinish' | 'ResourceSendRequest' | 'ResourceReceiveResponse';
export interface TraceEvent {
cat: string;
name: TraceEventName;
args: {
data?: {
requestId: string;
};
};
}
interface ResourceFinishTraceEvent extends TraceEvent {
args: {
data: {
requestId: string;
decodedBodyLength: number;
encodedDataLength: number;
finishTime: number;
};
};
}
interface ResourceSendRequestTraceEvent extends TraceEvent {
args: {
data: {
requestId: string;
priority: string;
requestMethod: string;
url: string;
};
};
}
interface ResourceReceiveResponseTraceEven extends TraceEvent {
args: {
data: {
requestId: string;
encodedDataLength: number;
mimeType: string;
statusCode: number;
timing: unknown;
};
};
}
declare type TracedResourceData = {
sendRequest?: ResourceSendRequestTraceEvent;
receiveResponse?: ResourceReceiveResponseTraceEven;
finish?: ResourceFinishTraceEvent;
};
export declare class Tracer {
private readonly _outputFolder;
private _page;
private _path;
constructor(_outputFolder: string);
start: (page: Page) => Promise<void>;
stop: () => Promise<Trace>;
private generateTracePath;
private generateTraceName;
private ensureFolderCreated;
}
export declare function subsetTrace(trc: TraceEvents): TraceEvent[];
export declare function extractResourceData(url: string, trace: TraceEvents): TracedResourceData;
export {};