Running Windows desktop tests from Linux with disposable VMs
jadenlemmon
86 points
30 comments
October 14, 2026
Related Discussions
Found 5 related stories in 168.6ms across 9,516 title embeddings via pgvector HNSW
- MicroVM sandbox on Win, Mac, Linux, with policy engine pploug · 12 pts · July 14, 2026 · 56% similar
- Run macOS Software on Linux Bluestein · 190 pts · August 31, 2026 · 52% similar
- Show HN: I built self-hosted deployment automation tool for Windows and IIS dt3ft · 28 pts · August 25, 2026 · 51% similar
- Show HN: Clawk – Give coding agents a disposable Linux VM, not your laptop celrenheit · 187 pts · July 13, 2026 · 51% similar
- Run Minecraft in a Windows sandbox for computer use agents someguy101010 · 23 pts · August 25, 2026 · 51% similar
Discussion Highlights (11 comments)
jadenlemmon
I work at QA Wolf and lead the development of automated testing for Windows desktop apps. I wanted to share what we did and how we did it. This post covers how we added Windows to a test infrastructure built around Linux runners. The central problem was giving each test a clean, logged-in Windows desktop without waiting 2–3 minutes for a VM to boot. We extended the device scheduler we already use for mobile testing. It maintains warm pools of Windows VMs on GCE. Each test claims a ready VM, uses it once, and releases it. The VM is then destroyed and replaced, rather than cleaned up for the next test. The test code stays in a Linux pod. Playwright connects to browsers on the Windows machine over CDP, while WebdriverIO and Appium handle native apps through WinAppDriver. A small Go agent captures the desktop with FFmpeg and streams it over WebRTC for live viewing and recordings. That separation lets a single test move between a browser and a native Windows app without requiring a separate Windows runner pipeline. The trade-off is that we keep idle Windows VMs ready and install the app under test on every run. In exchange, tests don’t inherit another run’s files, registry changes, or saved sessions. I’d love to answer any questions!
trollbridge
Not to dismiss this, but when I was working on a problem on Windows recently my LLM (6.1 Sol / oh-my-pi) ended up doing the same thing, although it used Qemu and snapshots to accomplish that. Eventually it got to a point it could iterate very quickly and was really only constrained by total system RAM which meant a dozen at most copies could be running simultaneously.
blahgeek
Nothing new here. VM + WebRTC + warm pool to absorb boot time
joinjune
We used several different LLM's and our own skills to build out some novel approaches to document creation with new workflows using QEMU in Linux after upgrading our desktops to Ubuntu from Windows 11.
ranger_danger
Why not use snapshots/save states so the VMs start back up right away? This is what I do with QEMU.
itissid
Why is the comments from the OP marked as flagged or dead at the bottom?
defied
We’ve been providing a similar approach with disposable VMs and emulators/simulators since 2014 at TestingBot. We run our own single-use QEMU VMs with Windows and Linux.
Luker88
what is the minimum license that I would need to do this legally, with just one or two VMs?
xlazom00
This is super slow solution I did build similar solution based on dockur. And it was sooo slow. Just use windows docker containers on windows server. With some hacks you can run any gui application.
msla
What's the licensing on Windows 11 these days? Can an individual still run an unregistered Windows 11 installation basically forever with only minor restrictions?
fhn
thanks for the advertisement