Vamos criar um teste completo do zero! Usaremos o aplicativo de demonstração do Maestro para este exemplo.
Certifique-se que você tem:
- Maestro CLI instalado (
maestro --version) - Um emulador/dispositivo conectado (
adb devicesou simulador iOS aberto) - Um aplicativo instalado para testar
mkdir meu-primeiro-projeto-maestro
cd meu-primeiro-projeto-maestro
mkdir flows subflowsCrie o arquivo flows/login.yaml:
appId: com.exemplo.app
---
# Passo 1: Abre o app do zero
- launchApp:
clearState: true
# Passo 2: Verifica que estamos na tela de login
- assertVisible: "E-mail"
- assertVisible: "Senha"
# Passo 3: Preenche o formulário
- tapOn: "E-mail"
- inputText: "usuario@email.com"
- tapOn: "Senha"
- inputText: "Senha@123"
# Passo 4: Faz o login
- tapOn: "Entrar"
# Passo 5: Verifica que o login funcionou
- assertVisible: "Início"
- assertNotVisible: "E-mail"maestro test flows/login.yamlVocê verá uma saída parecida com:
Running "flows/login.yaml"
✅ Launch app "com.exemplo.app"
✅ Assert visible "E-mail"
✅ Assert visible "Senha"
✅ Tap on "E-mail"
✅ Input text
✅ Tap on "Senha"
✅ Input text
✅ Tap on "Entrar"
✅ Assert visible "Início"
✅ Assert not visible "E-mail"
Flow Successful
maestro test flows/Crie flows/login-invalido.yaml:
appId: com.exemplo.app
---
- launchApp:
clearState: true
- tapOn: "E-mail"
- inputText: "usuario@email.com"
- tapOn: "Senha"
- inputText: "senha-errada"
- tapOn: "Entrar"
# Verifica mensagem de erro
- assertVisible: "E-mail ou senha inválidos"
- assertNotVisible: "Início"- Um cenário por flow: cada arquivo testa um comportamento específico
- Nomes descritivos:
login-sucesso.yaml,login-senha-invalida.yaml - Use
clearState: true: garante que os testes não dependam do estado anterior - Assertions no início e no fim: verifique o estado inicial e o resultado final
- Evite hardcoded waits: prefira
assertVisiblecom timeout customizado
Ir para: Subflows