Device Server for an Android Farm or Running More Than 30k Tests Every Day
summary
Describes a custom Android test infrastructure that runs over 30,000 end-to-end tests per day by exposing ADB over HTTP (device-manager), using a coordinator to broker device resources, node managers that isolate one ADB process per device in Docker, and a curator/runner that queues, sequences and retries tests. Emulators are scaled with AVD snapshots, x86+GPU acceleration and readonly cloning to spawn hundreds in parallel, reducing test-suite runtime from about 50 minutes to 5–15 minutes.
AI-written summary · about
chapters (19)
- 0:00Introduction
- 1:08Testing infra team
- 1:35Need for custom infra
- 4:01Selenium Grid scaling
- 5:45Fault-tolerant architecture
- 8:14Coordinator and node managers
- 11:52Android testing transition
- 13:37Android test automation start
- 15:48Real device problems
- 16:50Android emulator integration
- 21:53Scaling to 250 emulators
- 22:34Scaling does not mean success
- 24:28Fighting flaky tests
- 25:33Coroner service for tests
- 29:50Integration into dev
- 33:23What we did and plans
- 36:15Testing results and metrics
- 36:56Recommendations and links
- 37:45Q&A
related talks
35mDockerization of a Real Mobile Device Farm and Scalable QA Automation Ecosystem
44mReliable. Scalable. fast. Running 1000000 Android tests with Selenoid
37mSelenoid Infrastructure: How to Run 1,000,000 Android Tests in Parallel
29mPros and Cons of Device Farms Available for Android
40mAndroid performance monitoring with automation
39mIndustrialize your Android Tests: a Tools and Methods Cookbook
38mBring your own phones to Gradle Managed Devices
34mSetting up Android UI Testing on CI
