← Index

Mobile & Desktop Test Harness

A self-contained Appium and emulator rig that tests the Android build without touching the machine's global setup.

Client
Codesage · EnAble India
Role
Framework author
Period
Jul 2026 — Present
runtime targets covered
3runtime targets covered
mobile platforms configured
2mobile platforms configured
global installs required
0global installs required

Overview

Automation infrastructure

MEL ships as a browser app, a Windows desktop app and an Android app from one Tauri codebase — which means the same regression has to run on all three. I built a harness that keeps its own JDK, Android SDK and emulator image inside a single folder, so it is reproducible on any machine and leaves no global installs behind.

SELF-CONTAINED PROJECT FOLDER — NO GLOBAL INSTALLSPinned JDKversion-lockedAndroid SDK + AVDfixed emulator imageAppium serverUiAutomator2Docker APK builderreproducible artefactPage Object frameworkBasePage · LoginPage · CandidatePage · CandidateProfilePageauth hooks · discovery runners · Android + iOS platform configsdrivesAndroid emulatorscriptable, deterministicMEL Android buildTauri 2 · offline storeDeterministic offline replay is whatmade the sync-cursor defect provable.
The harness is self-contained — JDK, SDK, AVD, Appium and the APK builder all live inside one folder.

01

Why self-contained

Mobile test setups rot. Someone updates a global JDK, an SDK licence changes, and the suite that passed last week will not start. I pinned every dependency inside the project folder — the JDK, the Android SDK, the AVD image and the Appium server — so the rig either works everywhere or fails identically everywhere.

02

What is in it

  • Page Object Model classes: BasePage, LoginPage, CandidatePage and CandidateProfilePage
  • Separate Android and iOS platform configurations behind one shared framework
  • An authentication hook so specs start from a signed-in state instead of re-driving login
  • Discovery and probe runners that map an unfamiliar screen's controls before a spec is written against it
  • Per-role application review sweeps that capture every module for a given role in one pass
  • A Docker-based APK builder that produces the Tauri Android artefact reproducibly
  • Mobile UAT sheets mirroring the web suites, so coverage is comparable across platforms

03

Where it pays off

Offline behaviour is the hardest thing to verify by hand, and it is exactly what a field officer depends on. Having a scriptable emulator meant I could reproduce the sync-cursor defect deterministically — write two records inside the same tick, force a sync, and watch one vanish — instead of arguing about whether it was real.

Stack

Mobile

  • Appium
  • Android SDK + AVD
  • UiAutomator2
  • iOS config

Structure

  • Page Object Model
  • Auth hooks
  • Discovery runners
  • Node.js

Build

  • Docker
  • Tauri Android
  • Reproducible APK pipeline

Desktop

  • Tauri Windows build verification
  • Release artefact checks