Skip to content

Add Appium parallel execution support#46

Closed
omnarayan wants to merge 1 commit intomainfrom
feature/appium-parallel
Closed

Add Appium parallel execution support#46
omnarayan wants to merge 1 commit intomainfrom
feature/appium-parallel

Conversation

@omnarayan
Copy link
Copy Markdown
Contributor

@omnarayan omnarayan commented Apr 6, 2026

Summary

  • Enable --parallel N for the Appium driver — all N sessions hit the same --appium-url with identical capabilities, server (local or cloud) allocates devices
  • Per-worker cloud provider detection and result reporting (each session = separate cloud job)
  • Reuses existing ParallelRunner work-queue infrastructure — no changes to the executor layer

Usage

# 3 parallel sessions against same Appium URL
maestro-runner --driver appium --appium-url "http://localhost:4723" \
  --caps caps.json test --parallel 3 flows/

# Cloud — same thing, provider allocates devices
maestro-runner --driver appium --appium-url "https://ondemand.saucelabs.com/wd/hub" \
  --caps caps.json test --parallel 3 flows/

Test plan

  • go build ./... passes
  • go test ./pkg/cli/... ./pkg/executor/... passes
  • E2E: Android real device + emulator with --parallel 2 — flows distributed across both devices
  • E2E: Single session (--parallel 1 / no flag) — unchanged behavior
  • E2E: Cloud provider (Sauce Labs) with --parallel 2

Notes

  • iOS local Appium parallel requires appium:udid per session — Appium XCUITest driver doesn't auto-distribute across booted simulators with identical caps
  • Android local Appium parallel works automatically — UiAutomator2 distributes across available devices

Enable --parallel N for the Appium driver. All N sessions hit the same
Appium URL with identical capabilities — the server (local or cloud)
allocates devices. Cloud providers (Sauce Labs, BrowserStack) get
per-session result reporting.

Changes:
- determineExecutionMode: generate virtual IDs for Appium (like browser)
- createAppiumWorkers: create N sessions against same URL
- executeAppiumParallel: orchestrate workers via existing ParallelRunner
- Per-worker cloud provider detection and reporting
- Remove "parallel not yet supported" error for Appium
@omnarayan omnarayan closed this Apr 6, 2026
@omnarayan omnarayan deleted the feature/appium-parallel branch April 6, 2026 15:11
@omnarayan omnarayan restored the feature/appium-parallel branch April 6, 2026 15:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant