CheckOps
Marathon
Marathon is a GPL-2.0, platform-independent test runner for Android and iOS focused on performance and stability, with batching, device pools, sharding, sorting and preventive and post-factum retries.
- Mobile
- Android
- Ios
- Open source
- Free
- Flaky Tests
- Test Runner
- Command Line
- End-to-end & functional
- Release & CI gates
Latest public signals
Not refreshed yet. Refresh reads the public site and, when the entry has a GitHub repository, the latest release.
Introduction
Marathon is a project that helps execute mobile tests in the shortest time possible, with a focus on stability in the face of flakiness in the environment and in the tests. Its README describes it as a fast, platform-independent test runner with implementations for Android and iOS, plus an API for custom hardware farms.
Marathon implements key execution concepts: test batching, device pools, sharding, sorting, preventive retries and post-factum retries. It considers two aspects of each test, its expected duration and its probability of passing, using real-time statistics. The flakiness strategy queues preventive retries for tests expected to fail, and the sorting strategy runs long tests first so late retries do not extend the run. The primary goal is full control over the balance between stability, performance and cost. Configuration lives in a Marathonfile, and results include HTML reports, JUnit XML and timeline views. MarathonLabs also offers a commercial cloud service; the open-source runner is GPL-2.0, and version 0.10.5 was released on 21 July 2026.
The source code is at MarathonLabs/marathon on GitHub under the GPL-2.0 licence, with about 646 stars; the most recent commit was on 21 September 2026.
Features
- Smart scheduling: Duration- and flakiness-aware execution.
- Retries: Preventive and post-factum retry strategies.
- Device pools and sharding: Spread tests across many devices.
- Android and iOS: One runner for both platforms.
Pros
- Free to use: Open source under the GPL-2.0 licence, so the core tool costs nothing to use.
- Actively maintained: The repository had commits as recent as 21 September 2026.
Cons
- GPL-2.0 licence: Check compatibility with your tooling policies.
- Setup effort: Needs devices or emulators and configuration.
Usage and Links (Example)
# Marathonfile
name: "Shop UI tests"
outputDir: "build/reports/marathon"
vendorConfiguration:
type: "Android"
applicationApk: "app/build/outputs/apk/debug/app-debug.apk"
testApplicationApk: "app/build/outputs/apk/androidTest/debug/app-debug-androidTest.apk"
retryStrategy:
type: "fixed-quota"
totalAllowedRetryQuota: 50
marathon
Resources:
Pricing
Marathon is free and open source under the GPL-2.0 licence.
Recommended for?
- Mobile teams with large, flaky UI suites across many devices.
- Teams self-hosting device farms.
Conclusion
Marathon is a sophisticated open-source runner for fast, stable Android and iOS UI test execution.
Alternatives
Other tools on CheckOps that cover similar ground. Open a page, or compare one with Marathon side by side.
FFirebase Test LabFirebase Test Lab runs Android and iOS tests on Google-hosted devices. It is deprecated and scheduled to shut down on 30 September 2027.Compare with Marathon
AAWS Device FarmAWS Device Farm is an application testing service that allows you to test iOS, Android, and web applications on real smartphones, tablets and desktop web browsers.Compare with Marathon
EEspressoEspresso is an Android testing framework for writing concise, beautiful, and reliable UI tests that synchronize automatically with the application's UI.Compare with Marathon
XXCUITestA test automation framework for iOS applications, part of the XCTest framework.Compare with Marathon
KKaspressoKaspresso is Kaspersky's Apache-2.0 Android UI testing framework built on Espresso and UI Automator, adding flaky-test protection, a Kotlin DSL, Compose support, ADB access, detailed reports, Allure and Robolectric support.Compare with Marathon
Eemulator.wtfemulator.wtf is a commercial Android cloud emulator service focused on performance and fast pull request feedback, with a CLI, Gradle plugin, GitHub Actions integration, sharding and coverage.Compare with Marathon