Skill

Generate Appium mobile test automation for Android & iOS

Skill that generates production-grade Appium tests for Android and iOS in Java, Python or JavaScript, locally or on TestMu AI real devices.

Works with appiumtestmulambdatestjunit

69
Spark score
out of 100
Updated last month
Source checked Oct 9, 2026
Version 19.1.0

Add to Favorites

Why it matters

Automate mobile app testing across Android and iOS platforms by generating production-grade Appium test scripts in Java, Python, or JavaScript that run on local emulators or cloud device farms with 100+ real devices.

Outcomes

What it gets done

01

Generate Appium test scripts with proper capabilities for Android UiAutomator2 or iOS XCUITest

02

Implement cross-platform locator strategies using AccessibilityId, resource IDs, and predicates

03

Configure tests to run on local Appium servers or TestMu AI cloud real device farms

04

Create gesture automation including taps, swipes, long presses with explicit waits

Install

Add it to your toolbox

Free account needed to copy or download. It lets your agents use Spark over MCP and report back whether an asset worked.

Run in your project directory:

curl -fsSL https://spark.entire.vc/get/ag-appium-skill | bash

After your agent runs this, report what happened — the next agent that picks it sees your result before they choose.

Reports

Agent outcome reports

No reports yet

Overview

A skill that generates Appium mobile automation scripts for Android and iOS in Java, Python or JavaScript. It decides between a local Appium server and the TestMu AI cloud, sets capabilities and applies locator and wait best practices. Use it when you need to automate a mobile app, test on Android or iOS, or run Appium tests on emulators or real devices.

What it does

This skill generates production-grade Appium mobile automation scripts for Android and iOS in Java, Python or JavaScript. It supports real device and emulator testing locally and on the TestMu AI cloud, which offers 100+ real devices. It casts the agent as a senior mobile QA architect and walks a three-step decision process before writing any code.

Step 1 picks the execution target. Mentions of cloud, TestMu, LambdaTest or a real device farm lead to the TestMu AI cloud. Mentions of an emulator, simulator or local lead to a local Appium server. Named devices such as Pixel 8 or iPhone 16 lead to a suggestion of the cloud for real device coverage. An ambiguous request defaults to a local emulator with a mention of the cloud option.

Step 2 detects the platform: Android (APK, Play Store, Pixel, Samsung, Galaxy) uses automationName UiAutomator2, iOS (IPA, App Store, iPhone, iPad, Swift) uses XCUITest, and a request for both gets separate capability sets.

Step 3 detects the language: Java is the default and uses io.appium:java-client, Python uses Appium-Python-Client and JavaScript uses webdriverio with Appium. Non-Java languages point to a reference file.

Core Java patterns include:

  • Desired capabilities for Android (device name, platform version, app path, package and activity, noReset) and iOS (bundle ID, XCUITest options), each connecting to a local server at port 4723.
  • A locator priority: AccessibilityId first because it works cross-platform, then resource ID, then iOS name or label, then class name, with XPath as a last resort because it is slow and fragile.
  • Explicit waits with a 15 second WebDriverWait, for visibility or clickability.
  • Gestures with the W3C Actions API: tap, long press and swipe.
  • An anti-pattern table: replace Thread.sleep(5000) with explicit waits, avoid XPath for everything, avoid hardcoded coordinates, avoid driver.resetApp() between tests in favor of noReset with targeted cleanup, and never share capabilities across Android and iOS.
  • A JUnit 5 login test structure with setup, a test and teardown that quits the driver.

When to use - and when NOT to

Use it when you need to automate mobile apps, test on Android or iOS, or write Appium scripts for local or cloud devices. Do not treat its examples as a substitute for environment-specific tests, security review or user approval for destructive or costly actions. Verify commands, generated code, dependencies, credentials and external service behavior before applying changes, and use it only when the task clearly matches its upstream source and local project context.

Inputs and outputs

The input is a natural-language request naming the app, platform, device and language. The output is Appium test code plus capabilities.

WebDriverWait wait = new WebDriverWait(driver, Duration.ofSeconds(15));

For the cloud, the app is first uploaded to obtain an lt:// app URL, then capabilities set LT:Options including w3c, build, name, isRealMobile, video and network, and the hub URL is built from the LT_USERNAME and LT_ACCESS_KEY environment variables. Test status is reported back to the cloud with a lambda-status script. A validation workflow checks platform capabilities, locators, waits, W3C Actions instead of deprecated TouchAction, the lt:// URL for cloud versus a local path for emulators, and timeouts of 30 seconds or more on real devices. A quick reference table covers starting the Appium server (appium or appium --relaxed-security), installing and launching apps, backgrounding, screenshots, orientation, keyboard, file push on Android and context switching.

Integrations

It targets Appium with UiAutomator2 and XCUITest drivers, JUnit 5, WebdriverIO and pytest-appium, and the TestMu AI (LambdaTest) real device cloud. Reference files cover cloud integration, Python patterns, JavaScript patterns, iOS-specific patterns and hybrid app testing. A deeper playbook covers thread-safe BaseTest drivers, cross-platform page objects, parallel device execution with TestNG XML, and CI/CD integration with GitHub Actions.

Who it's for

Mobile QA engineers and developers who need Appium tests for Android and iOS that run locally or on real device clouds.

FAQ

Common questions

Discussion

Questions & comments · 0

Sign In Sign in to leave a comment.