Skip to content
Back to skills

Maestro Flutter

ASecurity

Maestro E2E testing knowledge for Flutter apps. YAML-based flows, TestKeys, visual regression, Maestro MCP integration. Background knowledge for QE E2E testing phase.

  • 5 stars
  • 0 votes
  • 0 copies
  • 2 views
  • Added May 26, 2026
developmentgobashtestingci/cd

Works with

  • mcp

Security analysis

A100/100

Pro scans all 3 files and shows the line behind each finding

Scanned May 27, 2026

npx -y skills add aleksandr-chaika/flutter-clean-arch-skills --skill maestro-flutter --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Maestro Flutter?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Maestro Flutter
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/aleksandr-chaika-maestro-flutter/badge)](https://www.skillsdirectory.com/skills/aleksandr-chaika-maestro-flutter)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: maestro-flutter
description: |
  Maestro E2E testing knowledge for Flutter apps.
  YAML-based flows, TestKeys, visual regression, Maestro MCP integration.
  Background knowledge for QE E2E testing phase.
user-invocable: false
---

# Maestro Flutter E2E Testing Guide

## Reference Guide

| Topic | Reference | Use When |
|-------|-----------|----------|
| Flow Patterns | `references/flow-patterns.md` | Writing YAML flows, Flutter-specific tips |
| CI & Visual Regression | `references/ci-visual-regression.md` | CI/CD setup, visual comparison, troubleshooting |

## Core Principles

1. **ADD semantic labels** — `Key()` / `Semantics` on all interactive widgets
2. **WRITE flows in YAML** — simple, readable, no code
3. **RUN on emulator first**, then real devices
4. **CAPTURE screenshots** at key assertion points
5. **USE visual regression** for Pixel Perfect validation

## TestKeys Pattern (MANDATORY)

```dart
// lib/core/constants/test_keys.dart
abstract class TestKeys {
  static const emailField = Key('email_field');
  static const passwordField = Key('password_field');
  static const loginButton = Key('login_button');
  static const registerButton = Key('register_button');
  static const homeTab = Key('home_tab');
  static const profileTab = Key('profile_tab');
  static const loadingIndicator = Key('loading_indicator');
  static const errorMessage = Key('error_message');
}
```

## Project Structure

```
.maestro/
├── config.yaml
└── flows/
    ├── auth/
    │   ├── login.yaml
    │   └── register.yaml
    ├── {feature}/
    │   └── {action}.yaml
    └── smoke_test.yaml
```

## Flow YAML Syntax

```yaml
appId: com.example.myapp
name: User Login
---
- launchApp:
    clearState: true
- extendedWaitUntil:
    visible: "Welcome"
    timeout: 10000
- tapOn:
    id: "email_field"
- inputText: ${TEST_EMAIL}
- tapOn:
    id: "password_field"
- inputText: ${TEST_PASSWORD}
- tapOn:
    id: "login_button"
- waitForAnimationToEnd
- assertVisible:
    id: "home_tab"
- takeScreenshot: "login_success"
```

## Key Commands

| Command | Description |
|---------|-------------|
| `tapOn: { id: "key" }` | Tap by widget Key |
| `inputText: "value"` | Type text |
| `assertVisible: "text"` | Assert visible |
| `assertNotVisible: "text"` | Assert gone |
| `extendedWaitUntil` | Wait for element |
| `waitForAnimationToEnd` | Wait animations |
| `takeScreenshot: "name"` | Screenshot |
| `runFlow: path.yaml` | Reuse flow |
| `launchApp: { clearState: true }` | Fresh start |

## Running Tests

```bash
flutter build apk --debug
maestro test .maestro/flows/
```

## Testing Pyramid

```
              ┌─────────────────┐
              │    Maestro      │  10% — Full user journeys
              └────────┬────────┘
            ┌──────────┴──────────┐
            │   Widget Tests      │  20% — UI components
            └──────────┬──────────┘
  ┌────────────────────┴────────────────────┐
  │              Unit Tests                  │  70% — Business logic
  │  (BLoC, UseCases, Repositories)          │  mocktail, bloc_test
  └──────────────────────────────────────────┘
```

Files in this skill

  • SKILL.md3.4 KB
  • references/ci-visual-regression.md2.7 KB
  • references/flow-patterns.md5.2 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.