Configuração do Ambiente Appium e Identificação de Pacotes Android

Pré-requisitos de ambiente

Antes de executar testes automatizados com Appium em dispositivos Android, é preciso preparar o seguinte conjunto de ferramentas:

  • Node.js e npm
  • JDK (Java Development Kit)
  • Android SDK
  • Dispositivo físico ou emulador Android
  • Servidor Appium
  • Cliente Python para Appium

Node.js e npm

O Appium depende do runtime Node.js. Instale a versão LTS recomendada e confirme a instalação com:

node -v
npm -v

JDK

O ecossistema Android exige a presença do Java. Instale o JDK e, em seguida, configure as variáveis de ambiente. No Linux ou macOS, adicione ao arquivo de perfil:

export JAVA_HOME=/caminho/para/jdk
export PATH=$JAVA_HOME/bin:$PATH

Valide com:

java -version
javac -version

Android SDK

Baixe o pacote de ferramentas de linha de comando do Android SDK. Após extrair, defina a variável ANDROID_HOME apontando para o diretório do SDK. Inclua as pastas necessárias no PATH:

export ANDROID_HOME=/caminho/para/android-sdk
export PATH=$ANDROID_HOME/platform-tools:$PATH
export PATH=$ANDROID_HOME/tools:$PATH
export PATH=$ANDROID_HOME/tools/bin:$PATH
export PATH=$ANDROID_HOME/emulator:$PATH

Utilize o sdkmanager para instalar as plataformas e ferramentas de build desejadas.

Dispositivo Android

Conecte um aparelho real via USB com depuração ativada, ou crie um emulador pelo Android Virtual Device Manager. Para listar os dispositivos reconhecidos:

adb devices -l

Instalação do Appium

A forma mais simples de iniciar é pelo Appium Desktop, que inclui o servidor e uma interface gráfica. Também é possível instalar globalmente via npm:

npm install -g appium

Cliente Python

Para controlar sessões Appium com Python, instale o pacote oficial:

pip install Appium-Python-Client

Obter appPackage e appActivity

Para iniciar uma sessão de automação, você precisa do nome do pacote e da atividade principle do aplicativo. Siga os passos:

  1. Abra o aplicativo no dispositivo.
  2. Capture os logs do Android em um arquivo:
adb logcat -v threadtime > log_app.txt
  1. Interaja com o aplicativo por alguns segundos.
  2. Interrompa a captura com Ctrl+C.
  3. Procque no arquivo gerado pela palavra Displayed.

Se houver mais de um dispositivo conectado, especifique o alvo com o serial:

adb -s <serial_dispositivo> logcat -v threadtime > log_app.txt

A linha encontrada terá formato semelhante a:

Displayed com.exemplo.app/.MainActivity: +1s234ms

Para o caso do Toutiao, o pacote é com.ss.android.article.news.

Tabela de referência de pacotes e URL Schemes

Segue uma seleção de aplicativos populares e seus respectivos identificadores:

Aplicativo Package (Android) URL Scheme (iOS)
Toutiao com.ss.android.article.news snssdk141://
WeChat com.tencent.mm weixin://
QQ com.tencent.mobileqq mqq://
Taobao com.taobao.taobao taobao://
Alipay com.eg.android.AlipayGphone alipay://
JD com.jingdong.app.mall openApp.jdMobile://
Baidu com.baidu.searchbox baiduboxapp://
Weibo com.sina.weibo sinaweibo://
iQiyi com.qiyi.video qiyi-iphone://
Ele.me me.ele eleme://
Didi com.sdu.didi.psnger diditaxi://
Ctrip ctrip.android.view ctrip://
Kuaishou com.smile.gifmaker gifshow://

Com o pacote e a atividade identificados, você pode montar as desired_caps e iniciar a automação:

from appium import webdriver

caps = {
    'platformName': 'Android',
    'deviceName': 'dispositivo_exemplo',
    'appPackage': 'com.ss.android.article.news',
    'appActivity': '.MainActivity',
    'noReset': True
}

driver = webdriver.Remote('http://localhost:4723/wd/hub', caps)

Tags: Appium Android SDK ADB Testes Automatizados Python

Publicado em 9-30 15:15