/** * QA360 Parallel Test Runner * * Runs multiple UI tests concurrently for faster execution. * Supports worker pools, load balancing, and resource limits. */ export interface ParallelTestConfig { /** Test definition to run */ test: any; /** Target configuration */ target: any; /** Worker timeout in ms */ timeout?: number; /** Maximum concurrent workers (default: CPU count) */ maxWorkers?: number; /** Number of retries for failed tests */ retries?: number; } export interface ParallelTestResult { test: any; success: boolean; duration: number; error?: string; artifacts?: any; workerId?: number; } export interface ParallelRunResult { success: boolean; totalTests: number; passed: number; failed: number; skipped: number; duration: number; results: ParallelTestResult[]; workerStats: { totalWorkers: number; totalJobs: number; avgJobDuration: number; }; } export interface WorkerMessage { type: 'run' | 'result' | 'error' | 'timeout'; testId: string; data?: any; error?: string; } export interface WorkerJob { id: string; test: any; target: any; retries: number; workerId?: number; } /** * Parallel Test Runner * * Executes multiple tests concurrently using worker threads. * Each test runs in isolation with its own browser instance. */ export declare class ParallelTestRunner { private maxWorkers; private timeout; private retries; private workerPool; private activeJobs; constructor(config?: { maxWorkers?: number; timeout?: number; retries?: number; }); /** * Run tests in parallel */ runParallel(tests: any[], target: any): Promise; /** * Run a single worker job */ private runWorker; /** * Sleep utility */ private sleep; /** * Clean up all workers */ cleanup(): Promise; /** * Get optimal worker count based on resources */ static getOptimalWorkerCount(): number; } /** * Create a parallel test runner */ export declare function createParallelRunner(config?: { maxWorkers?: number; timeout?: number; retries?: number; }): ParallelTestRunner; /** * Run tests in parallel (convenience function) */ export declare function runParallelTests(tests: any[], target: any, config?: { maxWorkers?: number; timeout?: number; retries?: number; }): Promise;