This describes a system that makes Windows desktop end-to-end testing scalable by treating each Windows VM as a disposable device rented on demand. It argues that Windows testing needs a full, logged-in VM (UI Automation requires an active desktop), cold boots take 2-3 minutes, and traditional Linux-first tooling doesn’t fit. The solution mirrors mobile testing: a Kubernetes-based controller maintains warm pools of Google Compute Engine VMs, a Linux runner pod runs test code, and each Windows VM runs the app plus automation agents. Tests claim a VM via a device scheduler, then drive browsers over CDP (Playwright) and native apps via WebdriverIO/Appium and WinAppDriver, while a Go agent streams the desktop over WebRTC for live view and recording.
Implementation details include three Kubernetes custom resources (WindowsVMTemplate, WindowsVMPool, WindowsVM), a reconciler that keeps pools stocked and moves VMs along a creation lifecycle, and single-use VMs that are destroyed after each test. Warm pools avoid cold-start delays, abandoned VMs are reclaimed after 60 seconds of silence, and images are built with Appium/WinAppDriver and common apps; private images support licensed software. Test logic stays on Linux via @qawolf/flows/windows, providing a unified API for Playwright and WebdriverIO, enabling parallelized, low-maintenance Windows desktop testing at enterprise scale.
Summary generated by AI from the linked article. hn.today is not affiliated with Hacker News or Y Combinator.