Suggest a tool

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

Mobile automation tools. Sorted by GitHub stars, descending. Select a column heading to change the sort.
Appium21,99612026-08-241@appium/docutils@3.0.02026-09-221Apache-2.0TypeScriptactive
Maestro15,75212026-08-311cli-2.10.02026-09-181Apache-2.0Kotlinactive
Detox12,02712026-05-30120.51.32026-06-161MITJavaScriptslow
WebdriverIO9,84012026-09-201v9.32.02026-09-221MITTypeScriptactive
EarlGrey5,70012022-06-0712.2.22023-09-091Apache-2.0Objective-Cinactive
WebDriverAgent1,79312026-09-211v16.12.102026-09-211BSD-3-ClauseObjective-Cactive
Patrol1,43312026-09-201patrol-v4.11.0-dev.12026-09-171Apache-2.0Dartactive
AndroidX Test1,22412024-06-261axt_06_24_20242026-09-221Apache-2.0Javaactive
Appium UiAutomator2 Driver88212026-09-141v8.7.02026-09-141Apache-2.0TypeScriptactive
Kakao37112025-11-1413.7.02026-04-271Apache-2.0Kotlinslow

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.

  1. 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
  2. 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
  3. 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)
  4. 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
  5. 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
  6. 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)
  7. 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
  8. 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
  9. 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
  10. 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

Comparisons in this category