maestro-mobile-testing

Create declarative YAML E2E test flows for React Native/Expo apps.

15.9k|304|Updated Oct 25, 2023
One-click install
npx skills add https://github.com/bagisto/opensource-ecommerce-mobile-app --skill maestro-mobile-testing-bagisto
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: maestro-mobile-testing
Source: https://github.com/bagisto/opensource-ecommerce-mobile-app/tree/main/.agents/skills/maestro-mobile-testing
Command: npx skills add https://github.com/bagisto/opensource-ecommerce-mobile-app --skill maestro-mobile-testing-bagisto

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes scripts (resource) components.

What problem does it solve?

Maestro mobile testing patterns address the challenge of building reliable, scalable end-to-end tests for React Native/Expo apps by providing declarative YAML-based flows, testID selectors, adaptive auth handling, and integration hooks for CI/CD and cloud testing.

Core Features & Use Cases

  • Declarative YAML test flows with reusable sub-flows, testID-driven selectors, and adaptive state handling to reduce flakiness across iOS and Android.
  • Auth-aware patterns, optimistic UI verification, and built-in GraalJS scripting support for HTTP calls and data manipulation.
  • CI/CD integration, Maestro Cloud support, and MCP server readiness to streamline test authoring, execution, and debugging across platforms.

Quick Start

Install Maestro CLI, instrument components with testID props, craft YAML flows, enable the auth-loaded pre-flight pattern, start a mock API server for backend-dependent tests, and run tests with maestro test.

Frequently Asked Questions about maestro-mobile-testing

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

FAQPage Schema
How do I write reliable E2E tests for React Native that don't flake across iOS and Android?

Declarative YAML flows and testID-driven selectors build reliable E2E tests for React Native by targeting elements directly, reducing flakiness across iOS and Android platforms. Reusable sub-flows and adaptive state handling further stabilize test execution.

How do I handle authentication in mobile E2E testing without triggering flaky login screens?

Authentication handling in mobile E2E testing uses an auth-loaded pre-flight pattern to manage login state before tests run. By starting a mock API server and utilizing adaptive auth flows, tests bypass repetitive UI logins and ensure consistent testing environments.

Can I execute custom JavaScript logic or HTTP calls inside my Maestro mobile testing flows?

Yes, you can execute custom JavaScript logic and HTTP calls inside Maestro mobile testing flows using GraalJS scripting support. This allows direct data manipulation and API interactions within declarative YAML test definitions for comprehensive backend-dependent testing.

What's the best way to validate optimistic UI updates in Expo apps during E2E testing?

Validating optimistic UI updates in Expo apps during E2E testing is handled through auth-aware patterns and adaptive state management. By verifying UI state changes against mock API responses, you can ensure optimistic updates render correctly before backend confirmation.

Does Maestro mobile testing integrate with CI/CD pipelines and cloud testing services?

Maestro mobile testing integrates with CI/CD pipelines through Maestro Cloud support and MCP server readiness. This streamlines test authoring, execution, and debugging across platforms, enabling automated test runs and screenshot collection within continuous integration workflows.

Why do my Maestro E2E tests fail to find elements in my React Native app?

Maestro E2E tests fail to find elements when React Native components lack testID props. Instrumenting components with testID selectors allows the declarative YAML flows to reliably target and interact with UI elements across both iOS and Android.