lightweight-browser-load-tester
Version:
A lightweight load testing tool using real browsers for streaming applications with DRM support
97 lines (96 loc) • 2.53 kB
TypeScript
import { TestResults, BrowserMetrics, DRMMetrics, NetworkMetrics, ErrorLog, PrometheusConfiguration } from '../types/index';
/**
* Configuration for report generation
*/
export interface ReportConfig {
outputPath?: string;
formats: ('html' | 'json' | 'csv')[];
includeDetailedMetrics?: boolean;
includeErrorAnalysis?: boolean;
}
/**
* Aggregates test results from multiple browser instances and generates reports
*/
export declare class ResultsAggregator {
private testResults;
private startTime;
private endTime?;
private prometheusExporter?;
constructor(prometheusConfig?: PrometheusConfiguration);
/**
* Add browser metrics from a single instance
*/
addBrowserMetrics(metrics: BrowserMetrics): void;
/**
* Add DRM metrics
*/
addDRMMetrics(metrics: DRMMetrics): void;
/**
* Add network metrics
*/
addNetworkMetrics(metrics: NetworkMetrics[]): void;
/**
* Add error log entry
*/
addError(error: ErrorLog): void;
/**
* Finalize test results and calculate summary statistics
*/
finalize(): void;
/**
* Get the aggregated test results
*/
getResults(): TestResults;
/**
* Shutdown the aggregator and flush any remaining Prometheus metrics
*/
shutdown(): Promise<void>;
/**
* Generate reports in specified formats
*/
generateReports(config: ReportConfig): Promise<void>;
/**
* Calculate summary statistics from collected metrics
*/
private calculateSummary;
/**
* Generate JSON report
*/
private generateJSONReport;
/**
* Generate HTML report
*/
private generateHTMLReport;
/**
* Generate CSV report
*/
private generateCSVReport; /**
* Generate HTML content for the report
*/
private generateHTMLContent;
/**
* Generate browser metrics section for HTML report
*/
private generateBrowserMetricsHTML;
/**
* Generate DRM metrics section for HTML report
*/
private generateDRMMetricsHTML;
/**
* Generate error analysis section for HTML report
*/
private generateErrorAnalysisHTML;
/**
* Generate summary CSV content
*/
private generateSummaryCSV;
/**
* Generate network metrics CSV content
*/
private generateNetworkMetricsCSV;
/**
* Generate browser metrics CSV content
*/
private generateBrowserMetricsCSV;
}
//# sourceMappingURL=results-aggregator.d.ts.map