Category guides · published
"Best open source mobile automation tools": 10 listed, sorted by GitHub stars
Metrics as of , from the GitHub or GitLab API of each repository. Refreshed monthly.
This guide covers the open-source frameworks in the FreeQATools mobile automation category and groups them by the platforms, languages and test formats their documentation states. The table is sorted by GitHub stars on each tool's fetch date, not by opinion.
What the category covers
The mobile automation category holds frameworks that automate native and hybrid mobile apps on iOS and Android, as defined on the category hub. Each tool fact in this guide links one source in the same sentence: a README, a documentation page or the tool's FreeQATools page. A fact that a project does not document appears as "not documented" in its comparison tables.
Platforms
Several mobile automation entries document more than one platform. Appium reaches iOS, Android, macOS, Windows and other platforms through installed drivers. Maestro covers Android, iOS and web apps on emulators, simulators, browsers and physical Android devices. Detox targets React Native apps on Android and iOS. Patrol targets Flutter apps on Android and iOS, with macOS support marked alpha.
Some mobile automation entries are specific to Android. AndroidX Test is a set of libraries for testing Android apps. Kakao drives Android Framework views through Espresso. Appium UiAutomator2 Driver automates Android native, hybrid and mobile web apps on emulators and real devices.
Some mobile automation entries are specific to Apple platforms. EarlGrey targets native iOS apps. WebDriverAgent covers iOS and tvOS on devices and simulators.
How tests are written
Some mobile automation entries define tests in YAML or JavaScript. Maestro keeps each flow as a list of YAML commands such as tapOn and assertVisible. Detox provides JavaScript APIs that work with any test runner.
Some mobile automation entries define tests in Dart, Kotlin, Swift or Objective-C. Patrol tests are Dart functions that use custom finders. Kakao is a Kotlin DSL built on Espresso actions and assertions. EarlGrey test targets are written in Swift or Objective-C.
Some mobile automation entries work through the WebDriver protocol or Appium. Appium tests are written through WebDriver client libraries. The Appium README lists official clients for Java, Python, Ruby and .NET C#. WebDriverAgent receives WebDriver protocol commands sent to a server. WebdriverIO automates iOS, Android and Tizen apps through Appium.
Parallel runs and reports
Parallel execution in mobile automation is documented through different mechanisms. Maestro shards flows across connected devices from the CLI. AndroidX Test documents sharding through runner options. Detox runs tests across multiple Jest workers. Patrol uses Marathon, an external runner, for parallel runs on local device pools.
Documented report output differs between mobile automation entries. Maestro writes JUnit XML and HTML reports. Detox records device logs, screenshots and screen recordings as artifacts.
The Appium vs Maestro page sets the documented facts of both tools side by side. The Appium vs Detox page uses the same row set for its pair. The Maestro vs Detox page is a further comparison in this category. The comparison method explains how each cell is sourced.
How this list is sorted
The quoted title is a search query, not a verdict. FreeQATools does not rank tools by opinion. The list below is sorted by GitHub stars, descending, as fetched from the repository host API on the date shown with each value.
Stars count how many accounts have starred a repository. They say nothing about fit for a given project, so the documented facts under each tool are the part to compare.
Every tool here meets the inclusion rules: an OSI-approved license, a public repository, software testing or quality as its primary purpose and at least one release or tag. Each status badge follows the status rules on the methodology page.
Open-source mobile automation tools by GitHub stars
| Appium | 21,9961 | 2026-08-241@appium/docutils@3.0.0 | 2026-09-221 | Apache-2.0 | TypeScript | active |
|---|---|---|---|---|---|---|
| Maestro | 15,7521 | 2026-08-311cli-2.10.0 | 2026-09-181 | Apache-2.0 | Kotlin | active |
| Detox | 12,0271 | 2026-05-30120.51.3 | 2026-06-161 | MIT | JavaScript | slow |
| WebdriverIO | 9,8401 | 2026-09-201v9.32.0 | 2026-09-221 | MIT | TypeScript | active |
| EarlGrey | 5,7001 | 2022-06-0712.2.2 | 2023-09-091 | Apache-2.0 | Objective-C | inactive |
| WebDriverAgent | 1,7931 | 2026-09-211v16.12.10 | 2026-09-211 | BSD-3-Clause | Objective-C | active |
| Patrol | 1,4331 | 2026-09-201patrol-v4.11.0-dev.1 | 2026-09-171 | Apache-2.0 | Dart | active |
| AndroidX Test | 1,2241 | 2024-06-261axt_06_24_2024 | 2026-09-221 | Apache-2.0 | Java | active |
| Appium UiAutomator2 Driver | 8821 | 2026-09-141v8.7.0 | 2026-09-141 | Apache-2.0 | TypeScript | active |
| Kakao | 3711 | 2025-11-1413.7.0 | 2026-04-271 | Apache-2.0 | Kotlin | slow |
1 Fetched from the GitHub or GitLab API on . Hover a value for its own date.
Filters for language, license and status are on the mobile automation category page.
Tools in this list
Each entry gives the tool's one-line summary from its README and the facts its documentation states for this category, each with its source. Facts that are not documented are left out here and marked on the comparison pages.
Appium
WebDriver-based automation framework for mobile, desktop and IoT apps, extended through platform drivers, client libraries and plugins. README, read 2026-09-22
- Languages for writing tests
- Official clients for Java, Python, Ruby and .NET C#; third-party clients for other languages source: README
- Mobile platforms
- iOS, Android, macOS, Windows and other platforms through drivers; native, hybrid, mobile web and desktop apps source: README
- Test authoring format
- Code, through WebDriver client libraries source: README
- Parallel or distributed execution
- Parallel server processes and parallel driver sessions in one server process source: README
- Install method
- npm (npm i -g appium), then drivers with appium driver install source: README
Maestro
Framework for UI and end-to-end testing of Android, iOS and web apps using YAML flows. README, read 2026-09-22
- Languages for writing tests
- YAML flow files source: README
- Mobile platforms
- Android, iOS and web on emulators, simulators, browsers and physical Android devices source: README
- Test authoring format
- YAML commands such as launchApp, tapOn, assertVisible; visual flow building in Maestro Studio source: README
- Parallel or distributed execution
- CLI sharding across connected devices (--shards, --shard-split, --shard-all) source: Docs: Maestro CLI commands and options
- CI integration
- Report formats for Jenkins, GitHub Actions and Azure DevOps source: Docs: Test reports and artifacts
- Report formats
- JUnit XML, HTML, HTML detailed (--format flag) source: Docs: Test reports and artifacts
- Install method
- Install script (curl -fsSL "https://get.maestro.mobile.dev" | bash); requires Java 17 or higher source: README
Detox
Gray box end-to-end testing framework for React Native apps on Android and iOS, with tests in JavaScript. README, read 2026-09-22
- Languages for writing tests
- JavaScript source: README
- Mobile platforms
- React Native apps on Android and iOS source: README
- Test authoring format
- Code (JavaScript APIs usable with any test runner; Jest integration included) source: README
- Parallel or distributed execution
- Multiple Jest workers (--maxWorkers <N> forwarded by detox test) source: Docs: Parallel Test Execution
- CI integration
- Travis CI, CircleCI, Jenkins named in the README source: README
- Report formats
- Artifacts: device logs (.log), screenshots (.png), screen recordings (.mp4) source: Docs: Artifacts
- Install method
- npm (npm install detox --save-dev), with Jest source: Docs: Project setup (React Native)
WebdriverIO
Node.js framework for browser and mobile test automation over WebDriver, WebDriver BiDi and Appium. README, read 2026-09-22
- Languages for writing tests
- Node.js source: README
- Mobile platforms
- Mobile apps on iOS, Android and Tizen through Appium; desktop and TV apps source: Docs: Appium Setup
- Test authoring format
- Code with Mocha, Jasmine or Cucumber.js framework adapters source: Docs: Frameworks
- Parallel or distributed execution
- Concurrent workers per spec file and capability, set with maxInstances source: Docs: Organizing Test Suite
- CI integration
- Guide pages for GitHub Actions, Jenkins and Bamboo; Docker page source: Docs: Jenkins
- Report formats
- Reporter packages: spec, dot, concise, JUnit XML, Allure, Sumo Logic source: README
- Install method
- npm (npm init wdio@latest) source: Docs: Getting Started
EarlGrey
UI automation test framework for native iOS apps with automatic synchronization; version 1.0 is deprecated for EarlGrey 2. README, read 2026-09-22
- Languages for writing tests
- Swift (3.0 and 2.3) and Objective-C test targets source: Docs: Install and Run
- Mobile platforms
- Native iOS apps source: README
- Test authoring format
- Code with XCTest; runs from Xcode or xcodebuild source: README
- Install method
- CocoaPods, Carthage or manual Xcode project setup source: Docs: Install and Run
WebDriverAgent
WebDriver server for iOS and tvOS devices and simulators, built on XCTest and used by Appium's XCUITest driver. README, read 2026-09-22
- Mobile platforms
- iOS and tvOS, on devices and simulators source: README
- Test authoring format
- WebDriver protocol commands sent to a server (most of the WebDriver spec, part of the Mobile JSON Wire Protocol) source: README
- Install method
- Started as a UITest bundle with Xcode, xcodebuild or FBSimulatorControl source: Docs: Starting WebDriverAgent (wiki linked from the README)
Patrol
End-to-end UI testing framework for Flutter apps with native OS interactions such as permissions and notifications. README, read 2026-09-22
- Languages for writing tests
- Dart (Flutter tests) source: Docs: Write your first test
- Mobile platforms
- Flutter apps on Android 5.0 (API 21)+, iOS 13+, macOS 10.14+ (alpha); physical and virtual devices source: Docs: Supported platforms
- Test authoring format
- Code (Dart patrolTest functions with custom finders and native automation calls) source: Docs: Write your first test
- Parallel or distributed execution
- Through Marathon, an external runner for parallel execution on local device pools source: Docs: Marathon
- CI integration
- CI guide covering Firebase Test Lab, emulator.wtf, SauceLabs, Codemagic, GitHub Actions source: Docs: Platforms (CI)
- Report formats
- Results in native test format; LCOV coverage report source: Docs: patrol test
- Install method
- flutter pub add patrol --dev; CLI with flutter pub global activate patrol_cli source: Docs: Setup
AndroidX Test
AndroidX libraries for JUnit 4 and UI testing of Android apps, including Espresso, runner and orchestrator, plus Bazel support. README, read 2026-09-22
- Languages for writing tests
- JUnit 4 tests; runner docs show Kotlin and Java samples source: Docs: AndroidJUnitRunner
- Mobile platforms
- Android devices source: Docs: AndroidJUnitRunner
- Test authoring format
- Code: JUnit 4 and functional UI test APIs source: README
- Parallel or distributed execution
- Sharding with -e numShards and -e shardIndex runner options source: Docs: AndroidJUnitRunner
- CI integration
- Android testing docs include a CI basics guide (emulators running instrumented tests) source: Docs: Continuous Integration basics
- Install method
- Gradle androidTestImplementation dependencies from Google's Maven repository source: Docs: Set up project for AndroidX Test
Appium UiAutomator2 Driver
Appium driver that automates Android native, hybrid and mobile web apps on emulators and real devices through UiAutomator. README, read 2026-09-22
- Languages for writing tests
- Appium client code; README examples in Java, JavaScript (WebdriverIO), Python, Ruby, C# source: README
- Mobile platforms
- Android native, hybrid and mobile web apps on emulators and real devices source: README
- Test authoring format
- Code through W3C WebDriver clients, plus mobile: command extensions source: README
- Parallel or distributed execution
- Per-process or per-request parallel sessions source: README
- Install method
- Appium extension CLI (appium driver install uiautomator2), Appium 3 source: README
Kakao
Kotlin DSL for Espresso that structures Android UI tests around screens and typed view wrappers. README, read 2026-09-22
- Languages for writing tests
- Kotlin source: README
- Mobile platforms
- Android (Android Framework views driven through Espresso) source: README
- Test authoring format
- Code (Kotlin DSL with Screen and KView classes over Espresso actions and assertions) source: README
- Install method
- Gradle (androidTestImplementation io.github.kakaocup:kakao) or Maven dependency source: README