import { BenchmarkConfig, BenchmarkResult } from "../types"; import { Observable } from "rxjs"; export interface WrkTestResult { groupName: string; testName: string; requests: number; duration: number; requestsPerSecond: number; latency: { avg: number; stdev: number; max: number; p50: number; p75: number; p90: number; p95: number; p99: number; stdevPercent: number; }; transfer: { total: number; perSecond: number; }; errors: { connect: number; read: number; write: number; timeout: number; }; performance: { efficiency: number; errorRate: number; throughput: number; }; } export interface TestProgress { groupName: string; completed: number; total: number; percentage: number; currentTest?: string; errors: number; totalErrors: number; } export interface RealTimeStats { totalRequests: number; successfulRequests: number; failedRequests: number; averageResponseTime: number; requestsPerSecond: number; errorRate: number; currentConcurrency: number; maxConcurrency: number; } export interface TestEngineOptions { outputDir?: string; generateScripts?: boolean; cleanupScripts?: boolean; showProgress?: boolean; verbose?: boolean; } export declare class TestEngine { private config; private reportStorage; private progressSubject; private statsSubject; private startTime; private options; private wrkScriptsDir; private wrkPath; constructor(config: BenchmarkConfig, options?: TestEngineOptions); /** * 初始化 wrk 路径 */ private initializeWrkPath; /** * 初始化引擎 */ initialize(): Promise; /** * 清理临时文件 */ private cleanup; /** * 检查 wrk 是否安装 */ private checkWrkInstallation; /** * 确保输出目录存在 */ private ensureOutputDir; /** * 生成 wrk 测试脚本 */ private generateWrkScripts; /** * 为单个测试组生成 wrk 脚本 */ private generateGroupScript; /** * 构建完整 URL */ private buildFullUrl; /** * 运行完整的基准测试 */ runBenchmark(): Promise; /** * 使用 wrk 执行单个测试组 */ private executeGroupWithWrk; /** * 串行执行测试组中的所有接口 */ private executeGroupSequentially; /** * 并行执行测试组中的所有接口 */ private executeGroupInParallel; /** * 执行单个接口测试 */ private executeIndividualTest; /** * 为单个接口生成 wrk 脚本 */ private generateIndividualTestScript; /** * 创建空的统计数据 */ private createEmptyStats; /** * 合并统计数据 */ private mergeStats; /** * 计算加权平均值 */ private weightedAverage; /** * 运行 wrk 命令 */ private runWrkCommand; /** * 解析 wrk 输出 - 改进版本,正确解析延迟分布 */ private parseWrkOutput; /** * 解析时间单位 (us, ms, s) 并转换为毫秒 */ private parseTimeUnit; /** * 转换 wrk 结果为 RequestResult 格式 */ private convertWrkResultsToRequestResults; /** * 发送实时统计 */ private emitRealTimeStats; /** * 打印最终结果 - 优雅版 */ private printFinalResults; /** * 清理临时脚本文件 */ private cleanupScripts; /** * 获取进度流 */ getProgressStream(): Observable; /** * 获取统计流 */ getStatsStream(): Observable; /** * 销毁引擎 */ destroy(): void; } //# sourceMappingURL=wrk-test-engine.d.ts.map