Speedrun: An Open-Source Mobile E2E Test Runner
Achieve significantly faster mobile UI testing by eliminating fixed sleeps and polling mechanisms.
1Solving Mobile Testing Latency
Mobile UI testing often suffers from slow execution due to fixed sleeps, polling, and screenshot comparisons. Speedrun addresses this by using an on-device agent that monitors accessibility events on Android and idle states on iOS. This approach ensures test steps trigger immediately when the application is ready, rather than waiting for arbitrary timers.
2Performance Benchmarking Results
In a user journey test, Speedrun completed tasks in 20.4 seconds on Android and 27.2 seconds on iOS. This significantly outperforms Maestro, which took 126.5 seconds and 113.1 seconds respectively. The tool also demonstrated superior speed compared to Appium and XCUITest, particularly on Android emulators where it leverages efficient Linux-based runners.
3Mechanism for Rapid Execution
The runner avoids JVM overhead by using a single native binary. It reads the UI tree in approximately 10 milliseconds on Android using a compact binary protocol. By ignoring non-blocking elements like spinners or carousels, the agent accurately determines when a screen has settled, preventing unnecessary delays during complex test sequences.
4Compatibility and Integration
Speedrun is compatible with existing Maestro YAML flow formats, allowing developers to switch tools with minimal configuration changes. It supports integration with AI agents through an MCP server, enabling tools like Claude Code or Cursor to explore applications, perform actions, and save successful interaction steps directly as reusable YAML test flows.
5Enhanced Test Reliability
Beyond speed, the tool reduces flakiness by intelligently handling UI states. It avoids interacting with elements that are still animating or obscured by loading overlays. Furthermore, it automatically scrolls elements out from under sticky footers or keyboards before execution, ensuring more robust interactions compared to traditional screenshot-based or polling-based testing methods.
6Current Technical Limitations
As a young project at version 0.1.10, Speedrun currently supports Android emulators and devices but is limited to iOS simulators, with no support for real iOS hardware yet. Additionally, the tool does not support Maestro's AI-specific commands like assertWithAI, and Linux builds are currently restricted to Android-only testing environments.
7Optimizing CI/CD Pipelines
The tool's efficiency on Android emulators makes it highly suitable for CI/CD environments where execution time directly impacts developer feedback loops. By reducing the duration of test suites—such as the 19-flow React-Native suite where it proved 6.1x faster on Android—teams can run more frequent validations without increasing their total infrastructure costs.
8Future Development Trajectory
Speedrun represents a shift toward performance-oriented mobile testing, applying game development principles to UI automation. By open-sourcing the project under Apache 2.0, the developer invites community feedback to refine the tool. Future iterations will likely address current platform limitations and expand support for more complex test scenarios across diverse mobile applications.
Original article: Developing Android Apps — Speedrun: An Open-Source Mobile E2E Test Runner