Agent skill

Mobile Testing

by irahardianto in irahardianto/awesome-agv

Mobile E2E testing patterns — Flutter integrationtest, Patrol, Maestro, golden testing, device matrix, and test data management.

MITAuto-check: notesTesting & QA

Install Mobile Testing

skills CLI
$ npx skills add irahardianto/awesome-agv --skill mobile-testing -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install irahardianto/awesome-agv mobile-testing --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/irahardianto/awesome-agv.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/mobile-testing .claude/skills/mobile-testing && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
mobile-testing
GitHub stars
157
Token cost
~1.8k tokens
SKILL.md length
703 words
Files
3 (incl. references)
Skills in repo
34
Repo updated
First seen
Licence
MIT

At a glance

Mobile E2E testing patterns — Flutter integrationtest, Patrol, Maestro, golden testing, device matrix, and test data management.

  • Works in 4 steps: Finders — locators for key UI elements… → Interactions — methods for user actions… → Composed actions — higher-level methods… → …
  • Writing E2E tests for mobile applications
  • SKILL.md covers Overview, Screen Object Model, Test Data Management and Device Matrix Testing, plus 3 more sections
  • Calls xcrun; needs API_KEY

What it does

Mobile Testing is an agent skill from irahardianto/awesome-agv. Mobile E2E testing patterns — Flutter integrationtest, Patrol, Maestro, golden testing, device matrix, and test data management. Use when writing E2E tests for mobile applications.

Its SKILL.md is about 1.8k tokens, which your agent loads only when the skill is triggered. The skill folder holds 3 other files, including reference files (for example `references/flutter.md` and `references/maestro.md`).

It sits in Testing & QA, covering Mobile testing and debugging, End-to-end testing and Test data and fixtures. It works with Flutter. The repository describes itself as: Comprehensive sets of standards and practices designed to elevate the capabilities of AI coding agents. The licence is MIT.

When your agent uses it

  • Writing E2E tests for mobile applications
  • Tasks that involve Mobile testing and debugging
  • Tasks that involve End-to-end testing

Example prompts

  • “/mobile-testing”

Requirements

  • A credential in API_KEY

Workflow steps

4 steps, taken from the first numbered list in SKILL.md.

  1. Finders — locators for key UI elements (by key, type, text, accessibility ID)
  2. Interactions — methods for user actions (enterEmail(), tapLogin(), scrollToItem())
  3. Composed actions — higher-level methods combining multiple interactions (loginAs(email, password))
  4. Assertions — methods to verify screen state (assertErrorVisible(), assertWelcomeShown())

What it can do on your machine

Read from SKILL.md and the folder at commit 9e997ba. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • xcrun

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names these keys or tokens, usually read from environment variables:

    • API_KEY

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Mobile Testing loads about 1.8k tokens when it runs, and up to ~5.5k if it reads all its reference files. Until then it costs about 49 tokens; SKILL.md has 703 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~49
When it runs · the whole SKILL.md, loaded when a task matches
~1.8k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~5.5k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check: notes

The automated check noted patterns worth knowing about, such as sudo or a known installer.

  • NoteMentions a .env fileSKILL.md:69
    jected via `--dart-define` (Flutter) or `.env` (React Native)

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from irahardianto/awesome-agv at commit 9e997ba, republished under its MIT licence (© irahardianto). 703 words, ~1,793 tokens.

