BrowserLab: Automated regression detection for the web

This post introduces BrowserLab, an automated system for detecting client-side performance regressions in web applications. It details the challenges of measuring client performance at scale, including sources of noise like environment, data dynamism, and code non-determinism. The system design incorporates an HTTP proxy to isolate server noise, RAM disks to reduce client environment noise, a backend proxy for consistent data views, and deterministic replacements for random functions in client and server code. The experiment procedure involves recording and replaying requests to achieve high accuracy (20ms with 95% confidence). BrowserLab is integrated into CI pipelines for automated regression detection and bisecting to identify problematic commits.