Teste de sites e aplicativos da Web em dispositivos virtuais e reais com Appium + NodeJS

Dependências

  • Instale ou atualize o Java
  • Instale o NodeJS
  • Atualizar npm: $ sudo npm install npm -g
  • Instale o XCode
  • Baixe ferramentas Android SDK
  • Adicione o seguinte ao arquivo ~ / .bashrc (certifique-se de que o caminho para android-sdk-macosx está correto):
export ANDROID_HOME=$HOME/Downloads/android-sdk-macosx
export ANDROID_SDK=$ANDROID_HOME
PATH
=$PATH:/Applications/apache-ant-1.8.4/bin
PATH
=$PATH:/usr/local/share/npm/bin/
PATH
=$PATH:$ANDROID_HOME/build-tools
PATH
=$PATH:$ANDROID_HOME/platform-tools
PATH
=$PATH:$ANDROID_HOME/tools
export JAVA_HOME="`/System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/java_home`"
export PATH

Instale e execute o Appium

$   npm install -g appium
$ appium
&

Executando testes em iOS

Certifique-se de que o appium esteja em execução. Inicie o XCode. Certifique-se de que os recursos em nodejs_sample / config / caps.js estejam configurados para seu dispositivo / emulador.

$   cd node
$ npm install

$ env cap
="ios81" mocha homepage.js

Para testar em um dispositivo real da Apple, você precisaria de um Apple Developer ID . Edite nodejs_sample / config / caps.js com um novo recurso (ou modifique o existente para iOS). O recurso novo / modificado deve ser semelhante a este:

exports.ios81 = {
browserName
: '',
'appium-version': '1.3',
platformName
: 'iOS',
platformVersion
: '8.1',
deviceName
: 'iPhone Simulator',
app
: <path to .ipa file>
udid
: <unique-device-id>
};

Para obter o udid de um iPhone / iPad, conecte-o ao seu laptop e abra o iTunes. Selecione o dispositivo no painel esquerdo. Clique no número de série do dispositivo para revelar o udid.

$   env cap="ios81" mocha homepage.js

Executando testes no Android

Configurando um AVD (Android Virtual Device) / emulador:

Inicie o Android SDK Manager:

$  $ANDROID_HOME/tools/android

Baixe qualquer imagem do Android da lista Ex; Android 4.4.2 – se você tiver um dispositivo Android, pode querer obter uma versão Android correspondente para o POC.

Assim que o download for concluído, liste os alvos de imagem e anote o id de uma imagem com a qual você criará o emulador:

$  $ANDROID_HOME/tools/android list targets

Crie um emulador usando o id (veja acima) para <targetID>:

$  $ANDROID_HOME/tools/android create avd -n <name> -t <targetID>

Lista emuladores disponíveis:

$  $ANDROID_HOME/tools/emulator -list-avds

Execute um emulador:

$   $ANDROID_HOME/tools/emulator @<name_of_emulator>

Nas versões mais recentes do Android, o Chrome é o navegador padrão. Você precisaria ter o Chrome em seu emulador para executar testes nele. Você pode baixar um apk do Chrome online ou obtê-lo diretamente do seu dispositivo Android:

Pare todos os emuladores em execução. Conecte o dispositivo Android ao seu laptop e inicie o servidor Android Bridge / adp:

$   adb start-server
$ adb shell pm list packages

Procure o pacote chrome (algo semelhante a: com.android.chrome-2.apk), obtenha seu caminho e extraia o pacote para seu laptop usando o caminho:

$   adb shell pm path <name-of-chrome-package>
$ adb pull
<path-of-chrome-package>

Desconecte o dispositivo. Inicie um emulador:

$   $ANDROID_HOME/tools/emulator @<name_of_emulator>

Instale o pacote do Chrome:

$   adb install path/to/pulled/chrome/package

Executando os testes

Certifique-se de que o appium esteja funcionando. Se não, ligue-o:

$   appium &

Certifique-se de que um emulador com cromo esteja em execução. Se não, acione um:

$   $ANDROID_HOME/tools/emulator @<name_of_emulator>

Se estiver testando em um dispositivo real, você precisa fechar todos os emuladores em execução e conectar um dispositivo Android ao seu laptop. Certifique-se de que os recursos em nodejs_sample / config / caps.js estejam configurados para seu dispositivo / emulador.

Execute os testes com:

$   env cap="android17" mocha homepage.js

Executar testes em paralelo

Você não pode executar testes em paralelo no iOS com Appium.

Para dispositivos Android, execute várias instâncias de servidores Appium passando uma porta diferente (-p), porta de bootstrap appium (-bp) e id de dispositivo (-U) para cada uma. Por exemplo:

$   appium -p 4492 -bp 2251 -U 32456
$ appium
-p 4491 -bp 2252 -U 43364