Download SKILL.mdSave it as .claude/skills/mobile-testing/SKILL.md (or your agent's skills folder). This skill also uses 2 other files; get the full folder from GitHub.
name
mobile-testing
description
Mobile E2E testing patterns — Flutter integration_test, Patrol, Maestro, golden testing, device matrix, and test data management. Use when writing E2E tests for mobile applications.

Mobile Testing

Overview

Load this skill when writing E2E or integration tests for mobile applications (Flutter, React Native, or native iOS/Android). This skill complements the browser-automation skill which covers web — this skill covers native mobile.

Framework references: This file covers patterns and strategies. For framework-specific setup, API, and code examples, see:

  • Flutter (integration_test, Patrol, Golden Testing)
  • Maestro (cross-platform YAML flows)

Screen Object Model

The mobile equivalent of Page Object Model. Encapsulates screen-specific finders, interactions, and assertions in reusable classes.

Principles
  • One class per screen — mirrors the app's navigation structure
  • Encapsulate finders — expose semantic methods, not raw selectors
  • Compose flows — tests chain screen objects into user journeys
  • Assert at the screen level — each screen knows its own success/error states
Structure
integration_test/
  screens/
    login_screen.dart       # Finders + interactions for login
    home_screen.dart        # Finders + interactions for home
    checkout_screen.dart    # Finders + interactions for checkout
  flows/
    purchase_flow_test.dart # Composes screen objects into journey
Pattern (language-agnostic)

Each screen object exposes:

  1. Finders — locators for key UI elements (by key, type, text, accessibility ID)
  2. Interactions — methods for user actions (enterEmail(), tapLogin(), scrollToItem())
  3. Composed actions — higher-level methods combining multiple interactions (loginAs(email, password))
  4. Assertions — methods to verify screen state (assertErrorVisible(), assertWelcomeShown())

For framework-specific implementations, see the references:

  • Flutter/Patrol: See flutter.md § Screen Object Model
  • Maestro: Uses YAML sub-flows rather than code classes — see maestro.md

Test Data Management

API Seeding

Call backend API to create test state before tests run:

  • Create test users with specific roles/permissions
  • Seed catalog/inventory data
  • Set up payment test scenarios (test cards, etc.)

Pattern: Create a TestApi helper class that wraps seeding endpoints. Inject the base URL via environment configuration.

State Reset
  • Reset between tests to ensure isolation — call a cleanup endpoint or use database rollback
  • Use setUp()/tearDown() (or framework equivalent) to automate reset
  • Never rely on test execution order
Environment Configuration
  • Use build-time environment variables to switch between local and staging backends
  • Keep test API keys separate from production keys
  • Example: BASE_URL and API_KEY injected via --dart-define (Flutter) or .env (React Native)
Test Fixtures
  • Create factory functions for common test data (test users, orders, products)
  • Prefer deterministic data over random — random data makes failures hard to reproduce
  • Use unique identifiers per test run to avoid cross-test contamination

Device Matrix Testing

Screen Sizes to Cover
CategoryExampleResolution
Small phoneiPhone SE375×667
Medium phoneiPhone 14390×844
Large phoneiPhone 14 Pro Max430×932
TabletiPad Air820×1180
FoldableGalaxy Fold (open)717×512
Testing Strategy
  • P0 tests: Run on medium phone (most common) — minimum viable matrix
  • P1 tests: Add small phone + tablet — catch responsive layout breakpoints
  • P2 tests: Add foldable + landscape orientation — catch edge layout issues
  • Platform differences: Test on both iOS and Android when behavior diverges (navigation style, permissions UX, keyboard behavior)
Show full SKILL.md (282 more words)Show less
Orientation Testing
  • Test portrait (default) and landscape for screens that should support rotation
  • Verify layout adapts correctly — no overflow, no clipped content
  • Some screens should lock orientation — verify rotation is ignored

For framework-specific size simulation APIs, see the Flutter reference.

Offline & Network Testing

Patterns to Test
  1. Offline detection — app shows offline banner or indicator
  2. Offline-first operations — user can perform actions that queue locally
  3. Reconnection sync — queued operations sync when connection restores
  4. Graceful degradation — app disables features requiring network with clear UX
  5. Slow network — loading states appear, no premature timeouts, no duplicate submissions
Testing Approach
  • Mock HTTP client: Inject a client that throws network errors — test offline UI states without device manipulation
  • Patrol native interactions: Use $.native.disableWifi() / $.native.enableWifi() for real airplane mode testing on physical devices or emulators
  • Android emulator flags: Use -netdelay and -netspeed flags for slow network simulation

For code examples, see the Flutter reference.

CI Configuration

Key Considerations
  • Android emulator in CI: Requires KVM hardware acceleration on Linux runners. Use reactivecircus/android-emulator-runner GitHub Action.
  • iOS simulator in CI: Requires macOS runners. Create and boot simulator via xcrun simctl.
  • Parallel execution: Split test files across CI matrix jobs for faster runs.
  • Artifact collection: Always upload screenshots and device logs on failure (actions/upload-artifact).
  • Golden tests: Generate golden files locally, commit to repo, compare in CI. Set tolerance for cross-platform rendering differences.

For CI workflow YAML examples, see the Flutter reference § CI Configuration.

Framework Selection Guide

StackRecommended FrameworkNative InteractionsVisual Regression
Flutterintegration_test + PatrolPatrolgolden_toolkit
React NativeDetox or MaestroMaestroScreenshot comparison
Native iOSXCUITest or MaestroXCUITest / MaestroSnapshot testing
Native AndroidEspresso or MaestroEspresso / MaestroScreenshot testing
Cross-platformMaestroMaestroMaestro screenshots

© irahardianto, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 2 other files (references) in .agents/skills/mobile-testing of irahardianto/awesome-agv.

  • SKILL.md
  • references/flutter.md
  • references/maestro.md

Open the folder on GitHubat commit 9e997ba

Compare with similar skills

Mobile Testing next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Mobile Testing compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Mobile Testing this skillirahardianto/awesome-agv157—~1.8kAutomated safety check: NotesMIT
Specialist Integration Test GeneratorHoangNguyen0403/agent-skills-standard571—~548Automated safety check: PassMIT
E2E Testdivinevideo/divine-mobile266—~3.8kAutomated safety check: NotesMPL-2.0
E2E Matrix Runnerhyodotdev/openiap155—~3.4kAutomated safety check: NotesMIT
Rc ReleaseAppsFlyerSDK/appsflyer-flutter-plugin187—~1kAutomated safety check: PassMIT
Flutter TestingMADTeacher/mad-agents-skills110—~1.5kAutomated safety check: PassMIT

Similar skills

  • Specialist Integration Test Generator

    HoangNguyen0403/agent-skills-standard

    Generates one integration/E2E test from an approved test case spec using existing project patterns.

    571 GitHub stars~548 tokensUpdated today
    Testing & QAAuto-check passed
  • E2E Test

    divinevideo/divine-mobile

    Run and debug Flutter E2E integration tests that exercise the real app against a local Docker backend (no mocks).

    266 GitHub stars~3.8k tokensUpdated today
    Testing & QAAuto-check: notes
  • E2E Matrix Runner

    hyodotdev/openiap

    Run the full OpenIAP device matrix — six frameworks across iOS, Google Play, Amazon Appstore, Meta Horizon, and VegaOS — driving real hardware over adb and xcrun, and report one row per cell with…

    155 GitHub stars~3.4k tokensUpdated today
    Testing & QAAuto-check: notes
  • Rc Release

    AppsFlyerSDK/appsflyer-flutter-plugin

    Run or review an RC release for the AppsFlyer Flutter plugin.

    187 GitHub stars~1k tokensUpdated 24 days ago
    Testing & QAAuto-check passed
  • Flutter Testing

    MADTeacher/mad-agents-skills

    Write, fix, review, debug, and validate Flutter tests for apps, packages, and plugins.

    110 GitHub stars~1.5k tokensUpdated 5 mo ago
    Testing & QAAuto-check passed
  • Flutter Add Integration Test

    abdulmominsakib/localmind

    Configures Flutter Driver for app interaction and converts MCP actions into permanent integration tests.

    265 GitHub stars~1.8k tokensUpdated yesterday
    Testing & QAAuto-check passed

More from irahardianto/awesome-agv

All 34 skills in this repo
  • Distinctive Frontend Design Builder

    irahardianto/awesome-agv

    Commits to one bold aesthetic direction, sets up a CSS token system for it, then builds the interface in Vue or plain HTML using those tokens.

    157 GitHub stars~2.4k tokensUpdated 4 days ago
    Auto-check passed
  • Perf Optimization

    irahardianto/awesome-agv

    Profile-driven performance optimization protocol. An agent skill from irahardianto/awesome-agv.

    157 GitHub stars~4.3k tokensUpdated 4 days ago
    Auto-check passed
  • Angular Idioms and Patterns

    irahardianto/awesome-agv

    Coding conventions for Angular 19 and later: standalone components, signals, OnPush change detection, lazy routes and where RxJS still belongs.

    157 GitHub stars~3.8k tokensUpdated 4 days ago
    Auto-check passed
  • CI/CD Pipeline Principles

    irahardianto/awesome-agv

    Rules for designing CI/CD pipelines in layers: universal lint, test and scan stages, container builds with SBOM attestation, and GitOps for orchestrated deployments.

    157 GitHub stars~2.7k tokensUpdated 4 days ago
    Auto-check: notes
  • Hono Idioms

    irahardianto/awesome-agv

    Hono lightweight web framework patterns: type-safe route handlers, middleware composition, Zod validation, and RPC clients for Cloudflare Workers, Node, or Bun.

    157 GitHub stars~3k tokensUpdated 4 days ago
    Auto-check passed
  • Nextjs Idioms

    irahardianto/awesome-agv

    Next.js App Router architecture: React Server Components (RSC), Server Actions, nested layouts, route handlers, and streaming.

    157 GitHub stars~4.2k tokensUpdated 4 days ago
    Auto-check: notes

Works with

Questions about Mobile Testing

What does Mobile Testing do?

Mobile E2E testing patterns — Flutter integrationtest, Patrol, Maestro, golden testing, device matrix, and test data management. Mobile Testing is an agent skill from irahardianto/awesome-agv. Mobile E2E testing patterns — Flutter integrationtest, Patrol, Maestro, golden testing, device matrix, and test data management.

When should I use Mobile Testing?

Mobile Testing fits situations like: writing E2E tests for mobile applications; tasks that involve Mobile testing and debugging; tasks that involve End-to-end testing.

How do I install Mobile Testing in Claude Code?

Run `npx skills add irahardianto/awesome-agv --skill mobile-testing -a claude-code`. Or copy the skill folder (.agents/skills/mobile-testing in irahardianto/awesome-agv) into .claude/skills/mobile-testing in your project. Claude Code loads it when a task matches its description.

How do I install Mobile Testing in Codex?

Run `npx skills add irahardianto/awesome-agv --skill mobile-testing -a codex`. Or copy the skill folder (.agents/skills/mobile-testing in irahardianto/awesome-agv) into .agents/skills/mobile-testing in your project. Codex loads it when a task matches its description.

Can I use Mobile Testing in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add irahardianto/awesome-agv --skill mobile-testing -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/mobile-testing, .gemini/skills/mobile-testing, .github/skills/mobile-testing and .opencode/skills/mobile-testing in your project.

What does Mobile Testing need to run?

Going by SKILL.md and its folder, Mobile Testing needs the command-line tools its instructions call (xcrun) and credentials named API_KEY. Our summary lists: A credential in API_KEY.

Does Mobile Testing access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Mobile Testing safe to install?

Our automated static check of SKILL.md found notes only (mentions a .env file), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.

What licence does Mobile Testing use?

Mobile Testing is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Mobile Testing use?

About 1.8k tokens (SKILL.md is roughly 7.2k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 3.7k tokens, read only when the agent opens those files.

What are the alternatives to Mobile Testing?

Skills that share tags, products or a category with Mobile Testing: Specialist Integration Test Generator (HoangNguyen0403/agent-skills-standard, 571 stars), E2E Test (divinevideo/divine-mobile, 266 stars), E2E Matrix Runner (hyodotdev/openiap, 155 stars) and Rc Release (AppsFlyerSDK/appsflyer-flutter-plugin, 187 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Mobile Testing?

irahardianto (a GitHub user) maintains it in irahardianto/awesome-agv, which has 157 GitHub stars. The repository holds 34 skills in this directory. The repository was last updated on October 5, 2026.

Source: irahardianto/awesome-agv on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.