← All projects

Featured project 4 · Java · Android

Appium Android Framework

Android test automation with Appium 3, Java 17 and TestNG for the Sauce Labs My Demo App: 40 tests on an Android 15 emulator, locally and in GitHub Actions, with three real app bugs found.

Live CI status of Appium Android Framework

View source code View documentation View latest CI runs View test report

Purpose

Shows mobile test automation end to end: setup on Windows without Android Studio, screen objects, device behaviour, evidence for every failure, and an Android emulator in CI.

Technology stack

AreaTools
Mobile automationAppium 3.8 server, UiAutomator2 driver 8.7, Appium Java client 11
Test runnerTestNG 7.12 (groups, suites, retry analyzer)
DeviceAndroid 15 emulator (API 35), or a real phone over USB
ReportingCustom HTML report with steps, screenshots and screen recordings
CIGitHub Actions with reactivecircus/android-emulator-runner

Architecture overview

Tests (TestNG) ──▶ Screen objects + Header component + Device actions
                        │
                   BaseScreen (wait, tap, type, scroll, log each step)
                        │
                   DriverManager (one session per thread; app data cleared before each test)
                        │
        Appium server ──▶ UiAutomator2 ──▶ emulator / phone

Design reasons, and the failures that shaped them, are in docs/framework-design.md.

Key engineering decisions

Implemented features

Setup and execution

scripts/get-app.sh                           # downloads the pinned APK
emulator -avd Pixel_API_35 -no-snapshot-save
appium --use-plugins=inspector --allow-cors
mvn test                                     # 40 tests, about 16 min locally
mvn test -DsuiteXmlFile=known-bugs.xml       # the 3 known app bugs

Full setup guide: docs/setup.md.

Sample test results

Appium report: 40 of 40 passed
40 of 40 passed on the Android 15 emulator.

Bugs found in the demo app (My Demo App 2.3.0)

Report of the crash test with steps, error, screenshot and recording
The crash in the report: steps, error, the home screen at failure and the recording.

CI workflow

On every push: Java 17, Node 24, Appium and the driver at the same versions as the setup guide, KVM, an API 35 Pixel 7 emulator with animations off, totals in the run summary and the report, failure videos and Appium log as an artifact. 40 of 40 pass in about 9.5 minutes.

Known limitations and future improvements

Limitations

Next steps