android-e2e-maestro

Writes and runs Maestro YAML flows for Android end-to-end user journey tests.

Updated Jun 13, 2026
One-click install
npx skills add https://github.com/22Teikk/22Teikk-Agent-Skills-Hub --skill android-e2e-maestro-22teikk
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: android-e2e-maestro
Source: https://github.com/22Teikk/22Teikk-Agent-Skills-Hub/tree/main/packs/android/skills/android-e2e-maestro
Command: npx skills add https://github.com/22Teikk/22Teikk-Agent-Skills-Hub --skill android-e2e-maestro-22teikk

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Multi-screen Android journeys (navigation, DI, real app startup) cannot be covered by unit or Compose component tests alone, and hand-written E2E flows often fail because selectors are guessed instead of read from UI source. This Skill produces verified Maestro YAML flows that assert real user-entered values and actually pass on a device or emulator. ## Core Features & Use Cases - Selector-grounded flow generation: Reads Composable/layout source to extract testTag IDs, text, and content descriptions instead of hallucinating UI strings. - Value-asserting flows: Enforces assertions on dynamic values the user entered (and derived totals), plus persistence flows using clearState: false relaunches. - Permission dialog handling: Provides optional: true tap patterns for notification, location, and camera permission prompts, including denial-path testing. - Mandatory verification: Runs maestro test on an emulator or device and iterates on failures before marking work complete. - Use Case: A SPEC declares E2E: Maestro for an "add expense" acceptance criterion; the Skill reads the screens, writes .teikk/maestro/flows/create_expense.yaml, and runs it until it passes. ## Quick Start Ask the agent to write and run a Maestro E2E flow for the login journey defined in .teikk/SPEC.md.

Frequently Asked Questions about android-e2e-maestro

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I write Maestro E2E tests for an Android app?▼

Install the Maestro CLI, install the debug app with ./gradlew installDebug, then write YAML flows under .teikk/maestro/flows/ with your applicationId. Source selectors from actual UI code (testTag first, then text) and run maestro test on the flow file.

Maestro vs Compose UI tests for Android testing?▼

Compose UI tests are faster and precise for single-component logic, while Maestro covers black-box cross-screen journeys with real navigation, DI, and app startup. Maestro complements the test pyramid and does not replace unit or Compose component tests.

How do I handle Android permission dialogs in Maestro flows?▼

Add a tapOn step with optional: true targeting "Allow" or the permissioncontroller button ID before the action that triggers the dialog. For denial-path testing, tap "Don't allow" without optional to assert the dialog appeared.

Why do Maestro flows fail or become flaky?▼

Flows fail when selectors are guessed instead of read from UI source, when appId is wrong, or when fixed sleeps are used instead of assertVisible or extendedWaitUntil. Verify every string and testTag against the Composable or layout files.

When should I not use Maestro for Android testing?▼

Avoid Maestro for single-screen apps, libraries, unit or Compose component behavior, and performance measurement (use Macrobenchmark). E2E is too slow for the TDD loop, so run it on demand or pre-ship rather than on every build.

How do I test data persistence across app restarts with Maestro?▼

Write a separate flow that launches the app with clearState: false and re-asserts the value written by a prior flow. A persistence acceptance criterion is not verified without this relaunch flow.