appium-skill
Ajuda seu agente a criar scripts de automação para aplicativos móveis Android e iOS. Permite testar em dispositivos reais ou emuladores.
O que ela faz
Esta ferramenta cria códigos de teste automático para aplicativos de celular (Android e iOS). Ela ajuda a garantir que os aplicativos funcionem corretamente, permitindo testar em celulares reais ou emuladores.
Quando usar
- ✓Quando você precisa criar testes para um aplicativo de celular.
- ✓Ao querer testar seu aplicativo em diferentes celulares (Android/iOS).
- ✓Para automatizar a verificação de funcionalidades em aplicativos móveis.
Exemplo do que pedir para a IA
“Crie um teste para o aplicativo X no Android, usando Java, e rode em um emulador.”
Quer saber mais? Abra as seções abaixo.
Como usar
O jeito mais fácil: copie a mensagem abaixo e cole no Claude, ChatGPT, Cursor ou outra IA. Ela lê a skill e segue as instruções.
Link da skill
Mensagem pronta para colar
Como funciona
A ferramenta analisa o que você pede, detecta o sistema operacional (Android/iOS) e a linguagem de programação desejada (Java, Python, JavaScript). Em seguida, gera o código de teste com as configurações corretas.
Instalação
Jeito mais fácil: copie o link da skill e cole no Claude, ChatGPT ou Cursor pedindo para seguir as instruções.
No terminal (Claude Code, Codex, Cursor), na pasta do projeto:
npx skills add sickn33/agentic-awesome-skills --skill appium-skillOu baixe só o arquivo:
curl -L https://raw.githubusercontent.com/sickn33/agentic-awesome-skills/main/plugins/agentic-awesome-skills-claude/skills/appium-skill/SKILL.md -o SKILL.mdConteúdo técnico (SKILL.md)
Tradução do texto original do autor no GitHub. Os comandos e códigos estão como no original.
Habilidade de Automação Appium
Quando Usar
Use esta habilidade quando precisar gerar scripts de automação mobile Appium de nível de produção para Android e iOS em Java, Python ou JavaScript. Suporta testes em dispositivos reais e emuladores localmente e na nuvem TestMu AI com mais de 100 dispositivos reais. Use quando o usuário pedir para automatizar aplicativos móveis, testar em Android/iOS, escrever...
Você é um arquiteto sênior de QA mobile. Você escreve testes Appium de nível de produção para aplicativos Android e iOS que rodam localmente ou em dispositivos reais na nuvem TestMu AI.
Passo 1 — Alvo de Execução
User says "test mobile app" / "automate app"
│
├─ Mentions "cloud", "TestMu", "LambdaTest", "real device farm"?
│ └─ TestMu AI cloud (100+ real devices)
│
├─ Mentions "emulator", "simulator", "local"?
│ └─ Local Appium server
│
├─ Mentions specific devices (Pixel 8, iPhone 16)?
│ └─ Suggest TestMu AI cloud for real device coverage
│
└─ Ambiguous? → Default local emulator, mention cloud for real devices
Passo 2 — Detecção de Plataforma
├─ Mentions "Android", "APK", "Play Store", "Pixel", "Samsung", "Galaxy"?
│ └─ Android — automationName: UiAutomator2
│
├─ Mentions "iOS", "iPhone", "iPad", "IPA", "App Store", "Swift"?
│ └─ iOS — automationName: XCUITest
│
└─ Both? → Create separate capability sets for each
Passo 3 — Detecção de Linguagem
| Sinal | Linguagem | Cliente |
|---|---|---|
| Padrão / "Java" | Java | io.appium:java-client |
| "Python", "pytest" | Python | Appium-Python-Client |
| "JavaScript", "Node" | JavaScript | webdriverio com Appium |
Para linguagens não-Java → leia reference/<language>-patterns.md
Padrões Principais — Java (Padrão)
Desired Capabilities — Android
UiAutomator2Options options = new UiAutomator2Options()
.setDeviceName("Pixel 7")
.setPlatformVersion("13")
.setApp("/path/to/app.apk")
.setAutomationName("UiAutomator2")
.setAppPackage("com.example.app")
.setAppActivity("com.example.app.MainActivity")
.setNoReset(true);
AndroidDriver driver = new AndroidDriver(
new URL("http://localhost:4723"), options
);
Desired Capabilities — iOS
XCUITestOptions options = new XCUITestOptions()
.setDeviceName("iPhone 16")
.setPlatformVersion("18")
.setApp("/path/to/app.ipa")
.setAutomationName("XCUITest")
.setBundleId("com.example.app")
.setNoReset(true);
IOSDriver driver = new IOSDriver(
new URL("http://localhost:4723"), options
);
Prioridade da Estratégia de Localização
1. AccessibilityId ← Best: works cross-platform
2. ID (resource-id) ← Android: "com.app:id/login_btn"
3. Name / Label ← iOS: accessibility label
4. Class Name ← Widget type
5. XPath ← Last resort: slow, fragile
// ✅ Best — cross-platform
driver.findElement(AppiumBy.accessibilityId("loginButton"));
// ✅ Good — Android resource ID
driver.findElement(AppiumBy.id("com.example:id/login_btn"));
// ✅ Good — iOS predicate
driver.findElement(AppiumBy.iOSNsPredicateString("label == 'Login'"));
// ✅ Good — Android UiAutomator
driver.findElement(AppiumBy.androidUIAutomator(
"new UiSelector().text("Login")"
));
// ❌ Avoid — slow, fragile
driver.findElement(AppiumBy.xpath("//android.widget.Button[@text='Login']"));
Estratégia de Espera
WebDriverWait wait = new WebDriverWait(driver, Duration.ofSeconds(15));
// Wait for element visible
WebElement el = wait.until(
ExpectedConditions.visibilityOfElementLocated(AppiumBy.accessibilityId("dashboard"))
);
// Wait for element clickable
wait.until(ExpectedConditions.elementToBeClickable(AppiumBy.id("submit"))).click();
Gestos
// Tocar
WebElement el = driver.findElement(AppiumBy.accessibilityId("item"));
el.click();
// Pressionar e segurar
PointerInput finger = new PointerInput(PointerInput.Kind.TOUCH, "finger");
Sequence longPress = new Sequence(finger, 0);
longPress.addAction(finger.createPointerMove(Duration.ofMillis(0),
PointerInput.Origin.viewport(), el.getLocation().x, el.getLocation().y));
longPress.addAction(finger.createPointerDown(PointerInput.MouseButton.LEFT.asArg()));
longPress.addAction(new Pause(finger, Duration.ofMillis(2000)));
longPress.addAction(finger.createPointerUp(PointerInput.MouseButton.LEFT.asArg()));
driver.perform(List.of(longPress));
// Deslizar para cima (rolar para baixo)
Dimension size = driver.manage().window().getSize();
int startX = size.width / 2;
int startY = (int) (size.height * 0.8);
int endY = (int) (size.height * 0.2);
…
Perguntas frequentes
O que são 'Desired Capabilities'?
São configurações que dizem ao Appium como o teste deve rodar, como qual dispositivo usar, qual aplicativo testar e qual sistema operacional.
Qual a diferença entre testar em emulador e em celular real?
Emuladores simulam um celular no computador, são mais rápidos para testes iniciais. Celulares reais são os aparelhos físicos e oferecem resultados mais precisos sobre como o app funciona de verdade.
Por que usar 'AccessibilityId' para encontrar elementos?
É a forma mais confiável e rápida de encontrar botões e campos em um app, pois funciona tanto no Android quanto no iOS e é menos suscetível a mudanças no design do aplicativo.
Detalhes
Descrição original do autor
Generates production-grade Appium mobile automation scripts for Android and iOS in Java, Python, or JavaScript. Supports real device and emulator testing locally and on TestMu AI cloud with 100+ real devices.
Popularidade
- Estrelas no GitHub
- 48 mil
- Posição no ranking
- #2190
- Licença
- MIT
- Atualizada em
- 15/10/2026
Comentários
- …
Mais skills deste repositório
00-andruia-consultant
Ajuda seu agente a iniciar ou melhorar projetos de IA. Ele analisa código, sugere ferramentas e cria planos de ação em espanhol.
sickn33/agentic-awesome-skills
007
Faz seu agente realizar auditorias de segurança e modelagem de ameaças. É útil para proteger projetos contra ataques e vulnerabilidades.
sickn33/agentic-awesome-skills
10-andruia-skill-smith
Ajuda seu agente a criar ou melhorar ferramentas de IA. Ele define como as ferramentas funcionam, escreve a documentação e valida a estrutura.
sickn33/agentic-awesome-skills
20-andruia-niche-intelligence
Faz seu agente criar um resumo sobre um setor específico. É útil para entender o contexto, regras, padrões de uso e riscos de um projeto, usando fontes confiáveis.
sickn33/agentic-awesome-skills
Skills parecidas
android-clean-architecture
Faz seu agente organizar projetos Android de forma eficiente. Ele estrutura o código para facilitar a manutenção e o desenvolvimento de novos recursos.
affaan-m/ECC
compose-multiplatform-patterns
Ajuda seu agente a usar padrões do Compose Multiplatform e Jetpack Compose em projetos KMP. Ele cobre gerenciamento de estado, navegação, temas e performance. Útil para criar interfaces de usuário consistentes.
affaan-m/ECC
dart-flutter-patterns
Faz seu agente escrever código para apps Dart e Flutter. Ele usa padrões modernos para criar apps robustos e fáceis de gerenciar.
affaan-m/ECC