Guia completo para configurar e executar testes com Appium no Android. Siga os passos em ordem para melhor compreensão.
- Requisitos Básicos
- Java
- Android Studio
- Variáveis de Ambiente
- Node.js
- Appium Doctor (Diagnóstico)
- Appium e Driver UIAutomator2
- Appium Inspector
- Capabilities
- Iniciando a Automação
- Instalar Aplicativos no Emulador
- AVD e ADB
- Docker (Alternativa)
- Referências
Antes de começar, você precisa de:
- Java JDK (11 ou superior)
- Android Studio (com SDK Manager e Virtual Device Manager)
- Node.js e npm (para Appium)
- VS Code (opcional, mas recomendado)
- Appium Inspector (para inspeção visual de elementos)
- Acesso ao terminal/PowerShell com privilégios de administrador
O Java é necessário para executar o Android SDK e suas ferramentas.
- Baixe o Java JDK: https://www.oracle.com/br/java/technologies/downloads/
- Instale em um local padrão como
C:\Program Files\Java\jdk-23 - Configure a variável de ambiente
JAVA_HOME:- Valor:
C:\Program Files\Java\jdk-23(ajuste a versão se necessário) - Vá em Variáveis de Ambiente do Sistema → PATH → Editar
- Adicione uma entrada:
%JAVA_HOME%\bin
- Valor:
Para verificar se está correto, abra o terminal e digite:
java -version
O Android Studio fornece o SDK, emuladores e ferramentas necessárias.
- Baixe e instale: https://developer.android.com/studio?hl=pt-br
- Na primeira execução, escolha Custom (não Standard)
- Instale os seguintes componentes:
- Android Emulator
- Android Emulator Hypervisor Driver (para melhor performance)
- Android SDK Platform-Tools
- Android SDK (pelo menos uma versão recente e uma mais antiga, ex.: API 29-33)
- Abra Android Studio → Device Manager (lado direito)
- Clique em Create Device
- Escolha um dispositivo (ex.: Pixel 2, Pixel 5)
- Selecione um API Level (ex.: API 31, 32, 33)
- Clique em Finish e depois no ícone de Play para iniciar o emulador
Dica: É possível iniciar o emulador diretamente da linha de comando com:
emulator -list-avds # lista emuladores
emulator -avd <nome-do-avd> # inicia um emulador
As variáveis de ambiente permitem que ferramentas como adb, emulator e Appium funcionem de qualquer lugar no terminal.
- Valor: Caminho para o diretório raiz do JDK (ex.:
C:\Program Files\Java\jdk-23) - PATH adicional:
%JAVA_HOME%\bin
- Valor: Caminho para o Android SDK (ex.:
C:\Users\SEU_USUARIO\AppData\Local\Android\Sdk) - PATH adicional:
%ANDROID_HOME%\platform-tools(contémadb)%ANDROID_HOME%\emulator(contémemulator)
Opcional, mas recomendado: Se você precisa gerenciar múltiplas versões do Node, use NVM (Node Version Manager):
Via NVM
- Instale o NVM que é o gerenciador de versões node, e instale a última versão a partir da que é possível visualizar no site do Node.js.
- Abra o terminal em modo administrador e use os comandos NVM após colocá-lo nas variáveis de ambiente, caso ele não faça sozinho
nvm --version
- Após isso, use o comando “
nvm install xx.xx.xx” para instalar a versão e depois use o “nvm use xx.xx.xx” para começar a usar esta versão.
Instalando Node globalmente
Node.js é necessário para instalar e rodar Appium via npm.
- Baixe Node.js: https://nodejs.org/
- Escolha a versão LTS (recomendado para estabilidade)
- Instale normalmente
- Verifique a instalação:
node --version
npm --version
Appium Doctor verifica se seu sistema tem todas as dependências necessárias para executar o appium
Recomendação: Eu prefiro utilizar a execução do appium e appium doctor localmente
Caso queira instalar localmente, crie um diretório do projeto e inicie o projeto node com npm init -y antes de começar a fazer as instalações de pacotes node.
npm install appium-doctor -g #Globalmente
npm install appium-doctor #Localmente
appium-doctor --android #Globalmente
npx appium-doctor --android #Localmente
Este comando exibe um relatório completo. Exemplos de saída:
Passo importante: Rode o comando de diagnóstico e corrija as pendências até que todos os itens estejam marcados com ✓.
mkdir appium-project #Se não tiver criado o repositório já
cd appium-project
npm init -y #Se já tiver feito, desconsidere
npm install appium
Por que local? Instalação local permite controle de versão por projeto e evita conflitos globais.
npm install -g appium
O driver é responsável por comunicar-se com o Android:
npx appium driver install uiautomator2
(Se instalou globalmente: appium driver install uiautomator2)
npx appium
Você verá algo como:
[Appium] Welcome to Appium v2.x.x
[Appium] Appium REST http interface listener started on 0.0.0.0:4723
Appium Inspector é uma ferramenta visual para inspecionar elementos do aplicativo e gerar código de teste.
- Vá em: https://github.com/appium/appium-inspector
- Procure Releases → Baixe a versão mais recente (
.exepara Windows) - Instale normalmente
- Abra e configure as Capabilities (ver seção abaixo)
Capabilities definem como o Appium conecta e controla o aplicativo. Existem dois formatos equivalentes:
{
"appium:platformName": "Android",
"appium:deviceName": "emulator-5554",
"appium:avd": "Pixel_4_API_31",
"appium:automationName": "UiAutomator2"
}{
"platformName": "Android",
"appium:options": {
"automationName": "UiAutomator2",
"deviceName": "emulator-5554",
"avd": "Pixel_4_API_31",
"app": "/caminho/para/app.apk",
"autoGrantPermissions": true
}
}- platformName:
AndroidouiOS - deviceName: Nome do emulador (veja com
adb devices) - avd: Nome do Android Virtual Device
- automationName:
UiAutomator2(para Android) - app: Caminho para o arquivo
.apk(opcional se apenas inspecionar) - autoGrantPermissions: Concede automaticamente permissões solicitadas
- ✅ Emulador criado e em execução (Android Studio ou
emulator -avd <nome-emulador>) - ✅ Appium instalado com driver UIAutomator2
- ✅ Appium Inspector instalado
-
Inicie o servidor Appium:
npx appiumVocê verá a mensagem de sucesso com
http://0.0.0.0:4723 -
Abra o Appium Inspector (para usar a inspeção visual)
Apesar de ser possível usar capabilities mais complexas no appium-inspector, algo como o exemplo abaixo já serve para abrir
{
"platformName": "Android",
"appium:automationName": "UiAutomator2",
"appium:deviceName": "<Device-Emulator-Name>"
}
- Coloque as Capabilities
- Clique em Start Session
- Inspecione elementos clicando neles na tela do emulador
- Execute seu teste (WebdriverIO, Selenium, Robot etc.)
Para executar os testes com os frameworks, deve-se utilizar as capabilities bem definidas, neste caso, a capability abaixo é um bom exemplo:
capabilities: [{
platformName: "Android",
'appium:deviceName': "<Device-Emulator-Name>"",
"appium:appPackage": "br.com.calculator.app",
"appium:appActivity": "br.com.calculator.app.MainActivity",
'appium:platformVersion': "16",
'appium:automationName': "UiAutomator2"
}],
- Baixe o APK de: https://play.google.com/store/apps?hl=pt_BR (usando https://apps.evozi.com/apk-downloader/)
- Arraste o arquivo
.apkpara dentro da janela do emulador - O instalador aparecerá automaticamente
- Abra o terminal no diretório do
.apk - Execute:
Ou coloque o caminho do apk, exemplo
adb install <nome-do-app.apk>./myproject/app/aplicativo.apk
Após instalar, abra o app no emulador e execute:
adb shell dumpsys window windows | findstr "mCurrentFocus"Retorno esperado:
mCurrentFocus=Window{abc123 u0 com.exemplo.app/com.exemplo.app.MainActivity}
- appPackage:
com.exemplo.app - appActivity:
com.exemplo.app.MainActivity
AVD é um emulador Android. Você pode criar via Android Studio ou linha de comando.
Listar AVDs:
emulator -list-avds
Iniciar um AVD:
emulator -avd nome-do-avd
ADB é a ferramenta para comunicação com o emulador/dispositivo.
Conectar ao shell interativo:
adb shell
Para mais informações: https://github.com/clarabez/comandosadb
-
adb devices- Lista todos os dispositivos (emuladores e físicos) conectados e seu estado (device, offline, unauthorized). Use para confirmar se o emulador/dispositivo está visível para o ADB.
-
adb install <arquivo.apk>- Instala um APK no dispositivo/emulador conectado. Substitua
<arquivo.apk>pelo caminho para o arquivo. Ex.:adb install app/build/outputs/apk/debug/app-debug.apk.
- Instala um APK no dispositivo/emulador conectado. Substitua
-
adb uninstall <package.name>- Remove/desinstala o pacote indicado do dispositivo/emulador. Ex.:
adb uninstall com.google.android.calculatorremove a calculadora.
- Remove/desinstala o pacote indicado do dispositivo/emulador. Ex.:
-
adb shell dumpsys window windows | findstr 'mCurrentFocus'(Windows)- Exibe qual janela/atividade está em foco no momento no dispositivo. Útil para capturar
appPackageeappActivityao inspecionar um app.
- Exibe qual janela/atividade está em foco no momento no dispositivo. Útil para capturar
-
adb shell dumpsys window | findstr "mCurrentFocus"(Windows alternativo)- Mesmo propósito do comando acima; dependendo da versão do ADB/Windows, uma das variantes retorna o resultado corretamente.
-
adb shell dumpsys window windows | grep mCurrentFocus(Linux/macOS)- Versão para sistemas Unix-like que usa
grepem vez defindstr.
- Versão para sistemas Unix-like que usa
-
adb shell pm list packages- Lista todos os pacotes instalados no dispositivo.
-
adb shell pm list packages | findstr "nome-do-app"(Windows)- Procura por um pacote específico.
-
adb shell getprop ro.build.version.release- Retorna a versão do Android (ex.:
10,11,12). Útil para verificar qual API/versão o emulador está executando.
- Retorna a versão do Android (ex.:
-
adb uninstall io.appium.uiautomator2.server- Remove o servidor auxiliar do Appium (uiautomator2). Usado quando há problemas de comunicação ou erros de servidor do UIAutomator2.
-
adb uninstall io.appium.uiautomator2.server.test- Remove o pacote de testes do UIAutomator2. Também usado em procedimentos de limpeza quando houver falhas relacionadas ao driver.
Dicas:
- Muitos comandos aceitam
-s <serial>para direcionar um dispositivo específico quando há múltiplos conectados. adb shellabre um terminal interativo no dispositivo.
Se preferir isolar o ambiente em um container, use a imagem docker-android com Appium pré-instalado.
Repositório: https://github.com/budtmo/docker-android
version: '3.8'
services:
android:
privileged: true
image: budtmo/docker-android:emulator_14.0
container_name: android-container
shm_size: 4g
ports:
- "6080:6080" # noVNC (visualização)
- "4723:4723" # Appium
- "5554:5554" # Emulador
- "5555:5555" # ADB
environment:
- APPIUM=true
- EMULATOR_DEVICE=Nexus 4
- WEB_VNC=true
volumes:
- "./app:/root/tmp"
devices:
- "/dev/kvm"docker compose up -d
Abra http://localhost:6080/ no navegador para ver a tela do emulador (noVNC).
docker exec -it android-container /bin/sh
Dentro do container, você pode usar adb, emulator e appium normalmente.
Se colocar o APK na pasta ./app, ele estará disponível como /root/tmp dentro do container:
docker exec -it android-container adb install /root/tmp/seu-app.apk
Executando o código no arquivo de teste do repositório (WebdriverIO)
Abra no diretório principal e execute o comando npm init -y ou caso queira personalizar o arquivo package.json digite apenas npm init
Feito isso, instale o webdriverio usando npm install webdriverio
E execute o comando node teste.js
Executando o código no arquivo de teste do repositório (Python + Selenium)
Instale as dependências do projeto utilizando pip install -r requirements.txt , que fará a instalação do Appium Python Client que é a forma que o python vai se conectar com o appium e enviar os comandos de interação.
Ao finalizar a instalação, execute o docker que está no repositório utilizando docker compose up -d e rode a execução utilizando python .\python\appiump.py.
Você pode ver a execução utilizando o noVNC pelo link http://localhost:6080/ (caso você não tenha alterado nenhuma porta).
Caso queira alterar algum comando ou verificar os identificadores, utilize o Appium Inspector
(Certifique-se que requirements.txt contém Appium-Python-Client)

