Pular para o conteúdo
Skillpedia
Apps de celular48 mil · #2190

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

https://github.com/sickn33/agentic-awesome-skills/blob/main/plugins/agentic-awesome-skills-claude/skills/appium-skill/SKILL.md

Mensagem pronta para colar

Use esta skill para me ajudar: https://github.com/sickn33/agentic-awesome-skills/blob/main/plugins/agentic-awesome-skills-claude/skills/appium-skill/SKILL.md Leia o arquivo SKILL.md desse link e siga as instruções dele na minha tarefa.
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-skill

Ou 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.md
Conteú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.

repo: sickn33/agentic-awesome-skills

Popularidade

Estrelas no GitHub
48 mil
Posição no ranking
#2190
Licença
MIT
Atualizada em
15/10/2026

Essa skill é útil?

0

Entre para votar.

Comentários

  • …

Mais skills deste repositório

Skills parecidas