265
AWS Device Farm Guia do desenvolvedor Versão da API 2015-06-23

AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

  • Upload
    others

  • View
    19

  • Download
    0

Embed Size (px)

Citation preview

Page 1: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device FarmGuia do desenvolvedor

Versão da API 2015-06-23

Page 2: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedor

AWS Device Farm: Guia do desenvolvedorCopyright © 2020 Amazon Web Services, Inc. and/or its affiliates. All rights reserved.

Amazon's trademarks and trade dress may not be used in connection with any product or service that is not Amazon's,in any manner that is likely to cause confusion among customers, or in any manner that disparages or discreditsAmazon. All other trademarks not owned by Amazon are the property of their respective owners, who may or may notbe affiliated with, connected to, or sponsored by Amazon.

Page 3: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedor

Table of ContentsO que é AWS Device Farm? ................................................................................................................ 1

Teste automatizado de aplicativos ................................................................................................. 1Interação por acesso remoto ........................................................................................................ 1Terminologia .............................................................................................................................. 1Configuração .............................................................................................................................. 2

Configuração ...................................................................................................................................... 3Etapa 1: cadastrar-se na AWS ..................................................................................................... 3Etapa 2: Criar ou usar um usuário do IAM na conta da AWS ............................................................ 3Etapa 3: Dar ao usuário do IAM permissão para acessar o Device Farm ............................................. 3Próxima etapa ............................................................................................................................ 4

Conceitos básicos ............................................................................................................................... 5Pré-requisitos ............................................................................................................................. 5Etapa 1: fazer login no console .................................................................................................... 5Etapa 2: criar um projeto ............................................................................................................. 5Etapa 3: criar e iniciar uma execução ............................................................................................ 6Etapa 4: visualizar os resultados da execução ................................................................................ 7Próximas etapas ......................................................................................................................... 7

Conceitos .......................................................................................................................................... 8Dispositivos ............................................................................................................................... 8

Dispositivos compatíveis ...................................................................................................... 8Grupos de dispositivos ........................................................................................................ 8Dispositivos privados ........................................................................................................... 8Marcas de dispositivo .......................................................................................................... 9Slots para dispositivo .......................................................................................................... 9Aplicativos de dispositivos pré-instalados ............................................................................... 9Recursos dos dispositivos .................................................................................................... 9

Ambientes de teste ..................................................................................................................... 9Ambiente de teste padrão .................................................................................................. 10Ambiente de teste personalizado ......................................................................................... 10

Execuções ............................................................................................................................... 10Configuração da execução ................................................................................................. 11Retenção de arquivos de execução ..................................................................................... 11Estado do dispositivo de execução ...................................................................................... 11Execuções paralelas ......................................................................................................... 11Configurar o tempo limite de execução ................................................................................ 11Instrumentação de aplicativos ............................................................................................. 11Nova assinatura de aplicativos nas execuções ...................................................................... 11Aplicativos obscurecidos nas execuções .............................................................................. 12Anúncios nas execuções .................................................................................................... 12Mídias nas execuções ....................................................................................................... 12Tarefas comuns nas execuções .......................................................................................... 12

Relatórios ................................................................................................................................ 12Retenção de relatório ........................................................................................................ 12Componentes do relatório .................................................................................................. 12Exemplos de desempenho nos relatórios .............................................................................. 12Logs nos relatórios ........................................................................................................... 13Tarefas comuns relacionadas aos relatórios .......................................................................... 13

Sessões .................................................................................................................................. 13Dispositivos que comportam acesso remoto .......................................................................... 13Retenção de arquivos de sessão ........................................................................................ 13Instrumentação de aplicativos ............................................................................................. 13Nova assinatura de aplicativos nas sessões ......................................................................... 13Aplicativos obscurecidos nas sessões .................................................................................. 14

Comprar slots de dispositivos ............................................................................................................. 15

Versão da API 2015-06-23iii

Page 4: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedor

Comprar slots de dispositivos (console) ........................................................................................ 15Comprar um slot de dispositivo (AWS CLI) ................................................................................... 16Comprar um slot de dispositivo (API) ........................................................................................... 19

Trabalhar com projetos ...................................................................................................................... 20Criar um projeto ....................................................................................................................... 20

Pré-requisitos ................................................................................................................... 20Criar um projeto (console) .................................................................................................. 20Criar um projeto (AWS CLI) ............................................................................................... 20Criar um projeto (API) ....................................................................................................... 21

Visualizar a lista de projetos ....................................................................................................... 21Pré-requisitos ................................................................................................................... 21Visualizar a lista de projetos (console) ................................................................................. 21Visualizar a lista de projetos (AWS CLI) ............................................................................... 21Visualizar a lista de projetos (API) ....................................................................................... 22

Trabalhar com execução de testes ...................................................................................................... 23Criar uma execução de teste ...................................................................................................... 23

Pré-requisitos ................................................................................................................... 23Criar uma execução de teste (console) ................................................................................ 23Criar uma execução de teste (AWS CLI) .............................................................................. 26Criar uma execução de teste (API) ...................................................................................... 33Próximas etapas ............................................................................................................... 33

Definir tempo limite de execução ................................................................................................ 33Pré-requisitos ................................................................................................................... 34Definir o tempo limite de execução de um projeto .................................................................. 34Definir o tempo limite de execução de um teste .................................................................... 34

Simular conexões e condições de rede ........................................................................................ 34Configurar modelagem de rede ao programar uma execução de teste ....................................... 35Criar um novo perfil de rede ............................................................................................... 35Alterar condições de rede durante o teste ............................................................................ 36

Interromper uma execução ......................................................................................................... 37Parar uma execução (Console) ........................................................................................... 37Interromper uma execução (AWS CLI) ................................................................................. 38Interromper uma execução (API) ......................................................................................... 39

Visualizar uma lista de execuções ............................................................................................... 39Visualizar uma lista de execuções (console) ......................................................................... 39Visualizar uma lista de execuções (AWS CLI) ....................................................................... 40Visualizar uma lista de execuções (API) ............................................................................... 40

Criar um grupo de dispositivos ................................................................................................... 40Pré-requisitos ................................................................................................................... 40Criar um grupo de dispositivos (console) .............................................................................. 40Criar um grupo de dispositivos (AWS CLI) ............................................................................ 41Criar um grupo de dispositivos (API) .................................................................................... 41

Analisar Resultados .................................................................................................................. 42Trabalhar com relatórios de testes ...................................................................................... 42Trabalhar com artefatos ..................................................................................................... 48

Trabalhar com tipos de teste .............................................................................................................. 52Testar estruturas ....................................................................................................................... 52

Estruturas de testes do aplicativo Android ............................................................................ 52Estruturas de testes do aplicativo iOS .................................................................................. 52Estruturas de testes do aplicativo web ................................................................................. 52

Tipos de teste integrado ............................................................................................................ 53Testes do Android ..................................................................................................................... 53

Estruturas de testes do aplicativo Android ............................................................................ 53Tipos de teste integrados para Android ................................................................................ 53Appium Java TestNG ........................................................................................................ 54Appium Java JUnit ............................................................................................................ 58Appium Node.js ................................................................................................................ 62

Versão da API 2015-06-23iv

Page 5: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedor

Appium Python ................................................................................................................. 65Appium Ruby ................................................................................................................... 68Calabash ......................................................................................................................... 72Instrumentação ................................................................................................................. 74UI Automator .................................................................................................................... 75

Testes do iOS .......................................................................................................................... 77Estruturas de testes do aplicativo iOS .................................................................................. 77Tipos de teste integrados para iOS ..................................................................................... 77Appium Java TestNG ........................................................................................................ 77Appium Java JUnit ............................................................................................................ 81Appium Node.js ................................................................................................................ 85Appium Python ................................................................................................................. 88Appium Ruby ................................................................................................................... 92Calabash ......................................................................................................................... 96UI Automation .................................................................................................................. 98XCTest ............................................................................................................................ 99XCTest UI ...................................................................................................................... 101

Testes de aplicativos web ........................................................................................................ 102Regras para dispositivos de acesso limitado e ilimitado ......................................................... 102Appium Java TestNG ....................................................................................................... 102Appium Java JUnit .......................................................................................................... 106Appium Node.js .............................................................................................................. 110Appium Python ............................................................................................................... 113Appium Ruby .................................................................................................................. 117

Testes integrados .................................................................................................................... 120Tipos de teste integrado ................................................................................................... 120Integrado: Explorer (Android) ............................................................................................ 121Integrado: Fuzz (Android e iOS) ........................................................................................ 121

Trabalhar com ambientes de teste personalizados ............................................................................... 123Sintaxe da especificação de teste .............................................................................................. 123Exemplo da especificação de teste ............................................................................................ 125Variáveis de ambiente ............................................................................................................. 126

Variáveis de ambiente comuns .......................................................................................... 127Variáveis de ambiente do Appium Java JUnit ...................................................................... 128Variáveis de ambiente do TestNG ..................................................................................... 128Variáveis de ambiente do XCUITest ................................................................................... 128

Migrar testes .......................................................................................................................... 128Estrutura do Appium ........................................................................................................ 129Instrumentação do Android ............................................................................................... 129Migrar testes do iOS XCUITest existentes .......................................................................... 129

Trabalhar com acesso remoto ........................................................................................................... 130Criar uma sessão .................................................................................................................... 130

Pré-requisitos ................................................................................................................. 130Criar uma sessão com o console do Device Farm ................................................................ 130Próximas etapas ............................................................................................................. 131

Usar uma sessão .................................................................................................................... 131Pré-requisitos ................................................................................................................. 131Usar uma sessão no console do Device Farm ..................................................................... 131Próximas etapas ............................................................................................................. 132Dicas e truques .............................................................................................................. 132

Obter resultados da sessão ...................................................................................................... 132Pré-requisitos ................................................................................................................. 133Visualização de detalhes da sessão ................................................................................... 133Download de vídeo ou logs de sessão ............................................................................... 133

Trabalhar com dispositivos privados ................................................................................................... 134Gerenciar dispositivos privados ................................................................................................. 134

Criar um perfil de instância ............................................................................................... 135

Versão da API 2015-06-23v

Page 6: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedor

Gerenciar uma instância de dispositivo privado .................................................................... 136Criar uma execução de teste ou uma sessão de acesso remoto ............................................. 137Criar um grupo de dispositivos privados ............................................................................. 138Próximas etapas ............................................................................................................. 140

Ignorar a nova assinatura do aplicativo ...................................................................................... 141Ignorar a nova assinatura do aplicativo em dispositivos Android ............................................. 143Ignorar a nova assinatura do aplicativo em dispositivos iOS ................................................... 143Criar uma sessão de acesso remoto para confiar no seu aplicativo ......................................... 143

Usar Serviços VPC endpoint ..................................................................................................... 145Antes de começar ........................................................................................................... 145Etapa 1: criar um Serviço VPC Endpoint ............................................................................ 146Etapa 2: criar a configuração de um VPC Endpoint .............................................................. 146Etapa 3: criar uma execução de teste ................................................................................ 147

Trabalhar entre regiões ............................................................................................................ 147Pré-requisitos ................................................................................................................. 148Etapa 1: conectar o Device Farm a uma VPC na mesma região ............................................. 149Etapa 2: configurar a VPC-1 ............................................................................................. 149Etapa 3: configurar a VPC-2 ............................................................................................. 150Etapa 4: configurar a VPC-1 ............................................................................................. 151Etapa 5: configurar a VPC-2 ............................................................................................. 152Etapa 6: criar uma execução de teste ................................................................................ 152

Limpar após testes .......................................................................................................................... 153Frotas de dispositivo público ..................................................................................................... 153Dispositivos privados ............................................................................................................... 153

Registrar chamadas de API com o AWS CloudTrail .............................................................................. 154Informações sobre o AWS Device Farm no CloudTrail .................................................................. 154Noções básicas das entradas dos arquivos de log do AWS Device Farm ......................................... 155

Integração do CodePipeline .............................................................................................................. 157Configurar o CodePipeline para usar seus testes do Device Farm .................................................. 157

Referência do AWS CLI ................................................................................................................... 162Referência do Windows PowerShell ................................................................................................... 163Referência de API ........................................................................................................................... 164Solução de problemas ..................................................................................................................... 165

Aplicativos Android .................................................................................................................. 165ANDROID_APP_UNZIP_FAILED ........................................................................................ 165ANDROID_APP_AAPT_DEBUG_BADGING_FAILED ............................................................. 166ANDROID_APP_PACKAGE_NAME_VALUE_MISSING .......................................................... 167ANDROID_APP_SDK_VERSION_VALUE_MISSING ............................................................. 167ANDROID_APP_AAPT_DUMP_XMLTREE_FAILED .............................................................. 168ANDROID_APP_DEVICE_ADMIN_PERMISSIONS ............................................................... 168

Appium Java JUnit .................................................................................................................. 169APPIUM_JAVA_JUNIT_TEST_PACKAGE_PACKAGE_UNZIP_FAILED .................................... 170APPIUM_JAVA_JUNIT_TEST_PACKAGE_DEPENDENCY_DIR_MISSING ............................... 170APPIUM_JAVA_JUNIT_TEST_PACKAGE_JAR_MISSING_IN_DEPENDENCY_DIR .................... 171APPIUM_JAVA_JUNIT_TEST_PACKAGE_TESTS_JAR_FILE_MISSING .................................. 172APPIUM_JAVA_JUNIT_TEST_PACKAGE_CLASS_FILE_MISSING_IN_TESTS_JAR .................. 172APPIUM_JAVA_JUNIT_TEST_PACKAGE_JUNIT_VERSION_VALUE_UNKNOWN ..................... 173APPIUM_JAVA_JUNIT_TEST_PACKAGE_INVALID_JUNIT_VERSION ..................................... 174

Appium Java JUnit Web ........................................................................................................... 175APPIUM_WEB_JAVA_JUNIT_TEST_PACKAGE_UNZIP_FAILED ............................................ 175APPIUM_WEB_JAVA_JUNIT_TEST_PACKAGE_DEPENDENCY_DIR_MISSING ....................... 176APPIUM_WEB_JAVA_JUNIT_TEST_PACKAGE_JAR_MISSING_IN_DEPENDENCY_DIR ........... 176APPIUM_WEB_JAVA_JUNIT_TEST_PACKAGE_TESTS_JAR_FILE_MISSING .......................... 177APPIUM_WEB_JAVA_JUNIT_TEST_PACKAGE_CLASS_FILE_MISSING_IN_TESTS_JAR .......... 178APPIUM_WEB_JAVA_JUNIT_TEST_PACKAGE_JUNIT_VERSION_VALUE_UNKNOWN ............ 179APPIUM_WEB_JAVA_JUNIT_TEST_PACKAGE_INVALID_JUNIT_VERSION ............................ 180

Appium Java TestNG ............................................................................................................... 181

Versão da API 2015-06-23vi

Page 7: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedor

APPIUM_JAVA_TESTNG_TEST_PACKAGE_UNZIP_FAILED ................................................. 181APPIUM_JAVA_TESTNG_TEST_PACKAGE_DEPENDENCY_DIR_MISSING ............................ 181APPIUM_JAVA_TESTNG_TEST_PACKAGE_JAR_MISSING_IN_DEPENDENCY_DIR ................ 182APPIUM_JAVA_TESTNG_TEST_PACKAGE_TESTS_JAR_FILE_MISSING ............................... 183APPIUM_JAVA_TESTNG_TEST_PACKAGE_CLASS_FILE_MISSING_IN_TESTS_JAR .............. 183

Appium Java TestNG Web ....................................................................................................... 185APPIUM_WEB_JAVA_TESTNG_TEST_PACKAGE_UNZIP_FAILED ........................................ 185APPIUM_WEB_JAVA_TESTNG_TEST_PACKAGE_DEPENDENCY_DIR_MISSING ................... 185APPIUM_WEB_JAVA_TESTNG_TEST_PACKAGE_JAR_MISSING_IN_DEPENDENCY_DIR ....... 186APPIUM_WEB_JAVA_TESTNG_TEST_PACKAGE_TESTS_JAR_FILE_MISSING ...................... 187APPIUM_WEB_JAVA_TESTNG_TEST_PACKAGE_CLASS_FILE_MISSING_IN_TESTS_JAR ...... 188

Appium Python ....................................................................................................................... 189APPIUM_PYTHON_TEST_PACKAGE_UNZIP_FAILED .......................................................... 189APPIUM_PYTHON_TEST_PACKAGE_DEPENDENCY_WHEEL_MISSING ............................... 189APPIUM_PYTHON_TEST_PACKAGE_INVALID_PLATFORM ................................................. 190APPIUM_PYTHON_TEST_PACKAGE_TEST_DIR_MISSING .................................................. 191APPIUM_PYTHON_TEST_PACKAGE_INVALID_TEST_FILE_NAME ....................................... 192APPIUM_PYTHON_TEST_PACKAGE_REQUIREMENTS_TXT_FILE_MISSING ......................... 192APPIUM_PYTHON_TEST_PACKAGE_INVALID_PYTEST_VERSION ...................................... 193APPIUM_PYTHON_TEST_PACKAGE_INSTALL_DEPENDENCY_WHEELS_FAILED ................. 194APPIUM_PYTHON_TEST_PACKAGE_PYTEST_COLLECT_FAILED ....................................... 195

Appium Python Web ................................................................................................................ 196APPIUM_WEB_PYTHON_TEST_PACKAGE_UNZIP_FAILED ................................................. 196APPIUM_WEB_PYTHON_TEST_PACKAGE_DEPENDENCY_WHEEL_MISSING ...................... 196APPIUM_WEB_PYTHON_TEST_PACKAGE_INVALID_PLATFORM ........................................ 197APPIUM_WEB_PYTHON_TEST_PACKAGE_TEST_DIR_MISSING ......................................... 198APPIUM_WEB_PYTHON_TEST_PACKAGE_INVALID_TEST_FILE_NAME ............................... 199APPIUM_WEB_PYTHON_TEST_PACKAGE_REQUIREMENTS_TXT_FILE_MISSING ................ 199APPIUM_WEB_PYTHON_TEST_PACKAGE_INVALID_PYTEST_VERSION .............................. 200APPIUM_WEB_PYTHON_TEST_PACKAGE_INSTALL_DEPENDENCY_WHEELS_FAILED ......... 201APPIUM_WEB_PYTHON_TEST_PACKAGE_PYTEST_COLLECT_FAILED ............................... 202

Calabash ............................................................................................................................... 203CALABASH_TEST_PACKAGE_UNZIP_FAILED_UNZIP_FAILED ............................................ 203CALABASH_TEST_PACKAGE_FEATURES_DIR_MISSING_FEATURES_DIR_MISSING ............ 203CALABASH_TEST_PACKAGE_FEATURE_FILE_MISSING .................................................... 204CALABASH_TEST_PACKAGE_STEP_DEFINITIONS_DIR_MISSING ....................................... 205CALABASH_TEST_PACKAGE_SUPPORT_DIR_MISSING ..................................................... 205CALABASH_TEST_PACKAGE_RUBY_FILE_MISSING_IN_STEP_DEFINITIONS_DIR ................ 206CALABASH_TEST_PACKAGE_RUBY_FILE_MISSING_IN_SUPPORT_DIR .............................. 207CALABASH_TEST_PACKAGE_EMBEDDED_SERVER_MISSING ........................................... 207CALABASH_TEST_PACKAGE_DRY_RUN_FAILED .............................................................. 208

Instrumentação ....................................................................................................................... 209INSTRUMENTATION_TEST_PACKAGE_UNZIP_FAILED ...................................................... 209INSTRUMENTATION_TEST_PACKAGE_AAPT_DEBUG_BADGING_FAILED ........................... 210INSTRUMENTATION_TEST_PACKAGE_INSTRUMENTATION_RUNNER_VALUE_MISSING ...... 211INSTRUMENTATION_TEST_PACKAGE_AAPT_DUMP_XMLTREE_FAILED ............................. 211INSTRUMENTATION_TEST_PACKAGE_TEST_PACKAGE_NAME_VALUE_MISSING ............... 212

Aplicativos iOS ....................................................................................................................... 213IOS_APP_UNZIP_FAILED ................................................................................................ 213IOS_APP_PAYLOAD_DIR_MISSING .................................................................................. 214IOS_APP_APP_DIR_MISSING ........................................................................................... 214IOS_APP_PLIST_FILE_MISSING ....................................................................................... 215IOS_APP_CPU_ARCHITECTURE_VALUE_MISSING ............................................................ 215IOS_APP_PLATFORM_VALUE_MISSING ........................................................................... 216IOS_APP_WRONG_PLATFORM_DEVICE_VALUE ............................................................... 217IOS_APP_FORM_FACTOR_VALUE_MISSING ..................................................................... 218IOS_APP_PACKAGE_NAME_VALUE_MISSING ................................................................... 219

Versão da API 2015-06-23vii

Page 8: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedor

IOS_APP_EXECUTABLE_VALUE_MISSING ........................................................................ 220UI Automator .......................................................................................................................... 221

UIAUTOMATOR_TEST_PACKAGE_UNZIP_FAILED ............................................................. 221XCTest .................................................................................................................................. 222

XCTEST_TEST_PACKAGE_UNZIP_FAILED ........................................................................ 222XCTEST_TEST_PACKAGE_XCTEST_DIR_MISSING ............................................................ 222XCTEST_TEST_PACKAGE_PLIST_FILE_MISSING .............................................................. 223XCTEST_TEST_PACKAGE_PACKAGE_NAME_VALUE_MISSING .......................................... 223XCTEST_TEST_PACKAGE_EXECUTABLE_VALUE_MISSING ............................................... 224

XCTest UI .............................................................................................................................. 225XCTEST_UI_TEST_PACKAGE_UNZIP_FAILED ................................................................... 225XCTEST_UI_TEST_PACKAGE_PAYLOAD_DIR_MISSING ..................................................... 226XCTEST_UI_TEST_PACKAGE_APP_DIR_MISSING ............................................................. 227XCTEST_UI_TEST_PACKAGE_PLUGINS_DIR_MISSING ...................................................... 227XCTEST_UI_TEST_PACKAGE_XCTEST_DIR_MISSING_IN_PLUGINS_DIR ............................. 228XCTEST_UI_TEST_PACKAGE_PLIST_FILE_MISSING ......................................................... 229XCTEST_UI_TEST_PACKAGE_PLIST_FILE_MISSING_IN_XCTEST_DIR ................................ 229XCTEST_UI_TEST_PACKAGE_CPU_ARCHITECTURE_VALUE_MISSING .............................. 230XCTEST_UI_TEST_PACKAGE_PLATFORM_VALUE_MISSING .............................................. 231XCTEST_UI_TEST_PACKAGE_WRONG_PLATFORM_DEVICE_VALUE .................................. 232XCTEST_UI_TEST_PACKAGE_FORM_FACTOR_VALUE_MISSING ....................................... 233XCTEST_UI_TEST_PACKAGE_PACKAGE_NAME_VALUE_MISSING ..................................... 234XCTEST_UI_TEST_PACKAGE_EXECUTABLE_VALUE_MISSING .......................................... 235XCTEST_UI_TEST_PACKAGE_TEST_PACKAGE_NAME_VALUE_MISSING ............................ 235XCTEST_UI_TEST_PACKAGE_TEST_EXECUTABLE_VALUE_MISSING ................................. 236

Referência de permissões de acesso ................................................................................................. 238Criar e anexar uma política para um usuário do IAM .................................................................... 238Ação Sintaxe para realizar ações no Device Farm ....................................................................... 239

Limites ........................................................................................................................................... 241Ferramentas e plug-ins .................................................................................................................... 242

Plug-in Jenkins CI ................................................................................................................... 242Etapa 1: Instalar o plug-in ................................................................................................ 245Etapa 2: Criar um usuário do IAM ..................................................................................... 246Etapa 3: instruções sobre configuração inicial ...................................................................... 247Etapa 4: Usar o plug-in .................................................................................................... 247Dependências ................................................................................................................. 247

Plug-in Gradle para o Device Farm ............................................................................................ 248Compilar o plug-in Gradle do Device Farm .......................................................................... 248Configurar o plug-in Gradle do Device Farm ........................................................................ 248Gerar um usuário do IAM ................................................................................................. 250Configurar tipos de teste .................................................................................................. 251Dependências ................................................................................................................. 253

Histórico do documento .................................................................................................................... 254AWS Glossary ................................................................................................................................ 257

Versão da API 2015-06-23viii

Page 9: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorTeste automatizado de aplicativos

O que é AWS Device Farm?O Device Farm é um serviço de teste de aplicativos que você pode usar para testar e interagir comaplicativos Android, iOS e web em telefones e tablets reais físicos que são hospedados pela Amazon WebServices (AWS).

Existem duas maneiras principais de usar o Device Farm:

• Testes automatizados de aplicativos usando uma variedade de estruturas de teste.• Acesso remoto aos dispositivos nos quais você pode carregar, executar e interagir com aplicativos em

tempo real.

Teste automatizado de aplicativosO Device Farm permite que você faça upload de seus próprios testes ou use testes de compatibilidadeintegrados e sem script. Como o teste é executado em paralelo, vários dispositivos começam a sertestados em questão de minutos.

À medida que os testes são concluídos, um relatório de teste contendo resultados de alto nível, logs debaixo nível, capturas de tela pixel a pixel e dados de desempenho é atualizado.

O Device Farm oferece suporte a teste de aplicativos Android, iOS e Fire OS nativos e híbridos, incluindoaqueles criados por estruturas como PhoneGap, Titanium, Xamarin, Unity e outras. É compatível comacesso remoto a aplicativos Android e iOS para testes interativos. Para obter mais informações sobre tiposde teste compatíveis, consulte Como trabalhar com tipos de testes no AWS Device Farm (p. 52).

Interação por acesso remotoO acesso remoto permite que você deslize o dedo, faça gestos e interaja com um dispositivo por meiode um navegador da web em tempo real. Há várias situações em que a interação em tempo real com umdispositivo é útil. Por exemplo, os representantes de atendimento ao cliente podem orientar os clientes emmeio ao uso ou à configuração do dispositivo. Eles também podem orientar os clientes em meio ao usode aplicativos executados em um dispositivo específico. Você pode instalar aplicativos em um dispositivoexecutado em uma sessão de acesso remoto e reproduzir os problemas do cliente ou os bugs relatados.

Durante uma sessão de acesso o remoto, Device Farm coleta detalhes sobre ações que ocorrem à medidaque você interage com o dispositivo. Os logs com esses detalhes e uma captura de vídeo da sessão sãoproduzidos no final da sessão.

TerminologiaO Device Farm apresenta os seguintes termos que definem a maneira como as informações sãoorganizadas:

grupo de dispositivos

Um conjunto de dispositivos que normalmente compartilham características semelhantes comoplataforma, fabricante ou modelo.

Versão da API 2015-06-231

Page 10: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorConfiguração

trabalho

Uma solicitação para o Device Farm testar um único aplicativo em um único dispositivo. Um trabalhocontém um ou mais pacotes.

medição

Refere-se à cobrança dos dispositivos. Você pode ver as referências a dispositivos ou dispositivosde acesso ilimitado na documentação e na referência de API. Para obter mais informações sobredefinição de preço, consulte Definição de preço do AWS Device Farm.

project

Um espaço de trabalho lógico que contém execuções, uma para cada teste de um único aplicativoem um ou mais dispositivos. Você pode usar projetos para organizar os espaços de trabalho da formaque você escolher. Por exemplo, você pode ter um projeto por título de aplicativo ou um projeto porplataforma. Você pode criar quantos projetos necessitar.

relatório

Contém informações sobre uma execução, que é uma solicitação para o Device Farm testar um únicoaplicativo em um ou mais dispositivos. Para obter mais informações, consulte Relatórios (p. 12).

executar

Uma compilação específica de seu aplicativo, com um conjunto específico de testes, para execuçãoem um conjunto específico de dispositivos. Uma execução produz um relatório dos resultados. Aexecução contém um ou mais trabalhos. Para obter mais informações, consulte Execuções (p. 10).

session

Uma interação em tempo real com um dispositivo real, físico, por meio de um navegador da web. Paraobter mais informações, consulte Sessões (p. 13).

pacote

A organização hierárquica de testes em um pacote de testes. Um pacote contém um ou mais testes.teste

Um caso de teste específico em um pacote de testes.

Para obter mais informações sobre o Device Farm, consulte Conceitos (p. 8).

ConfiguraçãoPara usar o Device Farm, consulte Configuração (p. 3).

Versão da API 2015-06-232

Page 11: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorEtapa 1: cadastrar-se na AWS

Configuração do AWS Device FarmAntes de usar o Device Farm pela primeira vez, você deve executar as seguintes tarefas:

Tópicos• Etapa 1: cadastrar-se na AWS (p. 3)• Etapa 2: Criar ou usar um usuário do IAM na conta da AWS (p. 3)• Etapa 3: Dar ao usuário do IAM permissão para acessar o Device Farm (p. 3)• Próxima etapa (p. 4)

Etapa 1: cadastrar-se na AWSCadastre-se no Amazon Web Services (AWS).

Se você ainda não tiver uma conta da AWS, use o procedimento a seguir para criar uma.

Para cadastrar-se na AWS

1. Abra https://aws.amazon.com/ e escolha Create an AWS Account.2. Siga as instruções online.

Etapa 2: Criar ou usar um usuário do IAM na contada AWS

É recomendável não usar a conta raiz da AWS para acessar o Device Farm. Em vez disso, crie um usuáriodo AWS Identity and Access Management (IAM) (ou use um existente) na conta da AWS e acesse oDevice Farm com esse usuário do IAM.

Para obter mais informações, consulte Criar um usuário do IAM (Console de gerenciamento da AWS).

Etapa 3: Dar ao usuário do IAM permissão paraacessar o Device Farm

Dê ao usuário do IAM permissão para acessar o Device Farm. Para isso, crie uma política de acesso noIAM e atribua a política de acesso ao usuário do IAM da maneira a seguir.

Note

A conta raiz da AWS ou o usuário do IAM usado para concluir as etapas a seguir deve terpermissão para criar a política do IAM a seguir e anexá-la ao usuário do IAM. Para obter maisinformações, consulte Trabalhar com políticas.

Para criar uma política de acesso no IAM

1. Abra o console do IAM em https://console.aws.amazon.com/iam/.

Versão da API 2015-06-233

Page 12: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorPróxima etapa

2. Escolha Policies (Políticas).3. Escolha Create Policy (Criar política). (Se aparecer um botão Get Started, selecione-o e, em seguida,

Create Policy.)4. Próximo a Create Your Own Policy, escolha Select.5. Em Policy Name (Nome da política), digite um nome para a política (por exemplo,

AWSDeviceFarmAccessPolicy).6. Em Description (Descrição), digite Provides access to all Device Farm actions

associated with the IAM user..7. Em Policy Document (Documento da política), digite a seguinte declaração:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "devicefarm:*" ], "Resource": [ "*" ] } ]}

8. Escolha Create Policy (Criar política).

Para atribuir essa política de acesso ao usuário do IAM

1. Abra o console do IAM em https://console.aws.amazon.com/iam/.2. Selecione Users.3. Escolha a função do IAM.4. Na área Permissions (Permissões), escolha Add permissions (Adicionar permissões).5. Na área Grant permissions (Conceder permissões), escolha Attach existing policies directly (Anexar

políticas existentes diretamente).6. Selecione a política que você acabou de criar (por exemplo, AWSDeviceFarmAccessPolicy).7. Selecione Next: Review.8. Na área Permissions summary (Resumo das permissões), escolha Add permissions (Adicionar

permissões).

Note

Anexar a política fornece ao usuário do IAM acesso a todas as ações do Device Farm associadasa esse usuário do IAM. Para obter mais informações sobre como restringir usuários do IAMa um conjunto limitado de ações do Device Farm, consulte Referência de permissões deacesso (p. 238).

Próxima etapaVocê está pronto para começar a usar o Device Farm. Consulte Conceitos básicos (p. 5).

Versão da API 2015-06-234

Page 13: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorPré-requisitos

Conceitos básicos do AWS DeviceFarm

Esta demonstração explica como usar o Device Farm para testar um aplicativo nativo do Android ou doiOS. Você usa o console do Device Farm para criar um projeto, fazer upload de um arquivo .apk ou .ipa,executar um pacote de testes padrão e visualizar os resultados.

Tópicos• Pré-requisitos (p. 5)• Etapa 1: fazer login no console (p. 5)• Etapa 2: criar um projeto (p. 5)• Etapa 3: criar e iniciar uma execução (p. 6)• Etapa 4: visualizar os resultados da execução (p. 7)• Próximas etapas (p. 7)

Pré-requisitosAntes de começar, verifique se você atendeu aos seguintes requisitos:

• Conclua as etapas em Configuração (p. 3). Você precisa de uma conta da AWS e um usuário do IAMcom permissão para acessar o Device Farm.

• Para Android, você precisa de um arquivo .apk (pacote de aplicativos Android). Para iOS, você precisade um arquivo .ipa (arquivo de aplicativo iOS). Você fará upload do arquivo no Device Farm ainda nestademonstração.

Note

Confirme se o arquivo .ipa foi desenvolvido para um dispositivo iOS e não para um simulador.• (Opcional) Você precisa de um teste de um dos tipos de teste compatíveis com o Device Farm. Você faz

upload desse pacote de testes no Device Farm e executar o teste ainda nesta demonstração. (Se vocênão tiver um pacote de testes disponível, poderá especificar e executar um pacote integrado de testespadrão.) Para obter mais informações, consulte Como trabalhar com tipos de testes no AWS DeviceFarm (p. 52).

Etapa 1: fazer login no consoleVocê pode usar o console do Device Farm para criar e gerenciar projetos e execuções para teste. Vocêconhecerá projetos e execuções ainda nesta demonstração.

• Faça login no console do Device Farm em https://console.aws.amazon.com/devicefarm.

Etapa 2: criar um projetoPara testar um aplicativo no Device Farm, você deve primeiro criar um projeto.

Versão da API 2015-06-235

Page 14: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorEtapa 3: criar e iniciar uma execução

1. Na página do console do Device Farm, digite um nome para o projeto (por exemplo,MyDemoProject).

2. Escolha Create project (Criar projeto). Atualize a página para ver seu novo projeto.

Etapa 3: criar e iniciar uma execuçãoAgora que você já tem um projeto, pode criar e iniciar uma execução. Para obter mais informações,consulte Execuções (p. 10).

1. Selecione MyDemoProject.2. Na página Automated tests (Testes automatizados), escolha Create a new run (Criar uma nova

execução).3. Na página Choose your application (Escolher o aplicativo), escolha Upload.4. Procure e escolha o arquivo de seu aplicativo Android ou iOS. Para Android, o arquivo deve ser .apk.

Para iOS, o arquivo deve ser um .ipa criado especificamente para um dispositivo, e não para osimulador.

5. Escolha Próxima etapa.6. Na página Configure a test (Configurar um teste), escolha um dos pacotes de testes.

Note

Se não tiver testes disponíveis, escolha Built-in: Fuzz (Integrado: Fuzz) para executar umpacote integrado padrão de testes. Para esta demonstração, se você escolher Built-in: Fuzz(Integrado: Fuzz), deixe as caixas Event count (Contagem de eventos), Event throttle (Limitede eventos) e Randomizer seed (Propagação aleatória) com os valores padrão.

7. Se não tiver escolhido Built-in: Fuzz (Integrado: Buzz), escolha Upload e procure e escolha o arquivoque contém os testes.

8. Escolha Próxima etapa.9. Na página Select devices (Selecionar dispositivos), em Device pool (Grupo de dispositivos), escolha

Top Devices (Principais dispositivos) para selecionar o grupo de dispositivos e, em seguida, escolhaNext step (Próxima etapa).

10. Na página Specify device state (Especificar estado do dispositivo), execute uma das seguintes ações:

• Para fornecer dados adicionais para o Device Farm a serem usados durante a execução, ao lado deAdd extra data (Adicionar dados extras), escolha Upload e procure e escolha o arquivo .zip.

• Para instalar um aplicativo adicional para Device Farm a ser usado durante a execução, ao lado deInstall other apps (Instalar outros aplicativos), escolha Upload e procure e escolha o arquivo .apkou .ipa que contém o aplicativo. Repita o procedimento para qualquer outro aplicativo que vocêdeseja instalar. Você pode alterar a ordem de instalação arrastando e soltando os aplicativos.

• Para especificar se Wi-Fi, Bluetooth, GPS ou NFC estará habilitado durante a execução, ao lado deSet radio states (Definir estados de rádio), selecione as caixas apropriadas.

Versão da API 2015-06-236

Page 15: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorEtapa 4: visualizar os resultados da execução

Note

A configuração do estado de rádio do dispositivo só está disponível para testes nativos doAndroid no momento.

• Para predefinir a latitude e a longitude do dispositivo para a execução, ao lado de Device location(Local do dispositivo), digite as coordenadas.

• Para predefinir o local para a execução, escolha o local em Device Locale (Localidade dodispositivo).

• Para predefinir o perfil de rede para a execução, escolha um perfil em Network profile (Perfil darede) ou escolha Create a new profile (Criar um novo perfil) para criar um próprio.

11. Escolha Próxima etapa.12. Na página Review and start run (Examinar e iniciar execução), escolha Confirm and start run

(Confirmar e iniciar execução).

O Device Farm deve iniciar a execução assim que os dispositivos estiverem disponíveis, normalmente em

alguns minutos. Até a execução começar, o Device Farm exibirá um ícone de calendário . Depois quea execução começar, os resultados serão exibidos à medida que os testes forem concluídos. Durante esse

tempo, o Device Farm exibe um ícone de andamento .

Etapa 4: visualizar os resultados da execuçãoA execução é concluída quando o ícone de andamento muda para um ícone de resultado. Para obter maisinformações, consulte Noções básicas dos resultados de testes (p. 42).

Para visualizar os resultados, escolha a execução concluída no console do Device Farm. A página deresumo exibe:

• O número total de testes, por resultado.• Lista de testes com avisos exclusivos ou falhas.• Uma lista de dispositivos e os resultados do teste para cada um.• Quaisquer capturas de tela durante a execução, agrupadas por dispositivo.

Para obter mais informações, consulte Trabalhar com relatórios de testes (p. 42).

Você acabou de concluir essa apresentação.

Próximas etapasPara obter mais informações sobre o Device Farm, consulte Conceitos (p. 8).

Versão da API 2015-06-237

Page 16: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorDispositivos

Conceitos do AWS Device FarmEsta seção descreve conceitos importantes do Device Farm.

• Dispositivos (p. 8)• Ambientes de teste (p. 9)• Execuções (p. 10)• Relatórios (p. 12)• Sessões (p. 13)

Para obter mais informações sobre tipos de teste compatíveis no Device Farm, consulte Como trabalharcom tipos de testes no AWS Device Farm (p. 52).

Suporte a dispositivos no AWS Device FarmAs seções a seguir fornecem informações sobre suporte a dispositivos no Device Farm.

Tópicos• Dispositivos compatíveis (p. 8)• Grupos de dispositivos (p. 8)• Dispositivos privados (p. 8)• Marcas de dispositivo (p. 9)• Slots para dispositivo (p. 9)• Aplicativos de dispositivos pré-instalados (p. 9)• Recursos dos dispositivos (p. 9)

Dispositivos compatíveisO Device Farm é compatível com centenas de dispositivos Android, iOS e Fire OS exclusivos e popularese com sistemas operacionais mistos. A lista de dispositivos disponíveis cresce à medida que novosdispositivos entram no mercado. Para a lista completa de dispositivos, consulte Lista de dispositivos.

Grupos de dispositivosO Device Farm organiza seus dispositivos em grupos que você pode usar para teste. Esses grupos dedispositivos contêm dispositivos relacionados, como os que só são executados no Android ou no iOS. ODevice Farm fornece grupos de dispositivos coletados, como aqueles para os principais dispositivos. Vocêtambém pode criar grupos de dispositivos que combinam dispositivos públicos e privados.

Dispositivos privadosOs dispositivos privados permitem especificar configurações de hardware e software exatas para as suasnecessidades de testes. Cada dispositivo privado é um dispositivo físico que o Device Farm implanta emseu nome em um datacenter Amazon. Os seus dispositivos privados estão disponíveis exclusivamentepara os testes automatizados e manuais. Depois que você optar por encerrar a sua assinatura, o hardwareserá removido do ambiente. Para obter mais informações, consulte Dispositivos privados e Trabalhar comdispositivos privados no AWS Device Farm (p. 134).

Versão da API 2015-06-238

Page 17: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorMarcas de dispositivo

Marcas de dispositivoO Device Farm executa testes em dispositivos físicos não raiz de marcas tanto de OEM quanto deoperadora.

Slots para dispositivoOs slots para dispositivo correspondem à simultaneidade com que o número de slots para dispositivoque você adquiriu determina o número de dispositivos que você pode executar em testes ou sessões deacesso remoto.

Existem dois tipos de slots de dispositivos:

• O slot de dispositivo de acesso remoto é aquele em que você pode executar sessões de acesso remotosimultaneamente.

Se você tiver um único slot para dispositivo de acesso remoto, poderá executar somente uma sessãode acesso remoto por vez. Se comprar mais slots de dispositivos de teste remoto, você poderá executarvárias sessões simultaneamente.

• O slot de dispositivo de teste automatizado é aquele em que você pode executar testessimultaneamente.

Se tiver um slot de dispositivo de teste automatizado, você só poderá executar testes em um dispositivopor vez. Se comprar mais slots de dispositivos de teste automatizado, você poderá executar váriostestes simultaneamente, em vários dispositivos, para obter os resultados mais rapidamente.

Você pode comprar slots para dispositivo com base na família do dispositivo (dispositivos Android ouiOS para testes automatizados e dispositivos Android ou iOS para acesso remoto). Para obter maisinformações, consulte Definição de preço do Device Farm.

Aplicativos de dispositivos pré-instaladosNo Device Farm, os dispositivos incluem um pequeno número de aplicativos já instalados por fabricantes eoperadoras.

Recursos dos dispositivosTodos os dispositivos têm conexão Wi-Fi com a Internet. Ele não têm conexão com as operadores e nãopodem fazer ligações telefônicas nem enviar mensagens SMS.

Você pode tirar fotos com qualquer dispositivo que tenha câmera frontal ou traseira. Por causa da maneiracomo os dispositivos são montados, as fotos podem ter uma aparência escura e tremida.

O Google Play Services está instalado nos dispositivos com câmera, mas esses dispositivos não têm umaconta Google ativa.

Ambientes de teste no AWS Device FarmO AWS Device Farm fornece os ambientes de teste personalizado e padrão para executar os testesautomatizados. Você pode escolher um ambiente de teste personalizado para controle total sobre os testesautomatizados. Ou você pode escolher o ambiente de teste padrão do Device Farm, que oferece relatóriosgranulares de cada teste no pacote de teste automatizado.

Versão da API 2015-06-239

Page 18: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorAmbiente de teste padrão

Tópicos• Ambiente de teste padrão (p. 10)• Ambiente de teste personalizado (p. 10)

Ambiente de teste padrãoQuando você executa um teste no ambiente padrão, o Device Farm fornece logs detalhados e relatóriospara cada caso no pacote de teste. Você pode visualizar dados de desempenho, vídeos, capturas de tela elogs para cada teste a fim de identificar e corrigir problemas no aplicativo.

Note

Como o Device Farm fornece relatórios granulares no ambiente padrão, os tempos de execuçãode teste podem ser mais longos do que quando você executa os testes. Se você quiser tempos deexecução menores, execute os testes em um ambiente de teste personalizado.

Ambiente de teste personalizadoAo personalizar o ambiente de teste, você pode especificar os comandos que o Device Farm deveexecutar para realizar os testes. Isso garante que testes no Device Farm sejam executados de maneirasemelhante a testes executados na máquina local. Executar os testes nesse modo também permite que ostreaming de vídeo ao vivo e log dos testes. Ao executar testes em um ambiente de teste personalizado,você não recebe relatórios granulares para cada caso de teste. Para obter mais informações, consulteTrabalhar com ambientes de teste personalizados (p. 123).

Você tem a opção de usar um ambiente de teste personalizado ao usar o console do Device Farm, a AWSCLI ou a API do Device Farm para criar uma execução de teste.

Para obter mais informações, consulte Fazer upload de uma especificação de teste personalizada usandoa AWS CLI e Criar uma execução de teste no AWS Device Farm (p. 23).

Execuções no AWS Device FarmAs seções a seguir contêm informações sobre as execuções no Device Farm.

Uma execução no Device Farm representa uma compilação específica de seu aplicativo, com um conjuntoespecífico de testes, para execução em um conjunto específico de dispositivos. A execução produz umrelatório que contém informações sobre os resultados da execução. A execução contém um ou maistrabalhos.

Tópicos• Configuração da execução (p. 11)• Retenção de arquivos de execução (p. 11)• Estado do dispositivo de execução (p. 11)• Execuções paralelas (p. 11)• Configurar o tempo limite de execução (p. 11)• Instrumentação de aplicativos (p. 11)• Nova assinatura de aplicativos nas execuções (p. 11)• Aplicativos obscurecidos nas execuções (p. 12)• Anúncios nas execuções (p. 12)• Mídias nas execuções (p. 12)

Versão da API 2015-06-2310

Page 19: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorConfiguração da execução

• Tarefas comuns nas execuções (p. 12)

Configuração da execuçãoEm uma execução, você pode fornecer as configurações que o Device Farm pode usar para substituir asconfigurações atuais do dispositivo. Isso inclui coordenadas de latitude e longitude, local, especificaçõesde rádio (como Bluetooth, GPS, NFC e Wi-Fi), dados extras (contidos em um arquivo .zip) e aplicativosauxiliares (aplicativos que devem ser instalados antes do aplicativo que será testado).

Retenção de arquivos de execuçãoO Device Farm armazena seus aplicativos e arquivos por 30 dias e depois os exclui do sistema. Noentanto, você mesmo pode excluir seus arquivos a qualquer momento.

O Device Farm armazena os resultados, logs e capturas de tela da execução por 400 dias e depois osexclui do sistema.

Estado do dispositivo de execuçãoO Device Farm sempre reinicializa um dispositivo antes de disponibilizá-lo para a tarefa seguinte.

Execuções paralelasO Device Farm executa testes em paralelo à medida que os dispositivos ficam disponíveis.

Configurar o tempo limite de execuçãoVocê pode definir por quanto tempo um teste deve ser executado antes de interromper a execução deteste de cada dispositivo. Por exemplo, se a conclusão dos testes demorar 20 minutos por dispositivo,você deve escolher um tempo limite de 30 minutos por dispositivo.

Para obter mais informações, consulte Configuração do tempo limite de execução para execuções de testeno AWS Device Farm (p. 33).

Instrumentação de aplicativosVocê não precisa instrumentar seus aplicativos nem fornecer o código-fonte de seus aplicativos aoDevice Farm. Os aplicativos Android podem ser enviados não modificados. Os aplicativos iOS devem sercompilados com o destino iOS Device (Dispositivo iOS), em vez do simulador.

Nova assinatura de aplicativos nas execuçõesPara aplicativos iOS, você não precisa adicionar UUIDs do Device Farm ao perfil de provisionamento. ODevice Farm substitui o perfil de provisionamento incorporado por um perfil curinga e assina novamente oaplicativo. Se você fornecer dados auxiliares, o Device Farm os adicionará ao pacote do aplicativo antesdo Device Farm instalá-los, de maneira que o auxiliar saia do sandbox do aplicativo. A nova assinaturado aplicativo elimina direitos como App Group, Associated Domains, Game Center, HealthKit, HomeKit,Wireless Accessory Configuration, In-App Purchase, Inter-App Audio, Apple Pay, Push Notifications e VPNConfiguration & Control.

Com relação a aplicativos Android, o Device Farm assina novamente o aplicativo. Isso pode interromperqualquer funcionalidade que dependa da assinatura do aplicativo, como a API do Google Maps paraAndroid, ou pode ativar a detecção de pirataria ou adulteração em produtos como o DexGuard.

Versão da API 2015-06-2311

Page 20: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorAplicativos obscurecidos nas execuções

Aplicativos obscurecidos nas execuçõesPara aplicativos Android, se o aplicativo estiver ofuscado, você ainda poderá testá-lo com o Device Farmse usar o ProGuard. No entanto, se você usar o DexGuard com medidas antipirataria, o Device Farm nãopoderá assinar novamente o aplicativo e executar testes.

Anúncios nas execuçõesÉ recomendável remover os anúncios dos aplicativos antes de carregá-los no Device Farm. Não podemosgarantir que os anúncios sejam exibidos durante execuções.

Mídias nas execuçõesVocê pode fornecer mídias ou outros dados para acompanhar seu aplicativo. Os dados adicionais devemser fornecidos em um arquivo .zip com tamanho não superior a 4 GB.

Tarefas comuns nas execuçõesPara obter mais informações, consulte Criar uma execução de teste no AWS Device Farm (p. 23) eTrabalhar com execução de testes (p. 23).

Relatórios no AWS Device FarmAs seções a seguir fornecem informações sobre relatórios de testes do Device Farm.

Tópicos• Retenção de relatório (p. 12)• Componentes do relatório (p. 12)• Exemplos de desempenho nos relatórios (p. 12)• Logs nos relatórios (p. 13)• Tarefas comuns relacionadas aos relatórios (p. 13)

Retenção de relatórioO Device Farm armazena seus relatórios por 400 dias. Esses relatórios incluem metadados, logs, capturasde tela e dados de desempenho.

Componentes do relatórioNo Device Farm, os relatórios contêm informações de aprovação e reprovação, relatórios de falha, teste elogs de dispositivo, capturas de tela e dados de desempenho.

Os relatórios incluem dados detalhados por dispositivo e resultados técnicos, como o número deocorrências de um determinado problema.

Exemplos de desempenho nos relatóriosDurante a execução do teste, o Device Farm captura exemplos de desempenho a cada segundo.

Versão da API 2015-06-2312

Page 21: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorLogs nos relatórios

Logs nos relatóriosOs relatórios incluem capturas de logcat para testes do Android e logs completos do console de dispositivopara testes de iOS.

Tarefas comuns relacionadas aos relatóriosPara obter mais informações, consulte Trabalhar com relatórios de testes (p. 42).

Sessões no AWS Device FarmVocê pode usar o Device Farm para realizar testes interativos de aplicativos Android e iOS por meio desessões de acesso remoto em um navegador da web. Esse tipo de teste interativo ajuda a dar suportea engenheiros em uma chamada do cliente para percorrer, passo a passo, o problema do cliente. Osdesenvolvedores podem reproduzir um problema em um dispositivo específico para isolar as possíveiscausas do problema. Você pode usar sessões remotas para realizar testes de usabilidade com seusclientes-alvo.

Tópicos• Dispositivos que comportam acesso remoto (p. 13)• Retenção de arquivos de sessão (p. 13)• Instrumentação de aplicativos (p. 13)• Nova assinatura de aplicativos nas sessões (p. 13)• Aplicativos obscurecidos nas sessões (p. 14)

Dispositivos que comportam acesso remotoO Device Farm dá suporte para uma grande variedade de dispositivos Android e iOS populares exclusivos.A lista de dispositivos disponíveis cresce à medida que novos dispositivos entram no mercado. O consoledo Device Farm exibe a lista atual de dispositivos Android e OS disponíveis para acesso remoto. Paraobter mais informações, consulte Dispositivos (p. 8).

Retenção de arquivos de sessãoO Device Farm armazena seus aplicativos e arquivos por 30 dias e depois os exclui do sistema. Noentanto, você mesmo pode excluir seus arquivos a qualquer momento.

O Device Farm armazena os logs de sessão e o vídeo capturado por 400 dias e depois os exclui dosistema.

Instrumentação de aplicativosVocê não precisa instrumentar seus aplicativos nem fornecer o código-fonte de seus aplicativos ao DeviceFarm. Os aplicativos Android e iOS podem ser enviados sem alteração.

Nova assinatura de aplicativos nas sessõesO Device Farm assina novamente aplicativos Android e iOS. Ele pode interromper a funcionalidadedependente da assinatura do aplicativo. Por exemplo, a API do Google Maps para Android depende da

Versão da API 2015-06-2313

Page 22: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorAplicativos obscurecidos nas sessões

assinatura do aplicativo. A nova assinatura do aplicativo também pode disparar a detecção antipirataria ouadulteração em produtos, como o DexGuard para dispositivos Android.

Aplicativos obscurecidos nas sessõesPara aplicativos Android, se o aplicativo estiver ofuscado, você ainda poderá testá-lo com o Device Farmse usar o ProGuard. No entanto, se você usar o DexGuard com medidas antipirataria, o Device Farm nãopoderá assinar novamente o aplicativo.

Versão da API 2015-06-2314

Page 23: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorComprar slots de dispositivos (console)

Compra de slot para dispositivo noAWS Device Farm

Você pode usar o console do AWS Device Farm, a AWS Command Line Interface (AWS CLI) ou a API doAWS Device Farm para comprar um slot de dispositivo.

Tópicos• Comprar slots de dispositivos (console) (p. 15)• Comprar um slot de dispositivo (AWS CLI) (p. 16)• Comprar um slot de dispositivo (API) (p. 19)

Comprar slots de dispositivos (console)1. Faça login no console do Device Farm em https://console.aws.amazon.com/devicefarm.2. Role para baixo até a seção UNLIMITED ACCESS (Acesso ilimitado) e escolha o link Learn more

about unlimited testing (Saiba mais sobre testes ilimitados).3. Na página Packages (Pacotes), você pode escolher um dos pacotes pré-configurados (SINGLE

PLATFORM (Plataforma única), CROSS PLATFORM (Plataforma cruzada) ou CONTINUOUSINTEGRATION (Integração contínua) ou criar o próprio pacote personalizado escolhendo o número deslots de cada tipo que você deseja comprar.

Note

Se escolher um dos pacotes pré-configurados, você deverá selecionar Automated testing(Testes automatizados), Remote access (Acesso remoto) ou ambos.

O texto é atualizado dinamicamente com a quantidade que será adicionada à fatura. Para obter maisinformações, consulte Definição de preço do Device Farm.

4. Escolha Buy now (Comprar agora) e Complete purchase (Concluir compra).

Se você vir Contact us (Entre em contato conosco) ou Contact us to purchase (Entre em contatoconosco para comprar), sua conta ainda não terá aprovação para comprar o número de slots dedispositivos solicitado. Na caixa de diálogoSend us feedback for the Device Farm Console (Enviecomentários sobre o console do Device Farm), insira o número de slots de cada tipo que você desejacomprar e escolha Contact Support (Entrar em contato com o suporte).

Versão da API 2015-06-2315

Page 24: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorComprar um slot de dispositivo (AWS CLI)

Na página Account settings (Configurações da conta), você só verá a mensagem You have xxx FREETRIAL MINUTES remaining (Você tem xxx MINUTOS DE AVALIAÇÃO GRATUITA restantes) se tiverminutos de avaliação gratuita restantes. O número de minutos restantes é uma estimativa. Ele não reflete ouso por testes que estão sendo executados no momento.

Você também verá o número de slots de dispositivo que você tem no momento. Se tiver aumentado oudiminuído o número de slots, você verá o número de slots que terá um mês depois da data em que fez aalteração.

Comprar um slot de dispositivo (AWS CLI)Você pode executar o comando purchase-offering para comprar uma oferta.

Para listar as configurações da conta do Device Farm, incluindo o número máximo de slots de dispositivosque você pode comprar e o número de minutos de avaliação gratuita restantes, execute o comando get-account-settings. Você verá algo semelhante ao resultado a seguir:

{ "accountSettings": { "maxSlots": { "GUID": 1, "GUID": 1, "GUID": 1, "GUID": 1 }, "unmeteredRemoteAccessDevices": { "ANDROID": 0, "IOS": 0 }, "maxJobTimeoutMinutes": 150, "trialMinutes": { "total": 1000.0, "remaining": 954.1 }, "defaultJobTimeoutMinutes": 150, "awsAccountNumber": "AWS-ACCOUNT-NUMBER", "unmeteredDevices": { "ANDROID": 0, "IOS": 0 } }}

Versão da API 2015-06-2316

Page 25: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorComprar um slot de dispositivo (AWS CLI)

Para listar as ofertas de slot para dispositivos disponíveis para você, execute o comando list-offerings.Você deve ver uma saída semelhante ao seguinte:

{ "offerings": [ { "recurringCharges": [ { "cost": { "amount": 250.0, "currencyCode": "USD" }, "frequency": "MONTHLY" } ], "platform": "IOS", "type": "RECURRING", "id": "GUID", "description": "iOS Unmetered Device Slot" }, { "recurringCharges": [ { "cost": { "amount": 250.0, "currencyCode": "USD" }, "frequency": "MONTHLY" } ], "platform": "ANDROID", "type": "RECURRING", "id": "GUID", "description": "Android Unmetered Device Slot" }, { "recurringCharges": [ { "cost": { "amount": 250.0, "currencyCode": "USD" }, "frequency": "MONTHLY" } ], "platform": "ANDROID", "type": "RECURRING", "id": "GUID", "description": "Android Remote Access Unmetered Device Slot" }, { "recurringCharges": [ { "cost": { "amount": 250.0, "currencyCode": "USD" }, "frequency": "MONTHLY" } ], "platform": "IOS", "type": "RECURRING", "id": "GUID", "description": "iOS Remote Access Unmetered Device Slot" }

Versão da API 2015-06-2317

Page 26: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorComprar um slot de dispositivo (AWS CLI)

]}

Para listar as promoções de oferta que estão disponíveis, execute o comando list-offering-promotions.

Note

Esse comando só retorna promoções que você ainda não comprou. Assim que você comprar umou mais slots em qualquer oferta usando uma promoção, essa promoção deixará de ser exibidanos resultados.

Você deve ver uma saída semelhante ao seguinte:

{ "offeringPromotions": [ { "id": "2FREEMONTHS", "description": "New device slot customers get 3 months for the price of 1." } ]}

Para obter o status da oferta, execute o comando get-offering-status. Você deve ver uma saída semelhanteao seguinte:

{ "current": { "GUID": { "offering": { "platform": "IOS", "type": "RECURRING", "id": "GUID", "description": "iOS Unmetered Device Slot" }, "quantity": 1 }, "GUID": { "offering": { "platform": "ANDROID", "type": "RECURRING", "id": "GUID", "description": "Android Unmetered Device Slot" }, "quantity": 1 } }, "nextPeriod": { "GUID": { "effectiveOn": 1459468800.0, "offering": { "platform": "IOS", "type": "RECURRING", "id": "GUID", "description": "iOS Unmetered Device Slot" }, "quantity": 1 }, "GUID": { "effectiveOn": 1459468800.0, "offering": { "platform": "ANDROID", "type": "RECURRING", "id": "GUID",

Versão da API 2015-06-2318

Page 27: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorComprar um slot de dispositivo (API)

"description": "Android Unmetered Device Slot" }, "quantity": 1 } }}

O renew-offering e o list-offering-transactions também estão disponíveis para esse recurso. Para obtermais informações, consulte Referência de AWS CLI do Device Farm e Referência do AWS CLI (p. 162).

Comprar um slot de dispositivo (API)1. Chame a operação GetAccountSettings para listar as configurações de conta.2. Chame a operação ListOfferings para listar as ofertas de slot de dispositivo disponíveis para você.3. Chame a operação ListOfferingPromotions para listar as promoções de ofertas disponíveis.

Note

Esse comando só retorna promoções que você ainda não comprou. Assim que você comprarum ou mais slots usando uma promoção de oferta, essa promoção deixará de ser exibida nosresultados.

4. Chame a operação PurchaseOffering para adquirir uma oferta.5. Chame a operação GetOfferingStatus para obter o status da oferta.

Os comandos RenewOffering e ListOfferingTransactions também estão disponíveis para esse recurso.

Para obter informações sobre como usar a API do Device Farm, consulte Referência de API (p. 164).

Versão da API 2015-06-2319

Page 28: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorCriar um projeto

Como trabalhar com projetos noAWS Device Farm

Um projeto em Device Farm representa um espaço de trabalho lógico no Device Farm que contémexecuções, uma para cada teste de um único aplicativo em um ou mais dispositivos. Os projetos permitemque você organize os espaços de trabalho da forma que você escolher. Por exemplo, pode haver umprojeto por título de aplicativo ou pode haver um projeto por plataforma. Você pode criar quantos projetosnecessitar.

Você pode usar o console do AWS Device Farm, a AWS Command Line Interface (AWS CLI) ou a API doAWS Device Farm para trabalhar com projetos.

Tópicos• Criar um projeto no AWS Device Farm (p. 20)• Visualizar a lista de projetos no AWS Device Farm (p. 21)

Criar um projeto no AWS Device FarmVocê pode criar um projeto usando o console do AWS Device Farm, a AWS CLI ou a API do AWS DeviceFarm.

Pré-requisitos• Conclua as etapas em Configuração (p. 3).

Criar um projeto (console)1. Faça login no console do Device Farm em https://console.aws.amazon.com/devicefarm.2. No console do Device Farm, escolha Create a new project (Criar um novo projeto).3. Insira um nome para o projeto e escolha Create project (Criar projeto).4. Para especificar configurações para o projeto, escolha Project settings (Configurações do projeto).

Essas configurações incluem o tempo limite padrão para execuções de teste. Depois que asconfigurações forem aplicadas, elas serão usadas em todas as execuções de teste do projeto. Paraobter mais informações, consulte Configuração do tempo limite de execução para execuções de testeno AWS Device Farm (p. 33).

Criar um projeto (AWS CLI)• Execute create-project especificando o nome do projeto.

Exemplo:

aws devicefarm create-project --name MyProjectName

A resposta da AWS CLI inclui o nome de recurso da Amazon (ARN) do projeto.

Versão da API 2015-06-2320

Page 29: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorCriar um projeto (API)

{ "project": { "name": "MyProjectName", "arn": "arn:aws:devicefarm:us-west-2:123456789101:project:5e01a8c7-c861-4c0a-b1d5-12345EXAMPLE", "created": 1535675814.414 }}

Para obter mais informações, consulte create-project e Referência do AWS CLI (p. 162).

Criar um projeto (API)• Chame a API CreateProject.

Para obter informações sobre como usar a API do Device Farm, consulte Referência de API (p. 164).

Visualizar a lista de projetos no AWS Device FarmVocê pode usar o console do AWS Device Farm, a AWS CLI ou a API do AWS Device Farm paravisualizar a lista de projetos.

Tópicos• Pré-requisitos (p. 21)• Visualizar a lista de projetos (console) (p. 21)• Visualizar a lista de projetos (AWS CLI) (p. 21)• Visualizar a lista de projetos (API) (p. 22)

Pré-requisitos• Crie pelo menos um projeto no Device Farm. Siga as instruções em Criar um projeto no AWS Device

Farm (p. 20) e retorne a esta página.

Visualizar a lista de projetos (console)1. Faça login no console do Device Farm em https://console.aws.amazon.com/devicefarm.2. Se a lista de projetos disponíveis não for exibida, na barra de navegação secundária, faça o seguinte:

• Escolha o botão da página inicial do console do Device Farm.• Em Projects (Projetos), escolha View all projects (Visualizar todos os projetos).

Visualizar a lista de projetos (AWS CLI)• Para visualizar a lista de projetos, execute o comando list-projects.

Para visualizar informações sobre um único projeto, execute o comando get-project.

Versão da API 2015-06-2321

Page 30: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorVisualizar a lista de projetos (API)

Para obter informações sobre como usar o Device Farm com a AWS CLI, consulte Referência do AWSCLI (p. 162).

Visualizar a lista de projetos (API)• Para visualizar a lista de projetos, execute a API ListProjects.

Para visualizar informações sobre um único projeto, chame a API GetProject.

Para obter informações sobre a API do AWS Device Farm, consulte Referência de API (p. 164).

Versão da API 2015-06-2322

Page 31: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorCriar uma execução de teste

Como trabalhar com execução detestes no AWS Device Farm

Uma execução no Device Farm representa uma compilação específica de seu aplicativo, com um conjuntoespecífico de testes, para execução em um conjunto específico de dispositivos. A execução produz umrelatório que contém informações sobre os resultados da execução. A execução contém um ou maistrabalhos. Para obter mais informações, consulte Execuções (p. 10).

Você pode usar o console do AWS Device Farm, a AWS Command Line Interface (AWS CLI) ou a API doAWS Device Farm para trabalhar com execuções.

Tópicos• Criar uma execução de teste no AWS Device Farm (p. 23)• Configuração do tempo limite de execução para execuções de teste no AWS Device Farm (p. 33)• Simulação de conexões e condições de rede para execuções no AWS Device Farm (p. 34)• Interromper uma execução no AWS Device Farm (p. 37)• Visualizar uma lista de execuções no AWS Device Farm (p. 39)• Criação de um grupo de dispositivos no AWS Device Farm (p. 40)• Analisar resultados no AWS Device Farm (p. 42)

Criar uma execução de teste no AWS Device FarmVocê pode usar o console do AWS Device Farm, a AWS CLI ou a API do AWS Device Farm para criaruma execução de teste. Você também pode usar um plug-in compatível, como o Jenkins ou o Gradle paraDevice Farm. Para obter mais informações sobre plug-ins, consulte Ferramentas e plug-ins (p. 242). Paraobter informações sobre execuções, consulte Execuções (p. 10).

Tópicos• Pré-requisitos (p. 23)• Criar uma execução de teste (console) (p. 23)• Criar uma execução de teste (AWS CLI) (p. 26)• Criar uma execução de teste (API) (p. 33)• Próximas etapas (p. 33)

Pré-requisitosVocê deve ter um projeto no Device Farm. Siga as instruções em Criar um projeto no AWS DeviceFarm (p. 20) e retorne a esta página.

Criar uma execução de teste (console)1. Faça login no console do Device Farm em https://console.aws.amazon.com/devicefarm.2. Se você vir a página inicial do console do AWS Device Farm, insira um nome para o projeto e escolha

Create project (Criar projeto). Atualize a página para ver seu novo projeto.

Versão da API 2015-06-2323

Page 32: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorCriar uma execução de teste (console)

3. Se já tiver um projeto, você poderá fazer upload dos testes para ele. Caso contrário, escolha Create anew project (Criar um novo projeto) e insira um nome para o projeto.

4. Abra o projeto e escolha Create a new run (Criar uma nova execução).5. Na página Choose your application (Selecionar o aplicativo), selecione aplicativo nativo ( ) ou

aplicativo web ( ).

6. Faça upload do arquivo do aplicativo. Você também pode arrastar e soltar o arquivo ou escolher umupload recente. Se você estiver fazendo upload de um aplicativo iOS, certifique-se de escolher iOSdevice (Dispositivo iOS), e não um simulador.

7. (Opcional) Em Run name (Nome da execução), insira um nome. Se você não especificar um nome deexecução, o Device Farm usará o nome de arquivo do aplicativo.

8. Escolha Next step (Próxima etapa).9. Na página Configure (Configurar), escolha um dos pacotes de testes disponíveis.

Note

Se não tiver testes disponíveis, escolha Built-in: Fuzz (Integrado: Fuzz) para executar umpacote integrado padrão de testes. Se escolher Built-in: Fuzz (Integrado: Fuzz) e as caixasEvent count (Contagem de eventos), Event throttle (Limite de eventos) e Randomizer seed(Propagação aleatória) forem exibidas, você poderá alterar ou manter os valores.

Para obter mais informações sobre pacotes de testes, consulte Como trabalhar com tipos de testes noAWS Device Farm (p. 52).

10. Se você não tiver escolhido Built-in: Fuzz (Integrado: Fuzz), escolha Upload (Fazer upload), procure eescolha o arquivo que contém os testes.

11. Para o ambiente de execução, escolha Run test in our standard environment (Executar teste em nossoambiente padrão) ou Customize your test environment (Personalizar o ambiente de teste). Para obtermais informações, consulte Ambientes de teste (p. 9).

12. Se você estiver usando o ambiente de teste padrão, vá para a etapa 13. Se você estiver usando umambiente de teste personalizado com o arquivo YAML de especificação de teste padrão, vá para aetapa 13.

a. Se você quiser editar a especificação de teste padrão em um ambiente de teste personalizado,escolha Edit (Editar) para atualizar a especificação YAML padrão.

b. Se você fizer alterações na especificação de teste, escolha Save as New (Salvar como novo) paraatualizar a especificação de teste.

13. Se você quiser configurar as opções de captura de dados de desempenho ou gravação de vídeo,escolha Advanced Configuration (Configuração avançada).

a. Selecione Enable Video Recording (Habilitar gravação de vídeo) para habilitar a gravação devídeo durante a execução do teste.

Versão da API 2015-06-2324

Page 33: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorCriar uma execução de teste (console)

b. Selecione Enable App Performance Data Capture (Habilitar captura de dados do desempenho doaplicativo) para habilitar a captura de dados de desempenho do dispositivo.

Note

Se você tiver dispositivos privados, Configuration para Private Devices (Configuração paradispositivos privados) também será exibido.

14. Escolha Next step (Próxima etapa).15. Na página Select devices (Selecionar dispositivos), execute uma das seguintes ações:

• Para escolher um grupo de dispositivos integrados para executar os testes, em Device pool (Grupode dispositivos), escolha Top Devices (Principais dispositivos).

• Para criar o próprio grupo de dispositivos para executar os testes, siga as instruções em Criar umgrupo de dispositivos (p. 40) e retorne a esta página.

• Se você tiver criado o próprio grupo de dispositivos anteriormente, em Device pool (Grupo dedispositivos), escolha o grupo de dispositivos.

Para obter mais informações, consulte Dispositivos (p. 8).16. Escolha Next step (Próxima etapa).17. Na página Specify device state (Especificar estado do dispositivo):

• Para fornecer outros dados do Device Farm a serem usados durante a execução, ao lado de Addextra data (Adicionar dados extras), escolha Upload, procure e escolha o arquivo .zip que contém osdados.

• Para instalar um aplicativo adicional para Device Farm a ser usado durante a execução, ao lado deInstall other apps (Instalar outros aplicativos), escolha Upload e procure e escolha o arquivo .apkou .ipa que contém o aplicativo. Repita isso para outros aplicativos que você deseja instalar. Vocêpode alterar a ordem de instalação arrastando e soltando os aplicativos depois de fazer uploaddeles.

• Para especificar se Wi-Fi, Bluetooth, GPS ou NFC estará habilitado durante a execução, ao lado deSet radio states (Definir estados de rádio), selecione as caixas apropriadas.

• Para predefinir a latitude e a longitude do dispositivo para a execução, ao lado de Device location(Local do dispositivo), insira as coordenadas.

• Para predefinir a localidade da execução, em Device Locale (Localidade do dispositivo), escolha alocalidade.

18. Escolha Review and start run (Examinar e iniciar execução).19. Nessa página, você pode especificar o tempo limite de execução da execução do teste. Se você

estiver usando um número ilimitado de slots de testes, confirme se Run on unmetered slots (Executarem slots não medidos) está selecionado.

20. Insira um valor ou use a barra deslizante para alterar o tempo limite de execução. Para obter maisinformações, consulte Configuração do tempo limite de execução para execuções de teste no AWSDevice Farm (p. 33).

21. Escolha Confirm and start run (Confirmar e iniciar execução).

O Device Farm iniciará a execução assim que os dispositivos estiverem disponíveis, normalmente em

alguns minutos. Até a execução começar, o Device Farm exibirá um ícone de calendário . Depois quea execução começar, os resultados serão exibidos à medida que os testes forem concluídos. Durante esse

tempo, o Device Farm exibe um ícone de andamento .

Versão da API 2015-06-2325

Page 34: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorCriar uma execução de teste (AWS CLI)

Se precisar interromper a execução de um teste, consulte Interromper uma execução no AWS DeviceFarm (p. 37).

Criar uma execução de teste (AWS CLI)Você pode usar a AWS CLI para criar uma execução de teste.

Tópicos• Etapa 1: Escolher um projeto (p. 26)• Etapa 2: Escolher um grupo de dispositivos (p. 26)• Etapa 3: Fazer upload do arquivo do aplicativo (p. 27)• Etapa 4: fazer upload do pacote de scripts de teste (p. 28)• Etapa 5: Fazer upload da especificação de teste personalizada (opcional) (p. 29)• Etapa 6: Programar uma execução de teste (p. 31)

Etapa 1: Escolher um projetoVocê deve associar a execução de teste a um projeto do Device Farm.

1. Para listar os projetos do Device Farm, execute list-projects. Se você não tiver um projeto, consulteCriar um projeto no AWS Device Farm (p. 20).

Exemplo:

aws devicefarm list-projects

A resposta inclui uma lista dos projetos do Device Farm.

{ "projects": [ { "name": "MyProject", "arn": "arn:aws:devicefarm:us-west-2:123456789101:project:5e01a8c7-c861-4c0a-b1d5-12345EXAMPLE", "created": 1503612890.057 } ]}

2. Escolha um projeto a ser associado à execução de teste e anote seu nome de recurso da Amazon(ARN).

Etapa 2: Escolher um grupo de dispositivosVocê deve escolher um grupo de dispositivos a ser associado à execução de teste.

1. Para visualizar os grupos de dispositivos, execute list-device-pools especificando o ARN do projeto.

Exemplo:

aws devicefarm list-device-pools --arn arn:MyProjectARN

A resposta inclui os grupos de dispositivos do Device Farm integrados, como Top Devices, e todos osgrupos de dispositivos criados anteriormente para esse projeto:

Versão da API 2015-06-2326

Page 35: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorCriar uma execução de teste (AWS CLI)

{ "devicePools": [ { "rules": [ { "attribute": "ARN", "operator": "IN", "value": "[\"arn:aws:devicefarm:us-west-2::device:example1\",\"arn:aws:devicefarm:us-west-2::device:example2\",\"arn:aws:devicefarm:us-west-2::device:example3\"]" } ], "type": "CURATED", "name": "Top Devices", "arn": "arn:aws:devicefarm:us-west-2::devicepool:example", "description": "Top devices" }, { "rules": [ { "attribute": "PLATFORM", "operator": "EQUALS", "value": "\"ANDROID\"" } ], "type": "PRIVATE", "name": "MyAndroidDevices", "arn": "arn:aws:devicefarm:us-west-2:605403973111:devicepool:example2" } ]}

2. Escolha um grupo de dispositivos e anote o ARN.

Você também pode criar um grupo de dispositivos e retornar a essa etapa. Para obter maisinformações, consulte Criar um grupo de dispositivos (AWS CLI) (p. 41).

Etapa 3: Fazer upload do arquivo do aplicativoPara criar a solicitação de upload e obter um URL de upload pré-assinado do Amazon S3, você precisa de:

• O ARN do projeto.• O nome do arquivo do aplicativo.• O tipo do upload.

Para obter mais informações, consulte create-upload.

1. Para fazer upload de um arquivo, execute create-upload com os parâmetros –-project-arn, --name e --type.

Este exemplo cria um upload para um aplicativo Android:

aws devicefarm create-upload -–project-arn arn:MyProjectArn -–name MyAndroid.apk -–type ANDROID_APP

A resposta inclui o ARN de upload do aplicativo e um URL pré-assinado.

{

Versão da API 2015-06-2327

Page 36: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorCriar uma execução de teste (AWS CLI)

"upload": { "status": "INITIALIZED", "name": "MyAndroid.apk", "created": 1535732625.964, "url": "https://prod-us-west-2-uploads.s3-us-west-2.amazonaws.com/ExampleURL", "type": "ANDROID_APP", "arn": "arn:aws:devicefarm:us-west-2:123456789101:upload:5e01a8c7-c861-4c0a-b1d5-12345EXAMPLE" }}

2. Anote o ARN de upload do aplicativo e o URL pré-assinado.3. Faça upload do arquivo do aplicativo usando o URL pré-assinado do Amazon S3. Este exemplo usa

curl para fazer upload de um arquivo .apk do Android:

curl -T MyAndroid.apk "https://prod-us-west-2-uploads.s3-us-west-2.amazonaws.com/ExampleURL"

Para obter mais informações, consulte Upload de objetos usando URLs pré-assinados, no Guia dodesenvolvedor do Amazon Simple Storage Service.

4. Para verificar o status de upload do aplicativo, execute get-upload e especifique o ARN de upload doaplicativo.

aws devicefarm get-upload –-arn arn:MyAppUploadARN

Aguarde até o status na resposta ser SUCCEEDED para fazer upload do pacote de scripts de teste.

{ "upload": { "status": "SUCCEEDED", "name": "MyAndroid.apk", "created": 1535732625.964, "url": "https://prod-us-west-2-uploads.s3-us-west-2.amazonaws.com/ExampleURL", "type": "ANDROID_APP", "arn": "arn:aws:devicefarm:us-west-2:123456789101:upload:5e01a8c7-c861-4c0a-b1d5-12345EXAMPLE", "metadata": "{"valid": true}" }}

Etapa 4: fazer upload do pacote de scripts de testeEm seguida, você faz upload do pacote de scripts de teste.

1. Para criar a solicitação de upload e obter um URL de upload pré-assinado do Amazon S3, executecreate-upload com os parâmetros –-project-arn, --name e --type.

Este exemplo cria um upload do pacote de testes do Appium Java TestNG:

aws devicefarm create-upload –-project-arn arn:MyProjectARN -–name MyTests.zip –-type APPIUM_JAVA_TESTNG_TEST_PACKAGE

A resposta inclui o ARN de upload do pacote de testes e um URL pré-assinado.

{ "upload": {

Versão da API 2015-06-2328

Page 37: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorCriar uma execução de teste (AWS CLI)

"status": "INITIALIZED", "name": "MyTests.zip", "created": 1535738627.195, "url": "https://prod-us-west-2-uploads.s3-us-west-2.amazonaws.com/ExampleURL", "type": "APPIUM_JAVA_TESTNG_TEST_PACKAGE", "arn": "arn:aws:devicefarm:us-west-2:123456789101:upload:5e01a8c7-c861-4c0a-b1d5-12345EXAMPLE" } }

2. Anote o ARN de upload do pacote de testes e o URL pré-assinado.3. Faça upload do arquivo de pacote de scripts de teste usando o URL pré-assinado do Amazon S3. Este

exemplo usa curl para fazer upload de um arquivo de scripts do Appium TestNG compactado:

curl -T MyTests.zip "https://prod-us-west-2-uploads.s3-us-west-2.amazonaws.com/ExampleURL"

4. Para verificar o status do upload do pacote de scripts de teste, execute get-upload e especifique oARN de upload do pacote de testes da etapa 1.

aws devicefarm get-upload –-arn arn:MyTestsUploadARN

Aguarde o status na resposta ser SUCCEEDED para avançar à próxima etapa, opcional.

{ "upload": { "status": "SUCCEEDED", "name": "MyTests.zip", "created": 1535738627.195, "url": "https://prod-us-west-2-uploads.s3-us-west-2.amazonaws.com/ExampleURL", "type": "APPIUM_JAVA_TESTNG_TEST_PACKAGE", "arn": "arn:aws:devicefarm:us-west-2:123456789101:upload:5e01a8c7-c861-4c0a-b1d5-12345EXAMPLE", "metadata": "{"valid": true}" }}

Etapa 5: Fazer upload da especificação de teste personalizada(opcional)Se você estiver executando os testes em um ambiente de teste padrão, ignore esta etapa.

O Device Farm mantém um arquivo de especificação de teste padrão para cada tipo de teste compatível.Em seguida, você faz download da especificação de teste padrão e o usa para criar o upload daespecificação de teste personalizada para executar os testes em um ambiente de teste personalizado.Para obter mais informações, consulte Ambientes de teste (p. 9).

1. Para encontrar o ARN de upload para a especificação de teste padrão, execute list-uploads eespecifique o ARN do projeto.

aws devicefarm list-uploads --arn arn:MyProjectARN

A resposta contém uma entrada para cada especificação de teste padrão:

{ "uploads": [

Versão da API 2015-06-2329

Page 38: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorCriar uma execução de teste (AWS CLI)

{

{ "status": "SUCCEEDED", "name": "Default TestSpec for Android Appium Java TestNG", "created": 1529498177.474, "url": "https://prod-us-west-2-uploads.s3-us-west-2.amazonaws.com/ExampleURL", "type": "APPIUM_JAVA_TESTNG_TEST_SPEC", "arn": "arn:aws:devicefarm:us-west-2:123456789101:upload:5e01a8c7-c861-4c0a-b1d5-12345EXAMPLE" } } ]}

2. Escolha a especificação de teste padrão na lista. Anote o ARN do upload.3. Para fazer download da especificação de teste padrão, execute get-upload e especifique o ARN de

upload.

Exemplo:

aws devicefarm get-upload –-arn arn:MyDefaultTestSpecARN

A resposta contém um URL pré-assinado em que você pode fazer download da especificação de testepadrão.

4. Este exemplo usa curl para fazer download da especificação de teste padrão e salvá-lo comoMyTestSpec.yml:

curl "https://prod-us-west-2-uploads.s3-us-west-2.amazonaws.com/ExampleURL" > MyTestSpec.yml

5. Você pode editar a especificação de teste padrão para atender aos requisitos de teste e, em seguida,usar a especificação de teste modificada em execuções de teste futuras. Ignore esta etapa parausar a especificação de teste padrão no estado em que ela se encontra em um ambiente de testepersonalizado.

6. Para criar um upload da especificação de teste personalizada, execute create-upload especificando onome e o tipo da especificação de teste e o ARN do projeto.

Este exemplo cria um upload para uma especificação de teste personalizada do Appium Java TestNG:

aws devicefarm create-upload --name MyTestSpec.yml --type APPIUM_JAVA_TESTNG_TEST_SPEC --project-arn arn:MyProjectARN

A resposta inclui o ARN de upload da especificação de teste e um URL pré-assinado:

{ "upload": { "status": "INITIALIZED", "category": "PRIVATE", "name": "MyTestSpec.yml", "created": 1535751101.221, "url": "https://prod-us-west-2-uploads.s3-us-west-2.amazonaws.com/ExampleURL", "type": "APPIUM_JAVA_TESTNG_TEST_SPEC", "arn": "arn:aws:devicefarm:us-west-2:123456789101:upload:5e01a8c7-c861-4c0a-b1d5-12345EXAMPLE" }}

Versão da API 2015-06-2330

Page 39: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorCriar uma execução de teste (AWS CLI)

7. Anote o ARN do upload da especificação de teste e o URL pré-assinado.8. Faça upload do arquivo da especificação de teste usando o URL pré-assinado do Amazon S3. Este

exemplo usa curl para fazer upload de uma especificação de teste do Appium Java TestNG:

curl -T MyTestSpec.yml "https://prod-us-west-2-uploads.s3-us-west-2.amazonaws.com/ExampleURL"

9. Para verificar o status de upload da especificação de teste, execute get-upload e especifique o ARNde upload.

aws devicefarm get-upload –-arn arn:MyTestSpecUploadARN

Aguarde até o status na resposta ser SUCCEEDED antes de programar a execução de teste.

{ "upload": { "status": "SUCCEEDED", "name": "MyTestSpec.yml", "created": 1535732625.964, "url": "https://prod-us-west-2-uploads.s3-us-west-2.amazonaws.com/ExampleURL", "type": "APPIUM_JAVA_TESTNG_TEST_SPEC", "arn": "arn:aws:devicefarm:us-west-2:123456789101:upload:5e01a8c7-c861-4c0a-b1d5-12345EXAMPLE", "metadata": "{"valid": true}" }}

Para atualizar a especificação de teste personalizada, execute update-upload especificando o ARN deupload para a especificação de teste. Para obter mais informações, consulte update-upload.

Etapa 6: Programar uma execução de testePara programar uma execução de teste com a AWS CLI, execute schedule-run especificando:

• O ARN do projeto da etapa 1 (p. 26).• O ARN do grupo de dispositivos da etapa 2 (p. 26).• O ARN de upload do aplicativo da etapa 3 (p. 27).• O ARN de upload do pacote de testes da etapa 4 (p. 28).

Se estiver executando testes em um ambiente de teste personalizado, você também precisará do ARN daespecificação de teste da etapa 5 (p. 29).

Para programar uma execução em um ambiente de teste padrão

• Execute schedule-run especificando o ARN do projeto, o ARN do grupo de dispositivos, o ARN deupload do aplicativo e as informações do pacote de testes.

Exemplo:

aws devicefarm schedule-run --project-arn arn:MyProjectARN --app-arn arn:MyAppUploadARN --device-pool-arn arn:MyDevicePoolARN --name MyTestRun --test type=APPIUM_JAVA_TESTNG,testPackageArn=arn:MyTestPackageARN

A resposta contém um ARN de execução que você pode usar para verificar o status da execução deteste.

Versão da API 2015-06-2331

Page 40: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorCriar uma execução de teste (AWS CLI)

{ "run": { "status": "SCHEDULING", "appUpload": "arn:aws:devicefarm:us-west-2:123456789101:upload:5e01a8c7-c861-4c0a-b1d5-12345appEXAMPLE", "name": "MyTestRun", "radios": { "gps": true, "wifi": true, "nfc": true, "bluetooth": true }, "created": 1535756712.946, "totalJobs": 179, "completedJobs": 0, "platform": "ANDROID_APP", "result": "PENDING", "devicePoolArn": "arn:aws:devicefarm:us-west-2:123456789101:devicepool:5e01a8c7-c861-4c0a-b1d5-12345devicepoolEXAMPLE", "jobTimeoutMinutes": 150, "billingMethod": "METERED", "type": "APPIUM_JAVA_TESTNG", "testSpecArn": "arn:aws:devicefarm:us-west-2:123456789101:upload:5e01a8c7-c861-4c0a-b1d5-12345specEXAMPLE", "arn": "arn:aws:devicefarm:us-west-2:123456789101:run:5e01a8c7-c861-4c0a-b1d5-12345runEXAMPLE", "counters": { "skipped": 0, "warned": 0, "failed": 0, "stopped": 0, "passed": 0, "errored": 0, "total": 0 } }}

Para obter mais informações, consulte schedule-run.

Para programar uma execução em um ambiente de teste personalizado

• As etapas são quase idênticas às do ambiente de teste padrão com um atributo testSpecArnadicional incluído no parâmetro --test.

Exemplo:

aws devicefarm schedule-run --project-arn arn:MyProjectARN --app-arn arn:MyAppUploadARN --device-pool-arn arn:MyDevicePoolARN --name MyTestRun --test testSpecArn=arn:MyTestSpecUploadARN,type=APPIUM_JAVA_TESTNG,testPackageArn=arn:MyTestPackageARN

Para verificar o status da execução de teste

• Use o comando get-run e especifique o ARN de execução.

aws devicefarm get-run --arn arn:aws:devicefarm:us-west-2:111122223333:run:5e01a8c7-c861-4c0a-b1d5-12345runEXAMPLE

Versão da API 2015-06-2332

Page 41: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorCriar uma execução de teste (API)

Para obter mais informações, consulte get-run. Para obter informações sobre como usar o Device Farmcom a AWS CLI, consulte Referência do AWS CLI (p. 162).

Criar uma execução de teste (API)As etapas são as mesmas descritas na seção AWS CLI. Consulte Criar uma execução de teste (AWSCLI) (p. 26).

Você precisa dessas informações para chamar a API ScheduleRun:

• Um ARN de projeto. Consulte Criar um projeto (API) (p. 21) e CreateProject.• Um ARN de upload do aplicativo. Consulte CreateUpload.• Um ARN de upload do pacote de testes. Consulte CreateUpload.• ARN de um grupos de dispositivos. Consulte Criar um grupo de dispositivos (p. 40) eCreateDevicePool.

Note

Se estiver executando testes em um ambiente de teste personalizado, você também precisará doARN de upload da especificação de teste. Para obter mais informações, consulte Etapa 5: Fazerupload da especificação de teste personalizada (opcional) (p. 29) e CreateUpload.

Para obter informações sobre como usar a API do Device Farm, consulte Referência de API (p. 164).

Próximas etapasNo console do Device Farm, o ícone de progresso muda para um ícone de resultado, como sucesso

quando a execução é concluída. Um relatório da execução é exibido assim que os testes sãoconcluídos. Para obter mais informações, consulte Relatórios (p. 12).

Para usar o relatório, siga as instruções em Trabalhar com relatórios de testes (p. 42).

Configuração do tempo limite de execução paraexecuções de teste no AWS Device Farm

Você pode definir por quanto tempo um teste deve ser executado antes de interromper a execução deteste de cada dispositivo. O tempo limite de execução padrão é 150 minutos por dispositivo, mas vocêpode definir um valor mínimo de 5 minutos. Você pode usar o console do AWS Device Farm, a AWS CLIou a API do AWS Device Farm para definir o tempo limite de execução.

Important

A opção do tempo limite de execução deve ser definida como a duração máxima para umaexecução de teste, além de algum buffer. Por exemplo, se os testes demorarem 20 minutos pordispositivo, você deverá escolher um tempo limite de 30 minutos por dispositivo.

Se a execução exceder o tempo limite, a execução nesse dispositivo será interrompida à força. Osresultados parciais estarão disponíveis, se possível. Você será cobrado pela execução até esse ponto,se estiver usando a opção de cobrança medida. Para obter mais informações sobre definição de preço,consulte Definição de preço do Device Farm.

Versão da API 2015-06-2333

Page 42: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorPré-requisitos

Talvez você queira usar esse recurso se souber quanto tempo leva para executar um teste em cadadispositivo. Ao especificar um tempo limite de execução para um teste, você pode evitar a situação emque a execução fica impedida por algum motivo e você continua sendo cobrado por minutos de dispositivomesmo quando nenhum teste está sendo executado. Em outras palavras, usar o recurso de tempo limitede execução permite interromper essa execução se ela estiver demorando mais do que o esperado.

Você pode definir o tempo limite de execução em dois locais: no nível do projeto e no nível de execução deteste.

Pré-requisitos1. Conclua as etapas em Configuração (p. 3).2. Crie um projeto no Device Farm. Siga as instruções em Criar um projeto no AWS Device Farm (p. 20)

e retorne a esta página.

Definir o tempo limite de execução de um projeto1. Faça login no console do Device Farm em https://console.aws.amazon.com/devicefarm.2. Se você já tiver um projeto, escolha-o na página Your projects (Seus projetos). Caso contrário,

escolha Create project (Criar projeto) e insira um nome para o projeto.3. Escolha Project settings (Configurações do projeto).4. Na guia General (Geral), em Execution timeout (Tempo limite de execução), insira um valor ou use a

barra deslizante.5. Selecione Save changes (Salvar alterações).

Todas as execuções de teste no projeto agora usarão o valor de tempo limite de execução que vocêacabou de especificar, a menos que substitua o valor do tempo limite ao programar uma execução.

Definir o tempo limite de execução de um teste1. Faça login no console do Device Farm em https://console.aws.amazon.com/devicefarm.2. Se você já tiver um projeto, escolha-o na página Your projects (Seus projetos). Caso contrário,

escolha Create project (Criar projeto) e insira um nome para o projeto.3. Escolha Create a new run (Criar uma nova execução).4. Siga as etapas para escolher um aplicativo, configurar o teste, selecionar os dispositivos e especificar

um estado para o dispositivo.5. Em Review and start run (Examinar e iniciar execução), em Execution timeout (Tempo limite de

execução), insira um valor ou use a barra deslizante.6. Escolha Confirm and start run (Confirmar e iniciar execução).

Simulação de conexões e condições de rede paraexecuções no AWS Device Farm

Você pode usar formas de rede para simular conexões e condições de rede e, ao mesmo tempo, testaros aplicativos Android, iOS, FireOS e web no Device Farm. Por exemplo, você pode testar o aplicativo emcondições de rede inferiores às perfeitas.

Versão da API 2015-06-2334

Page 43: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorConfigurar modelagem de rede aoprogramar uma execução de teste

Quando você cria uma execução usando as configurações de rede padrão, cada dispositivo tem umaconexão Wi-Fi completa e desimpedida com conectividade com a internet. Ao usar modelagem de rede,você pode alterar a conexão Wi-Fi para especificar um perfil de rede, como 3G ou Lossy WiFi (Wi-Fi comperda), que controla taxa de transferência, atraso, oscilação e perda para o tráfego de entrada e saída.

Tópicos• Configurar modelagem de rede ao programar uma execução de teste (p. 35)• Criar um novo perfil de rede (p. 35)• Alterar condições de rede durante o teste (p. 36)

Configurar modelagem de rede ao programar umaexecução de testeAo programar uma execução, você pode escolher qualquer um dos perfis selecionados do Device Farm oupode criar e gerenciar seu próprio perfil.

1. Em qualquer projeto do Device Farm, escolha Create a new run (Criar uma nova execução).

Se ainda não tiver um projeto, consulte Criar um projeto no AWS Device Farm (p. 20).2. Escolha o aplicativo e Next step (Próxima etapa).3. Configure o teste e escolha Next step (Próxima etapa).4. Selecione os dispositivos e escolha Next step (Próxima etapa).5. Escolha um perfil de rede ou Create a new network profile (Criar um novo perfil de rede) para criar o

próprio.

6. Escolha Próxima etapa.7. Analise e inicie a execução de teste.

Criar um novo perfil de redeAo criar uma execução de teste, você pode criar um perfil de rede.

1. Escolha Create a new network profile (Criar um novo perfil de rede).

Versão da API 2015-06-2335

Page 44: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorAlterar condições de rede durante o teste

2. Digite um nome e as configurações para o perfil de rede.3. Escolha Save network profile (Salvar perfil de rede).4. Termine de criar a execução de teste e inicie a execução.

Depois que você tiver criado um perfil de rede, você poderá ver e gerenciá-lo na página Project settings(Configurações do projeto).

Alterar condições de rede durante o testeVocê pode chamar uma API pelo host do dispositivo usando uma estrutura como Appium ou Calabashpara simular condições de rede dinâmicas, como largura de banda reduzida durante a execução de teste.Para obter mais informações, consulte CreateNetworkProfile.

Versão da API 2015-06-2336

Page 45: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorInterromper uma execução

Interromper uma execução no AWS Device FarmTalvez você queira interromper uma execução já iniciada. Por exemplo, se perceber um problemaenquanto os testes estiverem sendo executados, convém reiniciar a execução com um script de testeatualizado.

Você pode usar o console do Device Farm, a AWS CLI ou a API para interromper uma execução.

Tópicos• Parar uma execução (Console) (p. 37)• Interromper uma execução (AWS CLI) (p. 38)• Interromper uma execução (API) (p. 39)

Parar uma execução (Console)1. Faça login no console do Device Farm em https://console.aws.amazon.com/devicefarm.2. Na página inicial do console do Device Farm, escolha o projeto no qual você tem uma execução de

teste ativa.3. Na página Run results (Resultados da execução), escolha a execução de teste.

O ícone pendente ou em andamento deve ser exibido à esquerda do nome do dispositivo.

4. Escolha Stop run (Parar execução).

Depois de um curto período, um ícone com um círculo laranja pulsante e um quadrado dentro seráexibido ao lado do nome do dispositivo. Quando a execução tiver sido interrompida, o ícone mudarápara um quadrado laranja.

Important

Se um teste já tiver sido executado, o Device Farm não poderá interrompê-lo. Se um testeestiver em andamento, Device Farm interromperá o teste. O total de minutos pelos quaisvocê será cobrado é exibido na seção Devices (Dispositivos). Além disso, você tambémserá cobrado pelo total de minutos que o Device Farm leva para executar os pacotes deconfiguração e desgaste. Para obter mais informações, consulte Definição de preço doDevice Farm.

A imagem a seguir mostra um exemplo da seção Devices (Dispositivos) depois que uma execução deteste foi interrompida com êxito.

Versão da API 2015-06-2337

Page 46: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorInterromper uma execução (AWS CLI)

Interromper uma execução (AWS CLI)Você pode executar o comando a seguir para interromper a execução de teste especificada, onde myARN éo nome de recurso da Amazon (ARN) da execução de teste.

$ aws devicefarm stop-run --arn myARN

Você deve ver saída semelhante a:

{ "run": { "status": "STOPPING", "name": "Name of your run", "created": 1458329687.951, "totalJobs": 7, "completedJobs": 5, "deviceMinutes": { "unmetered": 0.0, "total": 0.0, "metered": 0.0 }, "platform": "ANDROID_APP", "result": "PENDING", "billingMethod": "METERED", "type": "BUILTIN_EXPLORER", "arn": "myARN", "counters": { "skipped": 0, "warned": 0, "failed": 0, "stopped": 0, "passed": 0, "errored": 0, "total": 0 } }}

Para obter o ARN de sua execução, use o comando list-runs. A saída deve ser semelhante aoseguinte:

{ "runs": [ { "status": "RUNNING", "name": "Name of your run", "created": 1458329687.951,

Versão da API 2015-06-2338

Page 47: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorInterromper uma execução (API)

"totalJobs": 7, "completedJobs": 5, "deviceMinutes": { "unmetered": 0.0, "total": 0.0, "metered": 0.0 }, "platform": "ANDROID_APP", "result": "PENDING", "billingMethod": "METERED", "type": "BUILTIN_EXPLORER", "arn": "Your ARN will be here", "counters": { "skipped": 0, "warned": 0, "failed": 0, "stopped": 0, "passed": 0, "errored": 0, "total": 0 } } ]}

Para obter informações sobre como usar o Device Farm com a AWS CLI, consulte Referência do AWSCLI (p. 162).

Interromper uma execução (API)• Chame a operação StopRun para a execução de teste.

Para obter informações sobre como usar a API do Device Farm, consulte Referência de API (p. 164).

Visualizar uma lista de execuções no AWS DeviceFarm

Você pode usar o console do Device Farm, a AWS CLI ou a API para visualizar uma lista de execuções deum projeto.

Tópicos• Visualizar uma lista de execuções (console) (p. 39)• Visualizar uma lista de execuções (AWS CLI) (p. 40)• Visualizar uma lista de execuções (API) (p. 40)

Visualizar uma lista de execuções (console)1. Faça login no console do Device Farm em https://console.aws.amazon.com/devicefarm.2. Na lista de projetos, escolha o projeto que corresponde à lista que você deseja visualizar.

Se a lista de projetos disponíveis não for exibida, na barra de navegação secundária, faça o seguinte:

• Escolha o botão da tela inicial do console do Device Farm e, em seguida, o projeto.• Em Projects (Projetos), escolha View all projects (Visualizar todos os projetos) e o projeto.

Versão da API 2015-06-2339

Page 48: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorVisualizar uma lista de execuções (AWS CLI)

Visualizar uma lista de execuções (AWS CLI)• Execute o comando list-runs.

Para visualizar informações sobre uma única execução, execute o comando get-run.

Para obter informações sobre como usar o Device Farm com a AWS CLI, consulte Referência do AWSCLI (p. 162).

Visualizar uma lista de execuções (API)• Chame a API ListRuns.

Para visualizar informações sobre uma única execução, chame a API GetRun.

Para obter informações sobre a API do Device Farm, consulte Referência de API (p. 164).

Criação de um grupo de dispositivos no AWSDevice Farm

Você pode usar o console do Device Farm, a AWS CLI ou a API para criar um grupo de dispositivos.

Tópicos• Pré-requisitos (p. 40)• Criar um grupo de dispositivos (console) (p. 40)• Criar um grupo de dispositivos (AWS CLI) (p. 41)• Criar um grupo de dispositivos (API) (p. 41)

Pré-requisitos• Crie uma execução no console do Device Farm. Siga as instruções em Criar uma execução de teste

no AWS Device Farm (p. 23). Ao acessar a página Select devices (Selecionar dispositivos), avanceàs instruções nesta seção.

Criar um grupo de dispositivos (console)1. Na página Select devices (Selecionar dispositivos), escolha Create new device pool (Criar novo grupo

de dispositivos).2. Em Name (Nome), digite um nome que facilite a identificação desse grupo de dispositivos.3. Em Description (Descrição), digite uma descrição que facilite a identificação desse grupo de

dispositivos.4. Se quiser usar um ou mais critérios de seleção para os dispositivos nesse grupo de dispositivos, faça

o seguinte:

a. Escolha Adicionar regra.b. Em Field (Campo), escolha uma das seguinte opções:

Versão da API 2015-06-2340

Page 49: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorCriar um grupo de dispositivos (AWS CLI)

• Para incluir dispositivos pelo nome do fabricante, escolha Manufacturer (Fabricante).• Para incluir dispositivos pelo valor do tipo, escolha Type (Tipo).

c. Em Operator (Operador), escolha EQUALS (Igual a) para incluir dispositivos em que o valor Field(Campo) seja igual ao valor Operand (Operando).

d. Em Operand (Operando), digite ou escolha o valor que você deseja especificar para os valoresField (Campo) e Operator (Operador). Se você escolher Platform (Plataforma) para Field(Campo), as únicas seleções disponíveis serão ANDROID e IOS. Da mesma maneira, sevocê escolher Type (Tipo) para Field (Campo), as únicas seleções disponíveis serão PHONE(Telefone) e TABLET.

e. Para adicionar outra regra, escolha Add rule (Adicionar regra).f. Para excluir uma regra, escolha o ícone X ao lado da regra.

Depois que você criar a primeira regra, na lista de dispositivos, a caixa ao lado de cada dispositivocorrespondente à regra será marcada. Depois que você criar ou alterar regras existentes, na listade dispositivos, a caixa de seleção ao lado de cada dispositivo correspondente a essas regrascombinadas será marcada. Os dispositivos com caixas selecionadas são incluídos no grupo dedispositivos. Os dispositivos com caixas desmarcadas são excluídos.

5. Se desejar incluir ou excluir manualmente determinados dispositivos, marque ou desmarque a caixaao lado de cada dispositivo. Você poderá marcar ou desmarcar as caixas somente se não houverregras especificadas.

6. Se desejar incluir ou excluir todos os dispositivos exibidos, marque ou desmarque a caixa na linha decabeçalho de coluna da lista.

Important

Embora você possa usar as caixas na linha de cabeçalho da coluna para alterar a lista dedispositivos exibidos, isso não significa que os demais dispositivos exibidos sejam os únicosincluídos ou excluídos. Para confirmar quais dispositivos são incluídos ou excluídos, nãose esqueça de apagar o conteúdo de todas as caixas na linha de cabeçalho da coluna enavegue nas caixas.

7. Escolha Save device pool (Salvar grupo de dispositivos).

Criar um grupo de dispositivos (AWS CLI)• Execute o comando create-device-pool.

Note

Para testes do Appium, você pode usar APPIUM_VERSION no campo rules.

Para obter informações sobre como usar o Device Farm com a AWS CLI, consulte Referência do AWSCLI (p. 162).

Criar um grupo de dispositivos (API)• Chame a API CreateDevicePool.

Note

Para testes do Appium, você pode usar APPIUM_VERSION no campo rules.

Para obter informações sobre como usar a API do Device Farm, consulte Referência de API (p. 164).

Versão da API 2015-06-2341

Page 50: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorAnalisar Resultados

Analisar resultados no AWS Device FarmNo ambiente de teste padrão, você pode usar o console do Device Farm para visualizar relatórios de cadateste na execução.

O Device Farm também coleta outros artefatos, como arquivos, logs e imagens que você pode fazerdownload quando o teste é concluído.

Tópicos• Trabalhar com relatórios de testes no AWS Device Farm (p. 42)• Trabalhar com artefatos no Device Farm (p. 48)

Trabalhar com relatórios de testes no AWS DeviceFarmUse o console do Device Farm para visualizar os relatórios de testes. Para obter mais informações,consulte Relatórios (p. 12).

Tópicos• Pré-requisitos (p. 42)• Noções básicas dos resultados de testes (p. 42)• Visualizar relatórios (p. 43)

Pré-requisitosConfigure uma execução de teste e verifique se ela foi concluída.

1. Para criar uma execução, consulte Criar uma execução de teste no AWS Device Farm (p. 23) eretorne a esta página.

2. Verifique se a execução foi concluída. Durante a execução de teste, o Device Farm exibe um ícone de

andamento no console. O ícone de andamento muda para um ícone de resultado de teste quandoa execução é concluída. Para obter mais informações, consulte Noções básicas dos resultados detestes (p. 42).

Noções básicas dos resultados de testesO console do Device Farm exibe ícones e gráficos que permitem acessar rapidamente o estado daexecução de teste concluída.

Tópicos• Gerar relatórios de resultados para um teste individual (p. 42)• Gerar relatórios de resultados para vários testes (p. 43)

Gerar relatórios de resultados para um teste individual

Para relatórios que descrevem um teste individual, o Device Farm exibe um ícone e uma barra deresultados de teste:

Versão da API 2015-06-2342

Page 51: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorTrabalhar com relatórios de testes

Descrição Ícone Resultado do teste

O teste bem-sucedido.

Falha no teste.

O teste foi ignorado.

O teste foi parado.

O Device Farm retornou umaviso.

O Device Farm retornou umerro.

Gerar relatórios de resultados para vários testesPara relatórios que resumem mais de um teste, o Device Farm exibe uma barra de resumo dos resultadosde teste.

Por exemplo, essa barra de resultados da execução de teste mostra que a execução apresentou 1 testeparado, 12 testes com falhas, 4 testes ignorados e 93 testes bem-sucedidos.

O ícone exibido para um resultado de vários testes, como um relatório por pacote de testes, é mostradonesta ordem:

Ícone Descrição

Há pelo menos um teste parado.

Há pelo menos um teste com erros.

Há pelo menos um teste com falha.

Há pelo menos um teste com avisos.

Todos os testes foram bem-sucedidos.

Visualizar relatóriosVocê pode visualizar os resultados do teste no console do Device Farm.

Tópicos• Visualizar a página de resumo da execução de teste (p. 44)• Visualizar relatórios com problemas exclusivos (p. 44)

Versão da API 2015-06-2343

Page 52: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorTrabalhar com relatórios de testes

• Visualizar relatórios do dispositivo (p. 45)• Visualizar relatórios do pacote de testes (p. 45)• Visualizar relatórios de teste (p. 46)• Visualizar dados de desempenho relativos a um problema, dispositivo, pacote ou teste em um

relatório (p. 46)• Visualizar informações de log relativos a um problema, dispositivo, pacote ou teste em um

relatório (p. 47)

Visualizar a página de resumo da execução de teste

1. Faça login no console do Device Farm em https://console.aws.amazon.com/devicefarm.2. Na lista de projetos, escolha o projeto para a execução.

Tip

Se a lista de projetos não for exibida, na barra de navegação secundária, escolha o botão dapágina inicial do console do Device Farm e, em seguida, o projeto.

3. Escolha uma execução concluída para visualizar a página de relatório resumido.4. A página de resumo da execução de teste exibe uma visão geral dos resultados do teste.

• A seção Unique problems (Problemas únicos) lista avisos e falhas exclusivos. Paravisualizar problemas exclusivos, siga as instruções em Visualizar relatórios com problemasexclusivos (p. 44).

• A seção Devices (Dispositivos) exibe o número total de testes, por resultado, para cada dispositivo.

Neste exemplo, o dispositivo Google Pixel que executa o Android versão 7.1.2 relata 11 testes bem-sucedidos que demoraram 15:25 minutos para serem executados.

Para visualizar os resultados por dispositivo, siga as instruções em Visualizar relatórios dodispositivo (p. 45).

• A seção Screenshots (Capturas de tela) exibe uma lista de todas as capturas de tela feitas peloDevice Farm durante a execução, agrupadas por dispositivo.

Visualizar relatórios com problemas exclusivos

1. Em Unique problems (Problemas exclusivos), escolha o problema que você deseja visualizar.2. Escolha o dispositivo. O relatório exibe informações sobre o problema.

A seção Video (Vídeo) exibe a gravação em vídeo do teste disponível para download.

A seção Logs exibe todas as informações registradas do Device Farm durante o teste. Para visualizaressas informações, siga as instruções em Visualizar informações de log relativos a um problema,dispositivo, pacote ou teste em um relatório (p. 47).

A seção Performance exibe informações sobre todos os dados de desempenho gerados peloDevice Farm durante o teste. Para visualizar esses dados de desempenho, siga as instruções emVersão da API 2015-06-23

44

Page 53: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorTrabalhar com relatórios de testes

Visualizar dados de desempenho relativos a um problema, dispositivo, pacote ou teste em umrelatório (p. 46).

A seção Files (Arquivos) exibe uma lista de testes para o pacote e todos os arquivos associados(como arquivos de log) obtidos por download. Para fazer download de um arquivo, selecione o link doarquivo na lista.

A seção Screenshots (Capturas de tela) exibe uma lista de todas as capturas de tela feitas peloDevice Farm durante o teste.

Visualizar relatórios do dispositivo

• Na seção Devices (Dispositivos), escolha o dispositivo.

Video (Vídeo) exibe a gravação em vídeo do teste, disponível para download.

Suites (Pacotes) exibe informações sobre os pacotes para o dispositivo.

Test results (Resultados do teste) resume o número de testes por resultado para cada um dos pacotesde testes executados no dispositivo. Para obter mais informações, consulte Gerar relatórios deresultados para vários testes (p. 43).

Para visualizar os resultados por pacote, siga as instruções em Visualizar relatórios do pacote detestes (p. 45).

A seção Logs exibe todas as informações do Device Farm registradas para o dispositivo durante aexecução. Para visualizar essas informações, siga as instruções em Visualizar informações de logrelativos a um problema, dispositivo, pacote ou teste em um relatório (p. 47).

A seção Performance exibe informações sobre quaisquer todos os dados de desempenhogerados pelo Device Farm para o dispositivo durante a execução. Para visualizar esses dados dedesempenho, siga as instruções em Visualizar dados de desempenho relativos a um problema,dispositivo, pacote ou teste em um relatório (p. 46).

A seção Files (Arquivos) exibe uma lista de pacotes para o dispositivo e todos os arquivos associados(como arquivos de log) disponíveis para download. Para fazer download de um arquivo, selecione olink do arquivo na lista.

A seção Screenshots (Capturas de tela) exibe uma lista de todas as capturas de tela feitas peloDevice Farm para o dispositivo durante a execução, agrupadas por pacote.

Visualizar relatórios do pacote de testes

1. Na seção Devices (Dispositivos), escolha o dispositivo.2. Na seção Suites (Pacotes), escolha o pacote.

A página de resultados do pacote exibe informações sobre os testes do pacote. Para obter maisinformações, consulte Gerar relatórios de resultados para vários testes (p. 43).

Para visualizar os resultados por teste, siga as instruções em Visualizar relatórios de teste (p. 46).

A seção Logs exibe todas as informações do Device Farm registradas durante a execução parao pacote. Para visualizar essas informações, siga as instruções em Visualizar informações de logrelativos a um problema, dispositivo, pacote ou teste em um relatório (p. 47).

A seção Performance exibe informações sobre todos os dados de desempenho gerados pelo DeviceFarm durante a execução para o pacote. Para visualizar esses dados de desempenho, siga as

Versão da API 2015-06-2345

Page 54: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorTrabalhar com relatórios de testes

instruções em Visualizar dados de desempenho relativos a um problema, dispositivo, pacote ou testeem um relatório (p. 46).

A seção Files (Arquivos) exibe uma lista de testes para o pacote e todos os arquivos associados(como arquivos de log) obtidos por download. Para fazer download de um arquivo, selecione o link doarquivo na lista.

A seção Screenshots (Capturas de tela) exibe uma lista de todas as capturas de tela feitas peloDevice Farm para o pacote durante a execução, agrupadas por teste.

Visualizar relatórios de teste

1. Na seção Devices (Dispositivos), escolha o dispositivo.2. Na seção Suites (Pacotes), escolha o pacote.

A guia Tests (Testes) exibe informações sobre o teste, inclusive um ícone de resultado. Para obtermais informações, consulte Gerar relatórios de resultados para um teste individual (p. 42).

A seção Logs exibe todas as informações registradas do Device Farm durante o teste. Para visualizaressas informações, siga as instruções em Visualizar informações de log relativos a um problema,dispositivo, pacote ou teste em um relatório (p. 47).

A guia Performance exibe informações sobre todos os dados de desempenho gerados peloDevice Farm durante o teste. Para visualizar esses dados de desempenho, siga as instruções emVisualizar dados de desempenho relativos a um problema, dispositivo, pacote ou teste em umrelatório (p. 46).

A guia Files (Arquivos) exibe uma lista de todos os arquivos associados do teste (como arquivos delog) disponíveis para download. Para fazer download de um arquivo, selecione o link do arquivo nalista.

A guia Screenshots (Capturas de tela) exibe uma lista de todas as capturas de tela feitas pelo DeviceFarm durante o teste.

Visualizar dados de desempenho relativos a um problema, dispositivo, pacote outeste em um relatório

• As seguintes informações são exibidas na guia Performance (Desempenho):

• O gráfico CPU exibe a porcentagem de CPU usada pelo aplicativo em um único núcleo,relativamente ao problema, dispositivo, pacote ou teste selecionado (ao longo do eixo vertical) erelativamente ao tempo (ao longo do eixo horizontal).

O eixo vertical é expresso em porcentagem, de 0% à porcentagem registrada máxima.

Essa porcentagem pode exceder 100% caso o aplicativo tenha usado mais de um núcleo. Porexemplo, caso três núcleos apresentem um uso de 60%, essa porcentagem é exibida como 180%.

• O gráfico FPS exibe a taxa de quadros por segundo (FPS) usada relativamente ao problema,dispositivo, pacote ou teste selecionado (ao longo do eixo vertical) e relativamente ao tempo (aolongo do eixo horizontal).

O eixo vertical é expresso em FPS, de 0 FPS ao número máximo de FPS registrados.• O gráfico Memory (Memória) exibe o número de MB usado pelo aplicativo relativamente ao

problema, dispositivo, pacote ou teste selecionado (ao longo do eixo vertical) e relativamente aotempo (ao longo do eixo horizontal).

Versão da API 2015-06-2346

Page 55: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorTrabalhar com relatórios de testes

O eixo vertical é expresso em MB, de 0 MB ao número máximo de MB registrado.• O gráfico Threads exibe o número de threads usado pelo aplicativo relativamente ao problema,

dispositivo, pacote ou teste selecionado (ao longo do eixo vertical) e relativamente ao tempo (aolongo do eixo horizontal).

O eixo vertical é expresso em número de threads, de 0 thread ao número máximo de threadsregistrado.

Em todos os casos, o eixo horizontal é representado em segundos, do início ao fim da execuçãorelativamente ao problema, dispositivo, pacote ou teste selecionado.

Para exibir informações relacionadas a um determinado ponto de dados, pause sobre o segundodesejado ao longo do eixo horizontal do gráfico desejado.

Visualizar informações de log relativos a um problema, dispositivo, pacote outeste em um relatório

As seguintes informações são exibidas na seção Logs:

• Source (Origem) representa a origem de uma entrada de log. Os possíveis valores incluem:• Harness representa uma entrada de log criada pelo Device Farm. Essas entradas de log normalmente

são criadas durante os eventos de início e interrupção.• Device (Dispositivo) representa uma entrada de log criada pelo dispositivo. Para Android, essas

entradas de log são compatíveis com logcat. Para iOS, essas entradas de log são compatíveis comsyslog.

• Test (Teste) representa uma entrada de log criada por um teste ou pela estrutura do teste.• Time (Hora) representa o tempo decorrido entre a primeira entrada de log e a entrada de log em

questão. O tempo é expresso no formato MM:SS.SSS, em que M representa minutos e S representasegundos.

• PID representa o identificador de processo (PID) que criou a entrada de log. Todas as entradas de logcriadas por um aplicativo em um dispositivo têm o mesmo PID.

• Level (Nível) representa o nível de registro relativo à entrada de log. Por exemplo,Logger.debug("This is a message!") registra o Level (Nível) de Debug. Estes são os valorespossíveis:• Alerta• Critical• Depure• Emergency (Emergência)• Erro• Errored (Com erro)• Failed• Info (Informações)• Internal (Interno)• Notice (Aviso)• Aprovada• Ignorado• Stopped• Detalhado• Warned (Avisado) Versão da API 2015-06-23

47

Page 56: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorTrabalhar com artefatos

• Aviso• Tag representa metadados arbitrários relativos à entrada de log. Por exemplo, o logcat para Android

pode usar esse recurso para descrever qual parte do sistema criou a entrada de log (por exemplo,ActivityManager).

• Message (Mensagem) representa a mensagem ou os dados relativos à entrada de log. Por exemplo,Logger.debug("Hello, World!") registra uma Message (Mensagem) de "Hello, World!".

Para exibir apenas uma parte das informações:

• Para mostrar todas as entradas de log que correspondem a um valor para uma coluna específica, digiteo valor na caixa de cabeçalho da coluna correspondente. Por exemplo, para mostrar todas as entradasde log com um valor Source (Origem) de Harness, digite Harness na caixa de cabeçalho da colunaSource (Origem).

• Para mostrar todas as entradas de log que contêm zero ou mais caracteres desconhecidos parauma coluna específica, use o caractere curinga (*) para representar caracteres desconhecidos. Porexemplo, para mostrar todas as entradas de log com um valor Source (Origem) que contêm um es(como Harness e Test), digite *es* na caixa de cabeçalho da coluna Source (Origem).

• Para exibir entradas de log que contêm uma escolha entre um ou mais caracteres conhecidos parauma coluna específica, coloque o conjunto de opções entre parênteses (( )) e use o caractere debarra vertical (|) para separar cada escolha. Por exemplo, para mostrar entradas de log com um valorMessage (Mensagem) que contém started ou starting, digite *start(ed|ing)* na caixa decabeçalho da coluna Message (Mensagem).

• Para remover todos os caracteres de uma caixa de cabeçalho de coluna, escolha o X na caixa decabeçalho de coluna. Remover todos os caracteres de uma caixa de cabeçalho de coluna equivale adigitar * nessa caixa de cabeçalho de coluna.

Para baixar todas as informações de log relativas ao dispositivo, incluindo todos os pacotes e testes queforam executados, escolha Download logs (Fazer download de logs).

Trabalhar com artefatos no Device Farm

Device Farm coleta artefatos, como relatórios, arquivos de log e imagens de cada teste em execução.

Você pode fazer download dos artefatos criados durante a execução de teste:

Arquivos

Os arquivos gerados durante a execução de teste, inclusive relatórios do Device Farm. Para obtermais informações, consulte Trabalhar com relatórios de testes (p. 42).

Logs

A saída de cada teste na execução.

Versão da API 2015-06-2348

Page 57: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorTrabalhar com artefatos

Capturas de tela

Imagens de tela gravadas para cada teste na execução.

Usar artefatos (console)1. Na página de execução do relatório de teste, em Devices (Dispositivos), escolha um dispositivo móvel.2. Para fazer download de um arquivo, escolha um dos Files (Arquivos).3. Para fazer download os logs da execução de teste, em Logs, escolha Download logs (Fazer download

de logs).4. Para fazer download de uma captura de tela, escolha uma captura de tela Screenshots (Capturas de

tela).

Para obter mais informações sobre como fazer download de artefatos em um ambiente de testepersonalizado, consulte Usar artefatos em um ambiente de teste personalizado (p. 51).

Usar artefatos (AWS CLI)Você pode usar a AWS CLI para listar os artefatos de execução do teste.

Tópicos• Etapa 1: Obter os Amazon Resource Names (ARNs, Nomes de recurso da Amazon) (p. 49)• Etapa 2: Listar os artefatos (p. 50)• Etapa 3: Fazer download dos artefatos (p. 51)

Etapa 1: Obter os Amazon Resource Names (ARNs, Nomes de recurso daAmazon)

Você pode listar os artefatos por execução, trabalho, conjunto de testes ou teste. Você precisa do ARNcorrespondente. Esta tabela mostra o ARN de entrada de cada comando da lista de AWS CLI:

Comando da lista de AWS CLI ARN obrigatório

list-projects Este comando retorna todos os projetos e nãoexige um ARN.

list-runs project

list-jobs run

list-suites job

list-tests suite

Por exemplo, para encontrar um ARN de teste, execute list-tests usando o ARN do pacote de teste comoum parâmetro de entrada.

Exemplo:

aws devicefarm list-tests –-arn arn:MyTestSuiteARN

Versão da API 2015-06-2349

Page 58: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorTrabalhar com artefatos

A resposta inclui um ARN de teste para cada um no pacote de testes.

{ "tests": [ { "status": "COMPLETED", "name": "Tests.FixturesTest.testExample", "created": 1537563725.116, "deviceMinutes": { "unmetered": 0.0, "total": 1.89, "metered": 1.89 }, "result": "PASSED", "message": "testExample passed", "arn": "arn:aws:devicefarm:us-west-2:123456789101:test:5e01a8c7-c861-4c0a-b1d5-12345EXAMPLE", "counters": { "skipped": 0, "warned": 0, "failed": 0, "stopped": 0, "passed": 1, "errored": 0, "total": 1 } } ]}

Etapa 2: Listar os artefatos

O comando list-artifacts da AWS CLI retorna uma lista de artefatos, como arquivos, capturas de tela e logs.Cada artefato tem um URL para que você possa fazer download do arquivo.

• Chame list-artifacts especificando uma execução, um trabalho, um pacote de testes ou um ARN deteste. Especifique um tipo de ARQUIVO, LOG ou CAPTURA DE TELA.

Este exemplo retorna um URL de download para cada artefato disponível para um teste individual:

aws devicefarm list-artifacts --arn arn:MyTestARN --type "FILE"

A resposta contém um URL de download de cada artefato.

{ "artifacts": [ { "url": "https://prod-us-west-2-uploads.s3-us-west-2.amazonaws.com/ExampleURL", "extension": "txt", "type": "APPIUM_JAVA_OUTPUT", "name": "Appium Java Output", "arn": "arn:aws:devicefarm:us-west-2:123456789101:artifact:5e01a8c7-c861-4c0a-b1d5-12345EXAMPLE", } ]}

Versão da API 2015-06-2350

Page 59: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorTrabalhar com artefatos

Etapa 3: Fazer download dos artefatos

• Faça download do artefato usando o URL da etapa anterior. Este exemplo usa curl para fazerdownload de um arquivo de saída Android Appium Java:

curl "https://prod-us-west-2-uploads.s3-us-west-2.amazonaws.com/ExampleURL" > MyArtifactName.txt

Usar artefatos (API)O método ListArtifacts da API do Device Farm retorna uma lista de artefatos, como arquivos, capturas detela e logs. Cada artefato tem um URL para que você possa fazer download do arquivo.

Usar artefatos em um ambiente de teste personalizado

Em um ambiente de teste personalizado, o Device Farm coleta artefatos, como relatórios, arquivos de log eimagens personalizados. Esses artefatos estão disponíveis para cada dispositivo na execução de teste.

Você pode fazer download esses artefatos criados durante a execução de teste:

Saída da especificação de teste

A saída da execução dos comandos no arquivo YAML da especificação de teste.Artefatos do cliente

Um arquivo compactado que contém os artefatos da execução de teste. Ele está pré-configurado naseção artifacts: do arquivo YAML da especificação de teste.

Script de shell da especificação de teste

Um arquivo de script de shell intermediário criado pelo arquivo YAML. Como é usado na execução deteste, o arquivo de script de shell pode ser usado para depurar o arquivo YAML.

Arquivo de especificação de teste

O arquivo YAML usado na execução de teste.

Para obter mais informações, consulte Trabalhar com artefatos no Device Farm (p. 48).

Versão da API 2015-06-2351

Page 60: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorTestar estruturas

Como trabalhar com tipos de testesno AWS Device Farm

Esta seção descreve o suporte do Device Farm para estruturas de teste, bem como para os dois tipos detestes integrados.

Testar estruturasO Device Farm dá suporte a essas estruturas de teste de automação para dispositivos móveis:

Estruturas de testes do aplicativo Android• Appium Java TestNG (p. 54)• Appium Java JUnit (p. 58)• Appium Node.js (p. 62)• Appium Python (p. 65)• Appium Ruby (p. 68)• Calabash (p. 72)• Como trabalhar com instrumentação para o Android e o AWS Device Farm (p. 74)• UI Automator (p. 75)

Estruturas de testes do aplicativo iOS• Appium Java TestNG (p. 77)• Appium Java JUnit (p. 81)• Appium Node.js (p. 85)• Appium Python (p. 88)• Appium Ruby (p. 92)• Calabash (p. 96)• UI Automation (p. 98)• Como trabalhar com o XCTest para iOS e o AWS Device Farm (p. 99)• XCTest UI (p. 101)

Estruturas de testes do aplicativo web• Appium Java TestNG (p. 102)• Appium Java JUnit (p. 106)• Appium Node.js (p. 110)• Appium Python (p. 113)

Versão da API 2015-06-2352

Page 61: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorTipos de teste integrado

• Appium Ruby (p. 117)

Estruturas em um ambiente de teste personalizadoO Device Farm não dá suporte para personalizar o ambiente de teste para Calabash, XCTests e estruturasde testes UI Automator. Para obter mais informações, consulte Trabalhar com ambientes de testepersonalizados (p. 123).

Suporte da versão do AppiumPara testes em execução em um ambiente personalizado, o Device Farm dá suporte ao Appium v1.8.1.Para testes em execução no ambiente padrão, o Device Farm dá suporte a v1.7.2. Para obter maisinformações, consulte Ambientes de teste (p. 9).

Tipos de teste integradoCom testes integrados, você pode testar o aplicativo em vários dispositivos sem que precise escrever emanter scripts de automação de teste. O Device Farm oferece dois tipos de testes integrados:

• Integrado: Explorer (Android) (p. 121)• Integrado: Fuzz (Android e iOS) (p. 121)

Como trabalhar com testes do Android no AWSDevice Farm

O Device Farm oferece suporte a vários tipos de teste de automação para dispositivos Android e doistestes integrados.

Estruturas de testes do aplicativo AndroidOs testes personalizados estão disponíveis para dispositivos Android.

• Appium Java TestNG (p. 54)• Appium Java JUnit (p. 58)• Appium Node.js (p. 62)• Appium Python (p. 65)• Appium Ruby (p. 68)• Calabash (p. 72)• Como trabalhar com instrumentação para o Android e o AWS Device Farm (p. 74)• UI Automator (p. 75)

Tipos de teste integrados para AndroidHá dois tipos de testes integrados disponíveis para dispositivos Android.

• Integrado: Explorer (Android) (p. 121)• Integrado: Fuzz (Android e iOS) (p. 121)

Versão da API 2015-06-2353

Page 62: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorAppium Java TestNG

Como trabalhar com o Appium Java TestNG paraAndroid e o AWS Device FarmEsta seção descreve como configurar, empacotar e fazer upload de seus testes do Appium Java TestNGpara Android para o Device Farm. O Appium é uma ferramenta de código aberto para automatizaraplicativos web móveis e nativos. Para obter mais informações sobre o Appium, consulte Introdução aoAppium no site do Appium.

Para obter um aplicativo de amostra e links para testes funcionais, consulte Aplicativo de amostra doDevice Farm para Android no GitHub.

Você também pode usar as ferramentas de desenvolvimento baseadas em comportamento, comoCucumber com seus testes do Appium Java. Para um exemplo de teste, consulte Testes do Appium JavaTestNG e do Cucumber para o aplicativo de amostra do Device Farm para Android no GitHub.

Informações sobre versão

• Atualmente, o Device Farm oferece suporte a Java 8 para executar testes do Appium Java.• O Device Farm oferece suporte a todas as versões do Appium 1.6.5 e posterior. Você pode escolher

qualquer versão do Appium usando o comando avm. Por exemplo, para usar a versão 1.9.1 do servidorAppium, adicione estes comandos ao arquivo YAML da especificação de teste:

phases: install: commands: # Para instalar uma versão mais recente do Appium, como a versão 1.9.1: - export APPIUM_VERSION=1.9.1 - avm $APPIUM_VERSION - ln -s /usr/local/avm/versions/$APPIUM_VERSION/node_modules/.bin/appium /usr/local/avm/versions/$APPIUM_VERSION/node_modules/appium/bin/appium.js

Para usar todos os recursos da estrutura, como anotações, selecione um ambiente de testepersonalizado e use a AWS CLI ou o console do Device Farm para fazer upload de uma especificaçãode teste personalizada.

Para obter mais informações, consulte Fazer upload de uma especificação de teste personalizadausando a AWS CLI e Criar uma execução de teste no AWS Device Farm (p. 23).

Tópicos• Etapa 1: configurar o pacote de teste do Appium (p. 54)• Etapa 2: configurar seus testes para serem executados com o Cucumber (opcional) (p. 55)• Etapa 3: criar um arquivo compactado do pacote de teste (p. 55)• Etapa 4: fazer upload do pacote de teste para o Device Farm (p. 56)• Etapa 5: fazer capturas de tela dos testes do Appium Java TestNG para Android (opcional) (p. 57)

Etapa 1: configurar o pacote de teste do AppiumUse as instruções a seguir para configurar o pacote de testes. Os testes do Appium Java TestNG paraaplicativos Android devem estar em um arquivo .zip.

Atualizar as configurações do Maven

1. Modifique pom.xml para definir o empacotamento para um arquivo JAR:

<groupId>com.acme</groupId> <artifactId>acme-android-appium</artifactId> <version>1.0-SNAPSHOT</version> <packaging>jar</packaging>

Versão da API 2015-06-2354

Page 63: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorAppium Java TestNG

2. Modifique pom.xml para usar maven-jar-plugin a fim de criar seus testes em um arquivo JAR.

O plug-in a seguir cria o código-fonte do teste (tudo que estiver no diretório src/test) em um arquivoJAR:

<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <version>2.6</version> <executions> <execution> <goals> <goal>test-jar</goal> </goals> </execution> </executions> </plugin>

3. Modifique pom.xml para usar maven-dependency-plugin a fim de criar dependências comoarquivos JAR.

O plug-in a seguir copia suas dependências para o diretório dependency-jars:

<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-dependency-plugin</artifactId> <version>2.10</version> <executions> <execution> <id>copy-dependencies</id> <phase>package</phase> <goals> <goal>copy-dependencies</goal> </goals> <configuration> <outputDirectory>${project.build.directory}/dependency-jars/</outputDirectory> </configuration> </execution> </executions> </plugin>

Etapa 2: configurar seus testes para serem executados com oCucumber (opcional)• Se você usa o Cucumber com seus testes do Appium Java TestNG para Android, siga esta etapa para

configurar o Maven com as configurações do Cucumber. Caso contrário, vá para a próxima etapa.

Note

Você deve executar seus testes em um ambiente de teste personalizado para usar oCucumber com os testes do Appium.

a. Modifique pom.xml para adicionar cucumber-java como uma dependência.

<dependency> <groupId>io.cucumber</groupId> <artifactId>cucumber-java</artifactId> <version>4.0.0</version> </dependency>

b. Modifique pom.xml para adicionar cucumber-testng como uma dependência.

<dependency> <groupId>io.cucumber</groupId> <artifactId>cucumber-testng</artifactId> <version>4.0.0</version> </dependency>

Etapa 3: criar um arquivo compactado do pacote de teste1. Salve a montagem XML a seguir em src/main/assembly/zip.xml.

O XML a seguir é uma definição de montagem que, quando configurada, instrui o Maven a criar umarquivo .zip que contém tudo na raiz do diretório de saída da compilação e no diretório dependency-jars:

<assembly xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0 http://maven.apache.org/xsd/assembly-1.1.0.xsd"> <id>zip</id> <formats> <format>zip</format> </formats>

Versão da API 2015-06-2355

Page 64: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorAppium Java TestNG

<includeBaseDirectory>false</includeBaseDirectory> <fileSets> <fileSet> <directory>${project.build.directory}</directory> <outputDirectory>./</outputDirectory> <includes> <include>*.jar</include> </includes> </fileSet> <fileSet> <directory>${project.build.directory}</directory> <outputDirectory>./</outputDirectory> <includes> <include>/dependency-jars/</include> </includes> </fileSet> </fileSets> </assembly>

2. Modifique pom.xml para usar maven-assembly-plugin a fim de empacotar testes e todas asdependências em um único arquivo .zip.

O plug-in a seguir usa a montagem anterior para criar um arquivo .zip denominado zip-with-dependencies no diretório de saída da compilação toda vez que o comando mvn package éexecutado:

<plugin> <artifactId>maven-assembly-plugin</artifactId> <version>2.5.4</version> <executions> <execution> <phase>package</phase> <goals> <goal>single</goal> </goals> <configuration> <finalName>zip-with-dependencies</finalName> <appendAssemblyId>false</appendAssemblyId> <descriptors> <descriptor>src/main/assembly/zip.xml</descriptor> </descriptors> </configuration> </execution> </executions> </plugin>

3. Crie, empacote e verifique. Por exemplo:

$ mvn clean package -DskipTests=true $ tree target . |— acme-android-appium-1.0-SNAPSHOT.jar (este é o arquivo JAR que contém tudo criado do diretório ./src/main) |— acme-android-appium-1.0-SNAPSHOT-tests.jar (este é o arquivo JAR que contém tudo criado do diretório ./src/test) |— zip-with-dependencies.zip (este arquivo .zip contém todos os itens) `— dependency-jars (este é o diretório que contém todas as suas dependências criadas como arquivos JAR) |— com.some-dependency.bar-4.1.jar |— com.another-dependency.thing-1.0.jar |— joda-time-2.7.jar |— log4j-1.2.14.jar |— (e assim por diante...)

4. Use o console do Device Farm para fazer upload do pacote de testes.

Note

Se receber uma mensagem de erro informando que a versão 1.3 não oferece suporte aanotações, adicione o seguinte ao pom.xml:

<plugin> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>1.7</source> <target>1.7</target> </configuration></plugin>

Etapa 4: fazer upload do pacote de teste para o Device FarmVocê pode usar o console do Device Farm para fazer upload de seus testes do Appium Java TestNG paraAndroid.

1. Faça login no console do Device Farm em https://console.aws.amazon.com/devicefarm.2. Se você vir a página inicial do console do AWS Device Farm, digite um nome para o projeto e escolha

Create project (Criar projeto). Atualize a página para ver seu novo projeto.3. Se já tiver um projeto, você poderá fazer upload dos testes para ele.4. Abra o projeto e escolha Create a new run (Criar uma nova execução).5. Na página Choose your application (Selecionar o aplicativo), selecione Aplicativo nativo Android ( ) e,

em seguida, Upload (Fazer upload).

Versão da API 2015-06-2356

Page 65: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorAppium Java TestNG

6. Procure e escolha o arquivo de seu aplicativo Android. O arquivo deve ser .apk.7. Escolha Próxima etapa.8. Na página Configure a test (Configurar um teste), escolha Appium Java TestNG e Upload (Fazer

upload).9. Procure e selecione o arquivo .zip que contém os testes. O arquivo .zip deve seguir o formato descrito

em Etapa 1: configurar o pacote de teste do Appium (p. 54).10. Escolha a versão do Appium que você está usando.11. Selecione Next step (Próxima etapa) e siga as instruções para selecionar os dispositivos e iniciar

a execução. Para obter mais informações, consulte Criar uma execução de teste no AWS DeviceFarm (p. 23).

Note

O Device Farm não modifica os testes do Appium Java TestNG para Android.

Etapa 5: fazer capturas de tela dos testes do Appium JavaTestNG para Android (opcional)Você pode fazer capturas de tela como parte dos testes.

Quando o Device Farm executa um teste do Appium Java TestNG, o serviço define as seguintespropriedades de sistema que descrevem a configuração do servidor Appium com o qual você está secomunicando:

• appium.screenshots.dir: caminho onde as capturas de tela são salvas.• appium.server.address: endereço de host do servidor Appium.• appium.server.port: porta na qual o servidor Appium está ouvindo.

O Device Farm define a propriedade SCREENSHOT_PATH para um caminho totalmente qualificado nosistema de arquivos local em que o Device Farm espera que as capturas de tela do Appium sejam salvas.O diretório específico de teste no qual as capturas de tela são armazenadas é definido em tempo deexecução. As capturas de tela são inseridas automaticamente nos relatórios do Device Farm. Paravisualizar as capturas de tela, no console do Device Farm, escolha a seção Screenshots (Capturas detela).

O exemplo a seguir mostra como usar e consumir a propriedade appium.screenshots.dir para fazeruma captura de tela do Appium que se encontra no relatório do Device Farm.

public boolean takeScreenshot(final String name) { String screenshotDirectory = System.getProperty("appium.screenshots.dir", System.getProperty("java.io.tmpdir", ""));

Versão da API 2015-06-2357

Page 66: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorAppium Java JUnit

File screenshot = ((TakesScreenshot) driver).getScreenshotAs(OutputType.FILE); return screenshot.renameTo(new File(screenshotDirectory, String.format("%s.png", name))); }

Como trabalhar com o Appium Java JUnit paraAndroid e o AWS Device FarmEsta seção descreve como configurar, empacotar e fazer upload de seus testes do Appium Java JUnit paraAndroid para o Device Farm. O Appium é uma ferramenta de código aberto para automatizar aplicativosweb móveis e nativos. Para obter mais informações sobre o Appium, consulte Introdução ao Appium nosite do Appium.

Você também pode usar as ferramentas de desenvolvimento baseadas em comportamento, comoCucumber com seus testes do Appium Java.

Informações sobre versão

• Atualmente, o Device Farm oferece suporte a Java 8 para executar testes do Appium Java.• O Device Farm oferece suporte a todas as versões do Appium 1.6.5 e posterior. Você pode escolher

qualquer versão do Appium usando o comando avm. Por exemplo, para usar a versão 1.9.1 do servidorAppium, adicione estes comandos ao arquivo YAML da especificação de teste:

phases: install: commands: # Para instalar uma versão mais recente do Appium, como a versão 1.9.1: - export APPIUM_VERSION=1.9.1 - avm $APPIUM_VERSION - ln -s /usr/local/avm/versions/$APPIUM_VERSION/node_modules/.bin/appium /usr/local/avm/versions/$APPIUM_VERSION/node_modules/appium/bin/appium.js

Para usar todos os recursos da estrutura, como anotações, selecione um ambiente de testepersonalizado e use a AWS CLI ou o console do Device Farm para fazer upload de uma especificaçãode teste personalizada.

Para obter mais informações, consulte Fazer upload de uma especificação de teste personalizadausando a AWS CLI e Criar uma execução de teste no AWS Device Farm (p. 23).

Tópicos• Etapa 1: configurar o pacote de teste do Appium (p. 58)• Etapa 2: configurar seus testes para serem executados com o Cucumber (opcional) (p. 59)• Etapa 3: criar um arquivo compactado do pacote de teste (p. 59)• Etapa 4: fazer upload do pacote de teste para o Device Farm (p. 60)• Etapa 5: fazer capturas de tela dos testes do Appium Java JUnit para Android (opcional) (p. 61)

Etapa 1: configurar o pacote de teste do AppiumUse as instruções a seguir para configurar o pacote de testes.

Atualizar as configurações do Maven

1. Modifique pom.xml para definir o empacotamento para um arquivo JAR:

<groupId>com.acme</groupId> <artifactId>acme-android-appium</artifactId> <version>1.0-SNAPSHOT</version> <packaging>jar</packaging>

2. Modifique pom.xml para usar maven-jar-plugin a fim de criar seus testes em um arquivo JAR.

Versão da API 2015-06-2358

Page 67: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorAppium Java JUnit

O plug-in a seguir cria o código-fonte do teste (tudo que estiver no diretório src/test) em um arquivoJAR:

<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <version>2.6</version> <executions> <execution> <goals> <goal>test-jar</goal> </goals> </execution> </executions> </plugin>

3. Modifique pom.xml para usar maven-dependency-plugin a fim de criar dependências comoarquivos JAR.

O plug-in a seguir copia suas dependências para o diretório dependency-jars:

<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-dependency-plugin</artifactId> <version>2.10</version> <executions> <execution> <id>copy-dependencies</id> <phase>package</phase> <goals> <goal>copy-dependencies</goal> </goals> <configuration> <outputDirectory>${project.build.directory}/dependency-jars/</outputDirectory> </configuration> </execution> </executions> </plugin>

Etapa 2: configurar seus testes para serem executados com oCucumber (opcional)• Se você usa o Cucumber com seus testes do Appium Java JUnit para Android, siga esta etapa para

configurar o Maven com as configurações do Cucumber. Caso contrário, vá para a próxima etapa.

Note

Você deve executar seus testes em um ambiente de teste personalizado para usar oCucumber com os testes do Appium.

a. Modifique pom.xml para adicionar cucumber-java como uma dependência.

<dependency> <groupId>io.cucumber</groupId> <artifactId>cucumber-java</artifactId> <version>4.0.0</version> </dependency>

b. Modifique pom.xml para adicionar cucumber-junit como uma dependência.

<dependency> <groupId>io.cucumber</groupId> <artifactId>cucumber-junit</artifactId> <version>4.0.0</version> <scope>test</scope> </dependency>

Etapa 3: criar um arquivo compactado do pacote de teste1. Salve a montagem XML a seguir em src/main/assembly/zip.xml.

O XML a seguir é uma definição de montagem que, quando configurada, instrui o Maven a criar umarquivo .zip que contém tudo na raiz do diretório de saída da compilação e no diretório dependency-jars:

<assembly xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0 http://maven.apache.org/xsd/assembly-1.1.0.xsd"> <id>zip</id> <formats> <format>zip</format> </formats> <includeBaseDirectory>false</includeBaseDirectory> <fileSets> <fileSet> <directory>

Versão da API 2015-06-2359

Page 68: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorAppium Java JUnit

${project.build.directory}</directory> <outputDirectory>./</outputDirectory> <includes> <include>*.jar</include> </includes> </fileSet> <fileSet> <directory>${project.build.directory}</directory> <outputDirectory>./</outputDirectory> <includes> <include>/dependency-jars/</include> </includes> </fileSet> </fileSets> </assembly>

2. Modifique pom.xml para usar maven-assembly-plugin a fim de empacotar testes e todas asdependências em um único arquivo .zip.

O plug-in a seguir usa a montagem anterior para criar um arquivo .zip denominado zip-with-dependencies no diretório de saída da compilação toda vez que o comando mvn package éexecutado:

<plugin> <artifactId>maven-assembly-plugin</artifactId> <version>2.5.4</version> <executions> <execution> <phase>package</phase> <goals> <goal>single</goal> </goals> <configuration> <finalName>zip-with-dependencies</finalName> <appendAssemblyId>false</appendAssemblyId> <descriptors> <descriptor>src/main/assembly/zip.xml</descriptor> </descriptors> </configuration> </execution> </executions> </plugin>

3. Crie, empacote e verifique. Por exemplo:

$ mvn clean package -DskipTests=true $ tree target . |— acme-android-appium-1.0-SNAPSHOT.jar (este é o arquivo JAR que contém tudo criado do diretório ./src/main) |— acme-android-appium-1.0-SNAPSHOT-tests.jar (este é o arquivo JAR que contém tudo criado do diretório ./src/test) |— zip-with-dependencies.zip (este arquivo .zip contém todos os itens) `— dependency-jars (este é o diretório que contém todas as suas dependências criadas como arquivos JAR) |— com.some-dependency.bar-4.1.jar |— com.another-dependency.thing-1.0.jar |— joda-time-2.7.jar |— log4j-1.2.14.jar |— (e assim por diante...)

4. Use o console do Device Farm para fazer upload do pacote de testes.

Note

Se receber uma mensagem de erro informando que a versão 1.3 não oferece suporte aanotações, adicione o seguinte ao pom.xml:

<plugin> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>1.7</source> <target>1.7</target> </configuration></plugin>

Etapa 4: fazer upload do pacote de teste para o Device FarmVocê pode usar o console do Device Farm para fazer upload de seus testes do Appium Java JUnit paraAndroid.

1. Faça login no console do Device Farm em https://console.aws.amazon.com/devicefarm.2. Se você vir a página inicial do console do AWS Device Farm, digite um nome para o projeto e escolha

Create project (Criar projeto). Atualize a página para ver seu novo projeto.3. Se já tiver um projeto, você poderá fazer upload dos testes para ele.4. Abra o projeto e escolha Create a new run (Criar uma nova execução).5. Na página Choose your application (Selecionar o aplicativo), selecione Aplicativo nativo Android ( ) e,

em seguida, Upload (Fazer upload).

Versão da API 2015-06-2360

Page 69: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorAppium Java JUnit

6. Procure e escolha o arquivo de seu aplicativo Android. O arquivo deve ser .apk.7. Escolha Próxima etapa.8. Na página Configure a test (Configurar um teste), escolha Appium Java JUnit e Upload (Fazer upload).9. Procure e selecione o arquivo .zip que contém os testes. O arquivo .zip deve seguir o formato descrito

em Etapa 1: configurar o pacote de teste do Appium (p. 58).10. Escolha a versão do Appium que você está usando.11. Selecione Next step (Próxima etapa) e siga as instruções para selecionar os dispositivos e iniciar

a execução. Para obter mais informações, consulte Criar uma execução de teste no AWS DeviceFarm (p. 23).

Note

O Device Farm não modifica os testes do Appium Java JUnit para Android.

Etapa 5: fazer capturas de tela dos testes do Appium Java JUnitpara Android (opcional)Você pode fazer capturas de tela como parte dos testes.

Quando o Device Farm executa um teste do Appium Java JUnit, o serviço define as seguintespropriedades de sistema que descrevem a configuração do servidor Appium com o qual você está secomunicando:

• appium.screenshots.dir: caminho onde as capturas de tela são salvas.• appium.server.address: endereço de host do servidor Appium.• appium.server.port: porta na qual o servidor Appium está ouvindo.

O Device Farm define a propriedade SCREENSHOT_PATH para um caminho totalmente qualificado nosistema de arquivos local em que o Device Farm espera que as capturas de tela do Appium sejam salvas.O diretório específico de teste no qual as capturas de tela são armazenadas é definido em tempo deexecução. As capturas de tela são inseridas automaticamente nos relatórios do Device Farm. Paravisualizar as capturas de tela, no console do Device Farm, escolha a seção Screenshots (Capturas detela).

O exemplo a seguir mostra como usar e consumir a propriedade appium.screenshots.dir para fazeruma captura de tela do Appium que se encontra no relatório do Device Farm.

public boolean takeScreenshot(final String name) { String screenshotDirectory = System.getProperty("appium.screenshots.dir", System.getProperty("java.io.tmpdir", ""));

Versão da API 2015-06-2361

Page 70: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorAppium Node.js

File screenshot = ((TakesScreenshot) driver).getScreenshotAs(OutputType.FILE); return screenshot.renameTo(new File(screenshotDirectory, String.format("%s.png", name))); }

Como trabalhar com o Appium Node.js paraaplicativos Android e o AWS Device FarmEsta seção descreve como configurar, empacotar e fazer upload dos seus testes do Appium Node.js noDevice Farm. O Appium é uma ferramenta de código aberto para automatizar aplicativos web móveis enativos. Para obter mais informações sobre o Appium, consulte Introdução ao Appium no site do Appium.

Informações sobre versão

• Você pode usar qualquer versão do Node.js ao executar testes do Appium Node.js no Device Farm.Especifique a versão do Node.js no arquivo YAML da especificação de teste.

• O Device Farm oferece suporte às versões 1.6.5 e posteriores do servidor Appium. Você pode escolherqualquer versão do Appium usando o comando avm. Por exemplo, para usar a versão 1.9.1 do servidorAppium, adicione estes comandos ao arquivo YAML da especificação de teste:

phases: install: commands: # To install a newer version of Appium such as version 1.9.1: - export APPIUM_VERSION=1.9.1 - avm $APPIUM_VERSION - ln -s /usr/local/avm/versions/$APPIUM_VERSION/node_modules/.bin/appium /usr/local/avm/versions/$APPIUM_VERSION/node_modules/appium/bin/appium.js

Para obter mais informações, consulte Fazer upload de uma especificação de teste personalizadausando a AWS CLI e Criar uma execução de teste no AWS Device Farm (p. 23).

Tópicos• Pré-requisitos para empacotar seus testes (p. 62)• Etapa 1: criar um arquivo compactado do pacote de teste (p. 63)• Etapa 2: fazer upload do pacote de teste para o Device Farm (p. 64)

Pré-requisitos para empacotar seus testesPara empacotar seus testes do Appium Node.js e fazer upload deles no Device Farm, é necessário instalaro seguinte na sua máquina local:

• Gerenciador de versão do Node (nvm)

Use essa ferramenta ao desenvolver e empacotar seus testes para que dependências desnecessáriasnão sejam incluídas no pacote de testes.

• Node.js• npm-bundle (instalado globalmente)

Para instalar pré-requisitos no macOS ou no Linux

1. Execute este comando para instalar o nvm:

curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.11/install.sh | bash

Versão da API 2015-06-2362

Page 71: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorAppium Node.js

Depois que a instalação for concluída, atualize o terminal. Para isso, saia e faça login novamente.

Note

O nvm é carregado como uma função apenas para o shell bash.2. Execute este comando no shell bash para verificar se o nvm está instalado corretamente. Você pode

alternar para o shell bash usando /bin/bash.

command -v nvm

Você verá nvm como resultado.

Para obter mais informações, consulte nvm no GitHub.3. Execute este comando para instalar o Node.js:

nvm install node

Você pode especificar uma determinada versão do Node.js, como mostrado aqui:

nvm install 11.4.0

4. Execute este comando para verificar se você está usando a versão especificada:

node -v

5. Execute este comando para instalar o npm-bundle globalmente:

npm install -g npm-bundle

Etapa 1: criar um arquivo compactado do pacote de testeOs pacotes de testes do Appium Node.js dos quais você faz upload no Device Farm devem estar noformato .zip e conter todas as dependências do seu teste.

1. Confira o projeto.

Verifique se você está no diretório raiz do seu projeto. Você pode ver package.json no diretório raiz.2. Execute este comando para instalar suas dependências locais.

npm install

Esse comando também cria uma pasta node_modules dentro do seu diretório atual.

Note

Então, você poderá executar seus testes localmente.3. Execute este comando para empacotar os arquivos da pasta atual em um arquivo *.tgz. O arquivo

recebe um nome por meio da propriedade name no arquivo package.json.

npm-bundle

Esse arquivo tarball (.tgz) contém todos os seus códigos e dependências.Versão da API 2015-06-23

63

Page 72: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorAppium Node.js

4. Execute este comando para empacotar o tarball (arquivo *.tgz) gerado na etapa anterior em um únicoarquivo compactado:

zip -r MyTests.zip *.tgz

Esse é o arquivo MyTests.zip do qual você faz upload no Device Farm no procedimento a seguir.

Etapa 2: fazer upload do pacote de teste para o Device FarmUse o console do Device Farm para carregar seus testes.

1. Faça login no console do Device Farm em https://console.aws.amazon.com/devicefarm.2. Se você vir a página inicial do console do AWS Device Farm, escolha Get started (Conceitos básicos).3. Você pode fazer upload dos testes em um projeto existente ou escolher Create a new project (Criar

um novo projeto).Tip

Se a lista de projetos não for exibida, na barra de navegação secundária, em Projects(Projetos), escolha o nome do projeto no qual você deseja fazer upload dos testes.Para criar um projeto, siga as instruções em Criar um projeto no AWS Device Farm (p. 20).

4. Se o botão Create a new run (Criar uma nova execução) for exibido, escolha-o.5. Na página Choose your application (Selecionar o aplicativo), selecione Aplicativo nativo Android ( ).

6. Escolha Upload (Fazer upload) para fazer upload do arquivo .apk.

O Device Farm processa o arquivo .apk antes de continuar.7. Em Run name (Nome da execução), digite um nome para a execução.

Tip

Dê à execução um nome que ajude você a identificar uma compilação específica doaplicativo (por exemplo, Beta-0.1). Para obter mais informações, consulte Trabalhar comexecução de testes (p. 23).

8. Escolha Appium Node.js para configurar seu teste.9. Para adicionar scripts de teste do Appium à execução do teste, escolha Upload (Fazer upload).10. Escolha o arquivo MyTests.zip que você criou no procedimento anterior.11. Siga as instruções para escolher uma especificação de teste.

Se você estiver usando a especificação de teste padrão, altere o comando de execução de teste naseção test do arquivo YAML da especificação de teste.

12. Escolha os dispositivos e inicie a execução.

Versão da API 2015-06-2364

Page 73: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorAppium Python

Para obter mais informações, consulte Criar uma execução de teste no AWS Device Farm (p. 23).

Note

O Device Farm não modifica os testes do Appium Node.js para Android.

Como trabalhar com o Appium Python para aplicativosAndroid e o AWS Device FarmEsta seção descreve como configurar, empacotar e fazer upload de seus testes do Appium Python parao Device Farm. O Appium é uma ferramenta de código aberto para automatizar aplicativos web móveis enativos. Para obter mais informações sobre o Appium, consulte Introdução ao Appium no site do Appium.

Para obter um aplicativo de amostra, consulte Aplicativo de amostra do Device Farm para Android noGitHub.

Para obter um amostra de teste do Device Farm, consulte Amostra de testes do Appium Python para oaplicativo de amostra do Device Farm para Android no GitHub.

Informações sobre versão

• No momento, o Device Farm oferece suporte ao Python versão 2.7.6 (versão pip 1.5.4) para executartestes do Appium Python.

• O Device Farm oferece suporte a todas as versões do Appium 1.6.5 e posterior. Você pode escolherqualquer versão do Appium usando o comando avm. Por exemplo, para usar a versão 1.9.1 do servidorAppium, adicione estes comandos ao arquivo YAML da especificação de teste:

phases: install: commands: # Para instalar uma versão mais recente do Appium, como a versão 1.9.1: - export APPIUM_VERSION=1.9.1 - avm $APPIUM_VERSION - ln -s /usr/local/avm/versions/$APPIUM_VERSION/node_modules/.bin/appium /usr/local/avm/versions/$APPIUM_VERSION/node_modules/appium/bin/appium.js

Para usar todos os recursos da estrutura, como anotações, selecione um ambiente de testepersonalizado e use a AWS CLI ou o console do Device Farm para fazer upload de uma especificaçãode teste personalizada.

Para obter mais informações, consulte Fazer upload de uma especificação de teste personalizadausando a AWS CLI e Criar uma execução de teste no AWS Device Farm (p. 23).

Tópicos• Etapa 1: criar um arquivo compactado do pacote de teste (p. 65)• Etapa 2: fazer upload do pacote de teste para o Device Farm (p. 67)• Etapa 3: fazer capturas de tela dos testes do Appium Python para Android (opcional) (p. 68)

Etapa 1: criar um arquivo compactado do pacote de testeOs pacotes de testes do Appium Python que você carrega no Device Farm devem estar em formato .zip econter todas as dependências de seu teste.

Note

As instruções a seguir se baseiam no Linux x86_64 e no macOS. No esquema com suporteatualmente, o Device Farm requer que você empacote os testes do Appium Python no Linuxx86_64, caso os testes contenham dependências não universais de wheels do Python. Na

Versão da API 2015-06-2365

Page 74: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorAppium Python

plataforma em que você executar um comando, a ferramenta wheels reunirá seus arquivosdependentes .whl na pasta wheelhouse/. Se você executar o comando wheel do Python em umaplataforma que não seja Linux x86_64, você coletará o tipo de dependência wheel não universalpara a plataforma, o que pode causar erros quando você executar seus testes no Device Farm.

1. É altamente recomendável configurar o virtualenv do Python para testes de desenvolvimento eempacotamento, para que dependências desnecessárias não sejam incluídas em seu pacote deaplicativos.

$ virtualenv workspace$ cd workspace$ source bin/activate

Tip

• Não crie um virtualenv do Python com a opção --system-site-packages porqueele herda pacotes de /usr/lib/pythonx.x/site-packages ou o local do diretório global site-packages. Isso pode resultar na inclusão de dependências em seu ambiente virtual quenão são necessárias aos seus testes.

• Você também deve verificar se os testes não usam dependências que dependem debibliotecas nativas, pois essas bibliotecas nativas podem ou não estar presentes nainstância em que esses testes são executados.

2. Instale o py.test em seu ambiente virtual.

$ pip install pytest

3. Instale o cliente do Appium Python em seu ambiente virtual.

$ pip install Appium-Python-Client

4. Armazene todos os scripts de teste do Python na pasta tests/ em seu espaço de trabalho.

# workspace ## tests/ (your tests go here)

5. Execute esse comando na pasta workspace de seu ambiente virtual para exibir uma lista de seustestes sem executá-los.

$ py.test --collect-only tests/

Confirme que a saída exibe os testes que você deseja executar no Device Farm.6. Execute o comando a seguir no espaço de trabalho para gerar o arquivo requirements.txt:

$ pip freeze > requirements.txt

7. Execute o seguinte comando no espaço de trabalho para gerar a pasta wheelhouse/:

$ pip wheel --wheel-dir wheelhouse -r requirements.txt

8. Você pode usar os comandos a seguir para limpar todos os arquivos em cache em sua pasta tests/:

$ find . -name '__pycache__' -type d -exec rm -r {} +$ find . -name '*.pyc' -exec rm -f {} +$ find . -name '*.pyo' -exec rm -f {} +$ find . -name '*~' -exec rm -f {} +

Versão da API 2015-06-2366

Page 75: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorAppium Python

9. Compacte a pasta tests/, a pasta wheelhouse/ e o arquivo requirements.txt em um único arquivo:

$ zip -r test_bundle.zip tests/ wheelhouse/ requirements.txt

Seu espaço de trabalho deve se parecer com o seguinte:

# workspace ## tests/ ## test_bundle.zip ## requirements.txt ## wheelhouse/

Etapa 2: fazer upload do pacote de teste para o Device FarmUse o console do Device Farm para carregar seus testes.

1. Faça login no console do Device Farm em https://console.aws.amazon.com/devicefarm.2. Se você vir a página inicial do console do AWS Device Farm, escolha Get started (Conceitos básicos).3. Você pode fazer upload dos testes em um projeto existente ou escolher Create a new project (Criar

um novo projeto).

Tip

Se a lista de projetos não for exibida, na barra de navegação secundária, em Projects(Projetos), escolha o nome do projeto no qual você deseja fazer upload dos testes.Para criar um projeto, siga as instruções em Criar um projeto no AWS Device Farm (p. 20).

4. Se o botão Create a new run (Criar uma nova execução) for exibido, escolha-o.5. Na página Choose your application (Selecionar o aplicativo), selecione Aplicativo nativo Android ( ).

6. Escolha Upload (Fazer upload) para fazer upload do arquivo .apk.

O Device Farm processa o arquivo .apk antes de continuar.7. Em Run name (Nome da execução), digite um nome para a execução.

Tip

Dê à execução um nome que ajude você a identificar uma compilação específica doaplicativo (por exemplo, Beta-0.1). Para obter mais informações, consulte Trabalhar comexecução de testes (p. 23).

8. Escolha Appium Python para configurar seu teste.9. Para adicionar scripts de teste do Appium à execução do teste, escolha Upload (Fazer upload).10. Escolha a versão do Appium que você está usando.

Versão da API 2015-06-2367

Page 76: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorAppium Ruby

11. Selecione Next step (Próxima etapa) e siga as instruções para selecionar os dispositivos e iniciara execução. Para obter mais informações, consulte Criar uma execução de teste no AWS DeviceFarm (p. 23).

Note

O Device Farm não modifica os testes do Appium Python para Android.

Etapa 3: fazer capturas de tela dos testes do Appium Python paraAndroid (opcional)Você pode fazer capturas de tela como parte dos testes.

Quando o Device Farm executa um teste do Appium Python, o serviço define as seguintes propriedades desistema que descrevem a configuração do servidor Appium com o qual você está se comunicando:

• appium.screenshots.dir: caminho onde as capturas de tela são salvas.• appium.server.address: endereço de host do servidor Appium.• appium.server.port: porta na qual o servidor Appium está ouvindo.

O Device Farm define a propriedade SCREENSHOT_PATH para um caminho totalmente qualificado nosistema de arquivos local em que o Device Farm espera que as capturas de tela do Appium sejam salvas.O diretório específico de teste no qual as capturas de tela são armazenadas é definido em tempo deexecução. As capturas de tela são inseridas automaticamente nos relatórios do Device Farm. Paravisualizar as capturas de tela, no console do Device Farm, escolha a seção Screenshots (Capturas detela).

O exemplo a seguir mostra como usar e consumir a propriedade appium.screenshots.dir para fazeruma captura de tela do Appium que se encontra no relatório do Device Farm.

public boolean takeScreenshot(final String name) { String screenshotDirectory = System.getProperty("appium.screenshots.dir", System.getProperty("java.io.tmpdir", "")); File screenshot = ((TakesScreenshot) driver).getScreenshotAs(OutputType.FILE); return screenshot.renameTo(new File(screenshotDirectory, String.format("%s.png", name))); }

Como trabalhar com o Appium Ruby para aplicativosAndroid e o AWS Device FarmEsta seção descreve como configurar, empacotar e fazer upload dos seus testes do Appium Ruby noDevice Farm. O Appium é uma ferramenta de código aberto para automatizar aplicativos web móveis enativos. Para obter mais informações sobre o Appium, consulte Introdução ao Appium no site do Appium.

Informações sobre versão

• Você pode usar qualquer versão do Ruby ao executar testes do Appium Ruby no Device Farm.Especifique a versão do Ruby (por exemplo, 2.5.1) no arquivo YAML da especificação de teste.

• O Device Farm oferece suporte às versões 1.6.5 e posteriores do servidor Appium. Você pode escolherqualquer versão do Appium usando o comando avm. Por exemplo, para usar a versão 1.9.1 do servidorAppium, adicione estes comandos ao arquivo YAML da especificação de teste:

phases: install: commands:

Versão da API 2015-06-2368

Page 77: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorAppium Ruby

# To install a newer version of Appium such as version 1.9.1: - export APPIUM_VERSION=1.9.1 - avm $APPIUM_VERSION - ln -s /usr/local/avm/versions/$APPIUM_VERSION/node_modules/.bin/appium /usr/local/avm/versions/$APPIUM_VERSION/node_modules/appium/bin/appium.js

Para obter mais informações, consulte Fazer upload de uma especificação de teste personalizadausando a AWS CLI e Criar uma execução de teste no AWS Device Farm (p. 23).

Tópicos• Pré-requisitos para empacotar seus testes (p. 69)• Etapa 1: criar um arquivo compactado do pacote de teste (p. 70)• Etapa 2: fazer upload do pacote de teste para o Device Farm (p. 70)• Dicas para agilizar seus testes do Appium (p. 71)

Pré-requisitos para empacotar seus testesPara empacotar seus testes do Appium Ruby e fazer upload deles no Device Farm, é necessário instalar oseguinte na sua máquina local:

• Gerenciador de versão do Ruby (RVM)

Use essa ferramenta de linha de comando ao desenvolver e empacotar seus testes para quedependências desnecessárias não sejam incluídas no pacote de testes.

• Ruby• Bundler (esse gem normalmente é instalado com o Ruby.)

1. Instale as chaves obrigatórias, o RVM e o Ruby. Para obter instruções, consulte Como instalar o RVMno site do RVM.

# The following command is for reference only. Go to rvm website and look for the complete command.gpg --keyserver hkp://keys.gnupg.net --recv-keys $keys

# install rvm along with ruby\curl -sSL https://get.rvm.io | bash -s stable --ruby

Depois que a instalação for concluída, atualize o terminal. Para isso, saia e faça login novamente.

Note

O RVM é carregado como uma função apenas para o shell bash.2. Execute este comando no shell bash para verificar se o RVM está instalado corretamente. Você pode

alternar para o shell bash usando /bin/bash.

command -v rvm

Você verá rvm como resultado.3. Se você deseja instalar uma versão específica do Ruby (por exemplo, 2.5.1), execute o seguinte

comando:

rvm install ruby 2.5.1 --autolibs=0

Versão da API 2015-06-2369

Page 78: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorAppium Ruby

Execute este comando para verificar se você está usando a versão especificada:

ruby -v

4. Embora uma instalação típica do Ruby inclua o Bundler, execute este comando se precisar instalá-lo:

gem install bundler

Etapa 1: criar um arquivo compactado do pacote de testeOs pacotes de testes do Appium Ruby dos quais você faz upload no Device Farm devem estar noformato .zip e conter todas as dependências do seu teste.

1. Execute este comando para criar um ambiente virtual do Ruby:

# myGemset is the name of your virtual Ruby environmentrvm gemset create myGemset

2. Execute este comando para usar o ambiente que você acabou de criar:

rvm gemset use myGemset

3. Confira o código-fonte.

Verifique se você está no diretório raiz do seu projeto. Você pode ver Gemfile no diretório raiz.4. Execute este comando para instalar suas dependências locais e todos os gems do Gemfile:

bundle install

Note

Então, você poderá executar seus testes localmente. Use este comando para executar umteste localmente:

bundle exec $test_command

5. Empacote os gems na pasta vendor/cache.

# This will copy all the .gem files needed to run your tests into the vendor/cache directorybundle package

6. Execute o comando a seguir para empacotar seu código-fonte, junto com todas as suasdependências, em um único arquivo compactado:

zip -r MyTests.zip Gemfile vendor/ $(any other source code directory files)

Esse é o arquivo MyTests.zip do qual você faz upload no Device Farm no procedimento a seguir.

Etapa 2: fazer upload do pacote de teste para o Device FarmUse o console do Device Farm para carregar seus testes.

Versão da API 2015-06-2370

Page 79: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorAppium Ruby

1. Faça login no console do Device Farm em https://console.aws.amazon.com/devicefarm.2. Se você vir a página inicial do console do AWS Device Farm, escolha Get started (Conceitos básicos).3. Você pode fazer upload dos testes em um projeto existente ou escolher Create a new project (Criar

um novo projeto).Tip

Se a lista de projetos não for exibida, na barra de navegação secundária, em Projects(Projetos), escolha o nome do projeto no qual você deseja fazer upload dos testes.Para criar um projeto, siga as instruções em Criar um projeto no AWS Device Farm (p. 20).

4. Se o botão Create a new run (Criar uma nova execução) for exibido, escolha-o.5. Na página Choose your application (Selecionar o aplicativo), selecione Aplicativo nativo Android ( ).

6. Escolha Upload (Fazer upload) para fazer upload do arquivo .apk.

O Device Farm processa o arquivo .apk antes de continuar.7. Em Run name (Nome da execução), digite um nome para a execução.

Tip

Dê à execução um nome que ajude você a identificar uma compilação específica doaplicativo (por exemplo, Beta-0.1). Para obter mais informações, consulte Trabalhar comexecução de testes (p. 23).

8. Escolha Appium Ruby para configurar seu teste.9. Para adicionar scripts de teste do Appium à execução do teste, escolha Upload (Fazer upload).10. Escolha o arquivo MyTests.zip que você criou no procedimento anterior.11. Siga as instruções para escolher uma especificação de teste.

Se você estiver usando a especificação de teste padrão, altere o comando de execução de teste naseção test do arquivo YAML da especificação de teste.

12. Escolha os dispositivos e inicie a execução.

Para obter mais informações, consulte Criar uma execução de teste no AWS Device Farm (p. 23).

Note

O Device Farm não modifica os testes do Appium Ruby para Android.

Dicas para agilizar seus testes do AppiumNas instruções de empacotamento na Etapa 1, você empacota os gems, mas eles ainda estão sendoinstalados no host do Device Farm no tempo de execução. Os gems com extensões (por exemplo,Nokogiri) levam um tempo considerável para serem instalados no host.

Versão da API 2015-06-2371

Page 80: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorCalabash

Para agilizar seus testes, você pode empacotar o diretório de instalação dos gems, em vez de empacotaros próprios gems. Como gems com extensões são específicos da plataforma, é necessário gerar odiretório de instalação deles na mesma plataforma que o Device Farm usa para executar os testes.

O Device Farm executa os testes do Android em máquinas Ubuntu (Ubuntu 14.04.5 LTS). Como os gemssão específicos da plataforma, recomendamos que você use a mesma versão do Ubuntu ao empacotarseus testes. Se você não tem uma máquina Ubuntu executando essa versão, pode usar o Amazon EC2para criar uma instância que a execute. Para o tipo de instância, escolha o Ubuntu Server 14.04 LTS(HVM). Para o tipo de volume, escolha SSD.

1. Execute este comando para criar um ambiente virtual do Ruby:

# myGemset is the name of your virtual ruby environmentrvm gemset create myGemset

2. Execute este comando para usar o ambiente que você acabou de criar:

rvm gemset use myGemset

3. Confira o código-fonte.

Verifique se você está no diretório raiz do seu projeto. Você pode ver Gemfile no diretório raiz.4. Execute este comando para instalar suas dependências locais e todos os gems do Gemfile:

bundle install --path=vendor/bundle

O switch --path instala os gems no diretório vendor/bundle, não no local do sistema, e o definecomo o caminho padrão para instalações futuras ao criar um arquivo .bundle/config.

Note

Então, você poderá executar seus testes localmente. Use este comando para executar umteste localmente:

bundle exec $test_command

5. Execute este comando para empacotar seu código-fonte, Gemfile, diretório de instalação de gems e odiretório .bundle em um único arquivo compactado:

zip -r MyTests.zip Gemfile .bundle/ vendor/ $(any other source code directory files)

Como trabalhar com o Calabash para Android e oAWS Device FarmO Device Farm é compatível com o Calabash para Android.

O Device Farm também oferece um aplicativo Android e links para testes funcionais em três estruturasde automação Android, incluindo o Calabash. O aplicativo de amostra do Device Farm para Android estádisponível para download no GitHub.

Em que consiste o Calabash?O Calabash é uma estrutura de teste móvel que você pode usar para executar testes automatizadosde aceitação de interface de usuário escritos em Cucumber em aplicativos Android. Para obter maisinformações, consulte o repositório Bem-vindo ao Calabash para Android no GitHub.

Versão da API 2015-06-2372

Page 81: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorCalabash

Informações sobre versãoNo momento, o Device Farm é compatível com a versão 0.9.0 do Calabash.

Preparação dos testes do Calabash para AndroidOs testes de Android Calabash precisam estar contidos em um arquivo .zip com a seguinte estrutura:

my-zip-file-name.zip `-- features (directory) |-- my-feature-1-file-name.feature |-- my-feature-2-file-name.feature |-- my-feature-N-file-name.feature |-- step_definitions (directory) | `-- (.rb files) |-- support (directory) | `-- (.rb files) `-- (any other supporting files)

Upload dos testes do Calabash para AndroidUse o console do Device Farm para carregar seus testes.

1. Faça login no console do Device Farm em https://console.aws.amazon.com/devicefarm.2. Na lista de projetos, escolha a opção ao lado do projeto para o qual você deseja carregar os testes.

Tip

Se a lista de projetos não for exibida, na barra de navegação secundária, em Projects(Projetos), escolha o nome do projeto no qual você deseja carregar os testes.Para criar um projeto, siga as instruções em Criar um projeto no AWS Device Farm (p. 20).

3. Se o botão Create a new run (Criar uma nova execução) for exibido, escolha-o.4. Na página Choose your application (Escolher o aplicativo), escolha Upload.5. Procure e escolha o arquivo de seu aplicativo Android. O arquivo deve ser .apk.6. Escolha Próxima etapa.7. Na página Configure a test (Configurar um teste), escolha Calabash e Upload.8. Procure e selecione o arquivo .zip que contém os testes.9. Escolha Next step (Próxima etapa) e conclua as demais instruções para selecionar os dispositivos e

iniciar a execução.

Fazer capturas de tela em testes do Calabash para AndroidVocê pode fazer capturas de tela como parte dos testes do Calabash pra Android.

O Calabash para Android oferece um conjunto de etapas predefinidas para fazer capturas de tela. Paraobter detalhes, consulte a seção "Capturas de tela" da página Etapas descritas no repositório CalabashAndroid no GitHub.

Como alternativa, você pode definir uma etapa personalizada em um arquivo Ruby (.rb) para chamar afunção screenshot_embed, que cria uma captura de tela e a salva em um diretório definido por você. Porexemplo, o código de exemplo a seguir cria uma captura de tela e a salva no diretório /my/custom/pathcom um nome de arquivo screenshot_seconds-since-Epoch:

screenshot_embed(:prefix => "/my/custom/path", :name => "screenshot_#{Time.now.to_i}")

Versão da API 2015-06-2373

Page 82: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorInstrumentação

Considerações adicionais para os testes do Calabash paraAndroidO Device Farm substitui alguns ganchos do Calabash para que os testes do Calabash para Android sejamexecutados em dispositivos no Device Farm, mas não modifica esses testes.

Como trabalhar com instrumentação para o Android eo AWS Device FarmO Device Farm oferece suporte à instrumentação (JUnit, Espresso, Robotium ou qualquer teste baseadoem instrumentação) para Android.

O Device Farm também oferece um aplicativo Android de exemplo e links para testes funcionais em trêsestruturas de automação Android, inclusive instrumentação (Espresso). O aplicativo de amostra do DeviceFarm para Android está disponível para download no GitHub.

Tópicos• O que é instrumentação? (p. 74)• Upload dos testes de instrumentação para Android (p. 74)• Fazer captura de telas em testes de instrumentação para Android (p. 75)• Considerações adicionais para os testes de instrumentação para Android (p. 75)

O que é instrumentação?A instrumentação do Android possibilita chamar métodos de retorno de chamada no código de teste, demaneira que você possa percorrer o ciclo de vida de um componente passo a passo, como se estivessedepurando o componente. Para obter mais informações, consulte Instrumentação na seção "Fundamentosde testes" da documentação de ferramentas de desenvolvedor Android.

Upload dos testes de instrumentação para AndroidUse o console do Device Farm para carregar seus testes.

1. Faça login no console do Device Farm em https://console.aws.amazon.com/devicefarm.2. Na lista de projetos, escolha a opção ao lado do projeto para o qual você deseja carregar os testes.

Tip

Se a lista de projetos não for exibida, na barra de navegação secundária, em Projects(Projetos), escolha o nome do projeto no qual você deseja carregar os testes.Para criar um projeto, siga as instruções em Criar um projeto no AWS Device Farm (p. 20).

3. Se o botão Create a new run (Criar uma nova execução) for exibido, escolha-o.4. Na página Choose your application (Escolher o aplicativo), escolha Upload.5. Procure e escolha o arquivo de seu aplicativo Android. O arquivo deve ser .apk.6. Escolha Próxima etapa.7. Na página Configure a test (Configurar um teste), escolha Instrumentation (Instrumentação) e Upload.8. Procure e selecione o arquivo .apk que contém os testes.9. Escolha Next step (Próxima etapa) e conclua as demais instruções para selecionar os dispositivos e

iniciar a execução.

Versão da API 2015-06-2374

Page 83: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorUI Automator

Fazer captura de telas em testes de instrumentação para AndroidVocê pode fazer capturas de tela como parte dos testes de instrumentação para Android.

Para fazer a captura de telas, chame um dos seguintes métodos:

• Para Robotium, chame o método takeScreenShot (por exemplo, solo.takeScreenShot();).• Para Spoon, chame o método screenshot; por exemplo:

Spoon.screenshot(activity, "initial_state");/* Normal test code... */Spoon.screenshot(activity, "after_login");

Durante a execução de teste, o Device Farm faz a captura de telas automaticamente nos seguintes locaisdos dispositivos, se existirem, e as adiciona aos relatórios de teste:

• /sdcard/robotium-screenshots

• /sdcard/test-screenshots

• /sdcard/Download/spoon-screenshots/test-class-name/test-method-name

• /data/data/application-package-name/app_spoon-screenshots/test-class-name/test-method-name

Considerações adicionais para os testes de instrumentação paraAndroidSystem Animations (Animações de sistema)

Segundo a Documentação do Android para testes Espresso, é recomendado que animaçõesde sistema sejam desativadas durante o teste em dispositivos reais. O Device Farm desabilitaautomaticamente as configurações Window Animation Scale (Escala de animação da janela),Transition Animation Scale (Escala de animação da transição) e Animator Duration Scale(Escala de duração do animador) ao ser executado com o executor de testes da instrumentaçãoandroid.support.test.runner.AndroidJUnitRunner.

Test Recorders (Gravadores de teste)

O Device Farm é compatível com estruturas como o Robotium, que têm ferramentas de script degravação e reprodução.

Como trabalhar com o UI Automator para Android e oAWS Device FarmO Device Farm é compatível com o UI Automator para Android.

Note

Essa estrutura está atualmente em visualização. Ela talvez não funcione com todos os scripts eaplicativos.

Tópicos• Em que consiste o UI Automator? (p. 76)• Como preparar os testes do UI Automator para Android (p. 76)

Versão da API 2015-06-2375

Page 84: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorUI Automator

• Upload dos testes do UI Automator para Android (p. 76)• Fazer capturas de tela em testes do UI Automator para Android (p. 76)• Considerações adicionais para os testes do UI Automator para Android (p. 77)

Em que consiste o UI Automator?A estrutura de teste UI Automator consiste em um conjunto de APIs usadas para criar testes de interfacede usuário por meio de interações entre o usuário e os aplicativos do sistema para Android. As APIs doUI Automator permitem que você realize operações como abrir o menu Settings (Configurações) ou olauncher do aplicativo em um dispositivo de teste. Para obter mais informações, consulte UI Automator naseção "Biblioteca de suporte de teste" da documentação Ferramentas de desenvolvedor Android.

Como preparar os testes do UI Automator para AndroidOs testes Android UI Automator devem estar contidos em um único arquivo JAR. O nome do pacote nessearquivo deve corresponder ao nome do pacote usado pelo aplicativo Android. Por exemplo, se o nome dopacote do aplicativo Android for com.my.android.app.MyMobileApp, os testes do UI Automator paraAndroid deverão estar em um pacote chamado com.my.android.app.

Upload dos testes do UI Automator para AndroidUse o console do Device Farm para carregar seus testes.

1. Faça login no console do Device Farm em https://console.aws.amazon.com/devicefarm.2. Na lista de projetos, escolha a opção ao lado do projeto para o qual você deseja carregar os testes.

Tip

Se a lista de projetos não for exibida, na barra de navegação secundária, em Projects(Projetos), escolha o nome do projeto no qual você deseja carregar os testes.Para criar um projeto, siga as instruções em Criar um projeto no AWS Device Farm (p. 20).

3. Se o botão Create a new run (Criar uma nova execução) for exibido, escolha-o.4. Na página Choose your application (Escolher o aplicativo), escolha Upload.5. Procure e escolha o arquivo de seu aplicativo Android. O arquivo deve ser .apk.6. Escolha Próxima etapa.7. Na página Configure a test (Configurar um teste), escolha uiautomator e Upload.8. Procure e selecione o arquivo JAR que contém os testes.9. Escolha Next step (Próxima etapa) e conclua as demais instruções para selecionar os dispositivos e

iniciar a execução.

Fazer capturas de tela em testes do UI Automator para AndroidVocê pode fazer capturas de tela como parte dos testes do UI Automator pra Android.

Para fazer uma captura de tela, chame o método takeScreenshot (por exemplo, takeScreenshot("/sdcard/uiautomator-screenshots/home-screen-1234.png");).

Note

Todas as capturas de tela devem ser armazenadas no diretório /sdcard/uiautomator-screenshots. Você deve especificar o caminho completo (incluindo o nome do arquivo) dacaptura de tela a ser armazenada.O método takeScreenshot só funciona para os níveis de API 17 e versões posteriores. O UIAutomator é compatível com o nível de API 16, mas não comporta capturas de tela.

Versão da API 2015-06-2376

Page 85: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorTestes do iOS

Considerações adicionais para os testes do UI Automator paraAndroidO Device Farm assina novamente os pacotes de testes do UI Automator para Android, mas não modificaesses testes.

Como trabalhar com testes do iOS no AWS DeviceFarm

O Device Farm oferece suporte a vários tipos de teste de automação para dispositivos iOS e um testeintegrado.

Estruturas de testes do aplicativo iOSOs testes a seguir estão disponíveis para dispositivos iOS.

• Appium Java TestNG (p. 77)• Appium Java JUnit (p. 81)• Appium Node.js (p. 85)• Appium Python (p. 88)• Appium Ruby (p. 92)• Calabash (p. 96)• UI Automation (p. 98)• Como trabalhar com o XCTest para iOS e o AWS Device Farm (p. 99)• XCTest UI (p. 101)

Tipos de teste integrados para iOSNo momento, existe apenas um tipo de teste integrado disponível para dispositivos iOS.

• Integrado: Fuzz (Android e iOS) (p. 121)

Como trabalhar com o Appium Java TestNG para iOSe o AWS Device FarmEsta seção descreve como configurar, empacotar e fazer upload de seus testes do Appium Java TestNGpara iOS para o Device Farm. O Appium é uma ferramenta de código aberto para automatizar aplicativosweb móveis e nativos. Para obter mais informações sobre o Appium, consulte Introdução ao Appium nosite do Appium.

Para obter um aplicativo de amostra e links para testes funcionais, consulte Aplicativo de amostra doDevice Farm para iOS no GitHub.

Informações sobre versão

• Atualmente, o Device Farm oferece suporte a Java 8 para executar testes do Appium Java.

Versão da API 2015-06-2377

Page 86: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorAppium Java TestNG

• O Device Farm oferece suporte a todas as versões do Appium 1.6.5 e posterior. Você pode escolherqualquer versão do Appium usando o comando avm. Por exemplo, para usar a versão 1.9.1 do servidorAppium, adicione estes comandos ao arquivo YAML da especificação de teste:

phases: install: commands: # Para instalar uma versão mais recente do Appium, como a versão 1.9.1: - export APPIUM_VERSION=1.9.1 - avm $APPIUM_VERSION - ln -s /usr/local/avm/versions/$APPIUM_VERSION/node_modules/.bin/appium /usr/local/avm/versions/$APPIUM_VERSION/node_modules/appium/bin/appium.js

Para usar todos os recursos da estrutura, como anotações, selecione um ambiente de testepersonalizado e use a AWS CLI ou o console do Device Farm para fazer upload de uma especificaçãode teste personalizada.

Para obter mais informações, consulte Fazer upload de uma especificação de teste personalizadausando a AWS CLI e Criar uma execução de teste no AWS Device Farm (p. 23).

Tópicos• Etapa 1: configurar o pacote de teste do Appium (p. 78)• Etapa 2: configurar seus testes para serem executados com o Cucumber (opcional) (p. 79)• Etapa 3: criar um arquivo compactado do pacote de teste (p. 79)• Etapa 4: fazer upload do pacote de teste para o Device Farm (p. 80)• Etapa 5: fazer capturas de tela dos testes do Appium Java TestNG para iOS (opcional) (p. 81)

Etapa 1: configurar o pacote de teste do AppiumUse as instruções a seguir para configurar o pacote de testes. Os testes do Appium Java TestNG paraaplicativos iOS devem estar em um arquivo .zip.

Atualizar as configurações do Maven

1. Modifique pom.xml para definir o empacotamento para um arquivo JAR:

<groupId>com.acme</groupId> <artifactId>acme-android-appium</artifactId> <version>1.0-SNAPSHOT</version> <packaging>jar</packaging>

2. Modifique pom.xml para usar maven-jar-plugin a fim de criar seus testes em um arquivo JAR.

O plug-in a seguir cria o código-fonte do teste (tudo que estiver no diretório src/test) em um arquivoJAR:

<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <version>2.6</version> <executions> <execution> <goals> <goal>test-jar</goal> </goals> </execution> </executions> </plugin>

3. Modifique pom.xml para usar maven-dependency-plugin a fim de criar dependências comoarquivos JAR.

O plug-in a seguir copia suas dependências para o diretório dependency-jars:

<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-dependency-plugin</artifactId> <version>2.10</version> <executions> <execution> <id>copy-dependencies</id> <phase>package</phase> <goals> <goal>copy-dependencies</goal> </goals> <configuration> <outputDirectory>${project.build.directory}/dependency-jars/</outputDirectory> </configuration> </execution> </executions> </plugin>

Versão da API 2015-06-2378

Page 87: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorAppium Java TestNG

Etapa 2: configurar seus testes para serem executados com oCucumber (opcional)• Se você usa o Cucumber com seus testes do Appium Java TestNG para iOS, siga esta etapa para

configurar o Maven com as configurações do Cucumber. Caso contrário, vá para a próxima etapa.

Note

Você deve executar seus testes em um ambiente de teste personalizado para usar oCucumber com os testes do Appium.

a. Modifique pom.xml para adicionar cucumber-java como uma dependência.

<dependency> <groupId>io.cucumber</groupId> <artifactId>cucumber-java</artifactId> <version>4.0.0</version> </dependency>

b. Modifique pom.xml para adicionar cucumber-testng como uma dependência.

<dependency> <groupId>io.cucumber</groupId> <artifactId>cucumber-testng</artifactId> <version>4.0.0</version> </dependency>

Etapa 3: criar um arquivo compactado do pacote de teste1. Salve a montagem XML a seguir em src/main/assembly/zip.xml.

O XML a seguir é uma definição de montagem que, quando configurada, instrui o Maven a criar umarquivo .zip que contém tudo na raiz do diretório de saída da compilação e no diretório dependency-jars:

<assembly xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0 http://maven.apache.org/xsd/assembly-1.1.0.xsd"> <id>zip</id> <formats> <format>zip</format> </formats> <includeBaseDirectory>false</includeBaseDirectory> <fileSets> <fileSet> <directory>${project.build.directory}</directory> <outputDirectory>./</outputDirectory> <includes> <include>*.jar</include> </includes> </fileSet> <fileSet> <directory>${project.build.directory}</directory> <outputDirectory>./</outputDirectory> <includes> <include>/dependency-jars/</include> </includes> </fileSet> </fileSets> </assembly>

2. Modifique pom.xml para usar maven-assembly-plugin a fim de empacotar testes e todas asdependências em um único arquivo .zip.

O plug-in a seguir usa a montagem anterior para criar um arquivo .zip denominado zip-with-dependencies no diretório de saída da compilação toda vez que o comando mvn package éexecutado:

<plugin> <artifactId>maven-assembly-plugin</artifactId> <version>2.5.4</version> <executions> <execution> <phase>package</phase> <goals> <goal>single</goal> </goals> <configuration> <finalName>zip-with-dependencies</finalName> <appendAssemblyId>false</appendAssemblyId> <descriptors> <descriptor>src/main/assembly/zip.xml</descriptor> </descriptors> </configuration> </execution> </executions> </plugin>

3. Crie, empacote e verifique. Por exemplo:

Versão da API 2015-06-2379

Page 88: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorAppium Java TestNG

$ mvn clean package -DskipTests=true $ tree target . |— acme-android-appium-1.0-SNAPSHOT.jar (este é o arquivo JAR que contém tudo criado do diretório ./src/main) |— acme-android-appium-1.0-SNAPSHOT-tests.jar (este é o arquivo JAR que contém tudo criado do diretório ./src/test) |— zip-with-dependencies.zip (este arquivo .zip contém todos os itens) `— dependency-jars (este é o diretório que contém todas as suas dependências criadas como arquivos JAR) |— com.some-dependency.bar-4.1.jar |— com.another-dependency.thing-1.0.jar |— joda-time-2.7.jar |— log4j-1.2.14.jar |— (e assim por diante...)

4. Use o console do Device Farm para fazer upload do pacote de testes.

Note

Se receber uma mensagem de erro informando que a versão 1.3 não oferece suporte aanotações, adicione o seguinte ao pom.xml:

<plugin> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>1.7</source> <target>1.7</target> </configuration></plugin>

Etapa 4: fazer upload do pacote de teste para o Device FarmVocê pode usar o console do Device Farm para fazer upload de seus testes.

1. Faça login no console do Device Farm em https://console.aws.amazon.com/devicefarm.2. Se você vir a página inicial do console do AWS Device Farm, digite um nome para o projeto e escolha

Create project (Criar projeto). Atualize a página para ver seu novo projeto.3. Se já tiver um projeto, você poderá fazer upload dos testes para ele.4. Abra o projeto e escolha Create a new run (Criar uma nova execução).5. Na página Choose your application (Selecionar o aplicativo), selecione Aplicativo nativo iOS ( ) e, em

seguida, Upload (Fazer upload).

6. Procure e escolha o arquivo de seu aplicativo iOS. O arquivo deve ser .ipa.7. Escolha Próxima etapa.8. Na página Configure a test (Configurar um teste), escolha Appium Java TestNG e Upload (Fazer

upload).

Versão da API 2015-06-2380

Page 89: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorAppium Java JUnit

9. Procure e selecione o arquivo .zip que contém os testes. O arquivo .zip deve seguir o formato descritoem Etapa 1: configurar o pacote de teste do Appium (p. 78).

10. Escolha a versão do Appium que você está usando.11. Selecione Next step (Próxima etapa) e siga as instruções para selecionar os dispositivos e iniciar

a execução. Para obter mais informações, consulte Criar uma execução de teste no AWS DeviceFarm (p. 23).

Note

O Device Farm não modifica os testes do Appium Java TestNG para iOS.

Etapa 5: fazer capturas de tela dos testes do Appium JavaTestNG para iOS (opcional)Você pode fazer capturas de tela como parte dos testes.

Quando o Device Farm executa um teste do Appium Java TestNG, o serviço define as seguintespropriedades de sistema que descrevem a configuração do servidor Appium com o qual você está secomunicando:

• appium.screenshots.dir: caminho onde as capturas de tela são salvas.• appium.server.address: endereço de host do servidor Appium.• appium.server.port: porta na qual o servidor Appium está ouvindo.

O Device Farm define a propriedade SCREENSHOT_PATH para um caminho totalmente qualificado nosistema de arquivos local em que o Device Farm espera que as capturas de tela do Appium sejam salvas.O diretório específico de teste no qual as capturas de tela são armazenadas é definido em tempo deexecução. As capturas de tela são inseridas automaticamente nos relatórios do Device Farm. Paravisualizar as capturas de tela, no console do Device Farm, escolha a seção Screenshots (Capturas detela).

O exemplo a seguir mostra como usar e consumir a propriedade appium.screenshots.dir para fazeruma captura de tela do Appium que se encontra no relatório do Device Farm.

public boolean takeScreenshot(final String name) { String screenshotDirectory = System.getProperty("appium.screenshots.dir", System.getProperty("java.io.tmpdir", "")); File screenshot = ((TakesScreenshot) driver).getScreenshotAs(OutputType.FILE); return screenshot.renameTo(new File(screenshotDirectory, String.format("%s.png", name))); }

Como trabalhar com o Appium Java JUnit para iOS eo AWS Device FarmEsta seção descreve como configurar, empacotar e fazer upload de seus testes do Appium Java JUnit paraiOS para o Device Farm. O Appium é uma ferramenta de código aberto para automatizar aplicativos webmóveis e nativos. Para obter mais informações sobre o Appium, consulte Introdução ao Appium no site doAppium.

Você também pode usar as ferramentas de desenvolvimento baseadas em comportamento, comoCucumber com seus testes do Appium Java.

Informações sobre versão

• Atualmente, o Device Farm oferece suporte a Java 8 para executar testes do Appium Java.

Versão da API 2015-06-2381

Page 90: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorAppium Java JUnit

• O Device Farm oferece suporte a todas as versões do Appium 1.6.5 e posterior. Você pode escolherqualquer versão do Appium usando o comando avm. Por exemplo, para usar a versão 1.9.1 do servidorAppium, adicione estes comandos ao arquivo YAML da especificação de teste:

phases: install: commands: # Para instalar uma versão mais recente do Appium, como a versão 1.9.1: - export APPIUM_VERSION=1.9.1 - avm $APPIUM_VERSION - ln -s /usr/local/avm/versions/$APPIUM_VERSION/node_modules/.bin/appium /usr/local/avm/versions/$APPIUM_VERSION/node_modules/appium/bin/appium.js

Para usar todos os recursos da estrutura, como anotações, selecione um ambiente de testepersonalizado e use a AWS CLI ou o console do Device Farm para fazer upload de uma especificaçãode teste personalizada.

Para obter mais informações, consulte Fazer upload de uma especificação de teste personalizadausando a AWS CLI e Criar uma execução de teste no AWS Device Farm (p. 23).

Tópicos• Etapa 1: configurar o pacote de teste do Appium (p. 82)• Etapa 2: configurar seus testes para serem executados com o Cucumber (opcional) (p. 83)• Etapa 3: criar um arquivo compactado do pacote de teste (p. 83)• Etapa 4: fazer upload do pacote de teste para o Device Farm (p. 84)• Etapa 5: fazer capturas de tela dos testes do Appium Java JUnit para iOS (opcional) (p. 85)

Etapa 1: configurar o pacote de teste do AppiumUse as instruções a seguir para configurar o pacote de testes.

Atualizar as configurações do Maven

1. Modifique pom.xml para definir o empacotamento para um arquivo JAR:

<groupId>com.acme</groupId> <artifactId>acme-android-appium</artifactId> <version>1.0-SNAPSHOT</version> <packaging>jar</packaging>

2. Modifique pom.xml para usar maven-jar-plugin a fim de criar seus testes em um arquivo JAR.

O plug-in a seguir cria o código-fonte do teste (tudo que estiver no diretório src/test) em um arquivoJAR:

<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <version>2.6</version> <executions> <execution> <goals> <goal>test-jar</goal> </goals> </execution> </executions> </plugin>

3. Modifique pom.xml para usar maven-dependency-plugin a fim de criar dependências comoarquivos JAR.

O plug-in a seguir copia suas dependências para o diretório dependency-jars:

<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-dependency-plugin</artifactId> <version>2.10</version> <executions> <execution> <id>copy-dependencies</id> <phase>package</phase> <goals> <goal>copy-dependencies</goal> </goals> <configuration> <outputDirectory>${project.build.directory}/dependency-jars/</outputDirectory> </configuration> </execution> </executions> </plugin>

Versão da API 2015-06-2382

Page 91: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorAppium Java JUnit

Etapa 2: configurar seus testes para serem executados com oCucumber (opcional)• Se você usa o Cucumber com seus testes do Appium Java JUnit para iOS, siga esta etapa para

configurar o Maven com as configurações do Cucumber. Caso contrário, vá para a próxima etapa.

Note

Você deve executar seus testes em um ambiente de teste personalizado para usar oCucumber com os testes do Appium.

a. Modifique pom.xml para adicionar cucumber-java como uma dependência.

<dependency> <groupId>io.cucumber</groupId> <artifactId>cucumber-java</artifactId> <version>4.0.0</version> </dependency>

b. Modifique pom.xml para adicionar cucumber-junit como uma dependência.

<dependency> <groupId>io.cucumber</groupId> <artifactId>cucumber-junit</artifactId> <version>4.0.0</version> <scope>test</scope> </dependency>

Etapa 3: criar um arquivo compactado do pacote de teste1. Salve a montagem XML a seguir em src/main/assembly/zip.xml.

O XML a seguir é uma definição de montagem que, quando configurada, instrui o Maven a criar umarquivo .zip que contém tudo na raiz do diretório de saída da compilação e no diretório dependency-jars:

<assembly xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0 http://maven.apache.org/xsd/assembly-1.1.0.xsd"> <id>zip</id> <formats> <format>zip</format> </formats> <includeBaseDirectory>false</includeBaseDirectory> <fileSets> <fileSet> <directory>${project.build.directory}</directory> <outputDirectory>./</outputDirectory> <includes> <include>*.jar</include> </includes> </fileSet> <fileSet> <directory>${project.build.directory}</directory> <outputDirectory>./</outputDirectory> <includes> <include>/dependency-jars/</include> </includes> </fileSet> </fileSets> </assembly>

2. Modifique pom.xml para usar maven-assembly-plugin a fim de empacotar testes e todas asdependências em um único arquivo .zip.

O plug-in a seguir usa a montagem anterior para criar um arquivo .zip denominado zip-with-dependencies no diretório de saída da compilação toda vez que o comando mvn package éexecutado:

<plugin> <artifactId>maven-assembly-plugin</artifactId> <version>2.5.4</version> <executions> <execution> <phase>package</phase> <goals> <goal>single</goal> </goals> <configuration> <finalName>zip-with-dependencies</finalName> <appendAssemblyId>false</appendAssemblyId> <descriptors> <descriptor>src/main/assembly/zip.xml</descriptor> </descriptors> </configuration> </execution> </executions> </plugin>

3. Crie, empacote e verifique. Por exemplo:

Versão da API 2015-06-2383

Page 92: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorAppium Java JUnit

$ mvn clean package -DskipTests=true $ tree target . |— acme-android-appium-1.0-SNAPSHOT.jar (este é o arquivo JAR que contém tudo criado do diretório ./src/main) |— acme-android-appium-1.0-SNAPSHOT-tests.jar (este é o arquivo JAR que contém tudo criado do diretório ./src/test) |— zip-with-dependencies.zip (este arquivo .zip contém todos os itens) `— dependency-jars (este é o diretório que contém todas as suas dependências criadas como arquivos JAR) |— com.some-dependency.bar-4.1.jar |— com.another-dependency.thing-1.0.jar |— joda-time-2.7.jar |— log4j-1.2.14.jar |— (e assim por diante...)

4. Use o console do Device Farm para fazer upload do pacote de testes.

Note

Se receber uma mensagem de erro informando que a versão 1.3 não oferece suporte aanotações, adicione o seguinte ao pom.xml:

<plugin> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>1.7</source> <target>1.7</target> </configuration></plugin>

Etapa 4: fazer upload do pacote de teste para o Device FarmVocê pode usar o console do Device Farm para fazer upload de seus testes.

1. Faça login no console do Device Farm em https://console.aws.amazon.com/devicefarm.2. Se você vir a página inicial do console do AWS Device Farm, digite um nome para o projeto e escolha

Create project (Criar projeto). Atualize a página para ver seu novo projeto.3. Se já tiver um projeto, você poderá fazer upload dos testes para ele.4. Abra o projeto e escolha Create a new run (Criar uma nova execução).5. Na página Choose your application (Selecionar o aplicativo), selecione Aplicativo nativo iOS ( ) e, em

seguida, Upload (Fazer upload).

6. Procure e escolha o arquivo de seu aplicativo iOS. O arquivo deve ser .ipa.7. Escolha Próxima etapa.8. Na página Configure a test (Configurar um teste), escolha Appium Java JUnit e Upload (Fazer upload).9. Procure e selecione o arquivo .zip que contém os testes. O arquivo .zip deve seguir o formato descrito

em Etapa 1: configurar o pacote de teste do Appium (p. 82).10. Escolha a versão do Appium que você está usando.

Versão da API 2015-06-2384

Page 93: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorAppium Node.js

11. Selecione Next step (Próxima etapa) e siga as instruções para selecionar os dispositivos e iniciara execução. Para obter mais informações, consulte Criar uma execução de teste no AWS DeviceFarm (p. 23).

Note

O Device Farm não modifica os testes do Appium Java JUnit para iOS.

Etapa 5: fazer capturas de tela dos testes do Appium Java JUnitpara iOS (opcional)Você pode fazer capturas de tela como parte dos testes.

Quando o Device Farm executa um teste do Appium Java JUnit, o serviço define as seguintespropriedades de sistema que descrevem a configuração do servidor Appium com o qual você está secomunicando:

• appium.screenshots.dir: caminho onde as capturas de tela são salvas.• appium.server.address: endereço de host do servidor Appium.• appium.server.port: porta na qual o servidor Appium está ouvindo.

O Device Farm define a propriedade SCREENSHOT_PATH para um caminho totalmente qualificado nosistema de arquivos local em que o Device Farm espera que as capturas de tela do Appium sejam salvas.O diretório específico de teste no qual as capturas de tela são armazenadas é definido em tempo deexecução. As capturas de tela são inseridas automaticamente nos relatórios do Device Farm. Paravisualizar as capturas de tela, no console do Device Farm, escolha a seção Screenshots (Capturas detela).

O exemplo a seguir mostra como usar e consumir a propriedade appium.screenshots.dir para fazeruma captura de tela do Appium que se encontra no relatório do Device Farm.

public boolean takeScreenshot(final String name) { String screenshotDirectory = System.getProperty("appium.screenshots.dir", System.getProperty("java.io.tmpdir", "")); File screenshot = ((TakesScreenshot) driver).getScreenshotAs(OutputType.FILE); return screenshot.renameTo(new File(screenshotDirectory, String.format("%s.png", name))); }

Como trabalhar com o Appium Node.js paraaplicativos iOS e o AWS Device FarmEsta seção descreve como configurar, empacotar e fazer upload dos seus testes do Appium Node.js noDevice Farm. O Appium é uma ferramenta de código aberto para automatizar aplicativos web móveis enativos. Para obter mais informações sobre o Appium, consulte Introdução ao Appium no site do Appium.

Informações sobre versão

• Você pode usar qualquer versão do Node.js ao executar testes do Appium Node.js no Device Farm.Especifique a versão do Node.js no arquivo YAML da especificação de teste.

• O Device Farm oferece suporte às versões 1.6.5 e posteriores do servidor Appium. Você pode escolherqualquer versão do Appium usando o comando avm. Por exemplo, para usar a versão 1.9.1 do servidorAppium, adicione estes comandos ao arquivo YAML da especificação de teste:

phases: install: commands:

Versão da API 2015-06-2385

Page 94: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorAppium Node.js

# To install a newer version of Appium such as version 1.9.1: - export APPIUM_VERSION=1.9.1 - avm $APPIUM_VERSION - ln -s /usr/local/avm/versions/$APPIUM_VERSION/node_modules/.bin/appium /usr/local/avm/versions/$APPIUM_VERSION/node_modules/appium/bin/appium.js

Para obter mais informações, consulte Fazer upload de uma especificação de teste personalizadausando a AWS CLI e Criar uma execução de teste no AWS Device Farm (p. 23).

Tópicos• Pré-requisitos para empacotar seus testes (p. 86)• Etapa 1: criar um arquivo compactado do pacote de teste (p. 87)• Etapa 2: fazer upload do pacote de teste para o Device Farm (p. 87)

Pré-requisitos para empacotar seus testesPara empacotar seus testes do Appium Node.js e fazer upload deles no Device Farm, é necessário instalaro seguinte na sua máquina local:

• Gerenciador de versão do Node (nvm)

Use essa ferramenta ao desenvolver e empacotar seus testes para que dependências desnecessáriasnão sejam incluídas no pacote de testes.

• Node.js• npm-bundle (instalado globalmente)

Para instalar pré-requisitos no macOS ou no Linux

1. Execute este comando para instalar o nvm:

curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.11/install.sh | bash

Depois que a instalação for concluída, atualize o terminal. Para isso, saia e faça login novamente.

Note

O nvm é carregado como uma função apenas para o shell bash.2. Execute este comando no shell bash para verificar se o nvm está instalado corretamente. Você pode

alternar para o shell bash usando /bin/bash.

command -v nvm

Você verá nvm como resultado.

Para obter mais informações, consulte nvm no GitHub.3. Execute este comando para instalar o Node.js:

nvm install node

Você pode especificar uma determinada versão do Node.js, como mostrado aqui:

nvm install 11.4.0

Versão da API 2015-06-2386

Page 95: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorAppium Node.js

4. Execute este comando para verificar se você está usando a versão especificada:

node -v

5. Execute este comando para instalar o npm-bundle globalmente:

npm install -g npm-bundle

Etapa 1: criar um arquivo compactado do pacote de testeOs pacotes de testes do Appium Node.js dos quais você faz upload no Device Farm devem estar noformato .zip e conter todas as dependências do seu teste.

1. Confira o projeto.

Verifique se você está no diretório raiz do seu projeto. Você pode ver package.json no diretório raiz.2. Execute este comando para instalar suas dependências locais.

npm install

Esse comando também cria uma pasta node_modules dentro do seu diretório atual.Note

Então, você poderá executar seus testes localmente.3. Execute este comando para empacotar os arquivos da pasta atual em um arquivo *.tgz. O arquivo

recebe um nome por meio da propriedade name no arquivo package.json.

npm-bundle

Esse arquivo tarball (.tgz) contém todos os seus códigos e dependências.4. Execute este comando para empacotar o tarball (arquivo *.tgz) gerado na etapa anterior em um único

arquivo compactado:

zip -r MyTests.zip *.tgz

Esse é o arquivo MyTests.zip do qual você faz upload no Device Farm no procedimento a seguir.

Etapa 2: fazer upload do pacote de teste para o Device FarmUse o console do Device Farm para carregar seus testes.

1. Faça login no console do Device Farm em https://console.aws.amazon.com/devicefarm.2. Se você vir a página inicial do console do AWS Device Farm, escolha Get started (Conceitos básicos).3. Você pode fazer upload dos testes em um projeto existente ou escolher Create a new project (Criar

um novo projeto).Tip

Se a lista de projetos não for exibida, na barra de navegação secundária, em Projects(Projetos), escolha o nome do projeto no qual você deseja fazer upload dos testes.Para criar um projeto, siga as instruções em Criar um projeto no AWS Device Farm (p. 20).

4. Se o botão Create a new run (Criar uma nova execução) for exibido, escolha-o.

Versão da API 2015-06-2387

Page 96: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorAppium Python

5. Na página Choose your application (Selecionar o aplicativo), selecione Aplicativo nativo iOS ( ).

6. Escolha Upload (Fazer upload) para carregar o arquivo .ipa.

O Device Farm processa o arquivo .ipa antes de continuar.7. Em Run name (Nome da execução), digite um nome para a execução.

Tip

Dê à execução um nome que ajude você a identificar uma compilação específica doaplicativo (por exemplo, Beta-0.1). Para obter mais informações, consulte Trabalhar comexecução de testes (p. 23).

8. Escolha Appium Node.js para configurar seu teste.9. Para adicionar scripts de teste do Appium à execução do teste, escolha Upload (Fazer upload).10. Escolha o arquivo MyTests.zip que você criou no procedimento anterior.11. Siga as instruções para escolher uma especificação de teste.

Se você estiver usando a especificação de teste padrão, altere o comando de execução de teste naseção test do arquivo YAML da especificação de teste.

12. Escolha os dispositivos e inicie a execução.

Para obter mais informações, consulte Criar uma execução de teste no AWS Device Farm (p. 23).

Note

O Device Farm não modifica os testes do Appium Node.js para iOS.

Como trabalhar com o Appium Python para aplicativosiOS e o AWS Device FarmEsta seção descreve como configurar, empacotar e fazer upload de seus testes do Appium Python parao Device Farm. O Appium é uma ferramenta de código aberto para automatizar aplicativos web móveis enativos. Para obter mais informações sobre o Appium, consulte Introdução ao Appium no site do Appium.

Para obter um aplicativo de amostra, consulte Aplicativo de amostra do Device Farm para iOS no GitHub.

Para obter um amostra de teste do Device Farm, consulte Amostra de testes do Appium Python para oaplicativo de amostra do Device Farm para iOS no GitHub.

Informações sobre versão

• No momento, o Device Farm oferece suporte ao Python versão 2.7.6 (versão pip 1.5.4) para executartestes do Appium Python.

Versão da API 2015-06-2388

Page 97: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorAppium Python

• O Device Farm oferece suporte a todas as versões do Appium 1.6.5 e posterior. Você pode escolherqualquer versão do Appium usando o comando avm. Por exemplo, para usar a versão 1.9.1 do servidorAppium, adicione estes comandos ao arquivo YAML da especificação de teste:

phases: install: commands: # Para instalar uma versão mais recente do Appium, como a versão 1.9.1: - export APPIUM_VERSION=1.9.1 - avm $APPIUM_VERSION - ln -s /usr/local/avm/versions/$APPIUM_VERSION/node_modules/.bin/appium /usr/local/avm/versions/$APPIUM_VERSION/node_modules/appium/bin/appium.js

Para usar todos os recursos da estrutura, como anotações, selecione um ambiente de testepersonalizado e use a AWS CLI ou o console do Device Farm para fazer upload de uma especificaçãode teste personalizada.

Para obter mais informações, consulte Fazer upload de uma especificação de teste personalizadausando a AWS CLI e Criar uma execução de teste no AWS Device Farm (p. 23).

Tópicos• Etapa 1: criar um arquivo compactado do pacote de teste (p. 89)• Etapa 2: fazer upload do pacote de teste para o Device Farm (p. 90)• Etapa 3: fazer capturas de tela dos testes do Appium Python para iOS (opcional) (p. 91)

Etapa 1: criar um arquivo compactado do pacote de testeOs pacotes de testes do Appium Python que você carrega no Device Farm devem estar em formato .zip econter todas as dependências de seu teste.

Note

As instruções a seguir se baseiam no Linux x86_64 e no macOS. No esquema com suporteatualmente, o Device Farm requer que você empacote os testes do Appium Python no Linuxx86_64, caso os testes contenham dependências não universais de wheels do Python. Naplataforma em que você executar um comando, a ferramenta wheels reunirá seus arquivosdependentes .whl na pasta wheelhouse/. Se você executar o comando wheel do Python em umaplataforma que não seja Linux x86_64, você coletará o tipo de dependência wheel não universalpara a plataforma, o que pode causar erros quando você executar seus testes no Device Farm.

1. É altamente recomendável configurar o virtualenv do Python para testes de desenvolvimento eempacotamento, para que dependências desnecessárias não sejam incluídas em seu pacote deaplicativos.

$ virtualenv workspace$ cd workspace$ source bin/activate

Tip

• Não crie um virtualenv do Python com a opção --system-site-packages porqueele herda pacotes de /usr/lib/pythonx.x/site-packages ou o local do diretório global site-packages. Isso pode resultar na inclusão de dependências em seu ambiente virtual quenão são necessárias aos seus testes.

• Você também deve verificar se os testes não usam dependências que dependem debibliotecas nativas, pois essas bibliotecas nativas podem ou não estar presentes nainstância em que esses testes são executados.

2. Instale o py.test em seu ambiente virtual.

Versão da API 2015-06-2389

Page 98: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorAppium Python

$ pip install pytest

3. Instale o cliente do Appium Python em seu ambiente virtual.

$ pip install Appium-Python-Client

4. Armazene todos os scripts de teste do Python na pasta tests/ em seu espaço de trabalho.

# workspace ## tests/ (your tests go here)

5. Execute esse comando na pasta workspace de seu ambiente virtual para exibir uma lista de seustestes sem executá-los.

$ py.test --collect-only tests/

Confirme que a saída exibe os testes que você deseja executar no Device Farm.6. Execute o comando a seguir no espaço de trabalho para gerar o arquivo requirements.txt:

$ pip freeze > requirements.txt

7. Execute o seguinte comando no espaço de trabalho para gerar a pasta wheelhouse/:

$ pip wheel --wheel-dir wheelhouse -r requirements.txt

8. Você pode usar os comandos a seguir para limpar todos os arquivos em cache em sua pasta tests/:

$ find . -name '__pycache__' -type d -exec rm -r {} +$ find . -name '*.pyc' -exec rm -f {} +$ find . -name '*.pyo' -exec rm -f {} +$ find . -name '*~' -exec rm -f {} +

9. Compacte a pasta tests/, a pasta wheelhouse/ e o arquivo requirements.txt em um único arquivo:

$ zip -r test_bundle.zip tests/ wheelhouse/ requirements.txt

Seu espaço de trabalho deve se parecer com o seguinte:

# workspace ## tests/ ## test_bundle.zip ## requirements.txt ## wheelhouse/

Etapa 2: fazer upload do pacote de teste para o Device FarmUse o console do Device Farm para carregar seus testes.

1. Faça login no console do Device Farm em https://console.aws.amazon.com/devicefarm.2. Se você vir a página inicial do console do AWS Device Farm, escolha Get started (Conceitos básicos).3. Você pode fazer upload dos testes em um projeto existente ou escolher Create a new project (Criar

um novo projeto).

Versão da API 2015-06-2390

Page 99: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorAppium Python

Tip

Se a lista de projetos não for exibida, na barra de navegação secundária, em Projects(Projetos), escolha o nome do projeto no qual você deseja fazer upload dos testes.Para criar um projeto, siga as instruções em Criar um projeto no AWS Device Farm (p. 20).

4. Se o botão Create a new run (Criar uma nova execução) for exibido, escolha-o.5. Na página Choose your application (Selecionar o aplicativo), selecione Aplicativo nativo iOS ( ).

6. Escolha Upload (Fazer upload) para carregar o arquivo .ipa.

O Device Farm processa o arquivo .ipa antes de continuar.7. Em Run name (Nome da execução), digite um nome para a execução.

Tip

Dê à execução um nome que ajude você a identificar uma compilação específica doaplicativo (por exemplo, Beta-0.1). Para obter mais informações, consulte Trabalhar comexecução de testes (p. 23).

8. Escolha Appium Python para configurar seu teste.9. Para adicionar scripts de teste do Appium à execução do teste, escolha Upload (Fazer upload).10. Escolha a versão do Appium que você está usando.11. Selecione Next step (Próxima etapa) e siga as instruções para selecionar os dispositivos e iniciar

a execução. Para obter mais informações, consulte Criar uma execução de teste no AWS DeviceFarm (p. 23).

Note

O Device Farm não modifica os testes do Appium Python para iOS.

Etapa 3: fazer capturas de tela dos testes do Appium Python paraiOS (opcional)Você pode fazer capturas de tela como parte dos testes.

Quando o Device Farm executa um teste do Appium Python, o serviço define as seguintes propriedades desistema que descrevem a configuração do servidor Appium com o qual você está se comunicando:

• appium.screenshots.dir: caminho onde as capturas de tela são salvas.• appium.server.address: endereço de host do servidor Appium.• appium.server.port: porta na qual o servidor Appium está ouvindo.

Versão da API 2015-06-2391

Page 100: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorAppium Ruby

O Device Farm define a propriedade SCREENSHOT_PATH para um caminho totalmente qualificado nosistema de arquivos local em que o Device Farm espera que as capturas de tela do Appium sejam salvas.O diretório específico de teste no qual as capturas de tela são armazenadas é definido em tempo deexecução. As capturas de tela são inseridas automaticamente nos relatórios do Device Farm. Paravisualizar as capturas de tela, no console do Device Farm, escolha a seção Screenshots (Capturas detela).

O exemplo a seguir mostra como usar e consumir a propriedade appium.screenshots.dir para fazeruma captura de tela do Appium que se encontra no relatório do Device Farm.

public boolean takeScreenshot(final String name) { String screenshotDirectory = System.getProperty("appium.screenshots.dir", System.getProperty("java.io.tmpdir", "")); File screenshot = ((TakesScreenshot) driver).getScreenshotAs(OutputType.FILE); return screenshot.renameTo(new File(screenshotDirectory, String.format("%s.png", name))); }

Como trabalhar com o Appium Ruby para aplicativosiOS e o AWS Device FarmEsta seção descreve como configurar, empacotar e fazer upload dos seus testes do Appium Ruby noDevice Farm. O Appium é uma ferramenta de código aberto para automatizar aplicativos web móveis enativos. Para obter mais informações sobre o Appium, consulte Introdução ao Appium no site do Appium.

Informações sobre versão

• Você pode usar qualquer versão do Ruby ao executar testes do Appium Ruby no Device Farm.Especifique a versão do Ruby (por exemplo, 2.5.1) no arquivo YAML da especificação de teste.

• O Device Farm oferece suporte às versões 1.6.5 e posteriores do servidor Appium. Você pode escolherqualquer versão do Appium usando o comando avm. Por exemplo, para usar a versão 1.9.1 do servidorAppium, adicione estes comandos ao arquivo YAML da especificação de teste:

phases: install: commands: # To install a newer version of Appium such as version 1.9.1: - export APPIUM_VERSION=1.9.1 - avm $APPIUM_VERSION - ln -s /usr/local/avm/versions/$APPIUM_VERSION/node_modules/.bin/appium /usr/local/avm/versions/$APPIUM_VERSION/node_modules/appium/bin/appium.js

Para obter mais informações, consulte Fazer upload de uma especificação de teste personalizadausando a AWS CLI e Criar uma execução de teste no AWS Device Farm (p. 23).

Tópicos• Pré-requisitos para empacotar seus testes (p. 92)• Etapa 1: criar um arquivo compactado do pacote de teste (p. 93)• Etapa 2: fazer upload do pacote de teste para o Device Farm (p. 94)• Dicas para agilizar seus testes do Appium (p. 95)

Pré-requisitos para empacotar seus testesPara empacotar seus testes do Appium Ruby e fazer upload deles no Device Farm, é necessário instalar oseguinte na sua máquina local:

• Gerenciador de versão do Ruby (RVM)

Versão da API 2015-06-2392

Page 101: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorAppium Ruby

Use essa ferramenta de linha de comando ao desenvolver e empacotar seus testes para quedependências desnecessárias não sejam incluídas no pacote de testes.

• Ruby• Bundler (esse gem normalmente é instalado com o Ruby.)

1. Instale as chaves obrigatórias, o RVM e o Ruby. Para obter instruções, consulte Como instalar o RVMno site do RVM.

# The following command is for reference only. Go to rvm website and look for the complete command.gpg --keyserver hkp://keys.gnupg.net --recv-keys $keys

# install rvm along with ruby\curl -sSL https://get.rvm.io | bash -s stable --ruby

Depois que a instalação for concluída, atualize o terminal. Para isso, saia e faça login novamente.Note

O RVM é carregado como uma função apenas para o shell bash.2. Execute este comando no shell bash para verificar se o RVM está instalado corretamente. Você pode

alternar para o shell bash usando /bin/bash.

command -v rvm

Você verá rvm como resultado.3. Se você deseja instalar uma versão específica do Ruby (por exemplo, 2.5.1), execute o seguinte

comando:

rvm install ruby 2.5.1 --autolibs=0

Execute este comando para verificar se você está usando a versão especificada:

ruby -v

4. Embora uma instalação típica do Ruby inclua o Bundler, execute este comando se precisar instalá-lo:

gem install bundler

Etapa 1: criar um arquivo compactado do pacote de testeOs pacotes de testes do Appium Ruby dos quais você faz upload no Device Farm devem estar noformato .zip e conter todas as dependências do seu teste.

1. Execute este comando para criar um ambiente virtual do Ruby:

# myGemset is the name of your virtual Ruby environmentrvm gemset create myGemset

2. Execute este comando para usar o ambiente que você acabou de criar:

rvm gemset use myGemset

Versão da API 2015-06-2393

Page 102: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorAppium Ruby

3. Confira o código-fonte.

Verifique se você está no diretório raiz do seu projeto. Você pode ver Gemfile no diretório raiz.4. Execute este comando para instalar suas dependências locais e todos os gems do Gemfile:

bundle install

Note

Então, você poderá executar seus testes localmente. Use este comando para executar umteste localmente:

bundle exec $test_command

5. Empacote os gems na pasta vendor/cache.

# This will copy all the .gem files needed to run your tests into the vendor/cache directorybundle package

6. Execute o comando a seguir para empacotar seu código-fonte, junto com todas as suasdependências, em um único arquivo compactado:

zip -r MyTests.zip Gemfile vendor/ $(any other source code directory files)

Esse é o arquivo MyTests.zip do qual você faz upload no Device Farm no procedimento a seguir.

Etapa 2: fazer upload do pacote de teste para o Device FarmUse o console do Device Farm para carregar seus testes.

1. Faça login no console do Device Farm em https://console.aws.amazon.com/devicefarm.2. Se você vir a página inicial do console do AWS Device Farm, escolha Get started (Conceitos básicos).3. Você pode fazer upload dos testes em um projeto existente ou escolher Create a new project (Criar

um novo projeto).

Tip

Se a lista de projetos não for exibida, na barra de navegação secundária, em Projects(Projetos), escolha o nome do projeto no qual você deseja fazer upload dos testes.Para criar um projeto, siga as instruções em Criar um projeto no AWS Device Farm (p. 20).

4. Se o botão Create a new run (Criar uma nova execução) for exibido, escolha-o.5. Na página Choose your application (Selecionar o aplicativo), selecione Aplicativo nativo iOS ( ).

Versão da API 2015-06-2394

Page 103: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorAppium Ruby

6. Escolha Upload (Fazer upload) para carregar o arquivo .ipa.

O Device Farm processa o arquivo .ipa antes de continuar.7. Em Run name (Nome da execução), digite um nome para a execução.

Tip

Dê à execução um nome que ajude você a identificar uma compilação específica doaplicativo (por exemplo, Beta-0.1). Para obter mais informações, consulte Trabalhar comexecução de testes (p. 23).

8. Escolha Appium Ruby para configurar seu teste.9. Para adicionar scripts de teste do Appium à execução do teste, escolha Upload (Fazer upload).10. Escolha o arquivo MyTests.zip que você criou no procedimento anterior.11. Siga as instruções para escolher uma especificação de teste.

Se você estiver usando a especificação de teste padrão, altere o comando de execução de teste naseção test do arquivo YAML da especificação de teste.

12. Escolha os dispositivos e inicie a execução.

Para obter mais informações, consulte Criar uma execução de teste no AWS Device Farm (p. 23).

Note

O Device Farm não modifica os testes do Appium Ruby para iOS.

Dicas para agilizar seus testes do AppiumNas instruções de empacotamento na Etapa 1, você empacota os gems, mas eles ainda estão sendoinstalados no host do Device Farm no tempo de execução. Os gems com extensões (por exemplo,Nokogiri) levam um tempo considerável para serem instalados no host.

Para agilizar seus testes, você pode empacotar o diretório de instalação dos gems, em vez de empacotaros próprios gems. Como gems com extensões são específicos da plataforma, é necessário gerar odiretório de instalação deles na mesma plataforma que o Device Farm usa para executar os testes.

O Device Farm executa os testes do iOS em um computador macOS. Para dispositivos iOS, você podeusar a infraestrutura do Device Farm para criar um diretório de instalação de gems.

Note

O Device Farm atualiza regularmente a versão do macOS executada em hosts do Device Farm.As etapas de empacotamento a seguir poderão ser interrompidas com a alteração na versão domacOS, se as extensões dos gems em versões do macOS não forem compatíveis.

Versão da API 2015-06-2395

Page 104: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorCalabash

1. Empacote seus testes de acordo com as instruções na Etapa 1: Criar um arquivo compactado dopacote de teste.

2. Altere os comandos a seguir no arquivo YAML da especificação de teste ao programar uma execuçãode teste no Device Farm

>> bundle install --localbundle install --local --path=$DEVICEFARMLOGDIRECTORY/vendor/bundle

>> bundle install Bundle install --path=$DEVICEFARMLOGDIRECTORY/vendor/bundle

O --path instala os gems no diretório $DEVICEFARMLOGDIRECTORY/vendor/bundle, não no localdo sistema.

Assim que a execução do teste for concluída, você poderá fazer download do diretório vendor/bundle do artefato de teste.

3. Copie o diretório vendor/bundle no diretório raiz do seu projeto.4. Execute este comando para definir o diretório de instalação de gems para vendor/bundle:

bundle config --local path vendor/bundle

O comando acima cria um arquivo .bundle/config.

Note

Então, você poderá executar seus testes localmente. Use este comando para executar umteste localmente:

bundle exec $test_command

5. Execute este comando para empacotar seu código-fonte, Gemfile, diretório de instalação de gems e odiretório .bundle em um único arquivo compactado:

zip -r MyTests.zip Gemfile .bundle/ vendor/ $(any other source code directory files)

Como trabalhar com o Calabash para iOS e o AWSDevice FarmO Device Farm é compatível com o Calabash para iOS. As informações a seguir descrevem como usaressa estrutura de teste com os tipos de teste Device Farm.

Tópicos• Em que consiste o Calabash? (p. 97)• Informações sobre versão (p. 97)• Preparação dos testes do Calabash para iOS (p. 97)• Upload dos testes do Calabash para iOS (p. 97)• Fazer capturas de tela em testes do Calabash para iOS (p. 97)• Considerações adicionais para os testes do Calabash para iOS (p. 98)

Versão da API 2015-06-2396

Page 105: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorCalabash

Em que consiste o Calabash?O Calabash é uma estrutura de teste móvel que você pode usar para executar testes de aceitaçãode interface do usuário automatizados escritos em Cucumber em aplicativos iOS. Para obter maisinformações, consulte o repositório Bem-vindo ao Calabash para iOS no GitHub.

Informações sobre versãoNo momento, o Device Farm é compatível com a versão 0.20.5 do Calabash.

Preparação dos testes do Calabash para iOSOs testes de iOS Calabash precisam estar contidos em um arquivo .zip com a seguinte estrutura:

my-zip-file-name.zip `-- features (directory) |-- my-feature-1-file-name.feature |-- my-feature-2-file-name.feature |-- my-feature-N-file-name.feature |-- step_definitions (directory) | `-- (.rb files) |-- support (directory) | `-- (.rb files) `-- (any other supporting files)

Upload dos testes do Calabash para iOSUse o console do Device Farm para carregar seus testes.

1. Faça login no console do Device Farm em https://console.aws.amazon.com/devicefarm.2. Na lista de projetos, escolha a opção ao lado do projeto para o qual você deseja carregar os testes.

Tip

Se a lista de projetos não for exibida, na barra de navegação secundária, em Projects(Projetos), escolha o nome do projeto para o qual você deseja fazer upload dos testes.Para criar um projeto, siga as instruções em Criar um projeto no AWS Device Farm (p. 20).

3. Se o botão Create a new run (Criar uma nova execução) for exibido, escolha-o.4. Na página Choose your application (Escolher o aplicativo), escolha Upload.5. Procure e escolha o arquivo de seu aplicativo iOS. O arquivo deve ser .ipa.

Note

Confirme se o arquivo .ipa foi desenvolvido para um dispositivo iOS e não para um simulador.6. Escolha Próxima etapa.7. Na página Configure a test (Configurar um teste), escolha Calabash e Upload.8. Procure e selecione o arquivo .zip que contém os testes.9. Escolha Next step (Próxima etapa) e conclua as instruções restantes para selecionar os dispositivos

para executar os testes e iniciar a execução.

Fazer capturas de tela em testes do Calabash para iOSVocê pode fazer capturas de tela como parte dos testes do Calabash pra iOS.

O Calabash para iOS oferece uma etapa predefinida para fazer capturas de tela. Para obter informações,consulte a seção "Capturas de tela" da página Etapas predefinidas no repositório Calabash iOS no GitHub.

Versão da API 2015-06-2397

Page 106: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorUI Automation

Como alternativa, você pode definir uma etapa personalizada em um arquivo Ruby (.rb) para chamar afunção screenshot_embed, que cria uma captura de tela e a salva em um diretório definido por você. Porexemplo, o código de exemplo a seguir cria uma captura de tela no formato PNG e a salva no diretório /my/custom/path com um nome de arquivo screenshot_seconds-since-Epoch:

screenshot_embed(:prefix => "/my/custom/path", :name => "screenshot_#{Time.now.to_i}")

Considerações adicionais para os testes do Calabash para iOSO Device Farm substitui determinados ganchos do Calabash para que os testes do Calabash possam serexecutados no Device Farm, mas o Device Farm não modifica esses testes em si.

Como trabalhar com o UI Automation para iOS e oAWS Device FarmO Device Farm é compatível com o UI Automation para iOS.

Tópicos• O que é UI Automation? (p. 98)• Upload dos testes do UI Automation para iOS (p. 98)• Fazer capturas de tela em testes do UI Automation para iOS (p. 99)• Considerações adicionais para os testes do UI Automation para iOS (p. 99)

O que é UI Automation?Você pode usar o instrumento Automation para automatizar testes de interface de usuário em seuaplicativo iOS por meio de scripts de teste que você escreve. Esses scripts são executados fora doaplicativo e simulam a interação do usuário chamando a API de UI Automation. A API é uma interfacede programação JavaScript que especifica ações a serem realizadas no aplicativo à medida que ele éexecutado no simulador ou em um dispositivo conectado. Para obter mais informações, consulte Sobreinstrumentos no Guia do usuário de instrumentos da Biblioteca de desenvolvedor do iOS.

Upload dos testes do UI Automation para iOSUse o console do Device Farm para carregar seus testes.

1. Faça login no console do Device Farm em https://console.aws.amazon.com/devicefarm.2. Na lista de projetos, escolha a opção ao lado do projeto para o qual você deseja carregar os testes.

Tip

Se a lista de projetos não for exibida, na barra de navegação secundária, em Projects(Projetos), escolha o nome do projeto para o qual você deseja fazer upload dos testes.Para criar um projeto, siga as instruções em Criar um projeto no AWS Device Farm (p. 20).

3. Se o botão Create a new run (Criar uma nova execução) for exibido, escolha-o.4. Na página Choose your application (Escolher o aplicativo), escolha Upload.5. Procure e escolha o arquivo de seu aplicativo iOS. O arquivo deve ser .ipa.

Note

Confirme se o arquivo .ipa foi desenvolvido para um dispositivo iOS e não para um simulador.6. Escolha Próxima etapa.7. Na página Configure a test (Configurar um teste), escolha UI Automation e Upload.

Versão da API 2015-06-2398

Page 107: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorXCTest

8. Procure e escolha o arquivo .js para um único teste.9. Escolha Next step (Próxima etapa) e conclua as instruções restantes para selecionar os dispositivos

para executar os testes e iniciar a execução.

Fazer capturas de tela em testes do UI Automation para iOSVocê pode fazer capturas de tela como parte dos testes do UI Automation para iOS.

Para fazer uma captura de tela, chame a função captureScreenWithName (por exemplo,target.captureScreenWithName(lang + "_home");, em que lang é o nome do idioma atual).

Considerações adicionais para os testes do UI Automation paraiOSO Device Farm adiciona ganchos de registro para que possa monitorar o fluxo de execução dos testes deiOS UI Automation, mas o Device Farm não modifica esses testes em si.

Como trabalhar com o XCTest para iOS e o AWSDevice FarmCom o Device Farm, você pode usar a estrutura XCTest para testar o aplicativo em dispositivos reais. Paraobter mais informações sobre o XCTest, consulte Testes básicos em Testar com Xcode.

Para executar um teste, você cria os pacotes para a execução de teste faz upload desses pacotes noDevice Farm.

Tópicos• Criar os pacotes para a execução do XCTest (p. 99)• Fazer upload dos pacotes para a execução do XCTest no Device Farm (p. 100)

Criar os pacotes para a execução do XCTestPara testar o aplicativo usando a estrutura XCTest, o Device Farm requer o seguinte:

• Que seu pacote de aplicativos seja um arquivo .ipa.• Que seu pacote do XCTest seja um arquivo .zip.

Que você crie esses pacotes usando a saída da compilação gerada pelo Xcode. Conclua as etapas aseguir para criar os pacotes para que você possa fazer upload deles no Device Farm.

Para gerar a saída da compilação para seu aplicativo

1. Abra o projeto do aplicativo em Xcode.2. No menu suspenso do esquema na barra de ferramentas do Xcode, selecione Generic iOS Device

(Dispositivo iOS genérico) como destino.3. No menu Product (Produto), selecione Build For (Compilar para) e depois selecione Testing (Teste).

Para criar o pacote de aplicativos

1. No navegador de projeto no Xcode, em Products (Produtos), abra o menu contextual do arquivochamado app-project-name.app. Selecione Show in Finder (Mostrar no Finder). O Finder abrirá

Versão da API 2015-06-2399

Page 108: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorXCTest

uma pasta chamada Debug-iphoneos, que contém a saída gerada pelo Xcode para sua compilaçãode teste. Essa pasta inclui o arquivo .app .

2. No Finder, crie uma nova pasta e nomeie-a Payload.3. Copie o arquivo app-project-name.app e cole-o na pasta Payload.4. Abra o menu contextual da pasta Payload e selecione Compress "Payload" (Compactar "Payload").

Um arquivo chamado Payload.zip será criado.5. Altere o nome do arquivo e a extensão de Payload.zip para app-project-name.ipa.

Em uma etapa posterior, você fornecerá esse arquivo para o Device Farm. Para facilitar a localizaçãodo arquivo, você pode movê-lo para outro local, como sua área de trabalho.

6. Opcionalmente, você pode excluir a pasta Payload e o arquivo .app que está nela.

Para criar o pacote do XCTest

1. No Finder, no diretório Debug-iphoneos, abra o menu contextual do arquivo app-project-name.app. Selecione Show Package Contents (Mostrar conteúdo do pacote).

2. No conteúdo do pacote, abra a pasta Plugins. Essa pasta contém um arquivo chamado app-project-name.xctest.

3. Abra o menu contextual desse arquivo e selecione Compress (Compactar) "app-project-name.xctest". Um arquivo chamado app-project-name.xctest.zip será criado.

Em uma etapa posterior, você fornecerá esse arquivo para o Device Farm. Para facilitar a localizaçãodo arquivo, você pode movê-lo para outro local, como sua área de trabalho.

Fazer upload dos pacotes para a execução do XCTest no DeviceFarmUse o console do Device Farm para fazer upload dos pacotes para seu teste.

1. Faça login no console do Device Farm em https://console.aws.amazon.com/devicefarm.2. Se você ainda não tiver um projeto, crie um. Para obter as etapas para criar um projeto, consulte Criar

um projeto no AWS Device Farm (p. 20).

Caso contrário, selecione o projeto que deseja usar para executar o teste.3. Escolha Create a new run (Criar uma nova execução).4. Na página Choose your application (Selecionar seu aplicativo), escolha a opção para Test a native

application on Android or iOS devices (Testar um aplicativo nativo em dispositivos Android ou iOS).5. Escolha Carregar.6. Procure o arquivo .ipa para seu aplicativo e faça o upload dele.

Note

Seu pacote .ipa deve ser compilado para testes.7. Após a conclusão do upload, selecione Next step (Próxima etapa).8. Na página Configure your test (Configurar seu teste), em Test (Testar), selecione XCTest. Em

seguida, selecione Upload (Fazer upload).9. Procure o arquivo .zip que contém o pacote do XCTest para seu aplicativo e faça o upload dele.10. Após a conclusão do upload, selecione Next step (Próxima etapa).11. Conclua as etapas restantes no processo de criação do projeto. Selecione os dispositivos que deseja

testar e especifique o estado do dispositivo.

Versão da API 2015-06-23100

Page 109: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorXCTest UI

12. Depois de configurar a execução, na página Create a new run (Criar uma nova execução), selecioneConfirm and start run (Confirmar e iniciar a execução).

O Device Farm executará o teste e exibirá os resultados no console.

Como trabalhar com a estrutura de teste XCTest UIpara iOS e o AWS Device FarmO Device Farm dá suporte à estrutura de teste XCTest UI para iOS. Mais especificamente, o Device Farmdá suporte a testes de XCTest UI escritos em Objective-C e Swift.

Tópicos• O que é a estrutura de teste XCTest UI? (p. 101)• Preparação dos testes do XCTest UI para iOS (p. 101)• Upload dos testes do XCTest UI para iOS (p. 101)• Fazer capturas de tela em testes do XCTest UI para iOS (p. 102)

O que é a estrutura de teste XCTest UI?A estrutura XCTest UI é a nova estrutura de teste introduzida no Xcode 7. Essa estrutura XCTest UI ampliao XCTest com recursos de testes de IU. Para obter mais informações, consulte Teste da interface dousuário na biblioteca de desenvolvedor do iOS.

Preparação dos testes do XCTest UI para iOSO pacote do executor de testes XCTest UI para iOS deve estar contido em um arquivo .ipa devidamenteformatado.

Para criar um arquivo .ipa, coloque seu pacote my-project-nameUITest-Runner.app em um diretórioPayload vazio. Em seguida, arquive o diretório Payload em um arquivo .zip e mude a extensão do arquivopara .ipa. O pacote *UITest-Runner.app é produzido pelo Xcode quando você compila o projeto paratestes. Ele pode ser encontrado no diretório Products do projeto.

Upload dos testes do XCTest UI para iOSUse o console do Device Farm para carregar seus testes.

1. Faça login no console do Device Farm em https://console.aws.amazon.com/devicefarm.2. Na lista de projetos, escolha a opção ao lado do projeto para o qual você deseja carregar os testes.

Tip

Se a lista de projetos não for exibida, na barra de navegação secundária, em Projects(Projetos), escolha o nome do projeto no qual você deseja carregar os testes.Para criar um projeto, siga as instruções em Criar um projeto no AWS Device Farm (p. 20).

3. Se o botão Create a new run (Criar uma nova execução) for exibido, escolha-o.4. Na página Choose your application (Escolher o aplicativo), escolha Upload.5. Procure e escolha o arquivo de seu aplicativo iOS. O arquivo deve ser .ipa.

Note

Confirme se o arquivo .ipa foi desenvolvido para um dispositivo iOS e não para um simulador.6. Escolha Próxima etapa.

Versão da API 2015-06-23101

Page 110: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorTestes de aplicativos web

7. Na página Configure a test (Configurar um teste), escolha XCTest UI e Upload.8. Procure e selecione o arquivo .ipa que contém o executor de testes do XCTest UI para iOS.9. Escolha Next step (Próxima etapa) e conclua as instruções restantes para selecionar os dispositivos

para executar os testes e iniciar a execução.

Fazer capturas de tela em testes do XCTest UI para iOSOs testes do XCTest UI fazem capturas de tela automaticamente para todas as etapas de teste. Essascapturas de tela são exibidas no relatório de teste do Device Farm. Nenhuma outro código é necessário.

Trabalhar com testes de aplicativos web no AWSDevice Farm

O Device Farm oferece suporte aos tipos de teste a seguir para trabalhar com aplicativos web.

• Appium Java TestNG (p. 102)• Appium Java JUnit (p. 106)• Appium Node.js (p. 110)• Appium Python (p. 113)• Appium Ruby (p. 117)

Regras para dispositivos de acesso limitado e ilimitadoA medição refere-se à cobrança dos dispositivos. Por padrão, os dispositivos do Device Farm têm acessolimitado e você é cobrado por minuto depois de esgotados os minutos de avaliação gratuita. Você tambémpode optar por comprar dispositivos de acesso ilimitado, que permite um número ilimitado de testesmediante o pagamento de uma taxa mensal fixa. Para obter mais informações sobre definição de preço,consulte Definição de preço do AWS Device Farm.

Se você optar por iniciar uma execução com um grupo de dispositivos que contém dispositivos iOS eAndroid, há regras para dispositivos de acesso limitado e ilimitado. Por exemplo, se você tiver cincodispositivos Android de acesso ilimitado e cinco dispositivos iOS de acesso ilimitado, as execuções detestes web usarão os dispositivos de acesso ilimitado.

Veja outro exemplo: suponhamos que você tenha cinco dispositivos Android de acesso ilimitado e 0dispositivo iOS de acesso ilimitado. Se selecionar apenas dispositivos Android para a execução web, seusdispositivos de acesso ilimitado serão usados. Se selecionar dispositivos Android e iOS para a execuçãoweb, o método de cobrança será monitorado e seus dispositivos de acesso ilimitado não serão usados.

Como trabalhar com o Appium Java TestNG paraaplicativos web e o AWS Device FarmEsta seção descreve como configurar, empacotar e fazer upload de seus testes do Appium Java TestNGpara aplicativos web para o Device Farm. O Appium é uma ferramenta de código aberto para automatizaraplicativos web móveis e nativos. Para obter mais informações sobre o Appium, consulte Introdução aoAppium no site do Appium.

Para obter uma amostra de teste, consulte Como testar um aplicativo web usando o Device Farm e oAppium Java TestNG no GitHub.

Versão da API 2015-06-23102

Page 111: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorAppium Java TestNG

Informações sobre versão

• Atualmente, o Device Farm oferece suporte a Java 8 para executar testes do Appium Java.• O Device Farm oferece suporte a todas as versões do Appium 1.6.5 e posterior. Você pode escolher

qualquer versão do Appium usando o comando avm. Por exemplo, para usar a versão 1.9.1 do servidorAppium, adicione estes comandos ao arquivo YAML da especificação de teste:

phases: install: commands: # Para instalar uma versão mais recente do Appium, como a versão 1.9.1: - export APPIUM_VERSION=1.9.1 - avm $APPIUM_VERSION - ln -s /usr/local/avm/versions/$APPIUM_VERSION/node_modules/.bin/appium /usr/local/avm/versions/$APPIUM_VERSION/node_modules/appium/bin/appium.js

Para usar todos os recursos da estrutura, como anotações, selecione um ambiente de testepersonalizado e use a AWS CLI ou o console do Device Farm para fazer upload de uma especificaçãode teste personalizada.

Para obter mais informações, consulte Fazer upload de uma especificação de teste personalizadausando a AWS CLI e Criar uma execução de teste no AWS Device Farm (p. 23).

Tópicos• Etapa 1: configurar o pacote de teste do Appium (p. 103)• Etapa 2: configurar seus testes para serem executados com o Cucumber (opcional) (p. 104)• Etapa 3: criar um arquivo compactado do pacote de teste (p. 104)• Etapa 4: fazer upload do pacote de teste para o Device Farm (p. 105)• Etapa 5: fazer capturas de tela dos testes do Appium Java TestNG para Android (opcional) (p. 106)

Etapa 1: configurar o pacote de teste do AppiumUse as instruções a seguir para configurar o pacote de testes. Os testes do Appium Java TestNG paraaplicativos web devem estar em um arquivo .zip.

Atualizar as configurações do Maven

1. Modifique pom.xml para definir o empacotamento para um arquivo JAR:

<groupId>com.acme</groupId> <artifactId>acme-android-appium</artifactId> <version>1.0-SNAPSHOT</version> <packaging>jar</packaging>

2. Modifique pom.xml para usar maven-jar-plugin a fim de criar seus testes em um arquivo JAR.

O plug-in a seguir cria o código-fonte do teste (tudo que estiver no diretório src/test) em um arquivoJAR:

<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <version>2.6</version> <executions> <execution> <goals> <goal>test-jar</goal> </goals> </execution> </executions> </plugin>

3. Modifique pom.xml para usar maven-dependency-plugin a fim de criar dependências comoarquivos JAR.

O plug-in a seguir copia suas dependências para o diretório dependency-jars:

<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-dependency-plugin</artifactId> <version>2.10</version> <executions> <execution> <id>copy-

Versão da API 2015-06-23103

Page 112: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorAppium Java TestNG

dependencies</id> <phase>package</phase> <goals> <goal>copy-dependencies</goal> </goals> <configuration> <outputDirectory>${project.build.directory}/dependency-jars/</outputDirectory> </configuration> </execution> </executions> </plugin>

Etapa 2: configurar seus testes para serem executados com oCucumber (opcional)• Se você usa o Cucumber com seus testes do Appium Java TestNG para aplicativo web, siga esta

etapa para configurar o Maven com as configurações do Cucumber. Caso contrário, vá para a próximaetapa.

Note

Você deve executar seus testes em um ambiente de teste personalizado para usar oCucumber com os testes do Appium.

a. Modifique pom.xml para adicionar cucumber-java como uma dependência.

<dependency> <groupId>io.cucumber</groupId> <artifactId>cucumber-java</artifactId> <version>4.0.0</version> </dependency>

b. Modifique pom.xml para adicionar cucumber-testng como uma dependência.

<dependency> <groupId>io.cucumber</groupId> <artifactId>cucumber-testng</artifactId> <version>4.0.0</version> </dependency>

Etapa 3: criar um arquivo compactado do pacote de teste1. Salve a montagem XML a seguir em src/main/assembly/zip.xml.

O XML a seguir é uma definição de montagem que, quando configurada, instrui o Maven a criar umarquivo .zip que contém tudo na raiz do diretório de saída da compilação e no diretório dependency-jars:

<assembly xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0 http://maven.apache.org/xsd/assembly-1.1.0.xsd"> <id>zip</id> <formats> <format>zip</format> </formats> <includeBaseDirectory>false</includeBaseDirectory> <fileSets> <fileSet> <directory>${project.build.directory}</directory> <outputDirectory>./</outputDirectory> <includes> <include>*.jar</include> </includes> </fileSet> <fileSet> <directory>${project.build.directory}</directory> <outputDirectory>./</outputDirectory> <includes> <include>/dependency-jars/</include> </includes> </fileSet> </fileSets> </assembly>

2. Modifique pom.xml para usar maven-assembly-plugin a fim de empacotar testes e todas asdependências em um único arquivo .zip.

O plug-in a seguir usa a montagem anterior para criar um arquivo .zip denominado zip-with-dependencies no diretório de saída da compilação toda vez que o comando mvn package éexecutado:

<plugin> <artifactId>maven-assembly-plugin</artifactId> <version>2.5.4</version> <executions> <execution> <phase>package</phase> <goals> <goal>single</goal> </goals> <configuration> <finalName>zip-with-dependencies</finalName> <appendAssemblyId>false</

Versão da API 2015-06-23104

Page 113: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorAppium Java TestNG

appendAssemblyId> <descriptors> <descriptor>src/main/assembly/zip.xml</descriptor> </descriptors> </configuration> </execution> </executions> </plugin>

3. Crie, empacote e verifique. Por exemplo:

$ mvn clean package -DskipTests=true $ tree target . |— acme-android-appium-1.0-SNAPSHOT.jar (este é o arquivo JAR que contém tudo criado do diretório ./src/main) |— acme-android-appium-1.0-SNAPSHOT-tests.jar (este é o arquivo JAR que contém tudo criado do diretório ./src/test) |— zip-with-dependencies.zip (este arquivo .zip contém todos os itens) `— dependency-jars (este é o diretório que contém todas as suas dependências criadas como arquivos JAR) |— com.some-dependency.bar-4.1.jar |— com.another-dependency.thing-1.0.jar |— joda-time-2.7.jar |— log4j-1.2.14.jar |— (e assim por diante...)

4. Use o console do Device Farm para fazer upload do pacote de testes.

Note

Se receber uma mensagem de erro informando que a versão 1.3 não oferece suporte aanotações, adicione o seguinte ao pom.xml:

<plugin> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>1.7</source> <target>1.7</target> </configuration></plugin>

Etapa 4: fazer upload do pacote de teste para o Device FarmVocê pode usar o console do Device Farm para fazer upload de seus testes.

1. Faça login no console do Device Farm em https://console.aws.amazon.com/devicefarm.2. Se você vir a página inicial do console do AWS Device Farm, digite um nome para o projeto e escolha

Create project (Criar projeto). Atualize a página para ver seu novo projeto.3. Se já tiver um projeto, você poderá fazer upload dos testes para ele.4. Abra o projeto e escolha Create a new run (Criar uma nova execução).5. Na página Choose your application (Selecionar o aplicativo), selecione Aplicativo web ( ).

Versão da API 2015-06-23105

Page 114: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorAppium Java JUnit

6. Em Run name (Nome da execução), aceite o nome padrão ou insira um nome para sua execução deteste.

7. Escolha Próxima etapa.8. Na página Configure a test (Configurar um teste), escolha Appium Java TestNG e Upload (Fazer

upload).9. Procure e selecione o arquivo .zip que contém os testes. O arquivo .zip deve seguir o formato descrito

em Etapa 1: configurar o pacote de teste do Appium (p. 103).10. Escolha a versão do Appium que você está usando.11. Escolha Next step (Próxima etapa) e conclua as demais instruções para selecionar os dispositivos

e iniciar a execução. Para obter mais informações, consulte Criar uma execução de teste no AWSDevice Farm (p. 23).

Note

O Device Farm não modifica os testes do Appium Java TestNG para Android.

Etapa 5: fazer capturas de tela dos testes do Appium JavaTestNG para Android (opcional)Você pode fazer capturas de tela como parte dos testes.

Quando o Device Farm executa um teste do Appium Java TestNG, o serviço define as seguintespropriedades de sistema que descrevem a configuração do servidor Appium com o qual você está secomunicando:

• appium.screenshots.dir: caminho onde as capturas de tela são salvas.• appium.server.address: endereço de host do servidor Appium.• appium.server.port: porta na qual o servidor Appium está ouvindo.

O Device Farm define a propriedade SCREENSHOT_PATH para um caminho totalmente qualificado nosistema de arquivos local em que o Device Farm espera que as capturas de tela do Appium sejam salvas.O diretório específico de teste no qual as capturas de tela são armazenadas é definido em tempo deexecução. As capturas de tela são inseridas automaticamente nos relatórios do Device Farm. Paravisualizar as capturas de tela, no console do Device Farm, escolha a seção Screenshots (Capturas detela).

O exemplo a seguir mostra como usar e consumir a propriedade appium.screenshots.dir para fazeruma captura de tela do Appium que se encontra no relatório do Device Farm.

public boolean takeScreenshot(final String name) { String screenshotDirectory = System.getProperty("appium.screenshots.dir", System.getProperty("java.io.tmpdir", "")); File screenshot = ((TakesScreenshot) driver).getScreenshotAs(OutputType.FILE); return screenshot.renameTo(new File(screenshotDirectory, String.format("%s.png", name))); }

Como trabalhar com o Appium Java JUnit paraaplicativos web e o AWS Device FarmEsta seção descreve como configurar, empacotar e fazer upload de seus testes do Appium Java JUnitpara aplicativos web para o Device Farm. O Appium é uma ferramenta de código aberto para automatizaraplicativos web móveis e nativos. Para obter mais informações sobre o Appium, consulte Introdução aoAppium no site do Appium.

Versão da API 2015-06-23106

Page 115: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorAppium Java JUnit

Informações sobre versão

• Atualmente, o Device Farm oferece suporte a Java 8 para executar testes do Appium Java.• O Device Farm oferece suporte a todas as versões do Appium 1.6.5 e posterior. Você pode escolher

qualquer versão do Appium usando o comando avm. Por exemplo, para usar a versão 1.9.1 do servidorAppium, adicione estes comandos ao arquivo YAML da especificação de teste:

phases: install: commands: # Para instalar uma versão mais recente do Appium, como a versão 1.9.1: - export APPIUM_VERSION=1.9.1 - avm $APPIUM_VERSION - ln -s /usr/local/avm/versions/$APPIUM_VERSION/node_modules/.bin/appium /usr/local/avm/versions/$APPIUM_VERSION/node_modules/appium/bin/appium.js

Para usar todos os recursos da estrutura, como anotações, selecione um ambiente de testepersonalizado e use a AWS CLI ou o console do Device Farm para fazer upload de uma especificaçãode teste personalizada.

Para obter mais informações, consulte Fazer upload de uma especificação de teste personalizadausando a AWS CLI e Criar uma execução de teste no AWS Device Farm (p. 23).

Tópicos• Etapa 1: configurar o pacote de teste do Appium (p. 107)• Etapa 2: configurar seus testes para serem executados com o Cucumber (opcional) (p. 108)• Etapa 3: criar um arquivo compactado do pacote de teste (p. 108)• Etapa 4: fazer upload do pacote de teste para o Device Farm (p. 109)• Etapa 5: fazer capturas de tela dos testes do Appium Java JUnit para aplicativo web

(opcional) (p. 110)

Etapa 1: configurar o pacote de teste do AppiumUse as instruções a seguir para configurar o pacote de testes.

Atualizar as configurações do Maven

1. Modifique pom.xml para definir o empacotamento para um arquivo JAR:

<groupId>com.acme</groupId> <artifactId>acme-android-appium</artifactId> <version>1.0-SNAPSHOT</version> <packaging>jar</packaging>

2. Modifique pom.xml para usar maven-jar-plugin a fim de criar seus testes em um arquivo JAR.

O plug-in a seguir cria o código-fonte do teste (tudo que estiver no diretório src/test) em um arquivoJAR:

<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <version>2.6</version> <executions> <execution> <goals> <goal>test-jar</goal> </goals> </execution> </executions> </plugin>

3. Modifique pom.xml para usar maven-dependency-plugin a fim de criar dependências comoarquivos JAR.

O plug-in a seguir copia suas dependências para o diretório dependency-jars:

<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-dependency-plugin</artifactId> <version>2.10</version> <executions> <execution> <id>copy-

Versão da API 2015-06-23107

Page 116: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorAppium Java JUnit

dependencies</id> <phase>package</phase> <goals> <goal>copy-dependencies</goal> </goals> <configuration> <outputDirectory>${project.build.directory}/dependency-jars/</outputDirectory> </configuration> </execution> </executions> </plugin>

Etapa 2: configurar seus testes para serem executados com oCucumber (opcional)• Se você usa o Cucumber com seus testes do Appium Java JUnit para aplicativo web, siga esta etapa

para configurar o Maven com as configurações do Cucumber. Caso contrário, vá para a próximaetapa.

Note

Você deve executar seus testes em um ambiente de teste personalizado para usar oCucumber com os testes do Appium.

a. Modifique pom.xml para adicionar cucumber-java como uma dependência.

<dependency> <groupId>io.cucumber</groupId> <artifactId>cucumber-java</artifactId> <version>4.0.0</version> </dependency>

b. Modifique pom.xml para adicionar cucumber-junit como uma dependência.

<dependency> <groupId>io.cucumber</groupId> <artifactId>cucumber-junit</artifactId> <version>4.0.0</version> <scope>test</scope> </dependency>

Etapa 3: criar um arquivo compactado do pacote de teste1. Salve a montagem XML a seguir em src/main/assembly/zip.xml.

O XML a seguir é uma definição de montagem que, quando configurada, instrui o Maven a criar umarquivo .zip que contém tudo na raiz do diretório de saída da compilação e no diretório dependency-jars:

<assembly xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0 http://maven.apache.org/xsd/assembly-1.1.0.xsd"> <id>zip</id> <formats> <format>zip</format> </formats> <includeBaseDirectory>false</includeBaseDirectory> <fileSets> <fileSet> <directory>${project.build.directory}</directory> <outputDirectory>./</outputDirectory> <includes> <include>*.jar</include> </includes> </fileSet> <fileSet> <directory>${project.build.directory}</directory> <outputDirectory>./</outputDirectory> <includes> <include>/dependency-jars/</include> </includes> </fileSet> </fileSets> </assembly>

2. Modifique pom.xml para usar maven-assembly-plugin a fim de empacotar testes e todas asdependências em um único arquivo .zip.

O plug-in a seguir usa a montagem anterior para criar um arquivo .zip denominado zip-with-dependencies no diretório de saída da compilação toda vez que o comando mvn package éexecutado:

<plugin> <artifactId>maven-assembly-plugin</artifactId> <version>2.5.4</version> <executions> <execution> <phase>package</phase> <goals> <goal>single</goal> </goals> <configuration> <finalName>zip-with-dependencies</finalName> <appendAssemblyId>false</

Versão da API 2015-06-23108

Page 117: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorAppium Java JUnit

appendAssemblyId> <descriptors> <descriptor>src/main/assembly/zip.xml</descriptor> </descriptors> </configuration> </execution> </executions> </plugin>

3. Crie, empacote e verifique. Por exemplo:

$ mvn clean package -DskipTests=true $ tree target . |— acme-android-appium-1.0-SNAPSHOT.jar (este é o arquivo JAR que contém tudo criado do diretório ./src/main) |— acme-android-appium-1.0-SNAPSHOT-tests.jar (este é o arquivo JAR que contém tudo criado do diretório ./src/test) |— zip-with-dependencies.zip (este arquivo .zip contém todos os itens) `— dependency-jars (este é o diretório que contém todas as suas dependências criadas como arquivos JAR) |— com.some-dependency.bar-4.1.jar |— com.another-dependency.thing-1.0.jar |— joda-time-2.7.jar |— log4j-1.2.14.jar |— (e assim por diante...)

4. Use o console do Device Farm para fazer upload do pacote de testes.

Note

Se receber uma mensagem de erro informando que a versão 1.3 não oferece suporte aanotações, adicione o seguinte ao pom.xml:

<plugin> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>1.7</source> <target>1.7</target> </configuration></plugin>

Etapa 4: fazer upload do pacote de teste para o Device FarmVocê pode usar o console do Device Farm para fazer upload de seus testes.

1. Faça login no console do Device Farm em https://console.aws.amazon.com/devicefarm.2. Se você vir a página inicial do console do AWS Device Farm, digite um nome para o projeto e escolha

Create project (Criar projeto). Atualize a página para ver seu novo projeto.3. Se já tiver um projeto, você poderá fazer upload dos testes para ele.4. Abra o projeto e escolha Create a new run (Criar uma nova execução).5. Na página Choose your application (Selecionar o aplicativo), selecione Aplicativo web ( ).

Versão da API 2015-06-23109

Page 118: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorAppium Node.js

6. Em Run name (Nome da execução), aceite o nome padrão ou insira um nome.7. Escolha Próxima etapa.8. Na página Configure a test (Configurar um teste), escolha Appium Java JUnit e Upload (Fazer upload).9. Procure e selecione o arquivo .zip que contém os testes. O arquivo .zip deve seguir o formato descrito

em Etapa 1: configurar o pacote de teste do Appium (p. 107).10. Escolha a versão do Appium que você está usando.11. Selecione Next step (Próxima etapa) e siga as instruções para selecionar os dispositivos e iniciar

a execução. Para obter mais informações, consulte Criar uma execução de teste no AWS DeviceFarm (p. 23).

Note

O Device Farm não modifica os testes do Appium Java JUnit para Android.

Etapa 5: fazer capturas de tela dos testes do Appium Java JUnitpara aplicativo web (opcional)Você pode fazer capturas de tela como parte dos testes.

Quando o Device Farm executa um teste do Appium Java JUnit, o serviço define as seguintespropriedades de sistema que descrevem a configuração do servidor Appium com o qual você está secomunicando:

• appium.screenshots.dir: caminho onde as capturas de tela são salvas.• appium.server.address: endereço de host do servidor Appium.• appium.server.port: porta na qual o servidor Appium está ouvindo.

O Device Farm define a propriedade SCREENSHOT_PATH para um caminho totalmente qualificado nosistema de arquivos local em que o Device Farm espera que as capturas de tela do Appium sejam salvas.O diretório específico de teste no qual as capturas de tela são armazenadas é definido em tempo deexecução. As capturas de tela são inseridas automaticamente nos relatórios do Device Farm. Paravisualizar as capturas de tela, no console do Device Farm, escolha a seção Screenshots (Capturas detela).

O exemplo a seguir mostra como usar e consumir a propriedade appium.screenshots.dir para fazeruma captura de tela do Appium que se encontra no relatório do Device Farm.

public boolean takeScreenshot(final String name) { String screenshotDirectory = System.getProperty("appium.screenshots.dir", System.getProperty("java.io.tmpdir", "")); File screenshot = ((TakesScreenshot) driver).getScreenshotAs(OutputType.FILE); return screenshot.renameTo(new File(screenshotDirectory, String.format("%s.png", name))); }

Como trabalhar com o Appium Node.js paraaplicativos web e o AWS Device FarmEsta seção descreve como configurar, empacotar e fazer upload dos seus testes do Appium Node.js noDevice Farm. O Appium é uma ferramenta de código aberto para automatizar aplicativos web móveis enativos. Para obter mais informações sobre o Appium, consulte Introdução ao Appium no site do Appium.

Informações sobre versão

• Você pode usar qualquer versão do Node.js ao executar testes do Appium Node.js no Device Farm.Especifique a versão do Node.js no arquivo YAML da especificação de teste.

Versão da API 2015-06-23110

Page 119: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorAppium Node.js

• O Device Farm oferece suporte às versões 1.6.5 e posteriores do servidor Appium. Você pode escolherqualquer versão do Appium usando o comando avm. Por exemplo, para usar a versão 1.9.1 do servidorAppium, adicione estes comandos ao arquivo YAML da especificação de teste:

phases: install: commands: # To install a newer version of Appium such as version 1.9.1: - export APPIUM_VERSION=1.9.1 - avm $APPIUM_VERSION - ln -s /usr/local/avm/versions/$APPIUM_VERSION/node_modules/.bin/appium /usr/local/avm/versions/$APPIUM_VERSION/node_modules/appium/bin/appium.js

Para obter mais informações, consulte Fazer upload de uma especificação de teste personalizadausando a AWS CLI e Criar uma execução de teste no AWS Device Farm (p. 23).

Tópicos• Pré-requisitos para empacotar seus testes (p. 111)• Etapa 1: criar um arquivo compactado do pacote de teste (p. 112)• Etapa 2: fazer upload do pacote de teste para o Device Farm (p. 112)

Pré-requisitos para empacotar seus testesPara empacotar seus testes do Appium Node.js e fazer upload deles no Device Farm, é necessário instalaro seguinte na sua máquina local:

• Gerenciador de versão do Node (nvm)

Use essa ferramenta ao desenvolver e empacotar seus testes para que dependências desnecessáriasnão sejam incluídas no pacote de testes.

• Node.js• npm-bundle (instalado globalmente)

Para instalar pré-requisitos no macOS ou no Linux

1. Execute este comando para instalar o nvm:

curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.11/install.sh | bash

Depois que a instalação for concluída, atualize o terminal. Para isso, saia e faça login novamente.

Note

O nvm é carregado como uma função apenas para o shell bash.2. Execute este comando no shell bash para verificar se o nvm está instalado corretamente. Você pode

alternar para o shell bash usando /bin/bash.

command -v nvm

Você verá nvm como resultado.

Para obter mais informações, consulte nvm no GitHub.3. Execute este comando para instalar o Node.js:

Versão da API 2015-06-23111

Page 120: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorAppium Node.js

nvm install node

Você pode especificar uma determinada versão do Node.js, como mostrado aqui:

nvm install 11.4.0

4. Execute este comando para verificar se você está usando a versão especificada:

node -v

5. Execute este comando para instalar o npm-bundle globalmente:

npm install -g npm-bundle

Etapa 1: criar um arquivo compactado do pacote de testeOs pacotes de testes do Appium Node.js dos quais você faz upload no Device Farm devem estar noformato .zip e conter todas as dependências do seu teste.

1. Confira o projeto.

Verifique se você está no diretório raiz do seu projeto. Você pode ver package.json no diretório raiz.2. Execute este comando para instalar suas dependências locais.

npm install

Esse comando também cria uma pasta node_modules dentro do seu diretório atual.

Note

Então, você poderá executar seus testes localmente.3. Execute este comando para empacotar os arquivos da pasta atual em um arquivo *.tgz. O arquivo

recebe um nome por meio da propriedade name no arquivo package.json.

npm-bundle

Esse arquivo tarball (.tgz) contém todos os seus códigos e dependências.4. Execute este comando para empacotar o tarball (arquivo *.tgz) gerado na etapa anterior em um único

arquivo compactado:

zip -r MyTests.zip *.tgz

Esse é o arquivo MyTests.zip do qual você faz upload no Device Farm no procedimento a seguir.

Etapa 2: fazer upload do pacote de teste para o Device FarmUse o console do Device Farm para carregar seus testes.

1. Faça login no console do Device Farm em https://console.aws.amazon.com/devicefarm.2. Se você vir a página inicial do console do AWS Device Farm, escolha Get started (Conceitos básicos).

Versão da API 2015-06-23112

Page 121: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorAppium Python

3. Você pode fazer upload dos testes em um projeto existente ou escolher Create a new project (Criarum novo projeto).

Tip

Se a lista de projetos não for exibida, na barra de navegação secundária, em Projects(Projetos), escolha o nome do projeto no qual você deseja fazer upload dos testes.Para criar um projeto, siga as instruções em Criar um projeto no AWS Device Farm (p. 20).

4. Se o botão Create a new run (Criar uma nova execução) for exibido, escolha-o.5. Na página Choose your application (Selecionar o aplicativo), selecione Aplicativo web ( ).

6. Em Run name (Nome da execução), digite um nome para a execução.

Tip

Dê à execução um nome que ajude você a identificar uma compilação específica doaplicativo (por exemplo, Beta-0.1). Para obter mais informações, consulte Trabalhar comexecução de testes (p. 23).

7. Escolha Appium Node.js para configurar seu teste.8. Para adicionar scripts de teste do Appium à execução do teste, escolha Upload (Fazer upload).9. Escolha o arquivo MyTests.zip que você criou no procedimento anterior.10. Siga as instruções para escolher uma especificação de teste.

Se você estiver usando a especificação de teste padrão, altere o comando de execução de teste naseção test do arquivo YAML da especificação de teste.

11. Escolha os dispositivos e inicie a execução.

Para obter mais informações, consulte Criar uma execução de teste no AWS Device Farm (p. 23).

Note

O Device Farm não modifica os testes do Appium Node.js para aplicativos web.

Como trabalhar com o Appium Python para aplicativosweb e o AWS Device FarmEsta seção descreve como configurar, empacotar e fazer upload de seus testes do Appium Python parao Device Farm. O Appium é uma ferramenta de código aberto para automatizar aplicativos web móveis enativos. Para obter mais informações sobre o Appium, consulte Introdução ao Appium no site do Appium.

Para obter uma amostra de teste do Device Farm, consulte Como testar um aplicativo web usando oDevice Farm e o Appium Python no GitHub.

Versão da API 2015-06-23113

Page 122: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorAppium Python

Informações sobre versão

• No momento, o Device Farm oferece suporte ao Python versão 2.7.6 (versão pip 1.5.4) para executartestes do Appium Python.

• O Device Farm oferece suporte a todas as versões do Appium 1.6.5 e posterior. Você pode escolherqualquer versão do Appium usando o comando avm. Por exemplo, para usar a versão 1.9.1 do servidorAppium, adicione estes comandos ao arquivo YAML da especificação de teste:

phases: install: commands: # Para instalar uma versão mais recente do Appium, como a versão 1.9.1: - export APPIUM_VERSION=1.9.1 - avm $APPIUM_VERSION - ln -s /usr/local/avm/versions/$APPIUM_VERSION/node_modules/.bin/appium /usr/local/avm/versions/$APPIUM_VERSION/node_modules/appium/bin/appium.js

Para usar todos os recursos da estrutura, como anotações, selecione um ambiente de testepersonalizado e use a AWS CLI ou o console do Device Farm para fazer upload de uma especificaçãode teste personalizada.

Para obter mais informações, consulte Fazer upload de uma especificação de teste personalizadausando a AWS CLI e Criar uma execução de teste no AWS Device Farm (p. 23).

Tópicos• Etapa 1: criar um arquivo compactado do pacote de teste (p. 114)• Etapa 2: fazer upload do pacote de teste para o Device Farm (p. 115)• Etapa 3: fazer capturas de tela dos testes do Appium Python para aplicativo web (opcional) (p. 116)

Etapa 1: criar um arquivo compactado do pacote de testeOs pacotes de testes do Appium Python que você faz upload no Device Farm devem estar em formato .zipe conter todas as dependências de seu teste.

Note

As instruções a seguir se baseiam no Linux x86_64 e no macOS. No esquema com suporteatualmente, o Device Farm requer que você empacote os testes do Appium Python no Linuxx86_64, caso os testes contenham dependências não universais de wheels do Python. Naplataforma em que você executar um comando, a ferramenta wheels reunirá seus arquivosdependentes .whl na pasta wheelhouse/. Se você executar o comando wheel do Python em umaplataforma que não seja Linux x86_64, você coletará o tipo de dependência wheel não universalpara a plataforma, o que pode causar erros quando você executar seus testes no Device Farm.

1. É altamente recomendável configurar o virtualenv do Python para testes de desenvolvimento eempacotamento, para que dependências desnecessárias não sejam incluídas em seu pacote deaplicativos.

$ virtualenv workspace$ cd workspace$ source bin/activate

Tip

• Não crie um virtualenv do Python com a opção --system-site-packages porqueele herda pacotes de /usr/lib/pythonx.x/site-packages ou o local do diretório global site-packages. Isso pode resultar na inclusão de dependências em seu ambiente virtual quenão são necessárias aos seus testes.

Versão da API 2015-06-23114

Page 123: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorAppium Python

• Você também deve verificar se os testes não usam dependências que dependem debibliotecas nativas, pois essas bibliotecas nativas podem ou não estar presentes nainstância em que esses testes são executados.

2. Instale o py.test em seu ambiente virtual.

$ pip install pytest

3. Instale o cliente do Appium Python em seu ambiente virtual.

$ pip install Appium-Python-Client

4. Armazene todos os scripts de teste do Python na pasta tests/ em seu espaço de trabalho.

# workspace ## tests/ (your tests go here)

5. Execute esse comando na pasta workspace de seu ambiente virtual para exibir uma lista de seustestes sem executá-los.

$ py.test --collect-only tests/

Confirme que a saída exibe os testes que você deseja executar no Device Farm.6. Execute o comando a seguir no espaço de trabalho para gerar o arquivo requirements.txt:

$ pip freeze > requirements.txt

7. Execute o seguinte comando no espaço de trabalho para gerar a pasta wheelhouse/:

$ pip wheel --wheel-dir wheelhouse -r requirements.txt

8. Você pode usar os comandos a seguir para limpar todos os arquivos em cache em sua pasta tests/:

$ find . -name '__pycache__' -type d -exec rm -r {} +$ find . -name '*.pyc' -exec rm -f {} +$ find . -name '*.pyo' -exec rm -f {} +$ find . -name '*~' -exec rm -f {} +

9. Compacte a pasta tests/, a pasta wheelhouse/ e o arquivo requirements.txt em um único arquivo:

$ zip -r test_bundle.zip tests/ wheelhouse/ requirements.txt

Seu espaço de trabalho deve se parecer com o seguinte:

# workspace ## tests/ ## test_bundle.zip ## requirements.txt ## wheelhouse/

Etapa 2: fazer upload do pacote de teste para o Device FarmUse o console do Device Farm para carregar seus testes.

1. Faça login no console do Device Farm em https://console.aws.amazon.com/devicefarm.

Versão da API 2015-06-23115

Page 124: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorAppium Python

2. Se você vir a página inicial do console do AWS Device Farm, escolha Get started (Conceitos básicos).3. Você pode fazer upload dos testes em um projeto existente ou escolher Create a new project (Criar

um novo projeto).

Tip

Se a lista de projetos não for exibida, na barra de navegação secundária, em Projects(Projetos), escolha o nome do projeto no qual você deseja fazer upload dos testes.Para criar um projeto, siga as instruções em Criar um projeto no AWS Device Farm (p. 20).

4. Se o botão Create a new run (Criar uma nova execução) for exibido, escolha-o.5. Na página Choose your application (Selecionar o aplicativo), selecione Aplicativo web ( ).

6. Escolha Upload (Fazer upload) para fazer upload do arquivo .apk.

O Device Farm processa o arquivo .apk antes de continuar.7. Em Run name (Nome da execução), digite um nome para a execução.

Tip

Dê à execução um nome que ajude você a identificar uma compilação específica doaplicativo (por exemplo, Beta-0.1). Para obter mais informações, consulte Trabalhar comexecução de testes (p. 23).

8. Escolha Appium Python para configurar seu teste.9. Para adicionar scripts de teste do Appium à execução do teste, escolha Upload (Fazer upload).10. Escolha a versão do Appium que você está usando.11. Selecione Next step (Próxima etapa) e siga as instruções para selecionar os dispositivos e iniciar

a execução. Para obter mais informações, consulte Criar uma execução de teste no AWS DeviceFarm (p. 23).

Note

O Device Farm não modifica os testes do Appium Python para aplicativos web.

Etapa 3: fazer capturas de tela dos testes do Appium Python paraaplicativo web (opcional)Você pode fazer capturas de tela como parte dos testes.

Versão da API 2015-06-23116

Page 125: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorAppium Ruby

Quando o Device Farm executa um teste do Appium Python, o serviço define as seguintes propriedades desistema que descrevem a configuração do servidor Appium com o qual você está se comunicando:

• appium.screenshots.dir: caminho onde as capturas de tela são salvas.• appium.server.address: endereço de host do servidor Appium.• appium.server.port: porta na qual o servidor Appium está ouvindo.

O Device Farm define a propriedade SCREENSHOT_PATH para um caminho totalmente qualificado nosistema de arquivos local em que o Device Farm espera que as capturas de tela do Appium sejam salvas.O diretório específico de teste no qual as capturas de tela são armazenadas é definido em tempo deexecução. As capturas de tela são inseridas automaticamente nos relatórios do Device Farm. Paravisualizar as capturas de tela, no console do Device Farm, escolha a seção Screenshots (Capturas detela).

O exemplo a seguir mostra como usar e consumir a propriedade appium.screenshots.dir para fazeruma captura de tela do Appium que se encontra no relatório do Device Farm.

public boolean takeScreenshot(final String name) { String screenshotDirectory = System.getProperty("appium.screenshots.dir", System.getProperty("java.io.tmpdir", "")); File screenshot = ((TakesScreenshot) driver).getScreenshotAs(OutputType.FILE); return screenshot.renameTo(new File(screenshotDirectory, String.format("%s.png", name))); }

Como trabalhar com o Appium Ruby para aplicativosweb e o AWS Device FarmEsta seção descreve como configurar, empacotar e fazer upload dos seus testes do Appium Ruby noDevice Farm. O Appium é uma ferramenta de código aberto para automatizar aplicativos web móveis enativos. Para obter mais informações sobre o Appium, consulte Introdução ao Appium no site do Appium.

Informações sobre versão

• Você pode usar qualquer versão do Ruby ao executar testes do Appium Ruby no Device Farm.Especifique a versão do Ruby (por exemplo, 2.5.1) no arquivo YAML da especificação de teste.

• O Device Farm oferece suporte às versões 1.6.5 e posteriores do servidor Appium. Você pode escolherqualquer versão do Appium usando o comando avm. Por exemplo, para usar a versão 1.9.1 do servidorAppium, adicione estes comandos ao arquivo YAML da especificação de teste:

phases: install: commands: # To install a newer version of Appium such as version 1.9.1: - export APPIUM_VERSION=1.9.1 - avm $APPIUM_VERSION - ln -s /usr/local/avm/versions/$APPIUM_VERSION/node_modules/.bin/appium /usr/local/avm/versions/$APPIUM_VERSION/node_modules/appium/bin/appium.js

Para obter mais informações, consulte Fazer upload de uma especificação de teste personalizadausando a AWS CLI e Criar uma execução de teste no AWS Device Farm (p. 23).

Tópicos• Pré-requisitos para empacotar seus testes (p. 118)• Etapa 1: criar um arquivo compactado do pacote de teste (p. 118)• Etapa 2: fazer upload do pacote de teste para o Device Farm (p. 119)

Versão da API 2015-06-23117

Page 126: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorAppium Ruby

Pré-requisitos para empacotar seus testesPara empacotar seus testes do Appium Ruby e fazer upload deles no Device Farm, é necessário instalar oseguinte na sua máquina local:

• Gerenciador de versão do Ruby (RVM)

Use essa ferramenta de linha de comando ao desenvolver e empacotar seus testes para quedependências desnecessárias não sejam incluídas no pacote de testes.

• Ruby• Bundler (esse gem normalmente é instalado com o Ruby.)

1. Instale as chaves obrigatórias, o RVM e o Ruby. Para obter instruções, consulte Como instalar o RVMno site do RVM.

# The following command is for reference only. Go to rvm website and look for the complete command.gpg --keyserver hkp://keys.gnupg.net --recv-keys $keys

# install rvm along with ruby\curl -sSL https://get.rvm.io | bash -s stable --ruby

Depois que a instalação for concluída, atualize o terminal. Para isso, saia e faça login novamente.

Note

O RVM é carregado como uma função apenas para o shell bash.2. Execute este comando no shell bash para verificar se o RVM está instalado corretamente. Você pode

alternar para o shell bash usando /bin/bash.

command -v rvm

Você verá rvm como resultado.3. Se você deseja instalar uma versão específica do Ruby (por exemplo, 2.5.1), execute o seguinte

comando:

rvm install ruby 2.5.1 --autolibs=0

Execute este comando para verificar se você está usando a versão especificada:

ruby -v

4. Embora uma instalação típica do Ruby inclua o Bundler, execute este comando se precisar instalá-lo:

gem install bundler

Etapa 1: criar um arquivo compactado do pacote de testeOs pacotes de testes do Appium Ruby dos quais você faz upload no Device Farm devem estar noformato .zip e conter todas as dependências do seu teste.

1. Execute este comando para criar um ambiente virtual do Ruby:Versão da API 2015-06-23118

Page 127: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorAppium Ruby

# myGemset is the name of your virtual Ruby environmentrvm gemset create myGemset

2. Execute este comando para usar o ambiente que você acabou de criar:

rvm gemset use myGemset

3. Confira o código-fonte.

Verifique se você está no diretório raiz do seu projeto. Você pode ver Gemfile no diretório raiz.4. Execute este comando para instalar suas dependências locais e todos os gems do Gemfile:

bundle install

Note

Então, você poderá executar seus testes localmente. Use este comando para executar umteste localmente:

bundle exec $test_command

5. Empacote os gems na pasta vendor/cache.

# This will copy all the .gem files needed to run your tests into the vendor/cache directorybundle package

6. Execute o comando a seguir para empacotar seu código-fonte, junto com todas as suasdependências, em um único arquivo compactado:

zip -r MyTests.zip Gemfile vendor/ $(any other source code directory files)

Esse é o arquivo MyTests.zip do qual você faz upload no Device Farm no procedimento a seguir.

Etapa 2: fazer upload do pacote de teste para o Device FarmUse o console do Device Farm para carregar seus testes.

1. Faça login no console do Device Farm em https://console.aws.amazon.com/devicefarm.2. Se você vir a página inicial do console do AWS Device Farm, escolha Get started (Conceitos básicos).3. Você pode fazer upload dos testes em um projeto existente ou escolher Create a new project (Criar

um novo projeto).

Tip

Se a lista de projetos não for exibida, na barra de navegação secundária, em Projects(Projetos), escolha o nome do projeto no qual você deseja fazer upload dos testes.Para criar um projeto, siga as instruções em Criar um projeto no AWS Device Farm (p. 20).

4. Se o botão Create a new run (Criar uma nova execução) for exibido, escolha-o.5. Na página Choose your application (Selecionar o aplicativo), selecione Aplicativo web ( ).

Versão da API 2015-06-23119

Page 128: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorTestes integrados

6. Em Run name (Nome da execução), digite um nome para a execução.

Tip

Dê à execução um nome que ajude você a identificar uma compilação específica doaplicativo (por exemplo, Beta-0.1). Para obter mais informações, consulte Trabalhar comexecução de testes (p. 23).

7. Escolha Appium Ruby para configurar seu teste.8. Para adicionar scripts de teste do Appium à execução do teste, escolha Upload (Fazer upload).9. Escolha o arquivo MyTests.zip que você criou no procedimento anterior.10. Siga as instruções para escolher uma especificação de teste.

Se você estiver usando a especificação de teste padrão, altere o comando de execução de teste naseção test do arquivo YAML da especificação de teste.

11. Escolha os dispositivos e inicie a execução.

Para obter mais informações, consulte Criar uma execução de teste no AWS Device Farm (p. 23).

Note

O Device Farm não modifica os testes do Appium Ruby para aplicativos web.

Como trabalhar com testes integrados no AWSDevice Farm

O Device Farm dá suporte para tipos de teste integrados para dispositivos Android e iOS.

Tipos de teste integradoOs testes integrados possibilitam testar os aplicativos sem escrever scripts.

• Integrado: Explorer (Android) (p. 121)• Integrado: Fuzz (Android e iOS) (p. 121)

Versão da API 2015-06-23120

Page 129: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorIntegrado: Explorer (Android)

Como trabalhar com o teste integrado Explorer paraDevice FarmO Device Farm oferece o tipo de teste integrado Explorer.

Em que consiste o teste integrado Explorer?O Explorer integrado percorre o aplicativo analisando cada tela e interagindo com ele como se fosse umusuário final. Ele faz captura de telas à medida que o examina, e você pode fornecer credenciais ao DeviceFarm para que o teste possa fazer login.

Parâmetros

• Username (Optional). Especifica um nome de usuário para ser usado pelo Explorer a ser usado caso eleencontre uma tela de login no aplicativo. Se não for fornecido um nome de usuário, o Device Farm nãoinserirá um nome de usuário.

• Password (Optional). Especifica uma senha para ser usada pelo Explorer a ser usada caso ela encontreuma tela de login no aplicativo. Se não for fornecida uma senha, o Device Farm não inserirá uma senha.

Use tipo de teste integrado ExplorerUse o console do Device Farm para executar o teste integrado Explorer.

1. Faça login no console do Device Farm em https://console.aws.amazon.com/devicefarm.2. Na lista de projetos, escolha a opção ao lado do projeto no qual você deseja executar o teste

integrado Explorer.

Tip

Se a lista de projetos não for exibida, na barra de navegação secundária, em Projects(Projetos), escolha o nome do projeto no qual você deseja executar o teste integradoExplorer.Para criar um projeto, siga as instruções em Criar um projeto no AWS Device Farm (p. 20).

3. Se o botão Create a new run (Criar uma nova execução) for exibido, escolha-o.4. Na página Choose your application (Escolher o aplicativo), escolha Upload.5. Procure e escolha o arquivo de aplicativo no qual você deseja executar o teste integrado Explorer.6. Escolha Próxima etapa.7. Na página Configure a test (Configurar um teste), escolha Built-in: Explorer (Integrado: Explorer).8. Escolha Next step (Próxima etapa) e conclua as demais instruções para selecionar os dispositivos e

iniciar a execução.

Como trabalhar com o teste integrado Fuzz paraDevice FarmO Device Farm oferece o tipo de teste integrado Fuzz.

Em que consiste o teste integrado Fuzz?O teste integrado Fuzz envia aleatoriamente eventos de interface de usuário para os dispositivos e, emseguida, relata os resultados.

Versão da API 2015-06-23121

Page 130: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorIntegrado: Fuzz (Android e iOS)

Usar o tipo de teste integrado FuzzUse o console do Device Farm para executar o teste de fuzz integrado.

1. Faça login no console do Device Farm em https://console.aws.amazon.com/devicefarm.2. Na lista de projetos, escolha a opção ao lado do projeto no qual você deseja executar o teste

integrado Fuzz.

Tip

Se a lista de projetos não for exibida, na barra de navegação secundária, em Projects(Projetos), escolha o nome do projeto no qual você deseja executar o teste de fuzz integrado.Para criar um projeto, siga as instruções em Criar um projeto no AWS Device Farm (p. 20).

3. Se o botão Create a new run (Criar uma nova execução) for exibido, escolha-o.4. Na página Choose your application (Escolher o aplicativo), escolha Upload.5. Procure e escolha o arquivo de aplicativo no qual você deseja executar o teste integrado Fuzz.6. Escolha Próxima etapa.7. Na página Configure a test (Configurar um teste), escolha Built-in: Fuzz (Integrado: Fuzz).8. Se qualquer uma das configurações a seguir forem exibidas, você poderá aceitar os valores padrão ou

especificar seu próprio:

• Contagem de eventos: especifique um número entre 1 e 10.000, que representa o número deeventos de interface de usuário que o teste Fuzz deve executar.

• Limite de eventos: especifique um número entre 1 e 1.000, que representa o número demilissegundos que o teste de fuzz deve aguardar para realizar o próximo evento de interface deusuário.

• Propagação aleatória: especifique um número para o teste de fuzz usar para randomizar eventos deinterface de usuário. A especificação de um mesmo número de testes Fuzz subsequentes garantesequências de eventos idênticas.

9. Escolha Next step (Próxima etapa) e conclua as demais instruções para selecionar os dispositivos einiciar a execução.

Versão da API 2015-06-23122

Page 131: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorSintaxe da especificação de teste

Trabalhar com ambientes de testepersonalizados no AWS Device Farm

Além de fornecer um ambiente de teste padrão, o AWS Device Farm também permite configurar umambiente personalizado para os testes automatizados. Para obter mais informações, consulte Ambientesde teste (p. 9).

Você pode definir e configurar o ambiente de teste automatizado personalizado com um arquivo deespecificação de teste formatado em YAML (especificação de teste). O Device Farm fornece umaespecificação de teste padrão para cada tipo de teste compatível. Você pode usar a especificação de testepadrão como está ou editá-la, caso prefira. Se editar o arquivo de especificação de teste, você poderásalvá-lo para execuções futuras.

Para obter mais informações, consulte Fazer upload de uma especificação de teste personalizada usandoa AWS CLI e Criar uma execução de teste no AWS Device Farm (p. 23).

Tópicos• Sintaxe da especificação de teste (p. 123)• Exemplo da especificação de teste (p. 125)• Variáveis de ambiente (p. 126)• Migrar testes de um ambiente de teste padrão para um ambiente de teste personalizado (p. 128)

Sintaxe da especificação de testeEsta é a estrutura do arquivo de especificação de teste YAML:

version: 0.1

phases: install: commands: - command - command pre_test: commands: - command - command test: commands: - command - command post_test: commands: - command - command

artifacts:

Versão da API 2015-06-23123

Page 132: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorSintaxe da especificação de teste

- location - location

A especificação de teste contém o seguinte:

version

Reflete a versão da especificação de teste compatível do Device Farm. O número da versão atual é0.1.

phases

Esta seção contém grupos de comandos executados durante uma execução de teste.

Os nomes da fase de teste permitidos são:install

Opcional.

As dependências padrão das estruturas de testes compatíveis com Device Farm já estãoinstaladas. Essa fase conterá comandos adicionais, se houver, executados pelo Device Farmdurante a instalação.

pre_test

Opcional.

Os comandos, se houver, executados antes da execução de teste automatizada.test

Opcional.

Os comandos executados durante a execução de teste automatizada. Se qualquer comando nafase de teste falhar, o teste será marcado como falha.

post_test

Opcional.

Os comandos, se houver, executados depois da execução de teste automatizada.artifacts

Opcional.

O Device Farm coleta artefatos, como relatórios, arquivos de log e imagens personalizados de umlocal especificado aqui. Os caracteres curinga não são suportados como parte de um artefato local.Dessa forma, você deve especificar um caminho válido para cada local.

Esses artefatos de teste estão disponíveis para cada dispositivo na execução de teste. Para obterinformações sobre como recuperar os artefatos de teste, consulte Usar artefatos em um ambiente deteste personalizado (p. 51).

Important

Uma especificação de teste deve ser formatada como um arquivo YAML válido. Caso o recuoou o espaçamento na especificação de teste seja inválido, a execução de teste pode falhar. Asguias não são permitidas em arquivos YAML. Você pode usar um validador YAML para testar se a

Versão da API 2015-06-23124

Page 133: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorExemplo da especificação de teste

especificação de teste é um arquivo YAML válido. Para obter mais informações, consulte o site daYAML.

Exemplo da especificação de testeEste é um exemplo de uma especificação de teste YAML do Device Farm que configura uma execução deteste do Appium Java TestNG:

version: 0.1

# Phases are a collection of commands that get executed on Device Farm.phases: # The install phase includes commands that install dependencies that your tests use. # Default dependencies for testing frameworks supported on Device Farm are already installed. install: commands: # By default, Appium server version used is 1.7.2. # You can switch to an alternate supported version from 1.6.5, 1.7.1, 1.7.2, 1.8.0 or 1.8.1 by using a command like "avm 1.7.1" # OR # To install a newer version of Appium use the following commands: # - export APPIUM_VERSION=1.8.1 # - avm $APPIUM_VERSION # - ln -s /usr/local/avm/versions/$APPIUM_VERSION/node_modules/.bin/appium /usr/local/avm/versions/$APPIUM_VERSION/node_modules/appium/bin/appium.js

# The pre-test phase includes commands that setup your test environment. pre_test: commands: # Setup environment variables for java - export CLASSPATH=$CLASSPATH:$DEVICEFARM_TESTNG_JAR - export CLASSPATH=$CLASSPATH:$DEVICEFARM_TEST_PACKAGE_PATH/* - export CLASSPATH=$CLASSPATH:$DEVICEFARM_TEST_PACKAGE_PATH/dependency-jars/* # We recommend starting appium server process in the background using the command below. # Appium server log will go to $DEVICEFARM_LOG_DIR directory. # The environment variables below will be auto-populated during run time. - echo "Start appium server" - >- appium --log-timestamp --device-name $DEVICEFARM_DEVICE_NAME --platform-name $DEVICEFARM_DEVICE_PLATFORM_NAME --app $DEVICEFARM_APP_PATH --udid $DEVICEFARM_DEVICE_UDID --chromedriver-executable $DEVICEFARM_CHROMEDRIVER_EXECUTABLE >> $DEVICEFARM_LOG_DIR/appiumlog.txt 2>&1 &

- >- start_appium_timeout=0; while [ true ]; do if [ $start_appium_timeout -gt 30 ]; then echo "appium server never started in 30 seconds. Exiting"; exit 1; fi; grep -i "Appium REST http interface listener started on 0.0.0.0:4723" $DEVICEFARM_LOG_DIR/appiumlog.txt >> /dev/null 2>&1; if [ $? -eq 0 ]; then echo "Appium REST http interface listener started on 0.0.0.0:4723"; break; else echo "Waiting for appium server to start. Sleeping for 1 second";

Versão da API 2015-06-23125

Page 134: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorVariáveis de ambiente

sleep 1; start_appium_timeout=$((start_appium_timeout+1)); fi; done;

# The test phase includes commands that start your test suite execution. test: commands: # Your test package is downloaded in $DEVICEFARM_TEST_PACKAGE_PATH so we first change directory to that path. - echo "Navigate to test package directory" - cd $DEVICEFARM_TEST_PACKAGE_PATH

# By default, the following command is used by Device Farm to run your Appium TestNG test. # The goal is to run to your tests jar file with all the dependencies jars in the CLASSPATH. # Alternatively, You may specify your customized command. # Note: For most use cases, the default command works fine. # Please refer "http://testng.org/doc/documentation-main.html#running-testng" for more options on running TestNG tests from the command line. - echo "Start Appium TestNG test" - java -Dappium.screenshots.dir=$DEVICEFARM_SCREENSHOT_PATH org.testng.TestNG -testjar *-tests.jar -d $DEVICEFARM_LOG_DIR/test-output -verbose 10

# To run your tests with testng.xml file, use the following sequence: # Note: you don't have to unzip your test jar unless you have xml file with custom name # 1. Your testng.xml is inside the test jar after packaging step. Unzip it using commands: # - echo "Unzipping TestNG tests jar" # - unzip *-tests.jar # 2. Run your TestSuite by specifying the unzipped testng.xml using commands: # - echo "Start Appium TestNG test" # - java org.testng.TestNG -d $DEVICEFARM_LOG_DIR/test-output testng.xml

# The post test phase includes are commands that are run after your tests are executed. post_test: commands:

# The artifacts phase lets you specify the location where your tests logs, device logs will be stored.# And also let you specify the location of your test logs and artifacts which you want to be collected by Device Farm.# These logs and artifacts will be available through ListArtifacts API in Device Farm.artifacts: # By default, Device Farm will collect your artifacts from following directories - $DEVICEFARM_LOG_DIR

Variáveis de ambienteAs variáveis de ambiente representam valores usados pelos testes automatizados. Você pode usar essasvariáveis de ambiente nos arquivos YAML e no código de teste. Em um ambiente de teste personalizado, oDevice Farm preenche dinamicamente as variáveis de ambiente em tempo de execução.

Tópicos• Variáveis de ambiente comuns (p. 127)• Variáveis de ambiente do Appium Java JUnit (p. 128)• Variáveis de ambiente do TestNG (p. 128)• Variáveis de ambiente do XCUITest (p. 128)

Versão da API 2015-06-23126

Page 135: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorVariáveis de ambiente comuns

Variáveis de ambiente comunsTestes do AndroidEsta seção descreve variáveis de ambiente personalizadas comuns a testes da plataforma Androidcompatíveis com Device Farm.

$DEVICEFARM_DEVICE_NAME

Nome do dispositivo no qual os testes são executados. Ele representa o Unique Device Identifer(UDID – Identificador exclusivo do dispositivo).

$DEVICEFARM_DEVICE_PLATFORM_NAME

O nome da plataforma do dispositivo. Ele é Android ou iOS.$DEVICEFARM_APP_PATH

O caminho do aplicativo para dispositivos móveis na máquina de host onde os testes estão sendoexecutados. O caminho do aplicativo só está disponível para aplicativos para dispositivos móveis.

$DEVICEFARM_DEVICE_UDID

O identificador exclusivo do dispositivo para aplicativos móveis que executam o teste automatizado.$DEVICEFARM_LOG_DIR

O caminho para os arquivos de log gerados durante a execução de teste.$DEVICEFARM_SCREENSHOT_PATH

O caminho das capturas de telas, se houver, capturadas durante a execução de teste.$DEVICEFARM_CHROMEDRIVER_EXECUTABLE

A versão do navegador Chrome.$DEVICEFARM_TEST_PACKAGE_NAME

O nome do pacote (por exemplo, com.example.myapp) em teste.Note

Isso só está disponível ao usar testes de instrumentação nativos do Android. Para obter maisinformações, consulte Como trabalhar com instrumentação para o Android e o AWS DeviceFarm (p. 74).

Testes do iOSEsta seção descreve variáveis de ambiente personalizadas comuns a testes da plataforma iOScompatíveis com Device Farm.

$DEVICEFARM_DEVICE_NAME

Nome do dispositivo no qual os testes são executados. Ele representa o Unique Device Identifer(UDID – Identificador exclusivo do dispositivo).

$DEVICEFARM_DEVICE_PLATFORM_NAME

O nome da plataforma do dispositivo. Ele é Android ou iOS.$DEVICEFARM_APP_PATH

O caminho do aplicativo para dispositivos móveis na máquina de host onde os testes estão sendoexecutados. O caminho do aplicativo só está disponível para aplicativos para dispositivos móveis.

Versão da API 2015-06-23127

Page 136: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorVariáveis de ambiente do Appium Java JUnit

$DEVICEFARM_DEVICE_UDID

O identificador exclusivo do dispositivo para aplicativos móveis que executam o teste automatizado.$DEVICEFARM_LOG_DIR

O caminho para os arquivos de log gerados durante a execução de teste.$DEVICEFARM_SCREENSHOT_PATH

O caminho das capturas de telas, se houver, capturadas durante a execução de teste.

Variáveis de ambiente do Appium Java JUnitEsta seção descreve variáveis de ambiente usadas pelos testes do Appium Java JUnit em um ambiente deteste personalizado.

$DEVICEFARM_TESTNG_JAR

O caminho do arquivo .jar do TestNG.$DEVICEFARM_TEST_PACKAGE_PATH

O caminho para o conteúdo descompactado do arquivo do pacote de teste.

Variáveis de ambiente do TestNGEsta seção descreve variáveis de ambiente usadas pelos testes do Appium Java TestNG em um ambientede teste personalizado.

$DEVICEFARM_TESTNG_JAR

O caminho do arquivo .jar do TestNG.$DEVICEFARM_TEST_PACKAGE_PATH

O caminho para o conteúdo descompactado do arquivo do pacote de teste.

Variáveis de ambiente do XCUITest$DEVICEFARM_XCUITESTRUN_FILE

Caminho do arquivo .xctestun do Device Farm. Ele é gerado com base nos pacotes de aplicativos etestes.

$DEVICEFARM_DERIVED_DATA_PATH

Caminho esperado da saída xcodebuild do Device Farm.

Migrar testes de um ambiente de teste padrão paraum ambiente de teste personalizado

Executar um teste em um ambiente personalizado exige que todas as informações usadas na execução deteste sejam incluídas no arquivo YAML da especificação de teste ou no código de teste. Aqui estão algunsaspectos a serem considerados quando você mover um teste para um ambiente personalizado.

Versão da API 2015-06-23128

Page 137: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorEstrutura do Appium

Estrutura do AppiumEm um ambiente de teste personalizado, o Device Farm não insere nem substitui recursos do Appium emtestes da estrutura do Appium. Você deve especificar os recursos do Appium do teste no arquivo YAML daespecificação de teste ou no código de teste.

Instrumentação do AndroidVocê não precisa fazer alterações a fim de mover os testes de instrumentação do Android para umambiente de teste personalizado.

iOS XCUITestVocê não precisa fazer alterações a fim de mover os testes iOS XCUITest para um ambiente de testepersonalizado.

Versão da API 2015-06-23129

Page 138: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorCriar uma sessão

Como trabalhar com acesso remotono AWS Device Farm

O acesso remoto permite que você deslize o dedo, faça gestos e interaja com um dispositivo por meio deum navegador da web em tempo real para testar a funcionalidade e reproduzir os problemas dos clientes.Você interage com um dispositivo específico criando uma sessão de acesso remoto com esse dispositivo.

Uma sessão Uma sessão em Device Farm é uma interação em tempo real com um dispositivo real,físico, hospedado em um navegador da web. exibe o dispositivo específico que você selecionou ao iniciara sessão. Um usuário pode iniciar mais de uma sessão por vez, mas o número total de dispositivossimultâneos está restrito ao número de slots para dispositivo que você tem. Você pode comprar slotsde dispositivos com base na família de dispositivos (dispositivos Android ou iOS). Para obter maisinformações, consulte Definição de preço do Device Farm.

No momento, o Device Farm oferece um subconjunto de dispositivos para teste de acesso remoto. Novosdispositivos são adicionados ao grupo de dispositivos sempre.

O Device Farm registra o vídeo de cada sessão de acesso remoto e gera logs da atividade durante asessão. Esses resultados incluem todas as informações que você fornece durante uma sessão.

Note

Por motivos de segurança, recomendamos evitar fornecer ou inserir informações confidenciais,como números de conta, informações pessoais de login e outros detalhes durante uma sessão deacesso remoto.

Tópicos• Como criar uma sessão de acesso remoto no AWS Device Farm (p. 130)• Usar uma sessão de acesso remoto no AWS Device Farm (p. 131)• Obter os resultados de uma sessão de acesso remoto no AWS Device Farm (p. 132)

Como criar uma sessão de acesso remoto no AWSDevice Farm

Para obter informações sobre sessões de acesso remoto, consulte Sessões (p. 13).

• Pré-requisitos (p. 130)• Criar uma execução de teste (console) (p. 130)• Próximas etapas (p. 131)

Pré-requisitos• Crie um projeto no Device Farm. Siga as instruções em Criar um projeto no AWS Device Farm (p. 20) e

retorne a esta página.

Criar uma sessão com o console do Device Farm1. Faça login no console do Device Farm em https://console.aws.amazon.com/devicefarm.

Versão da API 2015-06-23130

Page 139: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorPróximas etapas

2. Se você vir a página inicial do console do AWS Device Farm, escolha Get started (Conceitos básicos).3. Escolha um projeto na lista suspensa Projects (Projetos) ou escolha Create a new project (Criar um

novo projeto).4. Na guia Remote access (Acesso remoto), escolha Start a new session (Iniciar uma nova sessão).5. Escolha um dispositivo para sua sessão. Você pode escolher na lista de dispositivos disponíveis ou

procurar um dispositivo usando os campos na parte superior da lista. Você pode pesquisar por:

• Nome• Plataforma• Sistema operacional• Formato

6. Em Session name (Nome da sessão), insira um nome para a sessão.7. Escolha Confirm and start session (Confirmar e iniciar sessão).

Próximas etapasO Device Farm inicia a sessão assim que o dispositivo solicitado é disponibilizado, normalmente em algunsminutos. A caixa de diálogo Device requested (Solicitado pelo dispositivo) ficará aberta até o momento emque a sessão iniciar. Para cancelar a solicitação de sessão, escolha Cancel request (Cancelar solicitação).

Depois que a sessão for iniciada, se tiver que fechar o navegador ou a guia do navegador sem interrompera sessão ou se a conexão entre o navegador e a internet se perder, a sessão permanecerá ativa por cincominutos. Depois disso, o Device Farm encerrará a sessão. A conta é cobrada pelo tempo ocioso.

Depois que a sessão for iniciada, você poderá interagir com o dispositivo no navegador da web.

Usar uma sessão de acesso remoto no AWSDevice Farm

Para obter informações sobre como executar testes interativos de aplicativos Android e iOS por meio desessões de acesso remoto, consulte Sessões (p. 13).

• Pré-requisitos (p. 131)• Usar uma sessão no console do Device Farm (p. 131)• Próximas etapas (p. 132)• Dicas e truques (p. 132)

Pré-requisitos• Crie uma sessão. Siga as instruções em Criar uma sessão (p. 130) e retorne a esta página.

Usar uma sessão no console do Device FarmAssim que o dispositivo que você solicitou para uma sessão de acesso remoto ficar disponível, o consoleexibirá a tela do dispositivo. A sessão tem duração máxima de 150 minutos. O tempo restante na sessão éexibido abaixo da barra de menus no lado direito do console.

Versão da API 2015-06-23131

Page 140: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorPróximas etapas

Instalar um aplicativoPara instalar um aplicativo no dispositivo da sessão, em Install applications (Instalar aplicativos), escolhaUpload (Fazer upload) e selecione o arquivo .apk (Android) ou o arquivo .ipa (iOS) que você desejainstalar. Os aplicativos que você executa em uma sessão de acesso remoto não exigem nenhum teste deinstrumentação nem provisionamento.

Note

O AWS Device Farm não exibirá uma confirmação depois que um aplicativo for instalado.Experimente interagir com o aplicativo para ver se ele já pode ser usado.Ao fazer upload de um aplicativo, às vezes o aplicativo demora um pouco para ficar disponível.Examine a bandeja do sistema para determinar se o aplicativo está disponível.

Controlar o dispositivoVocê pode interagir com o dispositivo exibido no console assim como faria com um dispositivo físicoreal, usando o mouse ou um dispositivo semelhante para tocar e o teclado na tela do dispositivo. Paradispositivos Android, existem botões em View controls (Visualizar controles) que funcionam como osbotões Home (Início) e Back (Voltar) em um dispositivo Android. Para dispositivos iOS, existe um botãoHome (Início) que funciona da mesma forma que o botão de início em um dispositivo iOS. Você tambémpode alternar aplicativos executados no dispositivo escolhendo Recent apps (Aplicativos recentes).

Alternar modos retrato e paisagemVocê também pode alternar os modos retrato (vertical) e paisagem (horizontal) nos dispositivos que estáusando.

Próximas etapasO Device Farm continuará a sessão até você interrompê-la manualmente ou até o tempo limite de 150minutos ser alcançado. Para encerrar a sessão, escolha o botão Stop session (Interromper sessão).Depois que a sessão for interrompida, você poderá acessar o vídeo que foi capturado e os logs que foramgerados. Para obter mais informações, consulte Obter resultados da sessão (p. 132).

Dicas e truquesÉ possível que você tenha problemas de desempenho com a sessão de acesso remoto em algumasregiões da AWS. Em parte, isso se deve à latência em algumas regiões. Se tiver problemas dedesempenho, permita que a sessão de acesso remota recupere o atraso para então interagir novamentecom o aplicativo.

Obter os resultados de uma sessão de acessoremoto no AWS Device Farm

Para obter informações sobre sessões, consulte Sessões (p. 13).

• Pré-requisitos (p. 133)• Visualização de detalhes da sessão (p. 133)• Download de vídeo ou logs de sessão (p. 133)

Versão da API 2015-06-23132

Page 141: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorPré-requisitos

Pré-requisitos• Conclua uma sessão. Siga as instruções em Usar uma sessão de acesso remoto no AWS Device

Farm (p. 131) e retorne a esta página.

Visualização de detalhes da sessãoQuando uma sessão de acesso remoto termina, o console do Device Farm exibe uma tabela que contémdetalhes sobre a atividade durante a sessão. Para obter mais informações, consulte Analisar informaçõesdo log (p. 47).

Para retornar aos detalhes de uma sessão em um momento posterior:

1. Na lista suspensa Project (Projeto), escolha o projeto que você deseja examinar.2. Escolha a sessão que você deseja examinar na lista. Ou, na lista suspensa Runs & sessions

(Execuções e sessões), escolha View all sessions (Exibir todas as sessões) e escolha a sessão.

Download de vídeo ou logs de sessãoQuando uma sessão de acesso remoto termina, o console do Device Farm oferece acesso a uma capturade vídeo da sessão e a logs de atividade. Nos resultados da sessão, escolha a guia Files (Arquivos)para obter uma lista de links para o vídeo e os logs da sessão. Você pode visualizar esses arquivos nonavegador ou os salvar localmente.

Versão da API 2015-06-23133

Page 142: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorGerenciar dispositivos privados

Trabalhar com dispositivos privadosno AWS Device Farm

Dispositivo privado é um dispositivo móvel físico que o AWS Device Farm implanta em seu nome em umdatacenter Amazon. Esse dispositivo é exclusivo da sua conta AWS.

Note

Atualmente, os dispositivos privados estão disponíveis apenas em AWS Região Oeste dos EUA(Oregon) (us-west-2). Se você estiver interessado em usar a frota de um ou mais dispositivosprivados, entre em contato conosco. A equipe Device Farm deve trabalhar com você a fim deconfigurar e implantar uma frota de um ou mais dispositivos privados para a sua conta AWS.

Se tiver uma frota de dispositivos privados, você pode criar sessões de acesso remoto e programarexecuções de teste usando seus dispositivos privados. Você também pode criar perfis de instância paracontrolar o comportamento dos seus dispositivos privados durante uma sessão de acesso remoto ou aexecução de um teste. Para obter mais informações, consulte Gerenciar com Dispositivos privados noAWS Device Farm (p. 134).

Você também pode criar um serviço de endpoint do Amazon Virtual Private Cloud para testar os aplicativosprivados aos quais sua empresa tem acesso, mas que não podem ser acessados pela internet. Porexemplo, você pode ter um aplicativo web em execução dentro da sua VPC que você deseja testar emdispositivos móveis. Para obter mais informações, consulte Usar Serviços Endpoint Amazon Virtual PrivateCloud com AWS Device Farm (p. 145).

Tópicos• Gerenciar com Dispositivos privados no AWS Device Farm (p. 134)• Ignorar a nova assinatura do aplicativo em dispositivos privados no AWS Device Farm (p. 141)• Usar Serviços Endpoint Amazon Virtual Private Cloud com AWS Device Farm (p. 145)• Trabalhar com a Amazon Virtual Private Cloud entre regiões (p. 147)

Gerenciar com Dispositivos privados no AWSDevice Farm

Dispositivo privado é um dispositivo móvel físico que o AWS Device Farm implanta em seu nome em umdatacenter Amazon. Esse dispositivo é exclusivo da sua conta AWS.

Note

Atualmente, os dispositivos privados estão disponíveis apenas em AWS Região Oeste dos EUA(Oregon) (us-west-2).

Você pode configurar uma frota que contém um ou mais dispositivos privados. Esses dispositivos sãodedicados à sua conta do AWS. Depois de configurar os dispositivos, você pode opcionalmente criar um

Versão da API 2015-06-23134

Page 143: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorCriar um perfil de instância

ou mais perfis de instância para eles. Perfis de instância podem ajudar você a automatizar execuções deteste e consistentemente aplicar as mesmas configurações para instâncias do dispositivo.

Este tópico explica como criar um perfil de instância e executar outras tarefas de gerenciamento dedispositivos comuns.

Tópicos• Criação de um perfil da instância (p. 135)• Gerenciar uma instância de dispositivo privado (p. 136)• Criar uma execução de teste ou iniciar uma sessão de acesso remoto (p. 137)• Criação de um grupo de dispositivos privados (p. 138)• Próximas etapas (p. 140)

Criação de um perfil da instânciaVocê pode criar ou modificar um perfil de instância em Device Farm para controlar o comportamento dedispositivos privados durante a execução de um teste ou uma sessão de acesso remoto. Você não precisade um perfil de instância para começar a usar os dispositivos privados.

1. Abra o console do Device Farm em https://console.aws.amazon.com/devicefarm/.2. Escolha Device Farm settings (Configurações do Device Farm).3. Escolha Instance profiles (Perfis de instância).4. Escolha Create a new instance profile (Criar um novo perfil de instância).5. Insira um nome para o perfil de instância.

6. (Opcional) Digite uma descrição do perfil de instância.7. (Opcional) Altere qualquer uma das seguintes configurações para especificar quais ações você deseja

que o Device Farm execute em um dispositivo após cada execução de teste ou término de sessão:

Versão da API 2015-06-23135

Page 144: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorGerenciar uma instância de dispositivo privado

• Reboot after Use (Reinicializar após uso) – Para reinicializar o dispositivo, marque esta caixa deseleção. Por padrão, essa caixa de seleção fica desmarcada (false).

• Package Cleanup (Limpeza de pacotes) – Para remover todos os pacotes de aplicativos que vocêinstalou no dispositivo, marque esta caixa de seleção. Por padrão, essa caixa de seleção ficadesmarcada (false). Para manter todos os pacotes de aplicativos que você instalou no dispositivo,deixe esta caixa de seleção desmarcada.

• Exclude Packages from Cleanup (Excluir Pacotes de Limpeza) – Para manter apenas pacotesselecionados de aplicativos no dispositivo, marque a caixa de seleção Package Cleanup (Limpezado pacote) e, em seguida, escolha Add new (Adicionar novo). Para o nome do pacote, insira o nometotalmente qualificado do pacote de aplicativos que você deseja manter no dispositivo (por exemplo,com.test.example). Para manter mais pacotes de aplicativos no dispositivo, escolha Add new(Adicionar novo) e, em seguida, digite o nome totalmente qualificado de cada pacote.

Gerenciar uma instância de dispositivo privadoSe já tiver um ou mais dispositivos privados em sua frota, você poderá visualizar informações a respeito egerenciar determinadas configurações para cada instância do dispositivo. Você também pode solicitar umainstância de dispositivo privado adicional.

1. Abra o console do Device Farm em https://console.aws.amazon.com/devicefarm/.2. Escolha Device Farm settings (Configurações do Device Farm).3. Escolha Device instances (Instâncias do dispositivo). A guia Device instances (Instâncias do

dispositivo) exibe uma tabela dos dispositivos privados em sua frota. Para pesquisar rapidamente oufiltrar a tabela, insira os termos de pesquisa nos campos acima das colunas.

4. (Opcional) Para solicitar uma nova instância de dispositivo privado, escolha Request a new deviceinstance (Solicitar nova instância do dispositivo) ou entre em contato conosco. Os dispositivosprivados exigem configuração adicional com ajuda da equipe do Device Farm.

5. Na tabela de instâncias do dispositivo, escolha a instância sobre a qual você deseja exibir informaçõesou gerenciar.

Versão da API 2015-06-23136

Page 145: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorCriar uma execução de teste ouuma sessão de acesso remoto

6. (Opcional) Em Profile (Perfil), escolha um perfil de instância para anexar a instância do dispositivo.Isso pode ser útil se você deseja sempre excluir um pacote de aplicativo específico das tarefas delimpeza, por exemplo.

7. (Opcional) Em Labels (Rótulos), escolha Add new (Adicionar novo) para adicionar um rótulo àinstância do dispositivo. Os rótulos podem ajudar você a categorizar seus dispositivos e encontrardispositivos específicos com mais facilidade.

8. Escolha Save device instance (Salvar instância do dispositivo).

Criar uma execução de teste ou iniciar uma sessão deacesso remotoDepois de configurar uma frota de dispositivos privados, você pode criar execuções de teste ou iniciarsessões de acesso remoto com um ou mais dispositivos privados em sua frota.

1. Abra o console do Device Farm em https://console.aws.amazon.com/devicefarm/.2. Escolha Create a new project (Criar um novo projeto) ou abra um projeto existente. Se você criar um

novo projeto, insira um nome para o projeto e, em seguida, escolha Create project (Criar projeto).

Versão da API 2015-06-23137

Page 146: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorCriar um grupo de dispositivos privados

3. Siga um destes procedimentos:

• Para criar uma execução de teste, escolha Automated tests (Testes automatizados) e, em seguida,Create a new run (Criar nova execução). O assistente orienta você durante as etapas para criaçãoda execução. Na etapa Selecionar dispositivos, você pode editar um grupo de dispositivos existenteou criar um novo grupo de dispositivos que inclui apenas os dispositivos privados que a equipeDevice Farm configurar e associados à sua conta AWS. Para obter mais informações, consulte thesection called “Criar um grupo de dispositivos privados” (p. 138).

• Para iniciar uma sessão de acesso remoto, escolha Remote access (Acesso remoro), em seguida,Start a new session (Iniciar nova sessão). Na página Choose a device (Escolher um dispositivo),selecione Somente instâncias de dispositivos privados para limitar a lista apenas aos dispositivosprivados que a equipe Device Farm configurar e associados à sua conta AWS. Em seguida, escolhao dispositivo que você deseja acessar, insira um nome para a sessão de acesso remoto e escolhaConfirm and start session (Confirmar e iniciar a sessão).

Criação de um grupo de dispositivos privadosAo criar uma execução de teste, você pode criar um grupo de dispositivos para a execução de teste egarantir que o grupo inclua apenas os dispositivos privados.

1. Abra o console do Device Farm em https://console.aws.amazon.com/devicefarm/.2. Escolha Create a new project (Criar um novo projeto) ou abra um projeto existente. Se você criar um

novo projeto, insira um nome para o projeto e, em seguida, escolha Create project (Criar projeto).3. Escolha Automated tests (Testes automatizados), em seguida, Create a new run (Criar nova

execução). O assistente orienta você durante as etapas para escolher seu aplicativo e configurar oteste que você deseja executar.

4. Na etapa Select devices (Selecionar dispositivos), escolha Create a new device pool (Criar um novogrupo de dispositivos) e insira um nome e uma descrição opcional para o grupo de dispositivos.

5. Ao lado de Select devices (Selecionar dispositivos), selecione Private Device Instances Only (Somenteinstâncias de dispositivos privados) para limitar a lista de dispositivos privados apenas aos dispositivosque a equipe Device Farm configurar e associados à sua conta AWS.

Versão da API 2015-06-23138

Page 147: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorCriar um grupo de dispositivos privados

6. Selecione cada dispositivo que você deseja incluir na execução do teste.7. (Opcional) Para criar um grupo de dispositivos que muda dinamicamente à medida que novos

dispositivos estiverem disponíveis, escolha Add rule (Adicionar regra), em seguida, defina os valorespara Field (Campo), Operator (Operador), e Operand de acordo com seus requisitos.

Versão da API 2015-06-23139

Page 148: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorPróximas etapas

O Device Farm seleciona todas as instâncias de dispositivo em que o critério de regras seja true.8. Escolha Save device pool (Salvar grupo de dispositivos).

Próximas etapasDepois de configurar os dispositivos privados, você também pode gerenciar seus dispositivos privados dasseguintes formas:

• Ignorar a assinatura nova em dispositivos privados (p. 141)• Usar serviços de endpoint do Amazon Virtual Private Cloud com o Device Farm (p. 145)

Para excluir um perfil de instância, use a página Account settings (Configurações da conta) ou Projectsettings (Configurações do projeto) no console do Device Farm.

Versão da API 2015-06-23140

Page 149: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorIgnorar a nova assinatura do aplicativo

Ignorar a nova assinatura do aplicativo emdispositivos privados no AWS Device Farm

Ao usar dispositivos privados, você poderá ignorar a etapa em que o AWS Device Farm assina novamenteo aplicativo. É um processo diferente do que ocorro em dispositivos públicos, nos quais o Device Farmsempre assina novamente o aplicativo nas plataformas iOS e Android.

Você pode ignorar a nova assinatura do aplicativo ao criar uma sessão de acesso remoto ou a execuçãode um teste. Isso pode ser útil se a funcionalidade do aplicativo é interrompida quando o Device Farmassina novamente o aplicativo. Por exemplo, notificações por push podem não funcionar depois da novaassinatura. Para obter mais informações sobre as modificações feitas pelo Device Farm ao testar oaplicativo, consulte Perguntas frequentes do AWS Device Farm

Para ignorar a nova assinatura do aplicativo para a execução de um teste, selecione Skip app re-signing(Ignorar nova assinatura do aplicativo) na página Configure (Configurar) ao criar a execução de teste.

Versão da API 2015-06-23141

Page 150: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorIgnorar a nova assinatura do aplicativo

Note

Se você estiver usando a estrutura XCTest, a opção Skip app re-signing (Ignorar nova assinaturado aplicativo) não estará disponível. Para obter mais informações, consulte Como trabalhar com oXCTest para iOS e o AWS Device Farm (p. 99).

Etapas adicionais para configurar suas configurações de assinatura de aplicativos variam, dependendo devocê estar usando dispositivos privados Android ou iOS.

Versão da API 2015-06-23142

Page 151: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorIgnorar a nova assinatura do

aplicativo em dispositivos Android

Ignorar a nova assinatura do aplicativo em dispositivosAndroidSe você estiver testando o aplicativo em um dispositivo Android privado, selecione Skip app re-signing(Ignorar nova assinatura do aplicativo) ao criar a execução de teste ou a sessão de acesso remoto.Nenhuma outra configuração é necessária.

Ignorar a nova assinatura do aplicativo em dispositivosiOSA Apple exige que você assine um aplicativo para teste antes de carregá-lo em um dispositivo. Paradispositivos iOS, você tem duas opções para assinar seu aplicativo.

• Se estiver usando um perfil de desenvolvedor interno (Enterprise), você pode passar para a próximaseção, the section called “Criar uma sessão de acesso remoto para confiar no seu aplicativo” (p. 143).

• Se você estiver usando um perfil de desenvolvimento de aplicativo iOS ad hoc, você deveráprimeiramente registrar o dispositivo com a conta de desenvolvedor da Apple e atualizar o perfil deprovisionamento para incluir o dispositivo privado. Você deve assinar novamente o aplicativo com o perfilde provisionamento que você atualizou. Você pode executar seu aplicativo assinado novamente emDevice Farm.

Para registrar um dispositivo com um perfil de aprovisionamento de desenvolvimento deaplicativos iOS ad hoc

1. Faça login em sua conta de desenvolvedor da Apple.2. Navegue até a seção Certificates, IDs, and Profiles (Certificados, IDs e perfis) do console.3. Vá até Devices (Dispositivos).4. Registre o dispositivo em sua conta de desenvolvedor da Apple. Para obter o nome e o UDID

do dispositivo, abra o console Device Farm e navegue até a guia Device instances (Instânciasdo dispositivo) da página Project settings (Configurações do projeto) ou use a operaçãoListDeviceInstances da API Device Farm.

5. Acesse seu perfil de provisionamento e escolha Edit (Editar).6. Selecione o dispositivo na lista.7. No XCode, busque seu perfil de provisionamento atualizado e, em seguida, assine novamente o

aplicativo.

Nenhuma outra configuração é necessária. Agora, você pode criar uma sessão de acesso remoto ou umaexecução de teste e selecionar Skip app re-signing (Ignorar nova assinatura do aplicativo).

Criar uma sessão de acesso remoto para confiar noseu aplicativo iOSSe estiver usando um perfil de provisionamento de desenvolvedor interno (Enterprise), você precisaráfazer um único procedimento para confiar no certificado de desenvolvedor do aplicativo interno em cadaum dos dispositivos privados.

Para isso, você pode instalar o aplicativo que deseja testar no dispositivo privado ou instalar um aplicativofictício assinado com o mesmo certificado do aplicativo que deseja testar. Há uma vantagem em instalar

Versão da API 2015-06-23143

Page 152: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorCriar uma sessão de acesso remoto

para confiar no seu aplicativo

um aplicativo fictício assinado com o mesmo certificado. A vantagem é que, depois de confiar no perfil deconfiguração ou no desenvolvedor do aplicativo empresarial, todos os aplicativos desse desenvolvedorserão confiáveis no dispositivo privado até que você os exclua. Dessa forma, quando fizer upload de umanova versão do aplicativo que deseja testar, você não precisa confiar no desenvolvedor de aplicativosnovamente. Isso é especialmente útil se você executar as automações de teste e não quiser criar umasessão de acesso remoto cada vez que testar seu aplicativo.

Para começar a sessão de acesso remoto, siga os procedimentos em Criação de um perfil dainstância (p. 135) para criar ou modificar um perfil de instância no Device Farm . No perfil da instância,adicione o ID de pacote do aplicativo de teste ou aplicativo fictício à configuração Exclude Packages fromCleanup (Excluir pacotes da limpeza). Anexe o perfil de instância à instância do dispositivo privado paragarantir que o Device Farm não remova esse aplicativo do dispositivo antes de iniciar uma nova execuçãode teste. Isso garante que o certificado do desenvolvedor permaneça confiável.

Você pode fazer upload do aplicativo fictício para o dispositivo usando uma sessão de acesso remoto, oque permite iniciar o aplicativo e confiar no desenvolvedor.

1. Siga as instruções em Criar uma sessão (p. 130) para criar uma sessão de acesso remoto usando operfil da instância de dispositivo privado que você acabou de criar. Ao criar a sessão, não se esqueçade selecionar Skip app re-signing (Ignorar nova assinatura do aplicativo).

Important

Para filtrar a lista de dispositivos de modo a incluir apenas dispositivos privados, selecionePrivate device instances only (Somente instâncias de dispositivos privados) para garantir quevocê use um dispositivo privado com o perfil de instância correto.

Além disso, certifique-se de adicionar o aplicativo fictício ou o aplicativo que você deseja testar àconfiguração Exclude Packages from Cleanup (Excluir pacotes da limpeza) para o perfil da instânciaque está anexado a essa instância.

2. Quando a sessão remota for iniciada, escolha Upload (Fazer upload) para instalar um aplicativo queuse seu perfil de provisionamento interno.

3. Inicie o aplicativo recém-carregado.4. Siga as instruções para confiar no certificado do desenvolvedor.

Todos os aplicativos desse perfil de configuração ou do desenvolvedor do aplicativo empresarial já sãoconfiáveis nesse dispositivo privado até que você os exclua.

Versão da API 2015-06-23144

Page 153: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorUsar Serviços VPC endpoint

Usar Serviços Endpoint Amazon Virtual PrivateCloud com AWS Device Farm

Se usar o Amazon Virtual Private Cloud (Amazon VPC) para hospedar aplicativos privados no AWSRegião Oeste dos EUA (Oregon) (us-west-2), você poderá estabelecer uma conexão privada entre aVPC e o AWS Device Farm. Com essa conexão, você poderá usar o Device Farm para testar aplicativosprivados sem a exposição deles na internet pública. Para ativar sua conta AWS para usar esse recursocom dispositivos privados, entre em contato conosco.

O Amazon VPC é um serviço do AWS que você pode usar para executar os recursos do AWS em umarede virtual definida por você. Com a VPC, você tem controle sobre as configurações de rede, como ointervalo de endereços IP, sub-redes, tabelas de rotas e gateways de rede. Para conectar um recurso emsua VPC ao Device Farm, você pode usar o console do Amazon VPC para criar um serviço VPC endpoint.Esse serviço de endpoint permite a você fornecer o recurso em sua VPC ao Device Farm, por meio de umVPC endpoint do Device Farm. O serviço endpoint fornece uma conectividade confiável e dimensionável aDevice Farm sem a necessidade de um gateway da internet, de uma instância de conversão de endereçode rede (NAT) ou de uma conexão VPN. Para obter mais informações, consulte VPC Endpoint Services(Serviços VPC endpoint) no Guia do usuário da Amazon VPC.

Important

O recurso VPC Endpoint Device Farm ajuda você a conectar com segurança os serviços internosprivados da sua VPC à VPC pública do Device Farm usando conexões PrivateLink do AWS.Embora a conexão seja segura e privada, essa segurança depende da proteção das suascredenciais do AWS. Se as suas credenciais da AWS estiverem comprometidas, um invasorpoderá acessar ou expor os dados do serviço para todo o mundo.

Depois de criar um serviço de VPC endpoint (VPCE) no Amazon VPC, você pode usar o console DeviceFarm para criar uma configuração VPCE no Device Farm. Este tópico mostra como criar a conexãoAmazon VPC e a configuração VPCE em Device Farm.

Antes de começarAs informações a seguir são para usuários de Amazon VPC na região AWS Oeste dos EUA (Oregon), comuma sub-rede em cada uma das seguintes zonas de disponibilidade: us-west-2a, us-west-2b e us-west-2c.

Device Farm tem requisitos adicionais para os serviços VPC endpoint com que podem ser usados. Quandovocê criar e configurar um serviço de VPC endpoint para trabalhar com o Device Farm, certifique-se deescolher opções que atendem aos seguintes requisitos:

• As zonas de disponibilidade para o serviço devem incluir us-west-2a, us-west-2b e us-west-2c. As zonasde disponibilidade para um serviço do VPC endpoint são determinadas pelo Network Load Balancerassociado ao serviço de endpoint. Se o serviço do VPC endpoint não mostrar todas essas três zonas dedisponibilidade, você deve recriar o Network Load Balancer para ativar essas três zonas e, em seguida,reassociar o Network Load Balancer com o serviço de endpoint.

• A lista de permissões para o serviço endpoint deve incluir o nome de recurso da Amazon do VPCendpoint Device Farm (serviço ARN). Depois de criar seu serviço de endpoint, adicione o ARN doserviço de VPC endpoint Device Farm à sua lista de desbloqueio para conceder permissão ao DeviceFarm para acessar seu serviço de ponto de VPC endpoint. Para obter o ARN do serviço de VPCendpoint do Device Farm, entre em contato conosco.

Além disso, se configuração Require acceptance for endpoint (Exigir aceitação para o endpoint) estiverhabilitada, aceite manualmente cada solicitação de conexão que o Device Farm enviar ao serviço endpoint.Você pode desabilitar essa configuração ao criar o serviço do VPC endpoint. Você também pode alteraressa configuração para um serviço de endpoint existente. Para alterar essa configuração, escolha o

Versão da API 2015-06-23145

Page 154: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorEtapa 1: criar um Serviço VPC Endpoint

serviço endpoint no console do Amazon VPC, escolha Actions (Ações), em seguida, escolha Modifyendpoint acceptance setting (Modificar a configuração de aceitação do endpoint).

A próxima seção explica como criar um serviço de endpoint do Amazon VPC que atenda a essesrequisitos.

Etapa 1: criar um Serviço Endpoint Amazon VPCA primeira etapa para estabelecer uma conexão privada entre a VPC e o Device Farm é usar o consoleAmazon VPC para criar um serviço de endpoint na VPC.

1. Abra o console de Amazon VPC em https://console.aws.amazon.com/vpc/.2. Em Resources by Region (Recursos por região), escolha Endpoint Services (Serviços Endpoint).3. Escolha Create Endpoint Service (Criar Serviço Endpoint).4. Se você já tiver um Network Load Balancer que você deseja que o serviço do endpoint use, escolha-o

na lista e, em seguida, vá para a etapa 11.5. Ao lado de Associate Network Load Balancers (Associar Network Load Balancers), escolha Create

new Network Load Balancers (Criar novos Network Load Balancers).6. Escolha Create Load Balancer (Criar Load Balancer), em seguida, Network Load Balancer.7. Insira um nome e configurações do Network Load Balancer. Em Availability Zones (Zonas de

disponibilidade), habilite as zonas de disponibilidade do us-west-2a, us-west-2b e us-west-2c.8. Siga as instruções para configurar o Network Load Balancer.9. Repita as etapas de 1 a 3 para reiniciar o processo de criação de um serviço endpoint que usa o novo

Network Load Balancer.10. Escolha o Network Load Balancer que você criou para o serviço endpoint.11. EmIncluded Availability Zones (Zonas de disponibilidade incluídas), verifique se us-west-2a, us-

west-2b, e us-west-2c são exibidos na lista.12. Se você não deseja aceitar ou negar manualmente cada solicitação de conexão que é enviada para o

serviço endpoint, desmarque Require acceptance for endpoint (Exigir aceitação para o endpoint). Sevocê desmarcar essa caixa de seleção, o serviço endpoint aceitará automaticamente cada solicitaçãode conexão que receber.

13. Escolha Create service (Criar serviço).14. Escolha Close (Fechar).15. Na lista de serviços endpoint , escolha o serviço endpoint que você criou.16. Escolha Whitelisted principals (Principais da lista de permissões).17. Entre em contato conosco para obter o Nome de recurso da Amazon da VPC endpoint Device Farm

(ARN do serviço) para adicionar à lista de permissões do serviço endpoint e, em seguida, adicioneesse serviço ARN à lista de permissões do serviço.

18. Na guia Details (Detalhes) do serviço endpoint, anote o nome do serviço — service name (nome doserviço). Você precisará desse nome ao criar a configuração do VPC endpoint na próxima etapa.

Seu serviço VPC endpoint agora está pronto para uso com Device Farm.

Etapa 2: criar a configuração de um VPC Endpoint noDevice FarmDepois de criar um serviço endpoint do Amazon VPC, você pode criar uma configuração de endpoint(VPCE) Amazon VPC no Device Farm.

1. Faça login no console do Device Farm em https://console.aws.amazon.com/devicefarm.

Versão da API 2015-06-23146

Page 155: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorEtapa 3: criar uma execução de teste

2. Na página inicial, escolha Device Farm settings (Configurações do Device Farm).3. Escolha VPCE Configurations (Configurações de VPCE).4. Escolha Create a VPCE Configuration (Criar uma configuração de VPCE).5. Insira um nome para a configuração de VPCE.6. Insira o nome do serviço endpoint do Amazon VPC — service name (nome do serviço) — que

você anotou no console Amazon VPC. O nome é semelhante ao com.amazonaws.vpce.us-west-2.vpce-svc-id.

7. Insira o nome DNS do serviço para o aplicativo que você deseja testar (por exemplo,devicefarm.com). Não especifique http ou https antes do nome DNS do serviço.

O nome de domínio não é acessível pela internet pública. Além disso, o novo nome de domínio,que é mapeado para o serviço VPC endpoint, é gerada por Amazon Route 53 e está disponívelexclusivamente para você em sua Device Farm sessão.

8. Escolha Save VPCE Configuration (Salvar configuração de VPCE).

Etapa 3: criar uma execução de testeDepois de salvar a configuração de VPCE, você pode usá-la para criar execuções de teste ou sessõesde acesso remoto. Para obter mais informações, consulte Create a Test Run (Criar uma execução deteste) (p. 23) or Create a Remote Access Session (Criar uma sessão de acesso remoto) (p. 130).

Trabalhar com a Amazon Virtual Private Cloudentre regiões

Este tópico descreve como acessar um endpoint Amazon Virtual Private Cloud (Amazon VPC) em outraregião AWS. Se o AWS Device Farm e o seu VPC endpoint estiverem na mesma região da AWS, consultethe section called “Usar Serviços VPC endpoint” (p. 145).

Você pode conectar duas VPCs em regiões da AWS diferentes, desde que elas tenham blocos CIDRnão sobrepostos distintos. Isso garante que todos os endereços IP privados sejam exclusivos e permiteque todos os recursos nas VPCs se resolvam sem a necessidade de qualquer forma de conversão deendereços de rede. Para obter mais informações sobre notação CIDR, consulte RFC 4632.

Este tópico inclui um exemplo de cenário entre regiões em que Device Farm está localizado em AWSRegião Oeste dos EUA (Oregon) (us-west-2) e é chamada de VPC-1. A segunda VPC neste exemploestá em outra região da AWS e é conhecida como VPC-2.

Versão da API 2015-06-23147

Page 156: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorPré-requisitos

Exemplo entre regiões da VPC do Device Farm

Componente da VPC VPC-1 VPC-2

CIDR 10.0.0.0/16 172.16.0.0/16

Sub-rede pública 10.0.0.0/24 172.16.0.0/24

Sub-rede privada 10.0.1.0/24 172.16.1.0/24

endereço IP privado da instânciaVPN

10.0.0.5 172.16.0.5

endereço IP elástico da instânciaVPN

EIP-1 EIP-2

O diagrama a seguir mostra os componentes no exemplo e as interações entre esses componentes.

Tópicos• Pré-requisitos (p. 148)• Etapa 1: conectar o Device Farm a uma VPC na mesma região (p. 149)• Etapa 2: configurar um servidor OpenVPN na região do Device Farm (VPC-1) (p. 149)• Etapa 3: configurar uma OpenVPN Server em uma Segunda Região (VPC-2) (p. 150)• Etapa 4: configurar a VPC-1 (p. 151)• Etapa 5: configurar a VPC-2 (p. 152)• Etapa 6: criar uma execução de teste (p. 152)

Pré-requisitosEste exemplo requer o seguinte:

• Duas VPCs que são configuradas com sub-redes públicas e privadas.• Um endereço IP elástico associado a cada uma das sub-redes públicas VPC-1 e VPC-2.

Versão da API 2015-06-23148

Page 157: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorEtapa 1: conectar o Device Farm

a uma VPC na mesma região

Etapa 1: conectar o Device Farm a uma VPC namesma regiãoEstabeleça uma conexão privada, como uma conexão PrivateLink do AWS, entre Device Farm e umendpoint na sua VPC. Para obter mais informações, consulte the section called “Usar Serviços VPCendpoint” (p. 145).

Etapa 2: configurar um servidor OpenVPN na regiãodo Device Farm (VPC-1)1. Abra o console do Amazon VPC. Podem ser solicitadas suas credenciais da AWS.2. No VPC Dashboard (Painel da VPC), escolha Launch EC2 Instances (Iniciar instâncias do EC2).3. Na barra de navegação à esquerda, escolha AWS Marketplace.4. Procure OpenVPN Access Server (Servidor de acesso OpenVPN).

5. Escolha Select (Selecionar) para exibir a página de resumo OpenVPN e, em seguida, escolhaContinue (Continuar).

6. Escolha um tipo de instância do Amazon EC2.7. Escolha Next: Configure Instance Details (Próximo: configurar detalhes da instância). Em Subnet

(Sub-rede), escolha sua sub-rede pública.8. Aceite os padrões nestas páginas:

a. Escolha Next: Add Storage (Próximo: adicionar armazenamento).b. Selecione Next: Add Tags (Próximo: adicionar tags).c. Selecione Next: Configure Security Group (Próximo: configurar security group).

9. Confirme as configurações do grupo de segurança do OpenVPN:

• SSH – porta 22• Custom TCP Rule (Regra do TCP personalizada) – porta 943• HTTPS – porta 443• Custom UDP Rule (Regra do UDP personalizada) – porta 1194

Versão da API 2015-06-23149

Page 158: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorEtapa 3: configurar a VPC-2

10. Escolha Review and Launch (Rever e executar).11. Escolha qualquer tipo de mídia e Next (Avançar).12. Escolha Launch (Executar).13. Escolha ou crie uma instância e, em seguida, escolha Launch Instances (Iniciar instâncias).14. Pode demorar um pouco para a instância ser iniciada. Escolha View Instances (Exibir instâncias) para

rastrear o status da instância do Amazon EC2.15. Desative as verificações do endereço IP de origem e destino do tráfego da VPC:

a. Na página Instances (Instâncias) do EC2, em Actions (Ações), escolha Networking (Redes), emseguida, Change Source/Dest Check (Alterar verificação de origem/destino).

b. Escolha Yes, Disable (Sim, desabilitar).

Para configurar o servidor OpenVPN

1. Faça login na instância do Amazon EC2 do OpenVPN que usa SSH usando o nome de usuárioopenvpnas e o par de chaves definidos para essa instância. Para obter mais informações, consulteConnecting to Your Linux Instance Using SSH (Conectar-se à instância do Linux usando SSH).

2. O assistente de configuração do servidor de acesso do OpenVPN é executado automaticamentequando você faz login pela primeira vez. Use esse comando para reexecutá-lo:

sudo vpn-init --ec2

Etapa 3: configurar uma OpenVPN Server em umaSegunda Região (VPC-2)Use as informações na step 2 (etapa 2) (p. 149) para configurar um servidor OpenVPN na sub-redepública da segunda região (VPC-2).

Versão da API 2015-06-23150

Page 159: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorEtapa 4: configurar a VPC-1

Etapa 4: configurar a VPC-11. Abra o console do Amazon VPC. Podem ser solicitadas suas credenciais da AWS.2. Escolha Customer Gateways (Gateways do cliente), insira as configurações do gateway e crie o

gateway do cliente:

a. Escolha Create Customer Gateway (Criar gateway do cliente).b. Em Routing (Roteamento), escolha Static (Estático).c. Em Name (Nome), digite um nome para o gateway.d. Em IP Address (Endereço IP), digite o endereço IP público da instância do servidor de acesso do

OpenVPN.e. Escolha Create Customer Gateway (Criar gateway do cliente).f. Se concluído com sucesso, o ID do gateway do cliente será exibido. Escolha Close (Fechar).

3. Escolha Virtual Private Gateways (Gateways privados virtuais), em seguida, crie o gateway privadovirtual (VPG):

a. Em Name (Nome), digite um nome para o VPG.b. Escolha Create Virtual Private Gateway (Criar gateway privado virtual).

4. Escolha o VPG que você acabou de criar e anexe à VPC:

a. Em Actions (Ações), escolha Attach to VPC (Anexar à VPC).b. Em VPC, escolha a VPC.c. Em Routing Options (Opções de roteamento), escolha Static (Estático). Digite o endereço IP na

notação CIDR.d. Escolha Yes, Attach (Sim, anexar).

5. Escolha Route Tables (Tabelas de rotas) e, em seguida, defina as configurações de roteamento:

a. Escolha a tabela de roteamento correspondente à sub-rede.b. Na guia Route Propagation (Propagação da rota), escolha o identificador VGW para o gateway

privado virtual criado anteriormente e Add (Adicionar).6. Escolha conexões VPN e crie a conexão VPN:

a. Escolha Create VPN Connection (Criar conexão VPN).b. Em Virtual Private Gateway, escolha o gateway privado virtual.c. Em Customer Gateway ID (ID do gateway do cliente), escolha o gateway do cliente existente.d. Em Routing Options (Opções de roteamento), escolha Static (Estático). Em Static IP Addresses

(Endereços IP estáticos), digite o endereço IP elástico. Por exemplo, caso o endereço IP estáticoseja 10.12.34.56, a notação CIDR para o prefixo IP será 10.12.34.0/24.

e. Escolha Create VPN Connection (Criar conexão VPN).f. Se concluído com sucesso, o ID de uma conexão VPN será exibido. Escolha Close (Fechar).

7. Escolha Use Static Routing (Usar roteamento estático).8. Digite o endereço IP elástico do servidor VPN de acesso do OpenVPN. Escolha a conexão VPN e

anote os IPs do Túnel 1 e do Túnel 2 no console. Você precisará deles posteriormente neste módulo.9. Escolha Download Configuration (Fazer download da configuração).10. Use o SSH para se conectar à sua instância OpenVPN Access Server e, em seguida, abra o arquivo /

etc/ipsec.conf:

sudo /etc/ipsec.conf

11. Edite o valor rightsubnet= a fim de apontar para a máscara CIDR da VPC.Versão da API 2015-06-23151

Page 160: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorEtapa 5: configurar a VPC-2

12. Nas seções VPC-CUST-GW1 e VPC-CUST-GW2, adicione os IPs do Túnel 1 e do Túnel 2 e salve oarquivo.

13. Abra o arquivo /etc/ipsec.secrets e, em seguida, insira as chaves pré-compartilhadas doarquivo de configuração da VPC-1 que você baixou anteriormente.

14. Para iniciar a conexão VPN, use o comando ipsec start.

Você pode ver o status das entradas de conexão VPN no console Amazon VPC.

Etapa 5: configurar a VPC-2Use as informações na step 4 (etapa 4) (p. 151) para configurar a VPC-2. Configure as tabelas deroteamento em ambas as VPCs a fim de enviar tráfego para a outra VPC por meio de instâncias do EC2da VPC.

Note

Talvez você precise configurar várias tabelas de rotas para as sub-redes públicas e privadas,dependendo de entre quais sub-redes você deseja rotear tráfego.

Para obter mais informações sobre esse caso de uso com uma implementação de VPN alternativa,consulte Connecting Multiple VPCs with EC2 Instances — SSL) (Conectar várias VPCs com instâncias doEC2 — SSL).

Etapa 6: criar uma execução de testeVocê pode criar execuções de teste que usam a configuração VPCE descrita na step 1 (etapa1) (p. 149). Para obter mais informações, consulte Create a Test Run (Criar uma execução deteste) (p. 23) ou Create a Remote Access Session (Criar uma sessão de acesso remoto) (p. 130).

Versão da API 2015-06-23152

Page 161: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorFrotas de dispositivo público

Limpar após testes no AWS DeviceFarm

As seções a seguir fornecem informações sobre as etapas de que a AWS precisará para limpar ou destruirdispositivos depois que você tiver usado o Device Farm.

Frotas de dispositivo públicoDepois que a execução do teste é concluída, o Device Farm realiza uma série de tarefas de limpezaem cada dispositivo na frota de dispositivos públicos, inclusive a desinstalação do aplicativo. Se nãoconseguirmos verificar a desinstalação do aplicativo ou qualquer uma das outras etapas de limpeza, odispositivo receberá uma redefinição de fábrica antes de ser recolocado em uso.

Note

É possível que a persistência dos dados entre as sessões em alguns casos, especialmente sevocê usar o sistema de dispositivo fora do contexto do seu aplicativo. Por esse motivo e comoo Device Farm captura vídeo e registros de atividades acontecendo durante o uso de cadadispositivo, recomendamos que você não especifique informações confidenciais (por exemplo,conta do Google ou ID da Apple), informações pessoais e outros detalhes confidenciais desegurança durante o teste automatizado e as sessões de acesso remoto.

Dispositivos privadosApós a expiração ou o encerramento do contrato de dispositivos privados, o dispositivo é removido douso e destruído de maneira segura de acordo com políticas de destruição da AWS. Para obter maisinformações, consulte Trabalhar com dispositivos privados no AWS Device Farm (p. 134).

Versão da API 2015-06-23153

Page 162: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorInformações sobre o AWS Device Farm no CloudTrail

Registro em log de chamadas da APIdo AWS Device Farm com o AWSCloudTrail

O AWS Device Farm é integrado ao AWS CloudTrail, um serviço que fornece um registro das açõesexecutadas por um usuário, uma função ou um serviço da AWS no AWS Device Farm. O CloudTrailcaptura todas as chamadas de API para o AWS Device Farm como eventos. As chamadas capturadasincluem as chamadas do console do AWS Device Farm e as chamadas de código para as operações daAPI do AWS Device Farm. Se você criar uma trilha, poderá habilitar a entrega contínua de eventos doCloudTrail para um bucket do Amazon S3, incluindo eventos para o AWS Device Farm. Se não configuraruma trilha, você ainda poderá visualizar os eventos mais recentes no console do CloudTrail em Eventhistory. Com as informações coletadas pelo CloudTrail, você pode determinar a solicitação feita para oAWS Device Farm, o endereço IP do qual a solicitação foi feita, quem fez a solicitação, quando ela foi feitae detalhes adicionais.

Para saber mais sobre CloudTrail, consulte o AWS CloudTrail User Guide.

Informações sobre o AWS Device Farm noCloudTrail

O CloudTrail está habilitado na sua conta da AWS ao criá-la. Quando uma atividade ocorrer no AWSDevice Farm, ela será registrada em um evento do CloudTrail com outros eventos de serviços da AWSem Event history (Histórico de eventos). Você pode visualizar, pesquisar e fazer download de eventosrecentes em sua conta da AWS. Para obter mais informações, consulte Visualizar eventos com o históricode eventos do CloudTrail.

Para obter um registro contínuo de eventos em sua conta da AWS, incluindo eventos para o AWS DeviceFarm, crie uma trilha. Uma trilha permite CloudTrail para fornecer arquivos de log a um bucket do AmazonS3. Por padrão, quando você cria uma trilha no console, ela é aplicada a todas as regiões da AWS. A trilharegistra eventos de todas as regiões na partição da AWS e fornece os arquivos de log para o bucket doAmazon S3 que você especificar. Além disso, é possível configurar outros serviços da AWS para analisarmais profundamente e agir sobre os dados de evento coletados nos logs do CloudTrail. Para obter maisinformações, consulte:

• Visão geral da criação de uma trilha• CloudTrail Serviços compatíveis e integrações do• Configuração de notificações do Amazon SNS para o CloudTrail• Recebimento de arquivos de log do CloudTrail de várias regiões e Recebimento de arquivos de log do

CloudTrail de várias contas

Quando o registro em log do CloudTrail está habilitado na conta da AWS, as chamadas da API feitas paraações do Device Farm são acompanhadas em arquivos de log. Os registros do Device Farm são gravadosjuntamente com outros registros de serviços da AWS em um arquivo de log. O CloudTrail determinaquando criar e gravar em um novo arquivo de acordo com o período e o tamanho do arquivo.

Versão da API 2015-06-23154

Page 163: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorNoções básicas das entradas dos

arquivos de log do AWS Device Farm

Todas as ações do Device Farm são registradas e documentadas na Referência do AWS CLI (p. 162)e na Referência de API (p. 164). Por exemplo, as chamadas para criar um novo projeto ou executar noDevice Farm geram entradas em arquivos de log do CloudTrail.

Cada entrada de log ou evento contém informações sobre quem gerou a solicitação. As informações deidentidade ajudam a determinar:

• Se a solicitação foi feita com credenciais de usuário da raiz ou do AWS Identity and Access Management(IAM).

• Se a solicitação foi feita com credenciais de segurança temporárias de uma função ou de um usuáriofederado.

• Se a solicitação foi feita por outro serviço da AWS.

Para obter mais informações, consulte Elemento userIdentity do CloudTrail.

Noções básicas das entradas dos arquivos de logdo AWS Device Farm

Uma trilha é uma configuração que permite a entrega de eventos como arquivos de log em um bucketdo Amazon S3 que você especificar. Os arquivos de log do CloudTrail contêm uma ou mais entradasde log. Um evento representa uma única solicitação de qualquer origem e inclui informações sobre aação solicitada, a data e hora da ação, parâmetros de solicitação, e assim por diante. arquivos de log doCloudTrail não são um rastreamento de pilha ordenada das chamadas da API pública. Assim, elas não sãoexibidas em nenhuma ordem específica.

O seguinte exemplo mostra uma entrada de log do CloudTrail que demonstra a ação ListRuns do DeviceFarm:

{ "Records": [ { "eventVersion": "1.03", "userIdentity": { "type": "Root", "principalId": "AKIAI44QH8DHBEXAMPLE", "arn": "arn:aws:iam::123456789012:root", "accountId": "123456789012", "accessKeyId": "AKIAIOSFODNN7EXAMPLE", "sessionContext": { "attributes": { "mfaAuthenticated": "false", "creationDate": "2015-07-08T21:13:35Z" } } }, "eventTime":"2015-07-09T00:51:22Z", "eventSource": "devicefarm.amazonaws.com", "eventName":"ListRuns", "awsRegion":"us-west-2", "sourceIPAddress":"203.0.113.11", "userAgent":"example-user-agent-string", "requestParameters": { "arn":"arn:aws:devicefarm:us-west-2:123456789012:project:a9129b8c-df6b-4cdd-8009-40a25EXAMPLE"}, "responseElements": { "runs": [ {

Versão da API 2015-06-23155

Page 164: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorNoções básicas das entradas dos

arquivos de log do AWS Device Farm

"created": "Jul 8, 2015 11:26:12 PM", "name": "example.apk", "completedJobs": 2, "arn": "arn:aws:devicefarm:us-west-2:123456789012:run:a9129b8c-df6b-4cdd-8009-40a256aEXAMPLE/1452d105-e354-4e53-99d8-6c993EXAMPLE", "counters": { "stopped": 0, "warned": 0, "failed": 0, "passed": 4, "skipped": 0, "total": 4, "errored": 0 }, "type": "BUILTIN_FUZZ", "status": "RUNNING", "totalJobs": 3, "platform": "ANDROID_APP", "result": "PENDING" }, ... additional entries ... ] } } } ]}

Versão da API 2015-06-23156

Page 165: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorConfigurar o CodePipeline para

usar seus testes do Device Farm

Usar o AWS Device Farm em umestágio de teste do CodePipeline

Você pode usar o AWS CodePipeline para incorporar testes de aplicativos para dispositivos móveisconfigurados no Device Farm em um pipeline de liberação automatizada gerenciado pela AWS. Você podeconfigurar o pipeline para executar testes sob demanda, em uma programação, ou como parte de um fluxode integração contínua.

O diagrama a seguir mostra o fluxo de integração contínua em que um aplicativo Android é criado etestado cada vez que um envio é confirmado para o repositório. Para criar a configuração desse pipeline,consulte o Tutorial: Criar e testar um aplicativo Android quando enviado ao GitHub.

1. Configure 2. Adicionardefinições

3. Push 4. Compilare testar

5. Relatório

Configurarrecursos

do pipeline

Adicionardefinições de

criação e testeao seu pacote

Enviar umpacote para oseu repositório

Compilaçãoe teste de

aplicativo deartefato de saídade compilação

iniciadaautomaticamente

Visualizarresultados do teste

Para saber como configurar um pipeline que testa continuamente um aplicativo compilado (como umarquivo iOS .ipa ou arquivo Android .apk) como sua origem, consulte Tutorial: Testar um aplicativo iOStoda vez que você carregar um arquivo .ipa em um bucket do Amazon S3.

Configurar o CodePipeline para usar seus testes doDevice Farm

Nestas etapas, suponhamos que você tenha configurado um projeto do Device Farm (p. 20) e criado umpipeline. O pipeline deve ser configurado com um estágio de teste que recebe um artefato de entrada quecontém a definição do teste e os arquivos do pacote do aplicativo compilado. O artefato de entrada doestágio de teste pode ser o artefato de saída de um estágio de origem ou de compilação configurado nopipeline.

Versão da API 2015-06-23157

Page 166: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorConfigurar o CodePipeline para

usar seus testes do Device Farm

Para configurar uma execução de teste do Device Farm como uma ação de teste do CodePipeline

1. Faça login no Console de gerenciamento da AWS e abra o console do CodePipeline em https://console.aws.amazon.com/codepipeline/.

2. Selecione o pipeline para a versão de seu aplicativo.3. No painel do estágio de teste, selecione o ícone de lápis e, em seguida, selecione Action (Ação).4. No painel Add action (Adicionar ação), em Action category (Categoria da ação), escolha Test (Teste).5. Em Action name (Nome da ação), insira um nome.6. Em Test provider (Provedor do teste), escolha AWS Device Farm.

7. Em Project name (Nome do projeto), selecione o projeto existente do Device Farm ou selecioneCreate a new Project (Criar um novo projeto).

8. Em Device pool (Grupo de dispositivos), selecione seu grupo de dispositivos existente ou selecioneCreate a new device pool (Criar um novo grupo de dispositivos). Se você criar um grupo dedispositivos, será necessário selecionar um conjunto de dispositivos de teste.

9. Em App type (Tipo de aplicativo), selecione a plataforma para seu aplicativo.

Versão da API 2015-06-23158

Page 167: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorConfigurar o CodePipeline para

usar seus testes do Device Farm

10. Em App file path (Caminho para o arquivo do aplicativo), insira o caminho do pacote do aplicativocompilado. O caminho é relativo à raiz do artefato de entrada para o teste.

11. Em Test type (Tipo de teste), siga um destes procedimentos:

• Se você estiver usando um dos testes integrados do Device Farm, selecione o tipo de testeconfigurado em seu projeto do Device Farm.

• Se você não estiver usando um dos testes integrados do Device Farm no Test file path (Caminhopara o arquivo de teste), insira o caminho do arquivo de definição do teste. O caminho é relativo àraiz do artefato de entrada para o teste.

Versão da API 2015-06-23159

Page 168: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorConfigurar o CodePipeline para

usar seus testes do Device Farm

12. Nos campos restantes, forneça a configuração que seja apropriada para seu teste e tipo de aplicativo.13. (Opcional) Em Advanced (Avançado), forneça uma configuração detalhada para a execução do teste.

14. Em Input artifacts (Artefatos de entrada), selecione o artefato de entrada que corresponde ao artefatode saída do estágio que vem antes do estágio de teste no pipeline.

Versão da API 2015-06-23160

Page 169: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorConfigurar o CodePipeline para

usar seus testes do Device Farm

No console do CodePipeline, você pode encontrar o nome do artefato de saída para cada estágiopassando o mouse sobre o ícone de informações no diagrama do pipeline. Se o pipeline testa oaplicativo diretamente no estágio Source (Origem), selecione MyApp. Se o pipeline inclui um estágiode Build (Compilação), selecione MyAppBuild.

15. Na parte inferior do painel, selecione Add Action (Adicionar ação).16. No painel do CodePipeline, selecione Save pipeline change (Salvar alteração do pipeline) e, em

seguida, Save change (Salvar alteração).17. Para enviar suas alterações e iniciar uma compilação do pipeline, selecione Release change (Liberar

alteração) e, em seguida, Release (Liberar).

Versão da API 2015-06-23161

Page 170: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedor

Referência de AWS CLI do AWSDevice Farm

Para usar a AWS Command Line Interface (AWS CLI) a fim de executar comandos do Device Farm,consulte Referência da AWS CLI para o AWS Device Farm.

Para obter informações gerais sobre a AWS CLI, consulte Guia do usuário do AWS Command LineInterface e AWS CLI Command Reference.

Versão da API 2015-06-23162

Page 171: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedor

Referência do Windows PowerShellpara o AWS Device Farm

Para usar o Windows PowerShell a fim de executar comandos do Device Farm, consulte Referência decmdlet do Device Farm na Referência de cmdlet do AWS Tools para Windows PowerShell. Para obter maisinformações, consulte Configurar as ferramentas da AWS para o Windows PowerShell no Guia do usuáriodo AWS Tools para Windows PowerShell

Versão da API 2015-06-23163

Page 172: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedor

Referência de API para o AWSDevice Farm

Usar HTTP para chamar APIs do Device Farm Para mais informações, consulte o Referência de API doAWS Device Farm.

Versão da API 2015-06-23164

Page 173: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorAplicativos Android

Solução de problemas de erros doDevice Farm

Nesta seção, você encontrará mensagens de erro e procedimentos para ajudá-lo a corrigir problemascomuns com o Device Farm.

Tópicos• Solução de problemas de testes de aplicativos Android no AWS Device Farm (p. 165)• Solução de problemas de testes do Appium Java JUnit no AWS Device Farm (p. 169)• Solução de problemas dos testes do Appium Java JUnit para aplicativos web no AWS Device

Farm (p. 175)• Solução de problemas de testes do Appium Java TestNG no AWS Device Farm (p. 181)• Solução de problemas do Appium Java TestNG para aplicativos web no AWS Device Farm (p. 185)• Solução de problemas de testes do Appium Python no AWS Device Farm (p. 189)• Solução de problemas dos testes de aplicativos web do Appium Python no AWS Device

Farm (p. 196)• Solução de problemas de testes do Calabash no AWS Device Farm (p. 203)• Solução de problemas de testes de instrumentação no AWS Device Farm (p. 209)• Solução de problemas de testes de aplicativos iOS no AWS Device Farm (p. 213)• Solução de problemas de testes do UI Automator no AWS Device Farm (p. 221)• Solução de problemas de testes do XCTest no AWS Device Farm (p. 222)• Solução de problemas de testes do XCTest UI no AWS Device Farm (p. 225)

Solução de problemas de testes de aplicativosAndroid no AWS Device Farm

O tópico a seguir lista mensagens de erro que ocorrem durante o upload de testes de aplicativos Android erecomenda soluções para resolver cada erro.

Note

As instruções a seguir baseiam-se no Linux x86_64 e Mac.

ANDROID_APP_UNZIP_FAILEDSe você visualizar a mensagem a seguir, siga estas etapas para corrigir o problema.

Warning

Não conseguimos abrir seu aplicativo. Verifique se o arquivo é válido e tente novamente.

Verifique se você consegue descompactar o pacote de aplicativos sem erros. No exemplo a seguir, o nomedo pacote é app-debug.apk.

1. Copie o pacote de testes para seu diretório de trabalho e execute o comando a seguir:

Versão da API 2015-06-23165

Page 174: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorANDROID_APP_AAPT_DEBUG_BADGING_FAILED

$ unzip app-debug.apk

2. Assim que conseguir descompactar o pacote, você poderá encontrar a estrutura de árvore do diretóriode trabalho executando o seguinte comando:

$ tree .

Um pacote de aplicativos Android válido deve gerar um resultado semelhante ao seguinte:

.|-- AndroidManifest.xml|-- classes.dex|-- resources.arsc|-- assets (directory)|-- res (directory)`-- META-INF (directory)

Para obter mais informações, consulte Como trabalhar com testes do Android no AWS DeviceFarm (p. 53).

ANDROID_APP_AAPT_DEBUG_BADGING_FAILEDSe você visualizar a mensagem a seguir, siga estas etapas para corrigir o problema.

Warning

Não foi possível extrair informações sobre seu aplicativo. Para verificar se o aplicativo é válido,execute o comando aapt debug badging <path to your test package> e tentenovamente se o comando não imprimir nenhum erro.

Durante o processo de validação do upload, o AWS Device Farm analisa informações da saída de umcomando aapt debug badging <path to your package>.

Verifique se você consegue executar esse comando com êxito em seu aplicativo Android. No exemplo aseguir, o nome do pacote é app-debug.apk.

• Copie o pacote do aplicativo para seu diretório de trabalho e, em seguida, execute o comando:

$ aapt debug badging app-debug.apk

Um pacote de aplicativos Android válido deve gerar um resultado semelhante ao seguinte:

package: name='com.amazon.aws.adf.android.referenceapp' versionCode='1' versionName='1.0' platformBuildVersionName='5.1.1-1819727'sdkVersion:'9'application-label:'ReferenceApp'application: label='ReferenceApp' icon='res/mipmap-mdpi-v4/ic_launcher.png'application-debuggablelaunchable-activity: name='com.amazon.aws.adf.android.referenceapp.Activities.MainActivity' label='ReferenceApp' icon=''uses-feature: name='android.hardware.bluetooth'uses-implied-feature: name='android.hardware.bluetooth' reason='requested android.permission.BLUETOOTH permission, and targetSdkVersion > 4'mainsupports-screens: 'small' 'normal' 'large' 'xlarge'supports-any-density: 'true'

Versão da API 2015-06-23166

Page 175: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorANDROID_APP_PACKAGE_NAME_VALUE_MISSING

locales: '--_--'densities: '160' '213' '240' '320' '480' '640'

Para obter mais informações, consulte Como trabalhar com testes do Android no AWS DeviceFarm (p. 53).

ANDROID_APP_PACKAGE_NAME_VALUE_MISSINGSe você visualizar a mensagem a seguir, siga estas etapas para corrigir o problema.

Warning

Não foi possível encontrar o valor do nome do pacote em seu aplicativo. Para verificar se oaplicativo é válido, execute o comando aapt debug badging <path to your testpackage> e tente novamente depois de encontrar o valor no nome do pacote subjacente àpalavra-chave "package: name".

Durante o processo de validação do upload, o AWS Device Farm analisa o valor do nome do pacote dasaída de um comando aapt debug badging <path to your package>.

Verifique se você consegue executar esse comando com êxito em seu aplicativo Android e encontrar ovalor do nome do pacote. No exemplo a seguir, o nome do pacote é app-debug.apk.

• Copie o pacote de aplicativos para seu diretório de trabalho e execute o seguinte comando:

$ aapt debug badging app-debug.apk | grep "package: name="

Um pacote de aplicativos Android válido deve gerar um resultado semelhante ao seguinte:

package: name='com.amazon.aws.adf.android.referenceapp' versionCode='1' versionName='1.0' platformBuildVersionName='5.1.1-1819727'

Para obter mais informações, consulte Como trabalhar com testes do Android no AWS DeviceFarm (p. 53).

ANDROID_APP_SDK_VERSION_VALUE_MISSINGSe você visualizar a mensagem a seguir, siga estas etapas para corrigir o problema.

Warning

Não foi possível encontrar o valor da versão do SDK em seu aplicativo. Para verificar se oaplicativo é válido, execute o comando aapt debug badging <path to your testpackage> e tente novamente depois de encontrar o valor de versão do SDK subjacente àpalavra-chave sdkVersion.

Durante o processo de validação do upload, o AWS Device Farm analisa o valor da versão do SDK dasaída de um comando aapt debug badging <path to your package>.

Verifique se você consegue executar esse comando com êxito em seu aplicativo Android e encontrar ovalor do nome do pacote. No exemplo a seguir, o nome do pacote é app-debug.apk.

• Copie o pacote de aplicativos para seu diretório de trabalho e execute o seguinte comando:

$ aapt debug badging app-debug.apk | grep "sdkVersion"

Versão da API 2015-06-23167

Page 176: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorANDROID_APP_AAPT_DUMP_XMLTREE_FAILED

Um pacote de aplicativos Android válido deve gerar um resultado semelhante ao seguinte:

sdkVersion:'9'

Para obter mais informações, consulte Como trabalhar com testes do Android no AWS DeviceFarm (p. 53).

ANDROID_APP_AAPT_DUMP_XMLTREE_FAILEDSe você visualizar a mensagem a seguir, siga estas etapas para corrigir o problema.

Warning

Não foi possível encontrar o AndroidManifest.xml válido em seu aplicativo. Para verificar se opacote de testes é válido, execute o comando aapt dump xmltree <path to your testpackage> AndroidManifest.xml e tente novamente se o comando não imprimir nenhumerro.

Durante o processo de validação do upload, o AWS Device Farm analisa informações da árvore de análiseXML para um arquivo XML contido no pacote usando o comando aapt dump xmltree <path toyour package> AndroidManifest.xml.

Verifique se você consegue executar esse comando com êxito em seu aplicativo Android. No exemplo aseguir, o nome do pacote é app-debug.apk.

• Copie o pacote de aplicativos para seu diretório de trabalho e execute o seguinte comando:

$ aapt dump xmltree app-debug.apk. AndroidManifest.xml

Um pacote de aplicativos Android válido deve gerar um resultado semelhante ao seguinte:

N: android=http://schemas.android.com/apk/res/android E: manifest (line=2) A: android:versionCode(0x0101021b)=(type 0x10)0x1 A: android:versionName(0x0101021c)="1.0" (Raw: "1.0") A: package="com.amazon.aws.adf.android.referenceapp" (Raw: "com.amazon.aws.adf.android.referenceapp") A: platformBuildVersionCode=(type 0x10)0x16 (Raw: "22") A: platformBuildVersionName="5.1.1-1819727" (Raw: "5.1.1-1819727") E: uses-sdk (line=7) A: android:minSdkVersion(0x0101020c)=(type 0x10)0x9 A: android:targetSdkVersion(0x01010270)=(type 0x10)0x16 E: uses-permission (line=11) A: android:name(0x01010003)="android.permission.INTERNET" (Raw: "android.permission.INTERNET") E: uses-permission (line=12) A: android:name(0x01010003)="android.permission.CAMERA" (Raw: "android.permission.CAMERA")

Para obter mais informações, consulte Como trabalhar com testes do Android no AWS DeviceFarm (p. 53).

ANDROID_APP_DEVICE_ADMIN_PERMISSIONSSe você visualizar a mensagem a seguir, siga estas etapas para corrigir o problema.

Versão da API 2015-06-23168

Page 177: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorAppium Java JUnit

Warning

Descobrimos que seu aplicativo requer permissões de administrador do dispositivo. Verifique seas permissões não são necessárias executando o comando aapt dump xmltree <path toyour test package> AndroidManifest.xmle tente novamente assim que confirmar que asaída não contém a palavra-chave android.permission.BIND_DEVICE_ADMIN.

Durante o processo de validação do upload, o AWS Device Farm analisa informações de permissão daárvore de análise XML para um arquivo xml contido no pacote usando o comando aapt dump xmltree<path to your package> AndroidManifest.xml.

Descobrimos que seu aplicativo não requer permissão de administrador do dispositivo. No exemplo aseguir, o nome do pacote é app-debug.apk.

• Copie o pacote de aplicativos para seu diretório de trabalho e execute o seguinte comando:

$ aapt dump xmltree app-debug.apk AndroidManifest.xml

Você provavelmente chegará a um resultado como o seguinte:

N: android=http://schemas.android.com/apk/res/android E: manifest (line=2) A: android:versionCode(0x0101021b)=(type 0x10)0x1 A: android:versionName(0x0101021c)="1.0" (Raw: "1.0") A: package="com.amazonaws.devicefarm.android.referenceapp" (Raw: "com.amazonaws.devicefarm.android.referenceapp") A: platformBuildVersionCode=(type 0x10)0x16 (Raw: "22") A: platformBuildVersionName="5.1.1-1819727" (Raw: "5.1.1-1819727") E: uses-sdk (line=7) A: android:minSdkVersion(0x0101020c)=(type 0x10)0xa A: android:targetSdkVersion(0x01010270)=(type 0x10)0x16 E: uses-permission (line=11) A: android:name(0x01010003)="android.permission.INTERNET" (Raw: "android.permission.INTERNET") E: uses-permission (line=12) A: android:name(0x01010003)="android.permission.CAMERA" (Raw: "android.permission.CAMERA") ……

Se o aplicativo Android for válido, a saída não deverá conter o seguinte: A:android:name(0x01010003)="android.permission.BIND_DEVICE_ADMIN" (Raw:"android.permission.BIND_DEVICE_ADMIN").

Para obter mais informações, consulte Como trabalhar com testes do Android no AWS DeviceFarm (p. 53).

Solução de problemas de testes do Appium JavaJUnit no AWS Device Farm

O tópico a seguir lista mensagens de erro que ocorrem durante o upload de testes do Appium Java JUnit erecomenda soluções para resolver cada erro.

Note

As instruções a seguir baseiam-se no Linux x86_64 e Mac.

Versão da API 2015-06-23169

Page 178: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorAPPIUM_JAVA_JUNIT_TEST_PACKAGE_PACKAGE_UNZIP_FAILED

APPIUM_JAVA_JUNIT_TEST_PACKAGE_PACKAGE_UNZIP_FAILEDSe você visualizar a mensagem a seguir, siga estas etapas para corrigir o problema.

Warning

Não conseguimos abrir seu arquivo de teste ZIP. Verifique se o arquivo é válido e tentenovamente.

Verifique se você consegue descompactar o pacote de testes sem erros. No exemplo a seguir, o nome dopacote é zip-with-dependencies.zip.

1. Copie o pacote de testes para seu diretório de trabalho e execute o comando a seguir:

$ unzip zip-with-dependencies.zip

2. Assim que conseguir descompactar o pacote, você poderá encontrar a estrutura de árvore do diretóriode trabalho executando o seguinte comando:

$ tree .

Um pacote válido do Appium Java JUnit deve gerar um resultado semelhante ao seguinte:

.|— acme-android-appium-1.0-SNAPSHOT.jar (this is the JAR containing everything built from the ./src/main directory)|— acme-android-appium-1.0-SNAPSHOT-tests.jar (this is the JAR containing everything built from the ./src/test directory)|— zip-with-dependencies.zip (this .zip file contains all of the items)`— dependency-jars (this is the directory that contains all of your dependencies, built as JAR files) |— com.some-dependency.bar-4.1.jar |— com.another-dependency.thing-1.0.jar |— joda-time-2.7.jar `— log4j-1.2.14.jar

Para obter mais informações, consulte Appium Java JUnit (p. 58) ou Appium Java JUnit (p. 81).

APPIUM_JAVA_JUNIT_TEST_PACKAGE_DEPENDENCY_DIR_MISSINGSe você visualizar a mensagem a seguir, siga estas etapas para corrigir o problema.

Warning

Não foi possível encontrar o diretório dependency-jars em seu pacote de testes. Descompacteo pacote de testes, verifique se o diretório dependency-jars encontra-se no pacote e tentenovamente.

No exemplo a seguir, o nome do pacote é zip-with-dependencies.zip.

1. Copie o pacote de testes para seu diretório de trabalho e execute o comando a seguir:

$ unzip zip-with-dependencies.zip

2. Assim que conseguir descompactar o pacote, você poderá encontrar a estrutura de árvore do diretóriode trabalho executando o seguinte comando:

Versão da API 2015-06-23170

Page 179: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorAPPIUM_JAVA_JUNIT_TEST_PACKAGE_JAR_MISSING_IN_DEPENDENCY_DIR

$ tree .

Se o pacote do Appium Java JUnit for válido, você encontrará o diretório dependency-jars nodiretório de trabalho:

.|— acme-android-appium-1.0-SNAPSHOT.jar (this is the JAR containing everything built from the ./src/main directory)|— acme-android-appium-1.0-SNAPSHOT-tests.jar (this is the JAR containing everything built from the ./src/test directory)|— zip-with-dependencies.zip (this .zip file contains all of the items)`— dependency-jars (this is the directory that contains all of your dependencies, built as JAR files) |— com.some-dependency.bar-4.1.jar |— com.another-dependency.thing-1.0.jar |— joda-time-2.7.jar `— log4j-1.2.14.jar

Para obter mais informações, consulte Appium Java JUnit (p. 58) ou Appium Java JUnit (p. 81).

APPIUM_JAVA_JUNIT_TEST_PACKAGE_JAR_MISSING_IN_DEPENDENCY_DIRSe você visualizar a mensagem a seguir, siga estas etapas para corrigir o problema.

Warning

Não foi possível localizar um arquivo JAR na árvore do diretório dependency-jars. Descompacteo pacote de testes e abra o diretório dependency-jars, verifique se pelo menos um arquivo JARencontra-se no diretório e tente novamente.

No exemplo a seguir, o nome do pacote é zip-with-dependencies.zip.

1. Copie o pacote de testes para seu diretório de trabalho e execute o comando a seguir:

$ unzip zip-with-dependencies.zip

2. Assim que conseguir descompactar o pacote, você poderá encontrar a estrutura de árvore do diretóriode trabalho executando o seguinte comando:

$ tree .

Se o pacote do Appium Java JUnit for válido, você encontrará pelo menos um arquivo jar no diretóriodependency-jars:

.|— acme-android-appium-1.0-SNAPSHOT.jar (this is the JAR containing everything built from the ./src/main directory)|— acme-android-appium-1.0-SNAPSHOT-tests.jar (this is the JAR containing everything built from the ./src/test directory)|— zip-with-dependencies.zip (this .zip file contains all of the items)`— dependency-jars (this is the directory that contains all of your dependencies, built as JAR files) |— com.some-dependency.bar-4.1.jar |— com.another-dependency.thing-1.0.jar |— joda-time-2.7.jar `— log4j-1.2.14.jar

Versão da API 2015-06-23171

Page 180: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorAPPIUM_JAVA_JUNIT_TEST_PACKAGE_TESTS_JAR_FILE_MISSING

Para obter mais informações, consulte Appium Java JUnit (p. 58) ou Appium Java JUnit (p. 81).

APPIUM_JAVA_JUNIT_TEST_PACKAGE_TESTS_JAR_FILE_MISSINGSe você visualizar a mensagem a seguir, siga estas etapas para corrigir o problema.

Warning

Não foi possível encontrar um arquivo * -tests.jar em seu pacote de testes. Descompacte opacote de testes, verifique se pelo menos um arquivo * -tests.jar encontra-se no pacote e tentenovamente.

No exemplo a seguir, o nome do pacote é zip-with-dependencies.zip.

1. Copie o pacote de testes para seu diretório de trabalho e execute o comando a seguir:

$ unzip zip-with-dependencies.zip

2. Assim que conseguir descompactar o pacote, você poderá encontrar a estrutura de árvore do diretóriode trabalho executando o seguinte comando:

$ tree .

Se o pacote do Appium Java JUnit for válido, você encontrará pelo menos um arquivo jar semelhantea acme-android-appium-1.0-SNAPSHOT-tests.jar em nosso exemplo. O nome do arquivopode ser diferente, mas deve terminar com –tests.jar.

.|— acme-android-appium-1.0-SNAPSHOT.jar (this is the JAR containing everything built from the ./src/main directory)|— acme-android-appium-1.0-SNAPSHOT-tests.jar (this is the JAR containing everything built from the ./src/test directory)|— zip-with-dependencies.zip (this .zip file contains all of the items)`— dependency-jars (this is the directory that contains all of your dependencies, built as JAR files) |— com.some-dependency.bar-4.1.jar |— com.another-dependency.thing-1.0.jar |— joda-time-2.7.jar `— log4j-1.2.14.jar

Para obter mais informações, consulte Appium Java JUnit (p. 58) ou Appium Java JUnit (p. 81).

APPIUM_JAVA_JUNIT_TEST_PACKAGE_CLASS_FILE_MISSING_IN_TESTS_JARSe você visualizar a mensagem a seguir, siga estas etapas para corrigir o problema.

Warning

Não foi possível localizar um arquivo de classe no arquivo de testes JAR. Descompacte o pacotede testes e o arquivo de testes JAR, verifique se pelo menos um arquivo de classe encontra-se noarquivo JAR e tente novamente.

No exemplo a seguir, o nome do pacote é zip-with-dependencies.zip.

1. Copie o pacote de testes para seu diretório de trabalho e execute o comando a seguir:

Versão da API 2015-06-23172

Page 181: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorAPPIUM_JAVA_JUNIT_TEST_PACKAGE_JUNIT_VERSION_VALUE_UNKNOWN

$ unzip zip-with-dependencies.zip

2. Assim que conseguir descompactar o pacote, você poderá encontrar a estrutura de árvore do diretóriode trabalho executando o seguinte comando:

$ tree .

Você deve encontrar pelo menos um arquivo jar semelhante a acme-android-appium-1.0-SNAPSHOT-tests.jar em nosso exemplo. O nome do arquivo pode ser diferente, mas deveterminar com –tests.jar.

.|— acme-android-appium-1.0-SNAPSHOT.jar (this is the JAR containing everything built from the ./src/main directory)|— acme-android-appium-1.0-SNAPSHOT-tests.jar (this is the JAR containing everything built from the ./src/test directory)|— zip-with-dependencies.zip (this .zip file contains all of the items)`— dependency-jars (this is the directory that contains all of your dependencies, built as JAR files) |— com.some-dependency.bar-4.1.jar |— com.another-dependency.thing-1.0.jar |— joda-time-2.7.jar `— log4j-1.2.14.jar

3. Assim que conseguir extrair os arquivos, deverá encontrar pelo menos uma classe na árvore dodiretório de trabalho executando o comando:

$ tree .

Você deve ver um resultado semelhante a este:

.|— acme-android-appium-1.0-SNAPSHOT.jar (this is the JAR containing everything built from the ./src/main directory)|— acme-android-appium-1.0-SNAPSHOT-tests.jar (this is the JAR containing everything built from the ./src/test directory)|- one-class-file.class|- folder| `-another-class-file.class|— zip-with-dependencies.zip (this .zip file contains all of the items)`— dependency-jars (this is the directory that contains all of your dependencies, built as JAR files) |— com.some-dependency.bar-4.1.jar |— com.another-dependency.thing-1.0.jar |— joda-time-2.7.jar `— log4j-1.2.14.jar

Para obter mais informações, consulte Appium Java JUnit (p. 58) ou Appium Java JUnit (p. 81).

APPIUM_JAVA_JUNIT_TEST_PACKAGE_JUNIT_VERSION_VALUE_UNKNOWNSe você visualizar a mensagem a seguir, siga estas etapas para corrigir o problema.

Versão da API 2015-06-23173

Page 182: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorAPPIUM_JAVA_JUNIT_TEST_PACKAGE_INVALID_JUNIT_VERSION

Warning

Não foi possível encontrar o valor da versão do JUnit. Descompacte o pacote de testes e abrao diretório dependency-jars, verifique se o arquivo JAR do JUnit encontra-se no diretório e tentenovamente.

No exemplo a seguir, o nome do pacote é zip-with-dependencies.zip.

1. Copie o pacote de testes para seu diretório de trabalho e execute o comando a seguir:

$ unzip zip-with-dependencies.zip

2. Assim que conseguir descompactar o pacote, você poderá encontrar a estrutura de árvore do diretóriode trabalho executando o seguinte comando:

tree .

O resultado deve ser semelhante ao seguinte:

.|— acme-android-appium-1.0-SNAPSHOT.jar (this is the JAR containing everything built from the ./src/main directory)|— acme-android-appium-1.0-SNAPSHOT-tests.jar (this is the JAR containing everything built from the ./src/test directory)|— zip-with-dependencies.zip (this .zip file contains all of the items)`— dependency-jars (this is the directory that contains all of your dependencies, built as JAR files) |— junit-4.10.jar |— com.some-dependency.bar-4.1.jar |— com.another-dependency.thing-1.0.jar |— joda-time-2.7.jar `— log4j-1.2.14.jar

Se o pacote do Appium Java JUnit for válido, você encontrará o arquivo de dependência JUnit, queé semelhante ao arquivo jar junit-4.10.jar em nosso exemplo. O nome deve conter a palavra-chave junit e o número da versão, que no exemplo é 4.10.

Para obter mais informações, consulte Appium Java JUnit (p. 58) e Appium Java JUnit (p. 81)

APPIUM_JAVA_JUNIT_TEST_PACKAGE_INVALID_JUNIT_VERSIONSe você visualizar a mensagem a seguir, siga estas etapas para corrigir o problema.

Warning

Percebemos que a versão do JUnit era anterior à versão mínima compatível 4.10. Altere a versãodo JUnit e tente novamente.

No exemplo a seguir, o nome do pacote é zip-with-dependencies.zip.

1. Copie o pacote de testes para seu diretório de trabalho e execute o comando a seguir:

$ unzip zip-with-dependencies.zip

2. Assim que conseguir descompactar o pacote, você poderá encontrar a estrutura de árvore do diretóriode trabalho executando o seguinte comando:

$ tree .

Versão da API 2015-06-23174

Page 183: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorAppium Java JUnit Web

Você deve encontrar um arquivo de dependência JUnit semelhante a junit-4.10.jar em nossoexemplo, bem como o número da versão, que no nosso exemplo é 4.10:

.|— acme-android-appium-1.0-SNAPSHOT.jar (this is the JAR containing everything built from the ./src/main directory)|— acme-android-appium-1.0-SNAPSHOT-tests.jar (this is the JAR containing everything built from the ./src/test directory)|— zip-with-dependencies.zip (this .zip file contains all of the items)`— dependency-jars (this is the directory that contains all of your dependencies, built as JAR files) |— junit-4.10.jar |— com.some-dependency.bar-4.1.jar |— com.another-dependency.thing-1.0.jar |— joda-time-2.7.jar `— log4j-1.2.14.jar

Note

Talvez os testes não executem corretamente se a versão do JUnit especificada em seupacote de testes for anterior à versão mínima compatível 4.10.

Para obter mais informações, consulte Appium Java JUnit (p. 58) ou Appium Java JUnit (p. 81).

Solução de problemas dos testes do Appium JavaJUnit para aplicativos web no AWS Device Farm

O tópico a seguir lista mensagens de erro que ocorrem durante o upload dos testes do Appium Java JUnitpara aplicativos web e recomenda soluções para resolver cada erro.

APPIUM_WEB_JAVA_JUNIT_TEST_PACKAGE_UNZIP_FAILEDSe você visualizar a mensagem a seguir, siga estas etapas para corrigir o problema.

Warning

Não conseguimos abrir seu arquivo de teste ZIP. Verifique se o arquivo é válido e tentenovamente.

Verifique se você consegue descompactar o pacote de testes sem erros. No exemplo a seguir, o nome dopacote é zip-with-dependencies.zip.

1. Copie o pacote de testes para seu diretório de trabalho e execute o comando a seguir:

$ unzip zip-with-dependencies.zip

2. Assim que conseguir descompactar o pacote, você poderá encontrar a estrutura de árvore do diretóriode trabalho executando o seguinte comando:

$ tree .

Um pacote válido do Appium Java JUnit deve gerar um resultado semelhante ao seguinte:

.

Versão da API 2015-06-23175

Page 184: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorAPPIUM_WEB_JAVA_JUNIT_TEST_PACKAGE_DEPENDENCY_DIR_MISSING

|— acme-android-appium-1.0-SNAPSHOT.jar (this is the JAR containing everything built from the ./src/main directory)|— acme-android-appium-1.0-SNAPSHOT-tests.jar (this is the JAR containing everything built from the ./src/test directory)|— zip-with-dependencies.zip (this .zip file contains all of the items)`— dependency-jars (this is the directory that contains all of your dependencies, built as JAR files) |— com.some-dependency.bar-4.1.jar |— com.another-dependency.thing-1.0.jar |— joda-time-2.7.jar `— log4j-1.2.14.jar

Para obter mais informações, consulte Appium Java JUnit (p. 106).

APPIUM_WEB_JAVA_JUNIT_TEST_PACKAGE_DEPENDENCY_DIR_MISSINGSe você visualizar a mensagem a seguir, siga estas etapas para corrigir o problema.

Warning

Não foi possível encontrar o diretório dependency-jars em seu pacote de testes. Descompacteo pacote de testes, verifique se o diretório dependency-jars encontra-se no pacote e tentenovamente.

No exemplo a seguir, o nome do pacote é zip-with-dependencies.zip.

1. Copie o pacote de testes para seu diretório de trabalho e execute o comando a seguir:

$ unzip zip-with-dependencies.zip

2. Assim que conseguir descompactar o pacote, você poderá encontrar a estrutura de árvore do diretóriode trabalho executando o seguinte comando:

$ tree .

Se o pacote do Appium Java JUnit for válido, você encontrará o diretório dependency-jars nodiretório de trabalho:

.|— acme-android-appium-1.0-SNAPSHOT.jar (this is the JAR containing everything built from the ./src/main directory)|— acme-android-appium-1.0-SNAPSHOT-tests.jar (this is the JAR containing everything built from the ./src/test directory)|— zip-with-dependencies.zip (this .zip file contains all of the items)`— dependency-jars (this is the directory that contains all of your dependencies, built as JAR files) |— com.some-dependency.bar-4.1.jar |— com.another-dependency.thing-1.0.jar |— joda-time-2.7.jar `— log4j-1.2.14.jar

Para obter mais informações, consulte Appium Java JUnit (p. 106).

APPIUM_WEB_JAVA_JUNIT_TEST_PACKAGE_JAR_MISSING_IN_DEPENDENCY_DIRSe você visualizar a mensagem a seguir, siga estas etapas para corrigir o problema.

Versão da API 2015-06-23176

Page 185: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorAPPIUM_WEB_JAVA_JUNIT_TEST_PACKAGE_TESTS_JAR_FILE_MISSING

Warning

Não foi possível localizar um arquivo JAR na árvore do diretório dependency-jars. Descompacteo pacote de testes e abra o diretório dependency-jars, verifique se pelo menos um arquivo JARencontra-se no diretório e tente novamente.

No exemplo a seguir, o nome do pacote é zip-with-dependencies.zip.

1. Copie o pacote de testes para seu diretório de trabalho e execute o comando a seguir:

$ unzip zip-with-dependencies.zip

2. Assim que conseguir descompactar o pacote, você poderá encontrar a estrutura de árvore do diretóriode trabalho executando o seguinte comando:

$ tree .

Se o pacote do Appium Java JUnit for válido, você encontrará pelo menos um arquivo jar no diretóriodependency-jars:

.|— acme-android-appium-1.0-SNAPSHOT.jar (this is the JAR containing everything built from the ./src/main directory)|— acme-android-appium-1.0-SNAPSHOT-tests.jar (this is the JAR containing everything built from the ./src/test directory)|— zip-with-dependencies.zip (this .zip file contains all of the items)`— dependency-jars (this is the directory that contains all of your dependencies, built as JAR files) |— com.some-dependency.bar-4.1.jar |— com.another-dependency.thing-1.0.jar |— joda-time-2.7.jar `— log4j-1.2.14.jar

Para obter mais informações, consulte Appium Java JUnit (p. 106).

APPIUM_WEB_JAVA_JUNIT_TEST_PACKAGE_TESTS_JAR_FILE_MISSINGSe você visualizar a mensagem a seguir, siga estas etapas para corrigir o problema.

Warning

Não foi possível encontrar um arquivo * -tests.jar em seu pacote de testes. Descompacte opacote de testes, verifique se pelo menos um arquivo * -tests.jar encontra-se no pacote e tentenovamente.

No exemplo a seguir, o nome do pacote é zip-with-dependencies.zip.

1. Copie o pacote de testes para seu diretório de trabalho e execute o comando a seguir:

$ unzip zip-with-dependencies.zip

2. Assim que conseguir descompactar o pacote, você poderá encontrar a estrutura de árvore do diretóriode trabalho executando o seguinte comando:

$ tree .

Versão da API 2015-06-23177

Page 186: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorAPPIUM_WEB_JAVA_JUNIT_TEST_PACKAGE_CLASS_FILE_MISSING_IN_TESTS_JAR

Se o pacote do Appium Java JUnit for válido, você encontrará pelo menos um arquivo jar semelhantea acme-android-appium-1.0-SNAPSHOT-tests.jar em nosso exemplo. O nome do arquivopode ser diferente, mas deve terminar com –tests.jar.

.|— acme-android-appium-1.0-SNAPSHOT.jar (this is the JAR containing everything built from the ./src/main directory)|— acme-android-appium-1.0-SNAPSHOT-tests.jar (this is the JAR containing everything built from the ./src/test directory)|— zip-with-dependencies.zip (this .zip file contains all of the items)`— dependency-jars (this is the directory that contains all of your dependencies, built as JAR files) |— com.some-dependency.bar-4.1.jar |— com.another-dependency.thing-1.0.jar |— joda-time-2.7.jar `— log4j-1.2.14.jar

Para obter mais informações, consulte Appium Java JUnit (p. 106).

APPIUM_WEB_JAVA_JUNIT_TEST_PACKAGE_CLASS_FILE_MISSING_IN_TESTS_JARSe você visualizar a mensagem a seguir, siga estas etapas para corrigir o problema.

Warning

Não foi possível localizar um arquivo de classe no arquivo de testes JAR. Descompacte o pacotede testes e o arquivo de testes JAR, verifique se pelo menos um arquivo de classe encontra-se noarquivo JAR e tente novamente.

No exemplo a seguir, o nome do pacote é zip-with-dependencies.zip.

1. Copie o pacote de testes para seu diretório de trabalho e execute o comando a seguir:

$ unzip zip-with-dependencies.zip

2. Assim que conseguir descompactar o pacote, você poderá encontrar a estrutura de árvore do diretóriode trabalho executando o seguinte comando:

$ tree .

Você deve encontrar pelo menos um arquivo jar semelhante a acme-android-appium-1.0-SNAPSHOT-tests.jar em nosso exemplo. O nome do arquivo pode ser diferente, mas deveterminar com –tests.jar.

.|— acme-android-appium-1.0-SNAPSHOT.jar (this is the JAR containing everything built from the ./src/main directory)|— acme-android-appium-1.0-SNAPSHOT-tests.jar (this is the JAR containing everything built from the ./src/test directory)|— zip-with-dependencies.zip (this .zip file contains all of the items)`— dependency-jars (this is the directory that contains all of your dependencies, built as JAR files) |— com.some-dependency.bar-4.1.jar |— com.another-dependency.thing-1.0.jar |— joda-time-2.7.jar `— log4j-1.2.14.jar

Versão da API 2015-06-23178

Page 187: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorAPPIUM_WEB_JAVA_JUNIT_TEST_PACKAGE_JUNIT_VERSION_VALUE_UNKNOWN

3. Assim que conseguir extrair os arquivos, deverá encontrar pelo menos uma classe na árvore dodiretório de trabalho executando o comando:

$ tree .

Você deve ver um resultado semelhante a este:

.|— acme-android-appium-1.0-SNAPSHOT.jar (this is the JAR containing everything built from the ./src/main directory)|— acme-android-appium-1.0-SNAPSHOT-tests.jar (this is the JAR containing everything built from the ./src/test directory)|- one-class-file.class|- folder| `-another-class-file.class|— zip-with-dependencies.zip (this .zip file contains all of the items)`— dependency-jars (this is the directory that contains all of your dependencies, built as JAR files) |— com.some-dependency.bar-4.1.jar |— com.another-dependency.thing-1.0.jar |— joda-time-2.7.jar `— log4j-1.2.14.jar

Para obter mais informações, consulte Appium Java JUnit (p. 106).

APPIUM_WEB_JAVA_JUNIT_TEST_PACKAGE_JUNIT_VERSION_VALUE_UNKNOWNSe você visualizar a mensagem a seguir, siga estas etapas para corrigir o problema.

Warning

Não foi possível encontrar o valor da versão do JUnit. Descompacte o pacote de testes e abrao diretório dependency-jars, verifique se o arquivo JAR do JUnit encontra-se no diretório e tentenovamente.

No exemplo a seguir, o nome do pacote é zip-with-dependencies.zip.

1. Copie o pacote de testes para seu diretório de trabalho e execute o comando a seguir:

$ unzip zip-with-dependencies.zip

2. Assim que conseguir descompactar o pacote, você poderá encontrar a estrutura de árvore do diretóriode trabalho executando o seguinte comando:

tree .

O resultado deve ser semelhante ao seguinte:

.|— acme-android-appium-1.0-SNAPSHOT.jar (this is the JAR containing everything built from the ./src/main directory)|— acme-android-appium-1.0-SNAPSHOT-tests.jar (this is the JAR containing everything built from the ./src/test directory)|— zip-with-dependencies.zip (this .zip file contains all of the items)`— dependency-jars (this is the directory that contains all of your dependencies, built as JAR files) |— junit-4.10.jar

Versão da API 2015-06-23179

Page 188: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorAPPIUM_WEB_JAVA_JUNIT_TEST_PACKAGE_INVALID_JUNIT_VERSION

|— com.some-dependency.bar-4.1.jar |— com.another-dependency.thing-1.0.jar |— joda-time-2.7.jar `— log4j-1.2.14.jar

Se o pacote do Appium Java JUnit for válido, você encontrará o arquivo de dependência JUnit, queé semelhante ao arquivo jar junit-4.10.jar em nosso exemplo. O nome deve conter a palavra-chave junit e o número da versão, que no exemplo é 4.10.

Para obter mais informações, consulte Appium Java JUnit (p. 106).

APPIUM_WEB_JAVA_JUNIT_TEST_PACKAGE_INVALID_JUNIT_VERSIONSe você visualizar a mensagem a seguir, siga estas etapas para corrigir o problema.

Warning

Percebemos que a versão do JUnit era anterior à versão mínima compatível 4.10. Altere a versãodo JUnit e tente novamente.

No exemplo a seguir, o nome do pacote é zip-with-dependencies.zip.

1. Copie o pacote de testes para seu diretório de trabalho e execute o comando a seguir:

$ unzip zip-with-dependencies.zip

2. Assim que conseguir descompactar o pacote, você poderá encontrar a estrutura de árvore do diretóriode trabalho executando o seguinte comando:

$ tree .

Você deve encontrar um arquivo de dependência JUnit semelhante a junit-4.10.jar em nossoexemplo, bem como o número da versão, que no nosso exemplo é 4.10:

.|— acme-android-appium-1.0-SNAPSHOT.jar (this is the JAR containing everything built from the ./src/main directory)|— acme-android-appium-1.0-SNAPSHOT-tests.jar (this is the JAR containing everything built from the ./src/test directory)|— zip-with-dependencies.zip (this .zip file contains all of the items)`— dependency-jars (this is the directory that contains all of your dependencies, built as JAR files) |— junit-4.10.jar |— com.some-dependency.bar-4.1.jar |— com.another-dependency.thing-1.0.jar |— joda-time-2.7.jar `— log4j-1.2.14.jar

Note

Talvez os testes não executem corretamente se a versão do JUnit especificada em seupacote de testes for anterior à versão mínima compatível 4.10.

Para obter mais informações, consulte Appium Java JUnit (p. 106).

Versão da API 2015-06-23180

Page 189: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorAppium Java TestNG

Solução de problemas de testes do Appium JavaTestNG no AWS Device Farm

O tópico a seguir lista mensagens de erro que ocorrem durante o upload de testes do Appium JavaTestNG e recomenda soluções para resolver cada erro.

Note

As instruções a seguir baseiam-se no Linux x86_64 e Mac.

APPIUM_JAVA_TESTNG_TEST_PACKAGE_UNZIP_FAILEDSe você visualizar a mensagem a seguir, siga estas etapas para corrigir o problema.

Warning

Não conseguimos abrir seu arquivo de teste ZIP. Verifique se o arquivo é válido e tentenovamente.

Verifique se você consegue descompactar o pacote de testes sem erros. No exemplo a seguir, o nome dopacote é zip-with-dependencies.zip.

1. Copie o pacote de testes para seu diretório de trabalho e execute o comando a seguir:

$ unzip zip-with-dependencies.zip

2. Assim que conseguir descompactar o pacote, você poderá encontrar a estrutura de árvore do diretóriode trabalho executando o seguinte comando:

$ tree .

Um pacote válido do Appium Java JUnit deve gerar um resultado semelhante ao seguinte:

.|— acme-android-appium-1.0-SNAPSHOT.jar (this is the JAR containing everything built from the ./src/main directory)|— acme-android-appium-1.0-SNAPSHOT-tests.jar (this is the JAR containing everything built from the ./src/test directory)|— zip-with-dependencies.zip (this .zip file contains all of the items)`— dependency-jars (this is the directory that contains all of your dependencies, built as JAR files) |— com.some-dependency.bar-4.1.jar |— com.another-dependency.thing-1.0.jar |— joda-time-2.7.jar `— log4j-1.2.14.jar

Para obter mais informações, consulte Appium Java TestNG (p. 54) ou Appium Java TestNG (p. 77).

APPIUM_JAVA_TESTNG_TEST_PACKAGE_DEPENDENCY_DIR_MISSINGSe você visualizar a mensagem a seguir, siga estas etapas para corrigir o problema.

Warning

Não foi possível encontrar o diretório dependency-jars em seu pacote de testes. Descompacteo pacote de testes, verifique se o diretório dependency-jars encontra-se no pacote e tentenovamente.

Versão da API 2015-06-23181

Page 190: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorAPPIUM_JAVA_TESTNG_TEST_PACKAGE_JAR_MISSING_IN_DEPENDENCY_DIR

No exemplo a seguir, o nome do pacote é zip-with-dependencies.zip.

1. Copie o pacote de testes para seu diretório de trabalho e execute o comando a seguir:

$ unzip zip-with-dependencies.zip

2. Assim que conseguir descompactar o pacote, você poderá encontrar a estrutura de árvore do diretóriode trabalho executando o seguinte comando:

$ tree .

Se o pacote do Appium Java JUnit for válido, você encontrará o diretório dependency-jars nodiretório de trabalho.

.|— acme-android-appium-1.0-SNAPSHOT.jar (this is the JAR containing everything built from the ./src/main directory)|— acme-android-appium-1.0-SNAPSHOT-tests.jar (this is the JAR containing everything built from the ./src/test directory)|— zip-with-dependencies.zip (this .zip file contains all of the items)`— dependency-jars (this is the directory that contains all of your dependencies, built as JAR files) |— com.some-dependency.bar-4.1.jar |— com.another-dependency.thing-1.0.jar |— joda-time-2.7.jar `— log4j-1.2.14.jar

Para obter mais informações, consulte Appium Java TestNG (p. 54) ou Appium Java TestNG (p. 77).

APPIUM_JAVA_TESTNG_TEST_PACKAGE_JAR_MISSING_IN_DEPENDENCY_DIRSe você visualizar a mensagem a seguir, siga estas etapas para corrigir o problema.

Warning

Não foi possível localizar um arquivo JAR na árvore do diretório dependency-jars. Descompacteo pacote de testes e abra o diretório dependency-jars, verifique se pelo menos um arquivo JARencontra-se no diretório e tente novamente.

No exemplo a seguir, o nome do pacote é zip-with-dependencies.zip.

1. Copie o pacote de testes para seu diretório de trabalho e execute o comando a seguir:

$ unzip zip-with-dependencies.zip

2. Assim que conseguir descompactar o pacote, você poderá encontrar a estrutura de árvore do diretóriode trabalho executando o seguinte comando:

$ tree .

Se o pacote do Appium Java JUnit for válido, você encontrará pelo menos um arquivo jar no diretóriodependency-jars.

.|— acme-android-appium-1.0-SNAPSHOT.jar (this is the JAR containing everything built from the ./src/main directory)

Versão da API 2015-06-23182

Page 191: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorAPPIUM_JAVA_TESTNG_TEST_PACKAGE_TESTS_JAR_FILE_MISSING

|— acme-android-appium-1.0-SNAPSHOT-tests.jar (this is the JAR containing everything built from the ./src/test directory)|— zip-with-dependencies.zip (this .zip file contains all of the items)`— dependency-jars (this is the directory that contains all of your dependencies, built as JAR files) |— com.some-dependency.bar-4.1.jar |— com.another-dependency.thing-1.0.jar |— joda-time-2.7.jar `— log4j-1.2.14.jar

Para obter mais informações, consulte Appium Java TestNG (p. 54) ou Appium Java TestNG (p. 77).

APPIUM_JAVA_TESTNG_TEST_PACKAGE_TESTS_JAR_FILE_MISSINGSe você visualizar a mensagem a seguir, siga estas etapas para corrigir o problema.

Warning

Não foi possível encontrar um arquivo * -tests.jar em seu pacote de testes. Descompacte opacote de testes, verifique se pelo menos um arquivo * -tests.jar encontra-se no pacote e tentenovamente.

No exemplo a seguir, o nome do pacote é zip-with-dependencies.zip.

1. Copie o pacote de testes para seu diretório de trabalho e execute o comando a seguir:

$ unzip zip-with-dependencies.zip

2. Assim que conseguir descompactar o pacote, você poderá encontrar a estrutura de árvore do diretóriode trabalho executando o seguinte comando:

$ tree .

Se o pacote do Appium Java JUnit for válido, você encontrará pelo menos um arquivo jar semelhantea acme-android-appium-1.0-SNAPSHOT-tests.jar em nosso exemplo. O nome do arquivopode ser diferente, mas deve terminar com –tests.jar.

.|— acme-android-appium-1.0-SNAPSHOT.jar (this is the JAR containing everything built from the ./src/main directory)|— acme-android-appium-1.0-SNAPSHOT-tests.jar (this is the JAR containing everything built from the ./src/test directory)|— zip-with-dependencies.zip (this .zip file contains all of the items)`— dependency-jars (this is the directory that contains all of your dependencies, built as JAR files) |— com.some-dependency.bar-4.1.jar |— com.another-dependency.thing-1.0.jar |— joda-time-2.7.jar `— log4j-1.2.14.jar

Para obter mais informações, consulte Appium Java TestNG (p. 54) ou Appium Java TestNG (p. 77).

APPIUM_JAVA_TESTNG_TEST_PACKAGE_CLASS_FILE_MISSING_IN_TESTS_JARSe você visualizar a mensagem a seguir, siga estas etapas para corrigir o problema.

Versão da API 2015-06-23183

Page 192: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorAPPIUM_JAVA_TESTNG_TEST_PACKAGE_CLASS_FILE_MISSING_IN_TESTS_JAR

Warning

Não foi possível localizar um arquivo de classe no arquivo de testes JAR. Descompacte o pacotede testes e o arquivo de testes JAR, verifique se pelo menos um arquivo de classe encontra-se noarquivo JAR e tente novamente.

No exemplo a seguir, o nome do pacote é zip-with-dependencies.zip.

1. Copie o pacote de testes para seu diretório de trabalho e execute o comando a seguir:

$ unzip zip-with-dependencies.zip

2. Assim que conseguir descompactar o pacote, você poderá encontrar a estrutura de árvore do diretóriode trabalho executando o seguinte comando:

$ tree .

Você deve encontrar pelo menos um arquivo jar semelhante a acme-android-appium-1.0-SNAPSHOT-tests.jar em nosso exemplo. O nome do arquivo pode ser diferente, mas deveterminar com –tests.jar.

.|— acme-android-appium-1.0-SNAPSHOT.jar (this is the JAR containing everything built from the ./src/main directory)|— acme-android-appium-1.0-SNAPSHOT-tests.jar (this is the JAR containing everything built from the ./src/test directory)|— zip-with-dependencies.zip (this .zip file contains all of the items)`— dependency-jars (this is the directory that contains all of your dependencies, built as JAR files) |— com.some-dependency.bar-4.1.jar |— com.another-dependency.thing-1.0.jar |— joda-time-2.7.jar `— log4j-1.2.14.jar

3. Para extrair arquivos do arquivo jar, você pode executar o seguinte comando:

$ jar xf acme-android-appium-1.0-SNAPSHOT-tests.jar

4. Assim que conseguir extrair os arquivos, execute o seguinte comando:

$ tree .

Você deve encontrar pelo menos uma classe na árvore do diretório de trabalho:

.|— acme-android-appium-1.0-SNAPSHOT.jar (this is the JAR containing everything built from the ./src/main directory)|— acme-android-appium-1.0-SNAPSHOT-tests.jar (this is the JAR containing everything built from the ./src/test directory)|- one-class-file.class|- folder| `— another-class-file.class|— zip-with-dependencies.zip (this .zip file contains all of the items)`— dependency-jars (this is the directory that contains all of your dependencies, built as JAR files) |— com.some-dependency.bar-4.1.jar |— com.another-dependency.thing-1.0.jar |— joda-time-2.7.jar `— log4j-1.2.14.jar

Versão da API 2015-06-23184

Page 193: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorAppium Java TestNG Web

Para obter mais informações, consulte Appium Java TestNG (p. 54) ou Appium Java TestNG (p. 77).

Solução de problemas do Appium Java TestNGpara aplicativos web no AWS Device Farm

O tópico a seguir lista mensagens de erro que ocorrem durante o upload de testes de aplicativos web doAppium Java TestNG e recomenda soluções para resolver cada erro.

APPIUM_WEB_JAVA_TESTNG_TEST_PACKAGE_UNZIP_FAILEDSe você visualizar a mensagem a seguir, siga estas etapas para corrigir o problema.

Warning

Não conseguimos abrir seu arquivo de teste ZIP. Verifique se o arquivo é válido e tentenovamente.

Verifique se você consegue descompactar o pacote de testes sem erros. No exemplo a seguir, o nome dopacote é zip-with-dependencies.zip.

1. Copie o pacote de testes para seu diretório de trabalho e execute o comando a seguir:

$ unzip zip-with-dependencies.zip

2. Assim que conseguir descompactar o pacote, você poderá encontrar a estrutura de árvore do diretóriode trabalho executando o seguinte comando:

$ tree .

Um pacote válido do Appium Java JUnit deve gerar um resultado semelhante ao seguinte:

.|— acme-android-appium-1.0-SNAPSHOT.jar (this is the JAR containing everything built from the ./src/main directory)|— acme-android-appium-1.0-SNAPSHOT-tests.jar (this is the JAR containing everything built from the ./src/test directory)|— zip-with-dependencies.zip (this .zip file contains all of the items)`— dependency-jars (this is the directory that contains all of your dependencies, built as JAR files) |— com.some-dependency.bar-4.1.jar |— com.another-dependency.thing-1.0.jar |— joda-time-2.7.jar `— log4j-1.2.14.jar

Para obter mais informações, consulte Appium Java TestNG (p. 102).

APPIUM_WEB_JAVA_TESTNG_TEST_PACKAGE_DEPENDENCY_DIR_MISSINGSe você visualizar a mensagem a seguir, siga estas etapas para corrigir o problema.

Versão da API 2015-06-23185

Page 194: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorAPPIUM_WEB_JAVA_TESTNG_TEST_PACKAGE_JAR_MISSING_IN_DEPENDENCY_DIR

Warning

Não foi possível encontrar o diretório dependency-jars em seu pacote de testes. Descompacteo pacote de testes, verifique se o diretório dependency-jars encontra-se no pacote e tentenovamente.

No exemplo a seguir, o nome do pacote é zip-with-dependencies.zip.

1. Copie o pacote de testes para seu diretório de trabalho e execute o comando a seguir:

$ unzip zip-with-dependencies.zip

2. Assim que conseguir descompactar o pacote, você poderá encontrar a estrutura de árvore do diretóriode trabalho executando o seguinte comando:

$ tree .

Se o pacote do Appium Java JUnit for válido, você encontrará o diretório dependency-jars nodiretório de trabalho.

.|— acme-android-appium-1.0-SNAPSHOT.jar (this is the JAR containing everything built from the ./src/main directory)|— acme-android-appium-1.0-SNAPSHOT-tests.jar (this is the JAR containing everything built from the ./src/test directory)|— zip-with-dependencies.zip (this .zip file contains all of the items)`— dependency-jars (this is the directory that contains all of your dependencies, built as JAR files) |— com.some-dependency.bar-4.1.jar |— com.another-dependency.thing-1.0.jar |— joda-time-2.7.jar `— log4j-1.2.14.jar

Para obter mais informações, consulte Appium Java TestNG (p. 102).

APPIUM_WEB_JAVA_TESTNG_TEST_PACKAGE_JAR_MISSING_IN_DEPENDENCY_DIRSe você visualizar a mensagem a seguir, siga estas etapas para corrigir o problema.

Warning

Não foi possível localizar um arquivo JAR na árvore do diretório dependency-jars. Descompacteo pacote de testes e abra o diretório dependency-jars, verifique se pelo menos um arquivo JARencontra-se no diretório e tente novamente.

No exemplo a seguir, o nome do pacote é zip-with-dependencies.zip.

1. Copie o pacote de testes para seu diretório de trabalho e execute o comando a seguir:

$ unzip zip-with-dependencies.zip

2. Assim que conseguir descompactar o pacote, você poderá encontrar a estrutura de árvore do diretóriode trabalho executando o seguinte comando:

$ tree .

Versão da API 2015-06-23186

Page 195: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorAPPIUM_WEB_JAVA_TESTNG_TEST_PACKAGE_TESTS_JAR_FILE_MISSING

Se o pacote do Appium Java JUnit for válido, você encontrará pelo menos um arquivo jar no diretóriodependency-jars.

.|— acme-android-appium-1.0-SNAPSHOT.jar (this is the JAR containing everything built from the ./src/main directory)|— acme-android-appium-1.0-SNAPSHOT-tests.jar (this is the JAR containing everything built from the ./src/test directory)|— zip-with-dependencies.zip (this .zip file contains all of the items)`— dependency-jars (this is the directory that contains all of your dependencies, built as JAR files) |— com.some-dependency.bar-4.1.jar |— com.another-dependency.thing-1.0.jar |— joda-time-2.7.jar `— log4j-1.2.14.jar

Para obter mais informações, consulte Appium Java TestNG (p. 102).

APPIUM_WEB_JAVA_TESTNG_TEST_PACKAGE_TESTS_JAR_FILE_MISSINGSe você visualizar a mensagem a seguir, siga estas etapas para corrigir o problema.

Warning

Não foi possível encontrar um arquivo * -tests.jar em seu pacote de testes. Descompacte opacote de testes, verifique se pelo menos um arquivo * -tests.jar encontra-se no pacote e tentenovamente.

No exemplo a seguir, o nome do pacote é zip-with-dependencies.zip.

1. Copie o pacote de testes para seu diretório de trabalho e execute o comando a seguir:

$ unzip zip-with-dependencies.zip

2. Assim que conseguir descompactar o pacote, você poderá encontrar a estrutura de árvore do diretóriode trabalho executando o seguinte comando:

$ tree .

Se o pacote do Appium Java JUnit for válido, você encontrará pelo menos um arquivo jar semelhantea acme-android-appium-1.0-SNAPSHOT-tests.jar em nosso exemplo. O nome do arquivopode ser diferente, mas deve terminar com –tests.jar.

.|— acme-android-appium-1.0-SNAPSHOT.jar (this is the JAR containing everything built from the ./src/main directory)|— acme-android-appium-1.0-SNAPSHOT-tests.jar (this is the JAR containing everything built from the ./src/test directory)|— zip-with-dependencies.zip (this .zip file contains all of the items)`— dependency-jars (this is the directory that contains all of your dependencies, built as JAR files) |— com.some-dependency.bar-4.1.jar |— com.another-dependency.thing-1.0.jar |— joda-time-2.7.jar `— log4j-1.2.14.jar

Para obter mais informações, consulte Appium Java TestNG (p. 102).

Versão da API 2015-06-23187

Page 196: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorAPPIUM_WEB_JAVA_TESTNG_TEST_PACKAGE_CLASS_FILE_MISSING_IN_TESTS_JAR

APPIUM_WEB_JAVA_TESTNG_TEST_PACKAGE_CLASS_FILE_MISSING_IN_TESTS_JARSe você visualizar a mensagem a seguir, siga estas etapas para corrigir o problema.

Warning

Não foi possível localizar um arquivo de classe no arquivo de testes JAR. Descompacte o pacotede testes e o arquivo de testes JAR, verifique se pelo menos um arquivo de classe encontra-se noarquivo JAR e tente novamente.

No exemplo a seguir, o nome do pacote é zip-with-dependencies.zip.

1. Copie o pacote de testes para seu diretório de trabalho e execute o comando a seguir:

$ unzip zip-with-dependencies.zip

2. Assim que conseguir descompactar o pacote, você poderá encontrar a estrutura de árvore do diretóriode trabalho executando o seguinte comando:

$ tree .

Você deve encontrar pelo menos um arquivo jar semelhante a acme-android-appium-1.0-SNAPSHOT-tests.jar em nosso exemplo. O nome do arquivo pode ser diferente, mas deveterminar com –tests.jar.

.|— acme-android-appium-1.0-SNAPSHOT.jar (this is the JAR containing everything built from the ./src/main directory)|— acme-android-appium-1.0-SNAPSHOT-tests.jar (this is the JAR containing everything built from the ./src/test directory)|— zip-with-dependencies.zip (this .zip file contains all of the items)`— dependency-jars (this is the directory that contains all of your dependencies, built as JAR files) |— com.some-dependency.bar-4.1.jar |— com.another-dependency.thing-1.0.jar |— joda-time-2.7.jar `— log4j-1.2.14.jar

3. Para extrair arquivos do arquivo jar, você pode executar o seguinte comando:

$ jar xf acme-android-appium-1.0-SNAPSHOT-tests.jar

4. Assim que conseguir extrair os arquivos, execute o seguinte comando:

$ tree .

Você deve encontrar pelo menos uma classe na árvore do diretório de trabalho:

.|— acme-android-appium-1.0-SNAPSHOT.jar (this is the JAR containing everything built from the ./src/main directory)|— acme-android-appium-1.0-SNAPSHOT-tests.jar (this is the JAR containing everything built from the ./src/test directory)|- one-class-file.class|- folder| `— another-class-file.class|— zip-with-dependencies.zip (this .zip file contains all of the items)`— dependency-jars (this is the directory that contains all of your dependencies, built as JAR files)

Versão da API 2015-06-23188

Page 197: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorAppium Python

|— com.some-dependency.bar-4.1.jar |— com.another-dependency.thing-1.0.jar |— joda-time-2.7.jar `— log4j-1.2.14.jar

Para obter mais informações, consulte Appium Java TestNG (p. 102).

Solução de problemas de testes do Appium Pythonno AWS Device Farm

O tópico a seguir lista mensagens de erro que ocorrem durante o upload de testes do Appium Python erecomenda soluções para resolver cada erro.

APPIUM_PYTHON_TEST_PACKAGE_UNZIP_FAILEDSe você visualizar a mensagem a seguir, siga estas etapas para corrigir o problema.

Warning

Não conseguimos abrir o arquivo de teste ZIP do Appium. Verifique se o arquivo é válido e tentenovamente.

Verifique se você consegue descompactar o pacote de testes sem erros. No exemplo a seguir, o nome dopacote é test_bundle.zip.

1. Copie o pacote de testes para seu diretório de trabalho e execute o comando a seguir:

$ unzip test_bundle.zip

2. Assim que conseguir descompactar o pacote, você poderá encontrar a estrutura de árvore do diretóriode trabalho executando o seguinte comando:

$ tree .

Um pacote válido do Appium Python deve gerar um resultado semelhante ao seguinte:

.|-- requirements.txt|-- test_bundle.zip|-- tests (directory)| `-- test_unittest.py`-- wheelhouse (directory) |-- Appium_Python_Client-0.20-cp27-none-any.whl |-- py-1.4.31-py2.py3-none-any.whl |-- pytest-2.9.0-py2.py3-none-any.whl |-- selenium-2.52.0-cp27-none-any.whl `-- wheel-0.26.0-py2.py3-none-any.whl

Para obter mais informações, consulte Appium Python (p. 65) ou Appium Python (p. 88).

APPIUM_PYTHON_TEST_PACKAGE_DEPENDENCY_WHEEL_MISSINGSe você visualizar a mensagem a seguir, siga estas etapas para corrigir o problema.

Versão da API 2015-06-23189

Page 198: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorAPPIUM_PYTHON_TEST_PACKAGE_INVALID_PLATFORM

Warning

Não foi possível localizar um arquivo de dependência wheel na árvore do diretório wheelhouse.Descompacte o pacote de testes e abra o diretório wheelhouse, verifique se pelo menos umarquivo wheel encontra-se no diretório e tente novamente.

Verifique se você consegue descompactar o pacote de testes sem erros. No exemplo a seguir, o nome dopacote é test_bundle.zip.

1. Copie o pacote de testes para seu diretório de trabalho e execute o comando a seguir:

$ unzip test_bundle.zip

2. Assim que conseguir descompactar o pacote, você poderá encontrar a estrutura de árvore do diretóriode trabalho executando o seguinte comando:

$ tree .

Se o pacote do Appium Python for válido, você encontrará pelo menos um arquivo dependente .whl,como os arquivos destacados no diretório wheelhouse.

.|-- requirements.txt|-- test_bundle.zip|-- tests (directory)| `-- test_unittest.py`-- wheelhouse (directory) |-- Appium_Python_Client-0.20-cp27-none-any.whl |-- py-1.4.31-py2.py3-none-any.whl |-- pytest-2.9.0-py2.py3-none-any.whl |-- selenium-2.52.0-cp27-none-any.whl `-- wheel-0.26.0-py2.py3-none-any.whl

Para obter mais informações, consulte Appium Python (p. 65) ou Appium Python (p. 88).

APPIUM_PYTHON_TEST_PACKAGE_INVALID_PLATFORMSe você visualizar a mensagem a seguir, siga estas etapas para corrigir o problema.

Warning

Encontramos pelo menos um arquivo wheel que especificou uma plataforma para a qual nãooferecemos compatibilidade. Descompacte seu pacote de testes e abra o diretório wheelhouse,verifique se os nomes dos arquivos wheel terminam com -any.whl ou -linux_x86_64.whl e tentenovamente.

Verifique se você consegue descompactar o pacote de testes sem erros. No exemplo a seguir, o nome dopacote é test_bundle.zip.

1. Copie o pacote de testes para seu diretório de trabalho e execute o comando a seguir:

$ unzip test_bundle.zip

2. Assim que conseguir descompactar o pacote, você poderá encontrar a estrutura de árvore do diretóriode trabalho executando o seguinte comando:

$ tree .

Versão da API 2015-06-23190

Page 199: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorAPPIUM_PYTHON_TEST_PACKAGE_TEST_DIR_MISSING

Se o pacote do Appium Python for válido, você encontrará pelo menos um arquivo dependente .whl,como os arquivos destacados no diretório wheelhouse. O nome do arquivo pode ser diferente, masdeve terminar com -any.whl ou -linux_x86_64.whl, que especifica a plataforma. Não há suportepara outras plataformas como windows.

.|-- requirements.txt|-- test_bundle.zip|-- tests (directory)| `-- test_unittest.py`-- wheelhouse (directory) |-- Appium_Python_Client-0.20-cp27-none-any.whl |-- py-1.4.31-py2.py3-none-any.whl |-- pytest-2.9.0-py2.py3-none-any.whl |-- selenium-2.52.0-cp27-none-any.whl `-- wheel-0.26.0-py2.py3-none-any.whl

Para obter mais informações, consulte Appium Python (p. 65) ou Appium Python (p. 88).

APPIUM_PYTHON_TEST_PACKAGE_TEST_DIR_MISSINGSe você visualizar a mensagem a seguir, siga estas etapas para corrigir o problema.

Warning

Não foi possível encontrar o diretório tests em seu pacote de testes. Descompacte o pacote detestes, verifique se o diretório tests está no pacote e tente novamente.

Verifique se você consegue descompactar o pacote de testes sem erros. No exemplo a seguir, o nome dopacote é test_bundle.zip.

1. Copie o pacote de testes para seu diretório de trabalho e execute o comando a seguir:

$ unzip test_bundle.zip

2. Assim que conseguir descompactar o pacote, você poderá encontrar a estrutura de árvore do diretóriode trabalho executando o seguinte comando:

$ tree .

Se o pacote do Appium Python for válido, você encontrará o diretório tests no diretório de trabalho.

.|-- requirements.txt|-- test_bundle.zip|-- tests (directory)| `-- test_unittest.py`-- wheelhouse (directory) |-- Appium_Python_Client-0.20-cp27-none-any.whl |-- py-1.4.31-py2.py3-none-any.whl |-- pytest-2.9.0-py2.py3-none-any.whl |-- selenium-2.52.0-cp27-none-any.whl `-- wheel-0.26.0-py2.py3-none-any.whl

Para obter mais informações, consulte Appium Python (p. 65) ou Appium Python (p. 88).

Versão da API 2015-06-23191

Page 200: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorAPPIUM_PYTHON_TEST_PACKAGE_INVALID_TEST_FILE_NAME

APPIUM_PYTHON_TEST_PACKAGE_INVALID_TEST_FILE_NAMESe você visualizar a mensagem a seguir, siga estas etapas para corrigir o problema.

Warning

Não foi possível localizar um arquivo de teste válido na árvore do diretório tests. Descompacteseu pacote de testes e abra o diretório tests, verifique se pelo menos um nome de arquivocomeça ou termina com a palavra-chave "test" e tente novamente.

Verifique se você consegue descompactar o pacote de testes sem erros. No exemplo a seguir, o nome dopacote é test_bundle.zip.

1. Copie o pacote de testes para seu diretório de trabalho e execute o comando a seguir:

$ unzip test_bundle.zip

2. Assim que conseguir descompactar o pacote, você poderá encontrar a estrutura de árvore do diretóriode trabalho executando o seguinte comando:

$ tree .

Se o pacote do Appium Python for válido, você encontrará o diretório tests no diretório de trabalho.O nome do arquivo pode ser diferente, mas deve terminar com test_ ou com _test.py.

.|-- requirements.txt|-- test_bundle.zip|-- tests (directory)| `-- test_unittest.py`-- wheelhouse (directory) |-- Appium_Python_Client-0.20-cp27-none-any.whl |-- py-1.4.31-py2.py3-none-any.whl |-- pytest-2.9.0-py2.py3-none-any.whl |-- selenium-2.52.0-cp27-none-any.whl `-- wheel-0.26.0-py2.py3-none-any.whl

Para obter mais informações, consulte Appium Python (p. 65) ou Appium Python (p. 88).

APPIUM_PYTHON_TEST_PACKAGE_REQUIREMENTS_TXT_FILE_MISSINGSe você visualizar a mensagem a seguir, siga estas etapas para corrigir o problema.

Warning

Não foi possível encontrar o arquivo requirements.txt em seu pacote de testes. Descompacteo pacote de testes, verifique se o arquivo requirements.txt encontra-se no pacote e tentenovamente.

Verifique se você consegue descompactar o pacote de testes sem erros. No exemplo a seguir, o nome dopacote é test_bundle.zip.

1. Copie o pacote de testes para seu diretório de trabalho e execute o comando a seguir:

$ unzip test_bundle.zip

Versão da API 2015-06-23192

Page 201: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorAPPIUM_PYTHON_TEST_PACKAGE_INVALID_PYTEST_VERSION

2. Assim que conseguir descompactar o pacote, você poderá encontrar a estrutura de árvore do diretóriode trabalho executando o seguinte comando:

$ tree .

Se o pacote do Appium Python for válido, você encontrará o arquivo requirement.txt no diretóriode trabalho.

.|-- requirements.txt|-- test_bundle.zip|-- tests (directory)| `-- test_unittest.py`-- wheelhouse (directory) |-- Appium_Python_Client-0.20-cp27-none-any.whl |-- py-1.4.31-py2.py3-none-any.whl |-- pytest-2.9.0-py2.py3-none-any.whl |-- selenium-2.52.0-cp27-none-any.whl `-- wheel-0.26.0-py2.py3-none-any.whl

Para obter mais informações, consulte Appium Python (p. 65) ou Appium Python (p. 88).

APPIUM_PYTHON_TEST_PACKAGE_INVALID_PYTEST_VERSIONSe você visualizar a mensagem a seguir, siga estas etapas para corrigir o problema.

Warning

Percebemos que a versão pytest era anterior à versão mínima compatível 2.8.0. Altere a versãopytest no arquivo requirements.txt e tente novamente.

Verifique se você consegue descompactar o pacote de testes sem erros. No exemplo a seguir, o nome dopacote é test_bundle.zip.

1. Copie o pacote de testes para seu diretório de trabalho e execute o comando a seguir:

$ unzip test_bundle.zip

2. Assim que conseguir descompactar o pacote, você poderá encontrar a estrutura de árvore do diretóriode trabalho executando o seguinte comando:

$ tree .

Você deve encontrar o arquivo requirement.txt no diretório de trabalho.

.|-- requirements.txt|-- test_bundle.zip|-- tests (directory)| `--test_unittest.py`-- wheelhouse (directory) |-- Appium_Python_Client-0.20-cp27-none-any.whl |-- py-1.4.31-py2.py3-none-any.whl |-- pytest-2.9.0-py2.py3-none-any.whl |-- selenium-2.52.0-cp27-none-any.whl `-- wheel-0.26.0-py2.py3-none-any.whl

3. Para obter a versão pytest, você pode executar o seguinte comando:

Versão da API 2015-06-23193

Page 202: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorAPPIUM_PYTHON_TEST_PACKAGE_INSTALL_DEPENDENCY_WHEELS_FAILED

$ grep "pytest" requirements.txt

Você provavelmente chegará a um resultado como o seguinte:

pytest==2.9.0

Ele mostra a versão do pytest que, neste exemplo, é 2.9.0. Se o pacote do Appium Python for válido, aversão de pytest deverá ser posterior ou igual a 2.8.0.

Para obter mais informações, consulte Appium Python (p. 65) ou Appium Python (p. 88).

APPIUM_PYTHON_TEST_PACKAGE_INSTALL_DEPENDENCY_WHEELS_FAILEDSe você visualizar a mensagem a seguir, siga estas etapas para corrigir o problema.

Warning

Não foi possível instalar as wheels de dependência. Descompacte seu pacote de testes e abrao arquivo requirements.txt e o diretório wheelhouse, verifique se as wheels de dependênciaespecificadas no arquivo requirements.txt correspondem exatamente às wheels de dependênciano diretório wheelhouse e tente novamente.

É altamente recomendável configurar o virtualenv do Python para testes de empacotamento. Veja aqui umexemplo de fluxo de criação de um ambiente virtual por meio do virtualenv do Python e, em seguida, desua ativação:

$ virtualenv workspace$ cd workspace $ source bin/activate

Verifique se você consegue descompactar o pacote de testes sem erros. No exemplo a seguir, o nome dopacote é test_bundle.zip.

1. Copie o pacote de testes para seu diretório de trabalho e execute o comando a seguir:

$ unzip test_bundle.zip

2. Para testar os arquivos wheel de instalação, execute o seguinte comando:

$ pip install --use-wheel --no-index --find-links=./wheelhouse --requirement=./requirements.txt

Um pacote válido do Appium Python deve gerar um resultado semelhante ao seguinte:

Ignoring indexes: https://pypi.python.org/simpleCollecting Appium-Python-Client==0.20 (from -r ./requirements.txt (line 1))Collecting py==1.4.31 (from -r ./requirements.txt (line 2))Collecting pytest==2.9.0 (from -r ./requirements.txt (line 3))Collecting selenium==2.52.0 (from -r ./requirements.txt (line 4))Collecting wheel==0.26.0 (from -r ./requirements.txt (line 5))Installing collected packages: selenium, Appium-Python-Client, py, pytest, wheel Found existing installation: wheel 0.29.0 Uninstalling wheel-0.29.0: Successfully uninstalled wheel-0.29.0

Versão da API 2015-06-23194

Page 203: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorAPPIUM_PYTHON_TEST_PACKAGE_PYTEST_COLLECT_FAILED

Successfully installed Appium-Python-Client-0.20 py-1.4.31 pytest-2.9.0 selenium-2.52.0 wheel-0.26.0

3. Para desativar o ambiente virtual, você pode executar o seguinte comando:

$ deactivate

Para obter mais informações, consulte Appium Python (p. 65) ou Appium Python (p. 88).

APPIUM_PYTHON_TEST_PACKAGE_PYTEST_COLLECT_FAILEDSe você visualizar a mensagem a seguir, siga estas etapas para corrigir o problema.

Warning

Não foi possível coletar testes no diretório tests. Descompacte o pacote de testes. Para verificarse o pacote de testes é válido, execute o comando py.test --collect-only <path toyour tests directory> e tente novamente se o comando não imprimir nenhum erro.

É altamente recomendável configurar o virtualenv do Python para testes de empacotamento. Veja aqui umexemplo de fluxo de criação de um ambiente virtual por meio do virtualenv do Python e, em seguida, desua ativação:

$ virtualenv workspace$ cd workspace $ source bin/activate

Verifique se você consegue descompactar o pacote de testes sem erros. No exemplo a seguir, o nome dopacote é test_bundle.zip.

1. Copie o pacote de testes para seu diretório de trabalho e execute o comando a seguir:

$ unzip test_bundle.zip

2. Para instalar os arquivos wheel, execute o seguinte comando:

$ pip install --use-wheel --no-index --find-links=./wheelhouse --requirement=./requirements.txt

3. Para coletar os testes, execute o seguinte comando:

$ py.test --collect-only tests

Um pacote válido do Appium Python deve gerar um resultado semelhante ao seguinte:

==================== test session starts ====================platform darwin -- Python 2.7.11, pytest-2.9.0, py-1.4.31, pluggy-0.3.1rootdir: /Users/zhena/Desktop/Ios/tests, inifile:collected 1 items<Module 'test_unittest.py'> <UnitTestCase 'DeviceFarmAppiumWebTests'> <TestCaseFunction 'test_devicefarm'>

==================== no tests ran in 0.11 seconds ====================

4. Para desativar o ambiente virtual, você pode executar o seguinte comando:

Versão da API 2015-06-23195

Page 204: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorAppium Python Web

$ deactivate

Para obter mais informações, consulte Appium Python (p. 65) ou Appium Python (p. 88).

Solução de problemas dos testes de aplicativosweb do Appium Python no AWS Device Farm

O tópico a seguir lista mensagens de erro que ocorrem durante o upload de testes de aplicativos web doAppium Python e recomenda soluções para resolver cada erro.

APPIUM_WEB_PYTHON_TEST_PACKAGE_UNZIP_FAILEDSe você visualizar a mensagem a seguir, siga estas etapas para corrigir o problema.

Warning

Não conseguimos abrir o arquivo de teste ZIP do Appium. Verifique se o arquivo é válido e tentenovamente.

Verifique se você consegue descompactar o pacote de testes sem erros. No exemplo a seguir, o nome dopacote é test_bundle.zip.

1. Copie o pacote de testes para seu diretório de trabalho e execute o comando a seguir:

$ unzip test_bundle.zip

2. Assim que conseguir descompactar o pacote, você poderá encontrar a estrutura de árvore do diretóriode trabalho executando o seguinte comando:

$ tree .

Um pacote válido do Appium Python deve gerar um resultado semelhante ao seguinte:

.|-- requirements.txt|-- test_bundle.zip|-- tests (directory)| `-- test_unittest.py`-- wheelhouse (directory) |-- Appium_Python_Client-0.20-cp27-none-any.whl |-- py-1.4.31-py2.py3-none-any.whl |-- pytest-2.9.0-py2.py3-none-any.whl |-- selenium-2.52.0-cp27-none-any.whl `-- wheel-0.26.0-py2.py3-none-any.whl

Para obter mais informações, consulte Appium Python (p. 113).

APPIUM_WEB_PYTHON_TEST_PACKAGE_DEPENDENCY_WHEEL_MISSINGSe você visualizar a mensagem a seguir, siga estas etapas para corrigir o problema.

Versão da API 2015-06-23196

Page 205: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorAPPIUM_WEB_PYTHON_TEST_PACKAGE_INVALID_PLATFORM

Warning

Não foi possível localizar um arquivo de dependência wheel na árvore do diretório wheelhouse.Descompacte o pacote de testes e abra o diretório wheelhouse, verifique se pelo menos umarquivo wheel encontra-se no diretório e tente novamente.

Verifique se você consegue descompactar o pacote de testes sem erros. No exemplo a seguir, o nome dopacote é test_bundle.zip.

1. Copie o pacote de testes para seu diretório de trabalho e execute o comando a seguir:

$ unzip test_bundle.zip

2. Assim que conseguir descompactar o pacote, você poderá encontrar a estrutura de árvore do diretóriode trabalho executando o seguinte comando:

$ tree .

Se o pacote do Appium Python for válido, você encontrará pelo menos um arquivo dependente .whl,como os arquivos destacados no diretório wheelhouse.

.|-- requirements.txt|-- test_bundle.zip|-- tests (directory)| `-- test_unittest.py`-- wheelhouse (directory) |-- Appium_Python_Client-0.20-cp27-none-any.whl |-- py-1.4.31-py2.py3-none-any.whl |-- pytest-2.9.0-py2.py3-none-any.whl |-- selenium-2.52.0-cp27-none-any.whl `-- wheel-0.26.0-py2.py3-none-any.whl

Para obter mais informações, consulte Appium Python (p. 113).

APPIUM_WEB_PYTHON_TEST_PACKAGE_INVALID_PLATFORMSe você visualizar a mensagem a seguir, siga estas etapas para corrigir o problema.

Warning

Encontramos pelo menos um arquivo wheel que especificou uma plataforma para a qual nãooferecemos compatibilidade. Descompacte seu pacote de testes e abra o diretório wheelhouse,verifique se os nomes dos arquivos wheel terminam com -any.whl ou -linux_x86_64.whl e tentenovamente.

Verifique se você consegue descompactar o pacote de testes sem erros. No exemplo a seguir, o nome dopacote é test_bundle.zip.

1. Copie o pacote de testes para seu diretório de trabalho e execute o comando a seguir:

$ unzip test_bundle.zip

2. Assim que conseguir descompactar o pacote, você poderá encontrar a estrutura de árvore do diretóriode trabalho executando o seguinte comando:

$ tree .

Versão da API 2015-06-23197

Page 206: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorAPPIUM_WEB_PYTHON_TEST_PACKAGE_TEST_DIR_MISSING

Se o pacote do Appium Python for válido, você encontrará pelo menos um arquivo dependente .whl,como os arquivos destacados no diretório wheelhouse. O nome do arquivo pode ser diferente, masdeve terminar com -any.whl ou -linux_x86_64.whl, que especifica a plataforma. Não há suportepara outras plataformas como windows.

.|-- requirements.txt|-- test_bundle.zip|-- tests (directory)| `-- test_unittest.py`-- wheelhouse (directory) |-- Appium_Python_Client-0.20-cp27-none-any.whl |-- py-1.4.31-py2.py3-none-any.whl |-- pytest-2.9.0-py2.py3-none-any.whl |-- selenium-2.52.0-cp27-none-any.whl `-- wheel-0.26.0-py2.py3-none-any.whl

Para obter mais informações, consulte Appium Python (p. 113).

APPIUM_WEB_PYTHON_TEST_PACKAGE_TEST_DIR_MISSINGSe você visualizar a mensagem a seguir, siga estas etapas para corrigir o problema.

Warning

Não foi possível encontrar o diretório tests em seu pacote de testes. Descompacte o pacote detestes, verifique se o diretório tests está no pacote e tente novamente.

Verifique se você consegue descompactar o pacote de testes sem erros. No exemplo a seguir, o nome dopacote é test_bundle.zip.

1. Copie o pacote de testes para seu diretório de trabalho e execute o comando a seguir:

$ unzip test_bundle.zip

2. Assim que conseguir descompactar o pacote, você poderá encontrar a estrutura de árvore do diretóriode trabalho executando o seguinte comando:

$ tree .

Se o pacote do Appium Python for válido, você encontrará o diretório tests no diretório de trabalho.

.|-- requirements.txt|-- test_bundle.zip|-- tests (directory)| `-- test_unittest.py`-- wheelhouse (directory) |-- Appium_Python_Client-0.20-cp27-none-any.whl |-- py-1.4.31-py2.py3-none-any.whl |-- pytest-2.9.0-py2.py3-none-any.whl |-- selenium-2.52.0-cp27-none-any.whl `-- wheel-0.26.0-py2.py3-none-any.whl

Para obter mais informações, consulte Appium Python (p. 113).

Versão da API 2015-06-23198

Page 207: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorAPPIUM_WEB_PYTHON_TEST_PACKAGE_INVALID_TEST_FILE_NAME

APPIUM_WEB_PYTHON_TEST_PACKAGE_INVALID_TEST_FILE_NAMESe você visualizar a mensagem a seguir, siga estas etapas para corrigir o problema.

Warning

Não foi possível localizar um arquivo de teste válido na árvore do diretório tests. Descompacteseu pacote de testes e abra o diretório tests, verifique se pelo menos um nome de arquivocomeça ou termina com a palavra-chave "test" e tente novamente.

Verifique se você consegue descompactar o pacote de testes sem erros. No exemplo a seguir, o nome dopacote é test_bundle.zip.

1. Copie o pacote de testes para seu diretório de trabalho e execute o comando a seguir:

$ unzip test_bundle.zip

2. Assim que conseguir descompactar o pacote, você poderá encontrar a estrutura de árvore do diretóriode trabalho executando o seguinte comando:

$ tree .

Se o pacote do Appium Python for válido, você encontrará o diretório tests no diretório de trabalho.O nome do arquivo pode ser diferente, mas deve terminar com test_ ou com _test.py.

.|-- requirements.txt|-- test_bundle.zip|-- tests (directory)| `-- test_unittest.py`-- wheelhouse (directory) |-- Appium_Python_Client-0.20-cp27-none-any.whl |-- py-1.4.31-py2.py3-none-any.whl |-- pytest-2.9.0-py2.py3-none-any.whl |-- selenium-2.52.0-cp27-none-any.whl `-- wheel-0.26.0-py2.py3-none-any.whl

Para obter mais informações, consulte Appium Python (p. 113).

APPIUM_WEB_PYTHON_TEST_PACKAGE_REQUIREMENTS_TXT_FILE_MISSINGSe você visualizar a mensagem a seguir, siga estas etapas para corrigir o problema.

Warning

Não foi possível encontrar o arquivo requirements.txt em seu pacote de testes. Descompacteo pacote de testes, verifique se o arquivo requirements.txt encontra-se no pacote e tentenovamente.

Verifique se você consegue descompactar o pacote de testes sem erros. No exemplo a seguir, o nome dopacote é test_bundle.zip.

1. Copie o pacote de testes para seu diretório de trabalho e execute o comando a seguir:

$ unzip test_bundle.zip

Versão da API 2015-06-23199

Page 208: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorAPPIUM_WEB_PYTHON_TEST_PACKAGE_INVALID_PYTEST_VERSION

2. Assim que conseguir descompactar o pacote, você poderá encontrar a estrutura de árvore do diretóriode trabalho executando o seguinte comando:

$ tree .

Se o pacote do Appium Python for válido, você encontrará o arquivo requirement.txt no diretóriode trabalho.

.|-- requirements.txt|-- test_bundle.zip|-- tests (directory)| `-- test_unittest.py`-- wheelhouse (directory) |-- Appium_Python_Client-0.20-cp27-none-any.whl |-- py-1.4.31-py2.py3-none-any.whl |-- pytest-2.9.0-py2.py3-none-any.whl |-- selenium-2.52.0-cp27-none-any.whl `-- wheel-0.26.0-py2.py3-none-any.whl

Para obter mais informações, consulte Appium Python (p. 113).

APPIUM_WEB_PYTHON_TEST_PACKAGE_INVALID_PYTEST_VERSIONSe você visualizar a mensagem a seguir, siga estas etapas para corrigir o problema.

Warning

Percebemos que a versão pytest era anterior à versão mínima compatível 2.8.0. Altere a versãopytest no arquivo requirements.txt e tente novamente.

Verifique se você consegue descompactar o pacote de testes sem erros. No exemplo a seguir, o nome dopacote é test_bundle.zip.

1. Copie o pacote de testes para seu diretório de trabalho e execute o comando a seguir:

$ unzip test_bundle.zip

2. Assim que conseguir descompactar o pacote, você poderá encontrar a estrutura de árvore do diretóriode trabalho executando o seguinte comando:

$ tree .

Você deve encontrar o arquivo requirement.txt no diretório de trabalho.

.|-- requirements.txt|-- test_bundle.zip|-- tests (directory)| `--test_unittest.py`-- wheelhouse (directory) |-- Appium_Python_Client-0.20-cp27-none-any.whl |-- py-1.4.31-py2.py3-none-any.whl |-- pytest-2.9.0-py2.py3-none-any.whl |-- selenium-2.52.0-cp27-none-any.whl `-- wheel-0.26.0-py2.py3-none-any.whl

Versão da API 2015-06-23200

Page 209: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorAPPIUM_WEB_PYTHON_TEST_PACKAGE_INSTALL_DEPENDENCY_WHEELS_FAILED

3. Para obter a versão pytest, você pode executar o seguinte comando:

$ grep "pytest" requirements.txt

Você provavelmente chegará a um resultado como o seguinte:

pytest==2.9.0

Ele mostra a versão do pytest que, neste exemplo, é 2.9.0. Se o pacote do Appium Python for válido, aversão de pytest deverá ser posterior ou igual a 2.8.0.

Para obter mais informações, consulte Appium Python (p. 113).

APPIUM_WEB_PYTHON_TEST_PACKAGE_INSTALL_DEPENDENCY_WHEELS_FAILEDSe você visualizar a mensagem a seguir, siga estas etapas para corrigir o problema.

Warning

Não foi possível instalar as wheels de dependência. Descompacte seu pacote de testes e abrao arquivo requirements.txt e o diretório wheelhouse, verifique se as wheels de dependênciaespecificadas no arquivo requirements.txt correspondem exatamente às wheels de dependênciano diretório wheelhouse e tente novamente.

É altamente recomendável configurar o virtualenv do Python para testes de empacotamento. Veja aqui umexemplo de fluxo de criação de um ambiente virtual por meio do virtualenv do Python e, em seguida, desua ativação:

$ virtualenv workspace$ cd workspace $ source bin/activate

Verifique se você consegue descompactar o pacote de testes sem erros. No exemplo a seguir, o nome dopacote é test_bundle.zip.

1. Copie o pacote de testes para seu diretório de trabalho e execute o comando a seguir:

$ unzip test_bundle.zip

2. Para testar os arquivos wheel de instalação, execute o seguinte comando:

$ pip install --use-wheel --no-index --find-links=./wheelhouse --requirement=./requirements.txt

Um pacote válido do Appium Python deve gerar um resultado semelhante ao seguinte:

Ignoring indexes: https://pypi.python.org/simpleCollecting Appium-Python-Client==0.20 (from -r ./requirements.txt (line 1))Collecting py==1.4.31 (from -r ./requirements.txt (line 2))Collecting pytest==2.9.0 (from -r ./requirements.txt (line 3))Collecting selenium==2.52.0 (from -r ./requirements.txt (line 4))Collecting wheel==0.26.0 (from -r ./requirements.txt (line 5))Installing collected packages: selenium, Appium-Python-Client, py, pytest, wheel Found existing installation: wheel 0.29.0 Uninstalling wheel-0.29.0:

Versão da API 2015-06-23201

Page 210: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorAPPIUM_WEB_PYTHON_TEST_PACKAGE_PYTEST_COLLECT_FAILED

Successfully uninstalled wheel-0.29.0Successfully installed Appium-Python-Client-0.20 py-1.4.31 pytest-2.9.0 selenium-2.52.0 wheel-0.26.0

3. Para desativar o ambiente virtual, você pode executar o seguinte comando:

$ deactivate

Para obter mais informações, consulte Appium Python (p. 113).

APPIUM_WEB_PYTHON_TEST_PACKAGE_PYTEST_COLLECT_FAILEDSe você visualizar a mensagem a seguir, siga estas etapas para corrigir o problema.

Warning

Não foi possível coletar testes no diretório tests. Descompacte o pacote de testes. Para verificarse o pacote de testes é válido, execute o comando <py.test --collect-only> <caminho para seupacote de testes> e tente novamente se o comando não imprimir nenhum erro.

É altamente recomendável configurar o virtualenv do Python para testes de empacotamento. Veja aqui umexemplo de fluxo de criação de um ambiente virtual por meio do virtualenv do Python e, em seguida, desua ativação:

$ virtualenv workspace$ cd workspace $ source bin/activate

Verifique se você consegue descompactar o pacote de testes sem erros. No exemplo a seguir, o nome dopacote é test_bundle.zip.

1. Copie o pacote de testes para seu diretório de trabalho e execute o comando a seguir:

$ unzip test_bundle.zip

2. Para instalar os arquivos wheel, execute o seguinte comando:

$ pip install --use-wheel --no-index --find-links=./wheelhouse --requirement=./requirements.txt

3. Para coletar os testes, execute o seguinte comando:

$ py.test --collect-only tests

Um pacote válido do Appium Python deve gerar um resultado semelhante ao seguinte:

==================== test session starts ====================platform darwin -- Python 2.7.11, pytest-2.9.0, py-1.4.31, pluggy-0.3.1rootdir: /Users/zhena/Desktop/Ios/tests, inifile:collected 1 items<Module 'test_unittest.py'> <UnitTestCase 'DeviceFarmAppiumWebTests'> <TestCaseFunction 'test_devicefarm'>

==================== no tests ran in 0.11 seconds ====================

Versão da API 2015-06-23202

Page 211: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorCalabash

4. Para desativar o ambiente virtual, você pode executar o seguinte comando:

$ deactivate

Para obter mais informações, consulte Appium Python (p. 113).

Solução de problemas de testes do Calabash noAWS Device Farm

O tópico a seguir lista mensagens de erro que ocorrem durante o upload de testes do Calabash erecomenda soluções para resolver cada erro.

CALABASH_TEST_PACKAGE_UNZIP_FAILED_UNZIP_FAILEDSe você visualizar a mensagem a seguir, siga estas etapas para corrigir o problema.

Warning

Não conseguimos abrir seu arquivo de teste ZIP. Verifique se o arquivo é válido e tentenovamente.

Verifique se você consegue descompactar o pacote de testes sem erros. No exemplo a seguir, o nome dopacote é features.zip.

1. Copie o pacote de testes para seu diretório de trabalho e execute o comando a seguir:

$ unzip features.zip

2. Assim que conseguir descompactar o pacote, você poderá encontrar a estrutura de árvore do diretóriode trabalho executando o seguinte comando:

$ tree .

Um pacote válido do Calabash deve gerar um resultado semelhante ao seguinte:

.`-- features (directory) |-- my-feature-1-file-name.feature |-- my-feature-2-file-name.feature |-- my-feature-N-file-name.feature |-- step_definitions (directory) | `-- (.rb files) |-- support (directory) | `-- (.rb files) `-- (any other supporting files)

Para obter mais informações, consulte Calabash (p. 72) ou Calabash (p. 96).

CALABASH_TEST_PACKAGE_FEATURES_DIR_MISSING_FEATURES_DIR_MISSINGSe você visualizar a mensagem a seguir, siga estas etapas para corrigir o problema.

Versão da API 2015-06-23203

Page 212: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorCALABASH_TEST_PACKAGE_FEATURE_FILE_MISSING

Warning

Não foi possível encontrar o diretório features na árvore do pacote de testes. Descompacte opacote de testes, verifique se o diretório features encontra-se no pacote e tente novamente.

No exemplo a seguir, o nome do pacote é features.zip.

1. Copie o pacote de testes para seu diretório de trabalho e execute o comando a seguir:

$ unzip features.zip

2. Assim que conseguir descompactar o pacote, você poderá encontrar a estrutura de árvore do diretóriode trabalho executando o seguinte comando:

$ tree .

Se o pacote do Calabash for válido, você encontrará o diretório features no diretório de trabalho.

.`-- features (directory) |-- my-feature-1-file-name.feature |-- my-feature-2-file-name.feature |-- my-feature-N-file-name.feature |-- step_definitions (directory) | `-- (.rb files) |-- support (directory) | `-- (.rb files) `-- (any other supporting files)

Para obter mais informações, consulte Calabash (p. 72) ou Calabash (p. 96).

CALABASH_TEST_PACKAGE_FEATURE_FILE_MISSINGSe você visualizar a mensagem a seguir, siga estas etapas para corrigir o problema.

Warning

Não foi possível localizar um arquivo .feature na árvore do diretório features. Descompacte opacote de testes e abra o diretório features, verifique se pelo menos um arquivo .feature encontra-se no diretório e tente novamente.

No exemplo a seguir, o nome do pacote é features.zip.

1. Copie o pacote de testes para seu diretório de trabalho e execute o comando a seguir:

$ unzip features.zip

2. Assim que conseguir descompactar o pacote, você poderá encontrar a estrutura de árvore do diretóriode trabalho executando o seguinte comando:

$ tree .

Se o pacote do Calabash for válido, você encontrará pelo menos um arquivo .feature no diretóriofeatures.

.`-- features (directory)

Versão da API 2015-06-23204

Page 213: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorCALABASH_TEST_PACKAGE_STEP_DEFINITIONS_DIR_MISSING

|-- my-feature-1-file-name.feature |-- my-feature-2-file-name.feature |-- my-feature-N-file-name.feature |-- step_definitions (directory) | `-- (.rb files) |-- support (directory) | `-- (.rb files) `-- (any other supporting files)

Para obter mais informações, consulte Calabash (p. 72) ou Calabash (p. 96).

CALABASH_TEST_PACKAGE_STEP_DEFINITIONS_DIR_MISSINGSe você visualizar a mensagem a seguir, siga estas etapas para corrigir o problema.

Warning

Não foi possível encontrar o diretório step_definitions em seu pacote de testes. Descompacte opacote de testes e abra o diretório features, verifique se o diretório step_definitions encontra-se nopacote e tente novamente.

No exemplo a seguir, o nome do pacote é features.zip.

1. Copie o pacote de testes para seu diretório de trabalho e execute o comando a seguir:

$ unzip features.zip

2. Assim que conseguir descompactar o pacote, você poderá encontrar a estrutura de árvore do diretóriode trabalho executando o seguinte comando:

$ tree .

Se o pacote do Calabash for válido, você encontrará o diretório step_definitions no diretóriofeatures.

.`-- features (directory) |-- my-feature-1-file-name.feature |-- my-feature-2-file-name.feature |-- my-feature-N-file-name.feature |-- step_definitions (directory) | `-- (.rb files) |-- support (directory) | `-- (.rb files) `-- (any other supporting files)

Para obter mais informações, consulte Calabash (p. 72) ou Calabash (p. 96).

CALABASH_TEST_PACKAGE_SUPPORT_DIR_MISSINGSe você visualizar a mensagem a seguir, siga estas etapas para corrigir o problema.

Warning

Não foi possível encontrar o diretório support em seu pacote de testes. Descompacte o pacote detestes e abra o diretório features, verifique se o diretório support encontra-se no pacote e tentenovamente.

Versão da API 2015-06-23205

Page 214: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorCALABASH_TEST_PACKAGE_RUBY_FILE_MISSING_IN_STEP_DEFINITIONS_DIR

No exemplo a seguir, o nome do pacote é features.zip.

1. Copie o pacote de testes para seu diretório de trabalho e execute o comando a seguir:

$ unzip features.zip

2. Assim que conseguir descompactar o pacote, você poderá encontrar a estrutura de árvore do diretóriode trabalho executando o seguinte comando:

$ tree .

Se o pacote do Calabash for válido, você encontrará o diretório support no diretório features.

.`-- features (directory) |-- my-feature-1-file-name.feature |-- my-feature-2-file-name.feature |-- my-feature-N-file-name.feature |-- step_definitions (directory) | `-- (.rb files) |-- support (directory) | `-- (.rb files) `-- (any other supporting files)

Para obter mais informações, consulte Calabash (p. 72) ou Calabash (p. 96).

CALABASH_TEST_PACKAGE_RUBY_FILE_MISSING_IN_STEP_DEFINITIONS_DIRSe você visualizar a mensagem a seguir, siga estas etapas para corrigir o problema.

Warning

Não foi possível localizar um ruby na árvore do diretório step_definitions. Descompacte o pacotede testes e abra o diretório step_definitions, verifique se pelo menos um arquivo ruby encontra-seno diretório e tente novamente.

No exemplo a seguir, o nome do pacote é features.zip.

1. Copie o pacote de testes para seu diretório de trabalho e execute o comando a seguir:

$ unzip features.zip

2. Assim que conseguir descompactar o pacote, você poderá encontrar a estrutura de árvore do diretóriode trabalho executando o seguinte comando:

$ tree .

Se o pacote do Calabash for válido, você encontrará pelo menos um arquivo ruby no diretóriostep_definitions.

.`-- features (directory) |-- my-feature-1-file-name.feature |-- my-feature-2-file-name.feature |-- my-feature-N-file-name.feature |-- step_definitions (directory)

Versão da API 2015-06-23206

Page 215: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorCALABASH_TEST_PACKAGE_RUBY_FILE_MISSING_IN_SUPPORT_DIR

| |-- one-ruby.rb | |-- folder | | `-- another-ruby.rb | `-- (any other supporting files) |-- support (directory) | `-- (.rb files) `-- (any other supporting files)

Para obter mais informações, consulte Calabash (p. 72) ou Calabash (p. 96).

CALABASH_TEST_PACKAGE_RUBY_FILE_MISSING_IN_SUPPORT_DIRSe você visualizar a mensagem a seguir, siga estas etapas para corrigir o problema.

Warning

Não foi possível localizar um arquivo ruby na árvore do diretório support. Descompacte o pacotede testes e abra o diretório support, verifique se pelo menos um arquivo ruby encontra-se nodiretório e tente novamente.

No exemplo a seguir, o nome do pacote é features.zip.

1. Copie o pacote de testes para seu diretório de trabalho e execute o comando a seguir:

$ unzip features.zip

2. Assim que conseguir descompactar o pacote, você poderá encontrar a estrutura de árvore do diretóriode trabalho executando o seguinte comando:

$ tree .

Se o pacote do Calabash for válido, você encontrará pelo menos um arquivo ruby no diretóriosupport.

.`-- features (directory) |-- my-feature-1-file-name.feature |-- my-feature-2-file-name.feature |-- my-feature-N-file-name.feature |-- step_definitions (directory) | `-- (.rb files) |-- support (directory) | |-- one-ruby.rb | |-- folder | | `-- another-ruby.rb | `-- (any other supporting files) `-- (any other supporting files)

Para obter mais informações, consulte Calabash (p. 72) ou Calabash (p. 96).

CALABASH_TEST_PACKAGE_EMBEDDED_SERVER_MISSINGSe você visualizar a mensagem a seguir, siga estas etapas para corrigir o problema.

Versão da API 2015-06-23207

Page 216: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorCALABASH_TEST_PACKAGE_DRY_RUN_FAILED

Warning

Não foi possível encontrar o servidor incorporado em seu pacote de testes. Verifique se o servidorestá no pacote executando o comando "calabash-ios check <caminho do pacote de teste>" etente novamente depois de encontrar a estrutura do Calabash.

Os testes do Calabash contêm um servidor web incorporado no aplicativo iOS.

Confirme se o servidor web está incorporado ao aplicativo iOS. No exemplo a seguir, o nome do aplicativoiOS é AWSDeviceFarmiOSReferenceApp.ipa.

• Copie o aplicativo iOS para seu diretório de trabalho e execute o seguinte comando:

$ calabash-ios check AWSDeviceFarmiOSReferenceApp.ipa

Um aplicativo iOS válido deve gerar um resultado semelhante ao seguinte:

Ipa: AWSDeviceFarmiOSReferenceApp.ipa *contains* calabash.framework0.19.0

Para obter mais informações, consulte Calabash (p. 72) ou Calabash (p. 96).

CALABASH_TEST_PACKAGE_DRY_RUN_FAILEDSe você visualizar a mensagem a seguir, siga estas etapas para corrigir o problema.

Warning

Não foi possível examinar rapidamente seus arquivos .feature. Descompacte o pacote de testes.Para verificar se os arquivos são válidos, executando o comando "calabash --dry-run <caminhopara o diretório features>", e tente novamente se o comando não imprimir nenhum erro.

Durante o upload do processo de validação, o Device Farm examina rapidamente seus recursos sem defato executá-los.

Certifique-se de que seus recursos são válidos. No exemplo a seguir, o nome do pacote é features.zip.

1. Copie o pacote de testes para seu diretório de trabalho e execute o comando a seguir:

$ unzip features.zip

Depois de descompactar o pacote, você encontrará o diretório features no diretório de trabalho.2. Para examinar os recursos, execute o seguinte comando:

$ cucumber-ios --dry-run --format json features

Um pacote válido do Calabash deve gerar um resultado semelhante ao seguinte:

[ { "uri": "features/homepage.feature", "id": "home-page", "keyword": "Feature", "name": "Home Page", "description": " As a Device Farm user\n I would like to be able to see examples of testing a static homepage\n So I can apply it to my future tests.",

Versão da API 2015-06-23208

Page 217: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorInstrumentação

"line": 1, "elements": [ { "id": "home-page;a-valid-homepage", "keyword": "Scenario", "name": "A Valid Homepage", "description": "", "line": 6, "type": "scenario", "steps": [ { "keyword": "Given ", "name": "that I navigate to the \"Home\" menu category", "line": 7, "match": { "location": "/Library/Ruby/Gems/2.0.0/gems/cucumber-2.4.0/lib/cucumber/step_match.rb:98" }, "result": { "status": "skipped", "duration": 16000 } } ] } ] }]

Para obter mais informações, consulte Calabash (p. 72) ou Calabash (p. 96).

Solução de problemas de testes de instrumentaçãono AWS Device Farm

O tópico a seguir lista mensagens de erro que ocorrem durante o upload de testes de instrumentação erecomenda soluções para resolver cada erro.

INSTRUMENTATION_TEST_PACKAGE_UNZIP_FAILEDSe você visualizar a mensagem a seguir, siga estas etapas para corrigir o problema.

Warning

Não conseguimos abrir seu arquivo de teste APK. Verifique se o arquivo é válido e tentenovamente.

Verifique se você consegue descompactar o pacote de testes sem erros. No exemplo a seguir, o nome dopacote é app-debug-androidTest-unaligned.apk.

1. Copie o pacote de testes para seu diretório de trabalho e execute o comando a seguir:

$ unzip app-debug-androidTest-unaligned.apk

2. Assim que conseguir descompactar o pacote, você poderá encontrar a estrutura de árvore do diretóriode trabalho executando o seguinte comando:

$ tree .

Versão da API 2015-06-23209

Page 218: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorINSTRUMENTATION_TEST_PACKAGE_AAPT_DEBUG_BADGING_FAILED

Um pacote de testes de instrumentação válido deve gerar um resultado semelhante ao seguinte:

.|-- AndroidManifest.xml|-- classes.dex|-- resources.arsc|-- LICENSE-junit.txt|-- junit (directory)`-- META-INF (directory)

Para obter mais informações, consulte Como trabalhar com instrumentação para o Android e o AWSDevice Farm (p. 74).

INSTRUMENTATION_TEST_PACKAGE_AAPT_DEBUG_BADGING_FAILEDSe você visualizar a mensagem a seguir, siga estas etapas para corrigir o problema.

Warning

Não foi possível extrair informações sobre o pacote de teste. Para verificar se o pacote de testesé válido, execute o comando "aapt debug badging <caminho para seu pacote de testes>" e tentenovamente se o comando não imprimir nenhum erro.

Durante o processo de validação do upload, o Device Farm analisa informações de saída do comandoaapt debug badging <path to your package>.

Verifique se você consegue executar esse comando com êxito em seu pacote de testes deinstrumentação.

No exemplo a seguir, o nome do pacote é app-debug-androidTest-unaligned.apk.

• Copie o pacote de testes para seu diretório de trabalho e execute o comando a seguir:

$ aapt debug badging app-debug-androidTest-unaligned.apk

Um pacote de testes de instrumentação válido deve gerar um resultado semelhante ao seguinte:

package: name='com.amazon.aws.adf.android.referenceapp.test' versionCode='' versionName='' platformBuildVersionName='5.1.1-1819727'sdkVersion:'9'targetSdkVersion:'22'application-label:'Test-api'application: label='Test-api' icon=''application-debuggableuses-library:'android.test.runner'feature-group: label=''uses-feature: name='android.hardware.touchscreen'uses-implied-feature: name='android.hardware.touchscreen' reason='default feature for all apps'supports-screens: 'small' 'normal' 'large' 'xlarge'supports-any-density: 'true'locales: '--_--'densities: '160'

Para obter mais informações, consulte Como trabalhar com instrumentação para o Android e o AWSDevice Farm (p. 74).

Versão da API 2015-06-23210

Page 219: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorINSTRUMENTATION_TEST_PACKAGE_INSTRUMENTATION_RUNNER_VALUE_MISSING

INSTRUMENTATION_TEST_PACKAGE_INSTRUMENTATION_RUNNER_VALUE_MISSINGSe você visualizar a mensagem a seguir, siga estas etapas para corrigir o problema.

Warning

Não foi possível localizar o valor do executor de instrumentação no AndroidManifest.xml. Paraverificar se o pacote de testes é válido, execute o comando "aapt dump xmltree <caminho paraseu pacote de testes> AndroidManifest.xml" e tente novamente depois que encontrar o valor doexecutor de instrumentação subjacente à palavra-chave "instrumentation".

Durante o upload do processo de validação, o Device Farm analisa o valor do executor de instrumentaçãona árvore de análise XML para um arquivo XML contido no pacote. Você pode usar os seguintescomandos: aapt dump xmltree <path to your package> AndroidManifest.xml.

Verifique se você consegue executar esse comando com êxito em seu pacote de testes de instrumentaçãoe encontrar o valor de instrumentação.

No exemplo a seguir, o nome do pacote é app-debug-androidTest-unaligned.apk.

• Copie o pacote de testes para seu diretório de trabalho e execute o comando a seguir:

$ aapt dump xmltree app-debug-androidTest-unaligned.apk AndroidManifest.xml | grep -A5 "instrumentation"

Um pacote de testes de instrumentação válido deve gerar um resultado semelhante ao seguinte:

E: instrumentation (line=9) A: android:label(0x01010001)="Tests for com.amazon.aws.adf.android.referenceapp" (Raw: "Tests for com.amazon.aws.adf.android.referenceapp") A: android:name(0x01010003)="android.support.test.runner.AndroidJUnitRunner" (Raw: "android.support.test.runner.AndroidJUnitRunner") A: android:targetPackage(0x01010021)="com.amazon.aws.adf.android.referenceapp" (Raw: "com.amazon.aws.adf.android.referenceapp") A: android:handleProfiling(0x01010022)=(type 0x12)0x0 A: android:functionalTest(0x01010023)=(type 0x12)0x0

Para obter mais informações, consulte Como trabalhar com instrumentação para o Android e o AWSDevice Farm (p. 74).

INSTRUMENTATION_TEST_PACKAGE_AAPT_DUMP_XMLTREE_FAILEDSe você visualizar a mensagem a seguir, siga estas etapas para corrigir o problema.

Warning

Não foi possível encontrar o AndroidManifest.xml válido em seu pacote de testes. Para verificar seo pacote de testes é válido, execute o comando "aapt dump xmltree <caminho para seu pacote detestes> AndroidManifest.xml" e tente novamente se o comando não imprimir nenhum erro.

Durante o processo de validação do upload, o Device Farm analisa informações da árvore de análise XMLpara um arquivo XML contido no pacote usando o seguinte comando: aapt dump xmltree <path toyour package> AndroidManifest.xml.

Versão da API 2015-06-23211

Page 220: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorINSTRUMENTATION_TEST_PACKAGE_TEST_PACKAGE_NAME_VALUE_MISSING

Verifique se você consegue executar esse comando com êxito em seu pacote de testes deinstrumentação.

No exemplo a seguir, o nome do pacote é app-debug-androidTest-unaligned.apk.

• Copie o pacote de testes para seu diretório de trabalho e execute o comando a seguir:

$ aapt dump xmltree app-debug-androidTest-unaligned.apk AndroidManifest.xml

Um pacote de testes de instrumentação válido deve gerar um resultado semelhante ao seguinte:

N: android=http://schemas.android.com/apk/res/android E: manifest (line=2) A: package="com.amazon.aws.adf.android.referenceapp.test" (Raw: "com.amazon.aws.adf.android.referenceapp.test") A: platformBuildVersionCode=(type 0x10)0x16 (Raw: "22") A: platformBuildVersionName="5.1.1-1819727" (Raw: "5.1.1-1819727") E: uses-sdk (line=5) A: android:minSdkVersion(0x0101020c)=(type 0x10)0x9 A: android:targetSdkVersion(0x01010270)=(type 0x10)0x16 E: instrumentation (line=9) A: android:label(0x01010001)="Tests for com.amazon.aws.adf.android.referenceapp" (Raw: "Tests for com.amazon.aws.adf.android.referenceapp") A: android:name(0x01010003)="android.support.test.runner.AndroidJUnitRunner" (Raw: "android.support.test.runner.AndroidJUnitRunner") A: android:targetPackage(0x01010021)="com.amazon.aws.adf.android.referenceapp" (Raw: "com.amazon.aws.adf.android.referenceapp") A: android:handleProfiling(0x01010022)=(type 0x12)0x0 A: android:functionalTest(0x01010023)=(type 0x12)0x0 E: application (line=16) A: android:label(0x01010001)=@0x7f020000 A: android:debuggable(0x0101000f)=(type 0x12)0xffffffff E: uses-library (line=17) A: android:name(0x01010003)="android.test.runner" (Raw: "android.test.runner")

Para obter mais informações, consulte Como trabalhar com instrumentação para o Android e o AWSDevice Farm (p. 74).

INSTRUMENTATION_TEST_PACKAGE_TEST_PACKAGE_NAME_VALUE_MISSINGSe você visualizar a mensagem a seguir, siga estas etapas para corrigir o problema.

Warning

Não foi possível encontrar o nome do pacote em seu pacote de testes. Para verificar se opacote de testes é válido, execute o comando "aapt debug badging <caminho para seu pacotede testes>" e tente novamente depois que encontrar o valor do nome do pacote subjacente àpalavra-chave "package: name".

Durante o upload do processo de validação, o Device Farm analisa informações de saída do seguintecomando aapt debug badging <path to your package>.

Verifique se você consegue executar esse comando com êxito em seu pacote de testes de instrumentaçãoe encontrar o valor do nome do pacote.

No exemplo a seguir, o nome do pacote é app-debug-androidTest-unaligned.apk.

Versão da API 2015-06-23212

Page 221: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorAplicativos iOS

• Copie o pacote de testes para seu diretório de trabalho e execute o comando a seguir:

$ aapt debug badging app-debug-androidTest-unaligned.apk | grep "package: name="

Um pacote de testes de instrumentação válido deve gerar um resultado semelhante ao seguinte:

package: name='com.amazon.aws.adf.android.referenceapp.test' versionCode='' versionName='' platformBuildVersionName='5.1.1-1819727'

Para obter mais informações, consulte Como trabalhar com instrumentação para o Android e o AWSDevice Farm (p. 74).

Solução de problemas de testes de aplicativos iOSno AWS Device Farm

O tópico a seguir lista mensagens de erro que ocorrem durante o upload de testes de aplicativos iOS erecomenda soluções para resolver cada erro.

Note

As instruções a seguir baseiam-se no Linux x86_64 e Mac.

IOS_APP_UNZIP_FAILEDSe você visualizar a mensagem a seguir, siga estas etapas para corrigir o problema.

Warning

Não conseguimos abrir seu aplicativo. Verifique se o arquivo é válido e tente novamente.

Verifique se você consegue descompactar o pacote de aplicativos sem erros. No exemplo a seguir, o nomedo pacote é AWSDeviceFarmiOSReferenceApp.ipa.

1. Copie o pacote de aplicativos para seu diretório de trabalho e execute o seguinte comando:

$ unzip AWSDeviceFarmiOSReferenceApp.ipa

2. Assim que conseguir descompactar o pacote, você poderá encontrar a estrutura de árvore do diretóriode trabalho executando o seguinte comando:

$ tree .

Um pacote de aplicativos iOS válido deve gerar um resultado semelhante ao seguinte:

.`-- Payload (directory) `-- AWSDeviceFarmiOSReferenceApp.app (directory) |-- Info.plist `-- (any other files)

Para obter mais informações, consulte Como trabalhar com testes do iOS no AWS DeviceFarm (p. 77).

Versão da API 2015-06-23213

Page 222: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorIOS_APP_PAYLOAD_DIR_MISSING

IOS_APP_PAYLOAD_DIR_MISSINGSe você visualizar a mensagem a seguir, siga estas etapas para corrigir o problema.

Warning

Não foi possível encontrar o diretório Payload em seu pacote de aplicativos. Descompacte opacote de aplicativos, verifique se o diretório Payload encontra-se no pacote e tente novamente.

No exemplo a seguir, o nome do pacote é AWSDeviceFarmiOSReferenceApp.ipa.

1. Copie o pacote de aplicativos para seu diretório de trabalho e execute o seguinte comando:

$ unzip AWSDeviceFarmiOSReferenceApp.ipa

2. Assim que conseguir descompactar o pacote, você poderá encontrar a estrutura de árvore do diretóriode trabalho executando o seguinte comando:

$ tree .

Se o pacote de aplicativos iOS for válido, você encontrará o diretório Payload no diretório detrabalho.

.`-- Payload (directory) `-- AWSDeviceFarmiOSReferenceApp.app (directory) |-- Info.plist `-- (any other files)

Para obter mais informações, consulte Como trabalhar com testes do iOS no AWS DeviceFarm (p. 77).

IOS_APP_APP_DIR_MISSINGSe você visualizar a mensagem a seguir, siga estas etapas para corrigir o problema.

Warning

Não foi possível encontrar o diretório .app no diretório Payload. Descompacte o pacote deaplicativos e abra o diretório Payload, verifique se o diretório .app encontra-se no diretório e tentenovamente.

No exemplo a seguir, o nome do pacote é AWSDeviceFarmiOSReferenceApp.ipa.

1. Copie o pacote de aplicativos para seu diretório de trabalho e execute o seguinte comando:

$ unzip AWSDeviceFarmiOSReferenceApp.ipa

2. Assim que conseguir descompactar o pacote, você poderá encontrar a estrutura de árvore do diretóriode trabalho executando o seguinte comando:

$ tree .

Se o pacote de aplicativos iOS for válido, você encontrará um diretório .app semelhante aAWSDeviceFarmiOSReferenceApp.app em nosso exemplo no diretório Payload.

Versão da API 2015-06-23214

Page 223: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorIOS_APP_PLIST_FILE_MISSING

.`-- Payload (directory) `-- AWSDeviceFarmiOSReferenceApp.app (directory) |-- Info.plist `-- (any other files)

Para obter mais informações, consulte Como trabalhar com testes do iOS no AWS DeviceFarm (p. 77).

IOS_APP_PLIST_FILE_MISSINGSe você visualizar a mensagem a seguir, siga estas etapas para corrigir o problema.

Warning

Não foi possível encontrar o arquivo Info.plist no diretório .app. Descompacte o pacote deaplicativos e abra o diretório .app, verifique se o arquivo Info.plist encontra-se no diretório e tentenovamente.

No exemplo a seguir, o nome do pacote é AWSDeviceFarmiOSReferenceApp.ipa.

1. Copie o pacote de aplicativos para seu diretório de trabalho e execute o seguinte comando:

$ unzip AWSDeviceFarmiOSReferenceApp.ipa

2. Assim que conseguir descompactar o pacote, você poderá encontrar a estrutura de árvore do diretóriode trabalho executando o seguinte comando:

$ tree .

Se o pacote de aplicativos iOS for válido, você encontrará o arquivo Info.plist no diretório .app,semelhante a AWSDeviceFarmiOSReferenceApp.app em nosso exemplo.

.`-- Payload (directory) `-- AWSDeviceFarmiOSReferenceApp.app (directory) |-- Info.plist `-- (any other files)

Para obter mais informações, consulte Como trabalhar com testes do iOS no AWS DeviceFarm (p. 77).

IOS_APP_CPU_ARCHITECTURE_VALUE_MISSINGSe você visualizar a mensagem a seguir, siga estas etapas para corrigir o problema.

Warning

Não foi possível encontrar o valor de arquitetura da CPU no arquivo Info.plist. Descompacteo pacote de aplicativos e abra o arquivo Info.plist no diretório .app, verifique se a chave"UIRequiredDeviceCapabilities" está especificada e tente novamente.

No exemplo a seguir, o nome do pacote é AWSDeviceFarmiOSReferenceApp.ipa.

1. Copie o pacote de aplicativos para seu diretório de trabalho e execute o seguinte comando:

Versão da API 2015-06-23215

Page 224: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorIOS_APP_PLATFORM_VALUE_MISSING

$ unzip AWSDeviceFarmiOSReferenceApp.ipa

2. Assim que conseguir descompactar o pacote, você poderá encontrar a estrutura de árvore do diretóriode trabalho executando o seguinte comando:

$ tree .

Você deve encontrar o arquivo Info.plist em um diretório .app semelhante aAWSDeviceFarmiOSReferenceApp.app em nosso exemplo:

.`-- Payload (directory) `-- AWSDeviceFarmiOSReferenceApp.app (directory) |-- Info.plist `-- (any other files)

3. Para encontrar o valor de arquitetura da CPU, você pode abrir o Info.plist usando o Xcode ou Python.

Para o Python, você pode instalar o módulo biplist executando o seguinte comando:

$ pip install biplist

4. Em seguida, abra o Python e execute o seguinte comando:

import biplistinfo_plist = biplist.readPlist('Payload/AWSDeviceFarmiOSReferenceApp-cal.app/Info.plist')print info_plist['UIRequiredDeviceCapabilities']

Um pacote de aplicativos iOS válido deve gerar um resultado semelhante ao seguinte:

['armv7']

Para obter mais informações, consulte Como trabalhar com testes do iOS no AWS DeviceFarm (p. 77).

IOS_APP_PLATFORM_VALUE_MISSINGSe você visualizar a mensagem a seguir, siga estas etapas para corrigir o problema.

Warning

Não foi possível encontrar o valor da plataforma no arquivo Info.plist. Descompacte opacote de aplicativos e abra o arquivo Info.plist no diretório .app, verifique se a chave"CFBundleSupportedPlatforms" está especificada e tente novamente.

No exemplo a seguir, o nome do pacote é AWSDeviceFarmiOSReferenceApp.ipa.

1. Copie o pacote de aplicativos para seu diretório de trabalho e execute o seguinte comando:

$ unzip AWSDeviceFarmiOSReferenceApp.ipa

2. Assim que conseguir descompactar o pacote, você poderá encontrar a estrutura de árvore do diretóriode trabalho executando o seguinte comando:

Versão da API 2015-06-23216

Page 225: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorIOS_APP_WRONG_PLATFORM_DEVICE_VALUE

$ tree .

Você deve encontrar o arquivo Info.plist em um diretório .app semelhante aAWSDeviceFarmiOSReferenceApp.app em nosso exemplo:

.`-- Payload (directory) `-- AWSDeviceFarmiOSReferenceApp.app (directory) |-- Info.plist `-- (any other files)

3. Para encontrar o valor da plataforma, você pode abrir o Info.plist usando o Xcode ou Python.

Para o Python, você pode instalar o módulo biplist executando o seguinte comando:

$ pip install biplist

4. Em seguida, abra o Python e execute o seguinte comando:

import biplistinfo_plist = biplist.readPlist('Payload/AWSDeviceFarmiOSReferenceApp-cal.app/Info.plist')print info_plist['CFBundleSupportedPlatforms']

Um pacote de aplicativos iOS válido deve gerar um resultado semelhante ao seguinte:

['iPhoneOS']

Para obter mais informações, consulte Como trabalhar com testes do iOS no AWS DeviceFarm (p. 77).

IOS_APP_WRONG_PLATFORM_DEVICE_VALUESe você visualizar a mensagem a seguir, siga estas etapas para corrigir o problema.

Warning

Descobrimos que o valor do dispositivo de plataforma estava errado no arquivo Info.plist.Descompacte o pacote de aplicativos e abra o arquivo Info.plist no diretório .app, verifique se ovalor da chave "CFBundleSupportedPlatforms" não contém a palavra-chave "simulator" e tentenovamente.

No exemplo a seguir, o nome do pacote é AWSDeviceFarmiOSReferenceApp.ipa.

1. Copie o pacote de aplicativos para seu diretório de trabalho e execute o seguinte comando:

$ unzip AWSDeviceFarmiOSReferenceApp.ipa

2. Assim que conseguir descompactar o pacote, você poderá encontrar a estrutura de árvore do diretóriode trabalho executando o seguinte comando:

$ tree .

Você deve encontrar o arquivo Info.plist em um diretório .app semelhante aAWSDeviceFarmiOSReferenceApp.app em nosso exemplo:

Versão da API 2015-06-23217

Page 226: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorIOS_APP_FORM_FACTOR_VALUE_MISSING

.`-- Payload (directory) `-- AWSDeviceFarmiOSReferenceApp.app (directory) |-- Info.plist `-- (any other files)

3. Para encontrar o valor da plataforma, você pode abrir o Info.plist usando o Xcode ou Python.

Para o Python, você pode instalar o módulo biplist executando o seguinte comando:

$ pip install biplist

4. Em seguida, abra o Python e execute o seguinte comando:

import biplistinfo_plist = biplist.readPlist('Payload/AWSDeviceFarmiOSReferenceApp-cal.app/Info.plist')print info_plist['CFBundleSupportedPlatforms']

Um pacote de aplicativos iOS válido deve gerar um resultado semelhante ao seguinte:

['iPhoneOS']

Se o pacote de aplicativos iOS for válido, o valor não deve conter a palavra-chave simulator.

Para obter mais informações, consulte Como trabalhar com testes do iOS no AWS DeviceFarm (p. 77).

IOS_APP_FORM_FACTOR_VALUE_MISSINGSe você visualizar a mensagem a seguir, siga estas etapas para corrigir o problema.

Warning

Não foi possível encontrar o valor do formato no arquivo Info.plist. Descompacte o pacote deaplicativos e abra o arquivo Info.plist no diretório .app, verifique se a chave "UIDeviceFamily" estáespecificada e tente novamente.

No exemplo a seguir, o nome do pacote é AWSDeviceFarmiOSReferenceApp.ipa.

1. Copie o pacote de aplicativos para seu diretório de trabalho e execute o seguinte comando:

$ unzip AWSDeviceFarmiOSReferenceApp.ipa

2. Assim que conseguir descompactar o pacote, você poderá encontrar a estrutura de árvore do diretóriode trabalho executando o seguinte comando:

$ tree .

Você deve encontrar o arquivo Info.plist em um diretório .app semelhante aAWSDeviceFarmiOSReferenceApp.app em nosso exemplo:

.`-- Payload (directory)

Versão da API 2015-06-23218

Page 227: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorIOS_APP_PACKAGE_NAME_VALUE_MISSING

`-- AWSDeviceFarmiOSReferenceApp.app (directory) |-- Info.plist `-- (any other files)

3. Para encontrar o valor do formato, você pode abrir o Info.plist usando o Xcode ou Python.

Para o Python, você pode instalar o módulo biplist executando o seguinte comando:

$ pip install biplist

4. Em seguida, abra o Python e execute o seguinte comando:

import biplistinfo_plist = biplist.readPlist('Payload/AWSDeviceFarmiOSReferenceApp-cal.app/Info.plist')print info_plist['UIDeviceFamily']

Um pacote de aplicativos iOS válido deve gerar um resultado semelhante ao seguinte:

[1, 2]

Para obter mais informações, consulte Como trabalhar com testes do iOS no AWS DeviceFarm (p. 77).

IOS_APP_PACKAGE_NAME_VALUE_MISSINGSe você visualizar a mensagem a seguir, siga estas etapas para corrigir o problema.

Warning

Não foi possível encontrar o valor do nome do pacote no arquivo Info.plist. Descompacteo pacote de aplicativos e abra o arquivo Info.plist no diretório .app, verifique se a chave"CFBundleIdentifier" está especificada e tente novamente.

No exemplo a seguir, o nome do pacote é AWSDeviceFarmiOSReferenceApp.ipa.

1. Copie o pacote de aplicativos para seu diretório de trabalho e execute o seguinte comando:

$ unzip AWSDeviceFarmiOSReferenceApp.ipa

2. Assim que conseguir descompactar o pacote, você poderá encontrar a estrutura de árvore do diretóriode trabalho executando o seguinte comando:

$ tree .

Você deve encontrar o arquivo Info.plist em um diretório .app semelhante aAWSDeviceFarmiOSReferenceApp.app em nosso exemplo:

.`-- Payload (directory) `-- AWSDeviceFarmiOSReferenceApp.app (directory) |-- Info.plist `-- (any other files)

3. Para encontrar o valor do nome do pacote, você pode abrir o Info.plist usando o Xcode ou Python.Versão da API 2015-06-23

219

Page 228: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorIOS_APP_EXECUTABLE_VALUE_MISSING

Para o Python, você pode instalar o módulo biplist executando o seguinte comando:

$ pip install biplist

4. Em seguida, abra o Python e execute o seguinte comando:

import biplistinfo_plist = biplist.readPlist('Payload/AWSDeviceFarmiOSReferenceApp-cal.app/Info.plist')print info_plist['CFBundleIdentifier']

Um pacote de aplicativos iOS válido deve gerar um resultado semelhante ao seguinte:

Amazon.AWSDeviceFarmiOSReferenceApp

Para obter mais informações, consulte Como trabalhar com testes do iOS no AWS DeviceFarm (p. 77).

IOS_APP_EXECUTABLE_VALUE_MISSINGSe você visualizar a mensagem a seguir, siga estas etapas para corrigir o problema.

Warning

Não foi possível encontrar o valor do executável no arquivo Info.plist. Descompacte o pacote deaplicativos e abra o arquivo Info.plist no diretório .app, verifique se a chave "CFBundleExecutable"está especificada e tente novamente.

No exemplo a seguir, o nome do pacote é AWSDeviceFarmiOSReferenceApp.ipa.

1. Copie o pacote de aplicativos para seu diretório de trabalho e execute o seguinte comando:

$ unzip AWSDeviceFarmiOSReferenceApp.ipa

2. Assim que conseguir descompactar o pacote, você poderá encontrar a estrutura de árvore do diretóriode trabalho executando o seguinte comando:

$ tree .

Você deve encontrar o arquivo Info.plist em um diretório .app semelhante aAWSDeviceFarmiOSReferenceApp.app em nosso exemplo:

.`-- Payload (directory) `-- AWSDeviceFarmiOSReferenceApp.app (directory) |-- Info.plist `-- (any other files)

3. Para encontrar o valor do executável, você pode abrir o Info.plist usando o Xcode ou Python.

Para o Python, você pode instalar o módulo biplist executando o seguinte comando:

$ pip install biplist

4. Em seguida, abra o Python e execute o seguinte comando:

Versão da API 2015-06-23220

Page 229: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorUI Automator

import biplistinfo_plist = biplist.readPlist('Payload/AWSDeviceFarmiOSReferenceApp-cal.app/Info.plist')print info_plist['CFBundleExecutable']

Um pacote de aplicativos iOS válido deve gerar um resultado semelhante ao seguinte:

AWSDeviceFarmiOSReferenceApp

Para obter mais informações, consulte Como trabalhar com testes do iOS no AWS DeviceFarm (p. 77).

Solução de problemas de testes do UI Automatorno AWS Device Farm

O tópico a seguir lista mensagens de erro que ocorrem durante o upload de testes do UI Automator erecomenda soluções para resolver cada erro.

UIAUTOMATOR_TEST_PACKAGE_UNZIP_FAILEDSe você visualizar a mensagem a seguir, siga estas etapas para corrigir o problema.

Warning

Não conseguimos abrir seu arquivo de teste JAR. Verifique se o arquivo é válido e tentenovamente.

Note

As instruções a seguir baseiam-se no Linux x86_64 e Mac.

Verifique se você consegue descompactar o pacote de aplicativos sem erros. No exemplo a seguir, o nomedo pacote é com.uiautomator.example.jar.

1. Copie o pacote de aplicativos para seu diretório de trabalho e execute o seguinte comando:

$ unzip com.uiautomator.example.jar

2. Assim que conseguir descompactar o pacote, você poderá encontrar a estrutura de árvore do diretóriode trabalho executando o seguinte comando:

$ tree .

Um pacote de testes válido do UI Automator deve gerar um resultado semelhante ao seguinte:

.|-- classes.dex |-- META-INF (directory)| `-- MANIFEST.MF `-- (any other files)

Para obter mais informações, consulte UI Automator (p. 75).

Versão da API 2015-06-23221

Page 230: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorXCTest

Solução de problemas de testes do XCTest noAWS Device Farm

O tópico a seguir lista mensagens de erro que ocorrem durante o upload de testes do XCTest e recomendasoluções para resolver cada erro.

Note

As instruções a seguir presumem que você está usando o MacOS.

XCTEST_TEST_PACKAGE_UNZIP_FAILEDSe você visualizar a mensagem a seguir, siga estas etapas para corrigir o problema.

Warning

Não conseguimos abrir seu arquivo de teste ZIP. Verifique se o arquivo é válido e tentenovamente.

Verifique se você consegue descompactar o pacote de aplicativos sem erros. No exemplo a seguir, o nomedo pacote é swiftExampleTests.xctest-1.zip.

1. Copie o pacote de testes para seu diretório de trabalho e execute o comando a seguir:

$ unzip swiftExampleTests.xctest-1.zip

2. Assim que conseguir descompactar o pacote, você poderá encontrar a estrutura de árvore do diretóriode trabalho executando o seguinte comando:

$ tree .

Um pacote válido do XCTest deve gerar um resultado semelhante ao seguinte:

.`-- swiftExampleTests.xctest (directory) |-- Info.plist `-- (any other files)

Para obter mais informações, consulte Como trabalhar com o XCTest para iOS e o AWS DeviceFarm (p. 99).

XCTEST_TEST_PACKAGE_XCTEST_DIR_MISSINGSe você visualizar a mensagem a seguir, siga estas etapas para corrigir o problema.

Warning

Não foi possível encontrar o diretório .xctest em seu pacote de testes. Descompacte o pacote detestes, verifique se o diretório .xctest encontra-se no pacote e tente novamente.

No exemplo a seguir, o nome do pacote é swiftExampleTests.xctest-1.zip.

1. Copie o pacote de testes para seu diretório de trabalho e execute o comando a seguir:

Versão da API 2015-06-23222

Page 231: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorXCTEST_TEST_PACKAGE_PLIST_FILE_MISSING

$ unzip swiftExampleTests.xctest-1.zip

2. Assim que conseguir descompactar o pacote, você poderá encontrar a estrutura de árvore do diretóriode trabalho executando o seguinte comando:

$ tree .

Se o pacote do XCTest for válido, você encontrará um diretório com um nome semelhante aswiftExampleTests.xctest no diretório de trabalho. O nome deve terminar com .xctest.

.`-- swiftExampleTests.xctest (directory) |-- Info.plist `-- (any other files)

Para obter mais informações, consulte Como trabalhar com o XCTest para iOS e o AWS DeviceFarm (p. 99).

XCTEST_TEST_PACKAGE_PLIST_FILE_MISSINGSe você visualizar a mensagem a seguir, siga estas etapas para corrigir o problema.

Warning

Não foi possível encontrar o arquivo Info.plist no diretório .xctest. Descompacte o pacote detestes e abra o diretório .xctest, verifique se o arquivo Info.plist encontra-se no diretório e tentenovamente.

No exemplo a seguir, o nome do pacote é swiftExampleTests.xctest-1.zip.

1. Copie o pacote de testes para seu diretório de trabalho e execute o comando a seguir:

$ unzip swiftExampleTests.xctest-1.zip

2. Assim que conseguir descompactar o pacote, você poderá encontrar a estrutura de árvore do diretóriode trabalho executando o seguinte comando:

$ tree .

Se o pacote do XCTest for válido, você encontrará o arquivo Info.plist no diretório .xctest. Emnosso exemplo a seguir, o diretório é chamado de swiftExampleTests.xctest.

.`-- swiftExampleTests.xctest (directory) |-- Info.plist `-- (any other files)

Para obter mais informações, consulte Como trabalhar com o XCTest para iOS e o AWS DeviceFarm (p. 99).

XCTEST_TEST_PACKAGE_PACKAGE_NAME_VALUE_MISSINGSe você visualizar a mensagem a seguir, siga estas etapas para corrigir o problema.

Versão da API 2015-06-23223

Page 232: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorXCTEST_TEST_PACKAGE_EXECUTABLE_VALUE_MISSING

Warning

Não foi possível encontrar o valor do nome do pacote no arquivo Info.plist. Descompacte o pacotede testes e abra o arquivo Info.plist, verifique se a chave "CFBundleIdentifier" está especificada etente novamente.

No exemplo a seguir, o nome do pacote é swiftExampleTests.xctest-1.zip.

1. Copie o pacote de testes para seu diretório de trabalho e execute o comando a seguir:

$ unzip swiftExampleTests.xctest-1.zip

2. Assim que conseguir descompactar o pacote, você poderá encontrar a estrutura de árvore do diretóriode trabalho executando o seguinte comando:

$ tree .

Você deve encontrar o arquivo Info.plist em um diretório .xctest semelhante aswiftExampleTests.xctest em nosso exemplo:

.`-- swiftExampleTests.xctest (directory) |-- Info.plist `-- (any other files)

3. Para encontrar o valor do nome do pacote, você pode abrir o Info.plist usando o Xcode ou Python.

Para o Python, você pode instalar o módulo biplist executando o seguinte comando:

$ pip install biplist

4. Em seguida, abra o Python e execute o seguinte comando:

import biplistinfo_plist = biplist.readPlist('swiftExampleTests.xctest/Info.plist')print info_plist['CFBundleIdentifier']

Um pacote de aplicativos válido do XCTest deve gerar um resultado semelhante ao seguinte:

com.amazon.kanapka.swiftExampleTests

Para obter mais informações, consulte Como trabalhar com o XCTest para iOS e o AWS DeviceFarm (p. 99).

XCTEST_TEST_PACKAGE_EXECUTABLE_VALUE_MISSINGSe você visualizar a mensagem a seguir, siga estas etapas para corrigir o problema.

Warning

Não foi possível encontrar o valor do executável no arquivo Info.plist. Descompacte o pacote detestes e abra o arquivo Info.plist, verifique se a chave "CFBundleExecutable" está especificada etente novamente.

No exemplo a seguir, o nome do pacote é swiftExampleTests.xctest-1.zip.

Versão da API 2015-06-23224

Page 233: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorXCTest UI

1. Copie o pacote de testes para seu diretório de trabalho e execute o comando a seguir:

$ unzip swiftExampleTests.xctest-1.zip

2. Assim que conseguir descompactar o pacote, você poderá encontrar a estrutura de árvore do diretóriode trabalho executando o seguinte comando:

$ tree .

Você deve encontrar o arquivo Info.plist em um diretório .xctest semelhante aswiftExampleTests.xctest em nosso exemplo:

.`-- swiftExampleTests.xctest (directory) |-- Info.plist `-- (any other files)

3. Para encontrar o valor do nome do pacote, você pode abrir o Info.plist usando o Xcode ou Python.

Para o Python, você pode instalar o módulo biplist executando o seguinte comando:

$ pip install biplist

4. Em seguida, abra o Python e execute o seguinte comando:

import biplistinfo_plist = biplist.readPlist('swiftExampleTests.xctest/Info.plist')print info_plist['CFBundleExecutable']

Um pacote de aplicativos válido do XCTest deve gerar um resultado semelhante ao seguinte:

swiftExampleTests

Para obter mais informações, consulte Como trabalhar com o XCTest para iOS e o AWS DeviceFarm (p. 99).

Solução de problemas de testes do XCTest UI noAWS Device Farm

O tópico a seguir lista mensagens de erro que ocorrem durante o upload de testes do XCTest UI erecomenda soluções para resolver cada erro.

Note

As instruções a seguir baseiam-se no Linux x86_64 e Mac.

XCTEST_UI_TEST_PACKAGE_UNZIP_FAILEDSe você visualizar a mensagem a seguir, siga estas etapas para corrigir o problema.

Warning

Não conseguimos abrir seu arquivo de teste IPA. Verifique se o arquivo é válido e tentenovamente.

Versão da API 2015-06-23225

Page 234: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorXCTEST_UI_TEST_PACKAGE_PAYLOAD_DIR_MISSING

Verifique se você consegue descompactar o pacote de aplicativos sem erros. No exemplo a seguir, o nomedo pacote é swift-sample-UI.ipa.

1. Copie o pacote de testes para seu diretório de trabalho e execute o comando a seguir:

$ unzip swift-sample-UI.ipa

2. Assim que conseguir descompactar o pacote, você poderá encontrar a estrutura de árvore do diretóriode trabalho executando o seguinte comando:

$ tree .

Um pacote de aplicativos iOS válido deve gerar um resultado semelhante ao seguinte:

.`-- Payload (directory) `-- swift-sampleUITests-Runner.app (directory) |-- Info.plist |-- Plugins (directory) | `swift-sampleUITests.xctest (directory) | |-- Info.plist | `-- (any other files) `-- (any other files)

Para obter mais informações, consulte XCTest UI (p. 101).

XCTEST_UI_TEST_PACKAGE_PAYLOAD_DIR_MISSINGSe você visualizar a mensagem a seguir, siga estas etapas para corrigir o problema.

Warning

Não foi possível encontrar o diretório Payload em seu pacote de testes. Descompacte o pacote detestes, verifique se o diretório Payload encontra-se no pacote e tente novamente.

No exemplo a seguir, o nome do pacote é swift-sample-UI.ipa.

1. Copie o pacote de testes para seu diretório de trabalho e execute o comando a seguir:

$ unzip swift-sample-UI.ipa

2. Assim que conseguir descompactar o pacote, você poderá encontrar a estrutura de árvore do diretóriode trabalho executando o seguinte comando:

$ tree .

Se o pacote do XCTest UI for válido, você encontrará o diretório Payload no diretório de trabalho.

.`-- Payload (directory) `-- swift-sampleUITests-Runner.app (directory) |-- Info.plist |-- Plugins (directory) | `swift-sampleUITests.xctest (directory) | |-- Info.plist | `-- (any other files)

Versão da API 2015-06-23226

Page 235: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorXCTEST_UI_TEST_PACKAGE_APP_DIR_MISSING

`-- (any other files)

Para obter mais informações, consulte XCTest UI (p. 101).

XCTEST_UI_TEST_PACKAGE_APP_DIR_MISSINGSe você visualizar a mensagem a seguir, siga estas etapas para corrigir o problema.

Warning

Não foi possível encontrar o diretório .app no diretório Payload. Descompacte o pacote de testes eabra o diretório Payload, verifique se o diretório .app encontra-se no diretório e tente novamente.

No exemplo a seguir, o nome do pacote é swift-sample-UI.ipa.

1. Copie o pacote de testes para seu diretório de trabalho e execute o comando a seguir:

$ unzip swift-sample-UI.ipa

2. Assim que conseguir descompactar o pacote, você poderá encontrar a estrutura de árvore do diretóriode trabalho executando o seguinte comando:

$ tree .

Se o pacote do XCTest UI for válido, você encontrará um diretório .app semelhante a swift-sampleUITests-Runner.app em nosso exemplo no diretório Payload.

.`-- Payload (directory) `-- swift-sampleUITests-Runner.app (directory) |-- Info.plist |-- Plugins (directory) | `swift-sampleUITests.xctest (directory) | |-- Info.plist | `-- (any other files) `-- (any other files)

Para obter mais informações, consulte XCTest UI (p. 101).

XCTEST_UI_TEST_PACKAGE_PLUGINS_DIR_MISSINGSe você visualizar a mensagem a seguir, siga estas etapas para corrigir o problema.

Warning

Não foi possível encontrar o diretório Plugins no diretório .app. Descompacte o pacote de testes eabra o diretório .app, verifique se o diretório Plugins encontra-se no diretório e tente novamente.

No exemplo a seguir, o nome do pacote é swift-sample-UI.ipa.

1. Copie o pacote de testes para seu diretório de trabalho e execute o comando a seguir:

$ unzip swift-sample-UI.ipa

2. Assim que conseguir descompactar o pacote, você poderá encontrar a estrutura de árvore do diretóriode trabalho executando o seguinte comando:

Versão da API 2015-06-23227

Page 236: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorXCTEST_UI_TEST_PACKAGE_XCTEST_DIR_MISSING_IN_PLUGINS_DIR

$ tree .

Se o pacote do XCTest UI for válido, você encontrará o diretório Plugins em um diretório .app. Emnosso exemplo, o diretório é chamado swift-sampleUITests-Runner.app.

.`-- Payload (directory) `-- swift-sampleUITests-Runner.app (directory) |-- Info.plist |-- Plugins (directory) | `swift-sampleUITests.xctest (directory) | |-- Info.plist | `-- (any other files) `-- (any other files)

Para obter mais informações, consulte XCTest UI (p. 101).

XCTEST_UI_TEST_PACKAGE_XCTEST_DIR_MISSING_IN_PLUGINS_DIRSe você visualizar a mensagem a seguir, siga estas etapas para corrigir o problema.

Warning

Não foi possível encontrar o diretório .xctest no diretório Plugins. Descompacte o pacote detestes e abra o diretório Plugins, verifique se o diretório .xctest encontra-se no diretório e tentenovamente.

No exemplo a seguir, o nome do pacote é swift-sample-UI.ipa.

1. Copie o pacote de testes para seu diretório de trabalho e execute o comando a seguir:

$ unzip swift-sample-UI.ipa

2. Assim que conseguir descompactar o pacote, você poderá encontrar a estrutura de árvore do diretóriode trabalho executando o seguinte comando:

$ tree .

Se o pacote do XCTest UI for válido, você encontrará um diretório .xctest no diretório Plugins. Emnosso exemplo, o diretório é chamado swift-sampleUITests.xctest.

.`-- Payload (directory) `-- swift-sampleUITests-Runner.app (directory) |-- Info.plist |-- Plugins (directory) | `swift-sampleUITests.xctest (directory) | |-- Info.plist | `-- (any other files) `-- (any other files)

Para obter mais informações, consulte XCTest UI (p. 101).

Versão da API 2015-06-23228

Page 237: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorXCTEST_UI_TEST_PACKAGE_PLIST_FILE_MISSING

XCTEST_UI_TEST_PACKAGE_PLIST_FILE_MISSINGSe você visualizar a mensagem a seguir, siga estas etapas para corrigir o problema.

Warning

Não foi possível encontrar o arquivo Info.plist no diretório .app. Descompacte o pacote de testes eabra o diretório .app, verifique se o arquivo Info.plist encontra-se no diretório e tente novamente.

No exemplo a seguir, o nome do pacote é swift-sample-UI.ipa.

1. Copie o pacote de testes para seu diretório de trabalho e execute o comando a seguir:

$ unzip swift-sample-UI.ipa

2. Assim que conseguir descompactar o pacote, você poderá encontrar a estrutura de árvore do diretóriode trabalho executando o seguinte comando:

$ tree .

Se o pacote do XCTest UI for válido, você encontrará o arquivo Info.plist no diretório .app. Emnosso exemplo a seguir, o diretório é chamado swift-sampleUITests-Runner.app.

.`-- Payload (directory) `-- swift-sampleUITests-Runner.app (directory) |-- Info.plist |-- Plugins (directory) | `swift-sampleUITests.xctest (directory) | |-- Info.plist | `-- (any other files) `-- (any other files)

Para obter mais informações, consulte XCTest UI (p. 101).

XCTEST_UI_TEST_PACKAGE_PLIST_FILE_MISSING_IN_XCTEST_DIRSe você visualizar a mensagem a seguir, siga estas etapas para corrigir o problema.

Warning

Não foi possível encontrar o arquivo Info.plist no diretório .xctest. Descompacte o pacote detestes e abra o diretório .xctest, verifique se o arquivo Info.plist encontra-se no diretório e tentenovamente.

No exemplo a seguir, o nome do pacote é swift-sample-UI.ipa.

1. Copie o pacote de testes para seu diretório de trabalho e execute o comando a seguir:

$ unzip swift-sample-UI.ipa

2. Assim que conseguir descompactar o pacote, você poderá encontrar a estrutura de árvore do diretóriode trabalho executando o seguinte comando:

$ tree .

Versão da API 2015-06-23229

Page 238: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorXCTEST_UI_TEST_PACKAGE_CPU_ARCHITECTURE_VALUE_MISSING

Se o pacote do XCTest UI for válido, você encontrará o arquivo Info.plist no diretório .xctest.Em nosso exemplo a seguir, o diretório é chamado swift-sampleUITests.xctest.

.`-- Payload (directory) `-- swift-sampleUITests-Runner.app (directory) |-- Info.plist |-- Plugins (directory) | `swift-sampleUITests.xctest (directory) | |-- Info.plist | `-- (any other files) `-- (any other files)

Para obter mais informações, consulte XCTest UI (p. 101).

XCTEST_UI_TEST_PACKAGE_CPU_ARCHITECTURE_VALUE_MISSINGSe você visualizar a mensagem a seguir, siga estas etapas para corrigir o problema.

Warning

Não foi possível encontrar o valor de arquitetura da CPU no arquivo Info.plist. Descompacteo pacote de testes e abra o arquivo Info.plist no diretório .app, verifique se a chave"UIRequiredDeviceCapabilities" está especificada e tente novamente.

No exemplo a seguir, o nome do pacote é swift-sample-UI.ipa.

1. Copie o pacote de testes para seu diretório de trabalho e execute o comando a seguir:

$ unzip swift-sample-UI.ipa

2. Assim que conseguir descompactar o pacote, você poderá encontrar a estrutura de árvore do diretóriode trabalho executando o seguinte comando:

$ tree .

Você deve encontrar o arquivo Info.plist em um diretório .app semelhante a swift-sampleUITests-Runner.app em nosso exemplo:

.`-- Payload (directory) `-- swift-sampleUITests-Runner.app (directory) |-- Info.plist |-- Plugins (directory) | `swift-sampleUITests.xctest (directory) | |-- Info.plist | `-- (any other files) `-- (any other files)

3. Para encontrar o valor de arquitetura da CPU, você pode abrir o Info.plist usando o Xcode ou Python.

Para o Python, você pode instalar o módulo biplist executando o seguinte comando:

$ pip install biplist

4. Em seguida, abra o Python e execute o seguinte comando:

Versão da API 2015-06-23230

Page 239: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorXCTEST_UI_TEST_PACKAGE_PLATFORM_VALUE_MISSING

import biplistinfo_plist = biplist.readPlist('Payload/swift-sampleUITests-Runner.app/Info.plist') print info_plist['UIRequiredDeviceCapabilities']

Um pacote válido do XCTest UI deve gerar um resultado semelhante ao seguinte:

['armv7']

Para obter mais informações, consulte XCTest UI (p. 101).

XCTEST_UI_TEST_PACKAGE_PLATFORM_VALUE_MISSINGSe você visualizar a mensagem a seguir, siga estas etapas para corrigir o problema.

Warning

Não foi possível encontrar o valor da plataforma no Info.plist. Descompacte o pacote de testese abra o arquivo Info.plist no diretório .app, verifique se a chave "CFBundleSupportedPlatforms"está especificada e tente novamente.

No exemplo a seguir, o nome do pacote é swift-sample-UI.ipa.

1. Copie o pacote de testes para seu diretório de trabalho e execute o comando a seguir:

$ unzip swift-sample-UI.ipa

2. Assim que conseguir descompactar o pacote, você poderá encontrar a estrutura de árvore do diretóriode trabalho executando o seguinte comando:

$ tree .

Você deve encontrar o arquivo Info.plist em um diretório .app semelhante a swift-sampleUITests-Runner.app em nosso exemplo:

.`-- Payload (directory) `-- swift-sampleUITests-Runner.app (directory) |-- Info.plist |-- Plugins (directory) | `swift-sampleUITests.xctest (directory) | |-- Info.plist | `-- (any other files) `-- (any other files)

3. Para encontrar o valor da plataforma, você pode abrir o Info.plist usando o Xcode ou Python.

Para o Python, você pode instalar o módulo biplist executando o seguinte comando:

$ pip install biplist

4. Em seguida, abra o Python e execute o seguinte comando:

import biplistinfo_plist = biplist.readPlist('Payload/swift-sampleUITests-Runner.app/Info.plist')

Versão da API 2015-06-23231

Page 240: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorXCTEST_UI_TEST_PACKAGE_WRONG_PLATFORM_DEVICE_VALUE

print info_plist['CFBundleSupportedPlatforms']

Um pacote válido do XCTest UI deve gerar um resultado semelhante ao seguinte:

['iPhoneOS']

Para obter mais informações, consulte XCTest UI (p. 101).

XCTEST_UI_TEST_PACKAGE_WRONG_PLATFORM_DEVICE_VALUESe você visualizar a mensagem a seguir, siga estas etapas para corrigir o problema.

Warning

Descobrimos que o valor do dispositivo de plataforma estava errado no arquivo Info.plist.Descompacte o pacote de testes e abra o arquivo Info.plist no diretório .app, verifique se ovalor da chave "CFBundleSupportedPlatforms" não contém a palavra-chave "simulator" e tentenovamente.

No exemplo a seguir, o nome do pacote é swift-sample-UI.ipa.

1. Copie o pacote de testes para seu diretório de trabalho e execute o comando a seguir:

$ unzip swift-sample-UI.ipa

2. Assim que conseguir descompactar o pacote, você poderá encontrar a estrutura de árvore do diretóriode trabalho executando o seguinte comando:

$ tree .

Você deve encontrar o arquivo Info.plist em um diretório .app semelhante a swift-sampleUITests-Runner.app em nosso exemplo:

.`-- Payload (directory) `-- swift-sampleUITests-Runner.app (directory) |-- Info.plist |-- Plugins (directory) | `swift-sampleUITests.xctest (directory) | |-- Info.plist | `-- (any other files) `-- (any other files)

3. Para encontrar o valor da plataforma, você pode abrir o Info.plist usando o Xcode ou Python.

Para o Python, você pode instalar o módulo biplist executando o seguinte comando:

$ pip install biplist

4. Em seguida, abra o Python e execute o seguinte comando:

import biplistinfo_plist = biplist.readPlist('Payload/swift-sampleUITests-Runner.app/Info.plist')print info_plist['CFBundleSupportedPlatforms']

Um pacote válido do XCTest UI deve gerar um resultado semelhante ao seguinte:

Versão da API 2015-06-23232

Page 241: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorXCTEST_UI_TEST_PACKAGE_FORM_FACTOR_VALUE_MISSING

['iPhoneOS']

Se o pacote do XCTest UI for válido, o valor não deve conter a palavra-chave simulator.

Para obter mais informações, consulte XCTest UI (p. 101).

XCTEST_UI_TEST_PACKAGE_FORM_FACTOR_VALUE_MISSINGSe você visualizar a mensagem a seguir, siga estas etapas para corrigir o problema.

Warning

Não foi possível encontrar o valor de formato no Info.plist. Descompacte o pacote de testes e abrao arquivo Info.plist no diretório .app, verifique se a chave "UIDeviceFamily" está especificada etente novamente.

No exemplo a seguir, o nome do pacote é swift-sample-UI.ipa.

1. Copie o pacote de testes para seu diretório de trabalho e execute o comando a seguir:

$ unzip swift-sample-UI.ipa

2. Assim que conseguir descompactar o pacote, você poderá encontrar a estrutura de árvore do diretóriode trabalho executando o seguinte comando:

$ tree .

Você deve encontrar o arquivo Info.plist em um diretório .app semelhante a swift-sampleUITests-Runner.app em nosso exemplo:

.`-- Payload (directory) `-- swift-sampleUITests-Runner.app (directory) |-- Info.plist |-- Plugins (directory) | `swift-sampleUITests.xctest (directory) | |-- Info.plist | `-- (any other files) `-- (any other files)

3. Para encontrar o valor do formato, você pode abrir o Info.plist usando o Xcode ou Python.

Para o Python, você pode instalar o módulo biplist executando o seguinte comando:

$ pip install biplist

4. Em seguida, abra o Python e execute o seguinte comando:

import biplistinfo_plist = biplist.readPlist('Payload/swift-sampleUITests-Runner.app/Info.plist')print info_plist['UIDeviceFamily']

Um pacote válido do XCTest UI deve gerar um resultado semelhante ao seguinte:

[1, 2]

Versão da API 2015-06-23233

Page 242: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorXCTEST_UI_TEST_PACKAGE_PACKAGE_NAME_VALUE_MISSING

Para obter mais informações, consulte XCTest UI (p. 101).

XCTEST_UI_TEST_PACKAGE_PACKAGE_NAME_VALUE_MISSINGSe você visualizar a mensagem a seguir, siga estas etapas para corrigir o problema.

Warning

Não foi possível encontrar o valor do nome do pacote no arquivo Info.plist. Descompacte o pacotede testes e abra o arquivo Info.plist no diretório .app, verifique se a chave "CFBundleIdentifier"está especificada e tente novamente.

No exemplo a seguir, o nome do pacote é swift-sample-UI.ipa.

1. Copie o pacote de testes para seu diretório de trabalho e execute o comando a seguir:

$ unzip swift-sample-UI.ipa

2. Assim que conseguir descompactar o pacote, você poderá encontrar a estrutura de árvore do diretóriode trabalho executando o seguinte comando:

$ tree .

Você deve encontrar o arquivo Info.plist em um diretório .app semelhante a swift-sampleUITests-Runner.app em nosso exemplo:

.`-- Payload (directory) `-- swift-sampleUITests-Runner.app (directory) |-- Info.plist |-- Plugins (directory) | `swift-sampleUITests.xctest (directory) | |-- Info.plist | `-- (any other files) `-- (any other files)

3. Para encontrar o valor do nome do pacote, você pode abrir o Info.plist usando o Xcode ou Python.

Para o Python, você pode instalar o módulo biplist executando o seguinte comando:

$ pip install biplist

4. Em seguida, abra o Python e execute o seguinte comando:

import biplistinfo_plist = biplist.readPlist('Payload/swift-sampleUITests-Runner.app/Info.plist')print info_plist['CFBundleIdentifier']

Um pacote válido do XCTest UI deve gerar um resultado semelhante ao seguinte:

com.apple.test.swift-sampleUITests-Runner

Para obter mais informações, consulte XCTest UI (p. 101).

Versão da API 2015-06-23234

Page 243: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorXCTEST_UI_TEST_PACKAGE_EXECUTABLE_VALUE_MISSING

XCTEST_UI_TEST_PACKAGE_EXECUTABLE_VALUE_MISSINGSe você visualizar a mensagem a seguir, siga estas etapas para corrigir o problema.

Warning

Não foi possível encontrar o valor do executável no arquivo Info.plist. Descompacte o pacote detestes e abra o arquivo Info.plist no diretório .app, verifique se a chave "CFBundleExecutable" estáespecificada e tente novamente.

No exemplo a seguir, o nome do pacote é swift-sample-UI.ipa.

1. Copie o pacote de testes para seu diretório de trabalho e execute o comando a seguir:

$ unzip swift-sample-UI.ipa

2. Assim que conseguir descompactar o pacote, você poderá encontrar a estrutura de árvore do diretóriode trabalho executando o seguinte comando:

$ tree .

Você deve encontrar o arquivo Info.plist em um diretório .app semelhante a swift-sampleUITests-Runner.app em nosso exemplo:

.`-- Payload (directory) `-- swift-sampleUITests-Runner.app (directory) |-- Info.plist |-- Plugins (directory) | `swift-sampleUITests.xctest (directory) | |-- Info.plist | `-- (any other files) `-- (any other files)

3. Para encontrar o valor do executável, você pode abrir o Info.plist usando o Xcode ou Python.

Para o Python, você pode instalar o módulo biplist executando o seguinte comando:

$ pip install biplist

4. Em seguida, abra o Python e execute o seguinte comando:

import biplistinfo_plist = biplist.readPlist('Payload/swift-sampleUITests-Runner.app/Info.plist')print info_plist['CFBundleExecutable']

Um pacote válido do XCTest UI deve gerar um resultado semelhante ao seguinte:

XCTRunner

Para obter mais informações, consulte XCTest UI (p. 101).

XCTEST_UI_TEST_PACKAGE_TEST_PACKAGE_NAME_VALUE_MISSINGSe você visualizar a mensagem a seguir, siga estas etapas para corrigir o problema.

Versão da API 2015-06-23235

Page 244: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorXCTEST_UI_TEST_PACKAGE_TEST_EXECUTABLE_VALUE_MISSING

Warning

Não foi possível encontrar o valor do nome do pacote no arquivo Info.plist no diretório .xctest.Descompacte o pacote de testes e abra o arquivo Info.plist no diretório .xctest, verifique se achave "CFBundleIdentifier" está especificada e tente novamente.

No exemplo a seguir, o nome do pacote é swift-sample-UI.ipa.

1. Copie o pacote de testes para seu diretório de trabalho e execute o comando a seguir:

$ unzip swift-sample-UI.ipa

2. Assim que conseguir descompactar o pacote, você poderá encontrar a estrutura de árvore do diretóriode trabalho executando o seguinte comando:

$ tree .

Você deve encontrar o arquivo Info.plist em um diretório .app semelhante a swift-sampleUITests-Runner.app em nosso exemplo:

.`-- Payload (directory) `-- swift-sampleUITests-Runner.app (directory) |-- Info.plist |-- Plugins (directory) | `swift-sampleUITests.xctest (directory) | |-- Info.plist | `-- (any other files) `-- (any other files)

3. Para encontrar o valor do nome do pacote, você pode abrir o Info.plist usando o Xcode ou Python.

Para o Python, você pode instalar o módulo biplist executando o seguinte comando:

$ pip install biplist

4. Em seguida, abra o Python e execute o seguinte comando:

import biplistinfo_plist = biplist.readPlist('Payload/swift-sampleUITests-Runner.app/Plugins/swift-sampleUITests.xctest/Info.plist')print info_plist['CFBundleIdentifier']

Um pacote válido do XCTest UI deve gerar um resultado semelhante ao seguinte:

com.amazon.swift-sampleUITests

Para obter mais informações, consulte XCTest UI (p. 101).

XCTEST_UI_TEST_PACKAGE_TEST_EXECUTABLE_VALUE_MISSINGSe você visualizar a mensagem a seguir, siga estas etapas para corrigir o problema.

Versão da API 2015-06-23236

Page 245: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorXCTEST_UI_TEST_PACKAGE_TEST_EXECUTABLE_VALUE_MISSING

Warning

Não foi possível encontrar o valor do executável no arquivo Info.plist no diretório .xctest.Descompacte o pacote de testes e abra o arquivo Info.plist no diretório .xctest, verifique se achave "CFBundleExecutable" está especificada e tente novamente.

No exemplo a seguir, o nome do pacote é swift-sample-UI.ipa.

1. Copie o pacote de testes para seu diretório de trabalho e execute o comando a seguir:

$ unzip swift-sample-UI.ipa

2. Assim que conseguir descompactar o pacote, você poderá encontrar a estrutura de árvore do diretóriode trabalho executando o seguinte comando:

$ tree .

Você deve encontrar o arquivo Info.plist em um diretório .app semelhante a swift-sampleUITests-Runner.app em nosso exemplo:

.`-- Payload (directory) `-- swift-sampleUITests-Runner.app (directory) |-- Info.plist |-- Plugins (directory) | `swift-sampleUITests.xctest (directory) | |-- Info.plist | `-- (any other files) `-- (any other files)

3. Para encontrar o valor do executável, você pode abrir o Info.plist usando o Xcode ou Python.

Para o Python, você pode instalar o módulo biplist executando o seguinte comando:

$ pip install biplist

4. Em seguida, abra o Python e execute o seguinte comando:

import biplistinfo_plist = biplist.readPlist('Payload/swift-sampleUITests-Runner.app/Plugins/swift-sampleUITests.xctest/Info.plist')print info_plist['CFBundleExecutable']

Um pacote válido do XCTest UI deve gerar um resultado semelhante ao seguinte:

swift-sampleUITests

Para obter mais informações, consulte XCTest UI (p. 101).

Versão da API 2015-06-23237

Page 246: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorCriar e anexar uma política para um usuário do IAM

Permissões de acesso a usuáriospara o AWS Device Farm

Você pode usar o IAM para habilitar os usuários do IAM na conta da AWS para só realizar determinadasações no Device Farm. Você pode fazer isso, por exemplo, se tiver um conjunto de usuários do IAM aosquais você deseja dar permissão para listar, mas não criar, recursos no Device Farm; você pode ter outroconjunto de usuários do IAM aos quais você deseja dar permissão para listar e criar novos recursos; eassim por diante.

Por exemplo, nas instruções Configuração (p. 3), você anexou uma política de acesso a um usuário doIAM na conta da AWS que contém uma declaração de política semelhante a esta:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "devicefarm:*" ], "Resource": [ "*" ] } ]}

A declaração anterior permite que o usuário do IAM na conta da AWS para realizar ações no Device Farma que a conta da AWS tem acesso. Na prática, você não pode conceder aos usuários do IAM na conta daAWS tanto acesso.

As informações a seguir mostram como você pode anexar uma política a um usuário do IAM para restringiras ações que o usuário do IAM pode realizar no Device Farm.

Criar e anexar uma política para um usuário do IAMPara criar e anexar uma política de acesso a um usuário do IAM que restringe as ações que o usuário doIAM pode realizar no Device Farm, faça o seguinte:

1. Faça login no Console de gerenciamento da AWS e abra o console da IAM em https://console.aws.amazon.com/iam/.

2. Selecione Policies (Políticas) e depois Create Policy (Criar política). (Se aparecer um botão GetStarted, selecione-o e, em seguida, Create Policy.)

3. Próximo a Create Your Own Policy, escolha Select.4. Em Policy Name (Nome da política), digite qualquer valor que seja fácil para você consultar

posteriormente, se necessário.5. Em Policy Document (Documento da política), digite uma instrução com o seguinte formato e escolha

Create Policy (Criar política):

Versão da API 2015-06-23238

Page 247: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorAção Sintaxe para realizar ações no Device Farm

{ "Version": "2012-10-17", "Statement" : [ { "Effect" : "Allow", "Action" : [ "action-statement" ], "Resource" : [ "resource-statement" ] }, { "Effect" : "Allow", "Action" : [ "action-statement" ], "Resource" : [ "resource-statement" ] } ]}

No comando anterior, substitua action-statement conforme necessário e adicione instruçõesconforme necessário, para especificar as ações no Device Farm que o usuário do IAM pode realizar.(Por padrão, o usuário do IAM não terá as permissões desejadas, a menos que uma declaraçãoAllow correspondente o declare explicitamente.) A seção a seguir descreve o formato das açõespermitidas para Device Farm.

Note

No momento, o único valor permitido para resource-statement no exemplo anterior éo caractere de asterisco (*). Isso significa que, embora possa restringir as ações que umusuário do IAM pode executar no Device Farm, você não pode restringir os recursos doDevice Farm que o usuário do IAM pode acessar.

6. Selecione Users.7. Escolha o usuário do IAM para o qual você deseja anexar a política.8. Na área Permissions (Permissões), em Managed Policies (Políticas gerenciadas), escolha Attach

Policy (Anexar política).9. Selecione a política que você acabou de criar e escolha Attach Policy (Anexar política).

Ação Sintaxe para realizar ações no Device FarmAs informações a seguir descrevem o formato para especificar as ações que um usuário do IAM poderealizar no Device Farm.

As ações seguem este formato geral:

devicefarm:action

Em que action é uma ação disponível do Device Farm:

• Um asterisco (*), que representa todas ações disponíveis no Device Farm.• Uma das ações disponíveis no Device Farm, conforme descrito em Referência de API do AWS Device

Farm.

Versão da API 2015-06-23239

Page 248: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorAção Sintaxe para realizar ações no Device Farm

• Uma combinação de prefixo e asterisco (*) de uma ação disponível no Device Farm. Por exemplo,especificar List* permite que o usuário do IAM realize todas as ações do Device Farm disponíveis quecomeçam com List.

Algumas declarações de ação de exemplo incluem:

• devicefarm:* para todas as ações do Device Farm.• devicefarm:Get* apenas para as ações do Device Farm que começam com Get.• devicefarm:ListProjects para apenas a ação do Device Farm ListProjects.

Por exemplo, a declaração da seguinte política dá ao usuário do IAM permissão para obter informaçõessobre os recursos do Device Farm que estão disponíveis para a conta da AWS do usuário:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "devicefarm:Get*", "devicefarm:List*" ], "Resource": [ "*" ] } ]}

Versão da API 2015-06-23240

Page 249: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedor

Limites no AWS Device FarmA lista a seguir descreve os limites atuais do AWS Device Farm:

• O tamanho máximo do arquivo de um aplicativo que você pode carregar é de 4 GB.• Não existe limite quanto ao número de dispositivos que você pode incluir em uma execução de teste.

No entanto, o número máximo de dispositivos que o Device Farm testará simultaneamente durante umaexecução de teste é de cinco. (Esse número poderá ser aumentado mediante solicitação.)

• Não há limite para o número de execuções que você pode programar.• Há um limite de 150 minutos de duração para uma sessão de acesso remoto.• Há um limite de 150 minutos para a duração de uma execução de teste automatizado.

Versão da API 2015-06-23241

Page 250: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorPlug-in Jenkins CI

Ferramentas e plug-ins para o AWSDevice Farm

Esta seção contém links e informações sobre como trabalhar com as ferramentas e os plug-ins do AWSDevice Farm. Você pode encontrar plug-ins do Device Farm em Laboratórios da AWS no GitHub.

Se você for um desenvolvedor Android, também temos um aplicativo de exemplo do AWS Device Farmpara Android no GitHub. Você pode usar o aplicativo e os testes de exemplo como referência para seuspróprios scripts de teste no Device Farm.

Tópicos• Integração do AWS Device Farm com o plug-in Jenkins CI (p. 242)• Plug-in Gradle para o AWS Device Farm (p. 248)

Integração do AWS Device Farm com o plug-inJenkins CI

Esse plug-in oferece a funcionalidade do AWS Device Farm no servidor de integração contínua (CI)Jenkins. Para obter mais informações, consulte Jenkins (software).

Note

Para fazer download do plug-in Jenkins, acesse o GitHub e siga as instruções em Etapa 1:Instalar o plug-in (p. 245).

Esta seção contém uma série de procedimentos para configurar e usar o plug-in Jenkins CI com o AWSDevice Farm.

Tópicos• Etapa 1: instalar o plug-in (p. 245)• Etapa 2: criar um usuário do AWS Identity and Access Management para o plug-in Jenkins

CI (p. 246)• Etapa 3: instruções sobre configuração inicial (p. 247)• Etapa 4: usar o plug-in em um trabalho do Jenkins (p. 247)• Dependências (p. 247)

As imagens a seguir mostram os recursos do plug-in Jenkins CI.

Versão da API 2015-06-23242

Page 251: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorPlug-in Jenkins CI

Versão da API 2015-06-23243

Page 252: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorPlug-in Jenkins CI

Esse plug-in também pode abrir todos os artefatos de teste (logs, capturas de tela etc.) localmente:

Versão da API 2015-06-23244

Page 253: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorEtapa 1: Instalar o plug-in

Etapa 1: instalar o plug-inHá duas opções para a instalação do plug-in de integração contínua (CI) Jenkins para AWS Device Farm.Você pode procurar o plug-in na caixa de diálogo Available Plugins (Plug-ins disponíveis) na interface dousuário da web do Jenkins ou você pode fazer download do arquivo hpi e instalá-lo por meio do Jenkins.

Instalação por meio da interface de usuário do Jenkins1. Encontre o plug-in na interface do usuário do Jenkins, escolha Manage Jenkins (Gerenciar Jenkins),

Manage Plugins (Gerenciar plug-ins) e Available (Disponível).2. Procure aws-device-farm.3. Instale o plug-in AWS Device Farm.4. Verifique se o plug-in pertence ao usuário Jenkins.5. Reinicie o Jenkins.

Faça download do plug-in.1. Faça download do arquivo hpi diretamente de http://updates.jenkins-ci.org/latest/aws-device-farm.hpi.2. Verifique se o plug-in pertence ao usuário Jenkins.3. Instale o plug-in usando uma das seguintes opções:

• Faça upload do plug-in escolhendo Manage Jenkins (Gerenciar Jenkins), Manage Plugins(Gerenciar plug-ins), Advanced (Avançado) e Upload plugin (Fazer upload do plug-in).

• Coloque o arquivo hpi no diretório do plug-in Jenkins (normalmente /var/lib/jenkins/plugins).

4. Reinicie o Jenkins.

Versão da API 2015-06-23245

Page 254: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorEtapa 2: Criar um usuário do IAM

Etapa 2: criar um usuário do AWS Identity and AccessManagement para o plug-in Jenkins CIÉ recomendável não usar a conta raiz da AWS para acessar o Device Farm. Em vez disso, crie um novousuário do AWS Identity and Access Management (IAM) (ou use um usuário do IAM existente) na conta daAWS e acesse o Device Farm com esse usuário do IAM.

Para criar um novo usuário do IAM, consulte Criar um usuário do IAM (Console de gerenciamento daAWS). Lembre-se de gerar uma chave de acesso para cada usuário e fazer download ou salvar ascredenciais de segurança do usuário. Você precisará das credenciais posteriormente.

Dar ao usuário do IAM permissão para acessar o Device FarmPara dar ao usuário do IAM permissão para acessar o Device Farm, crie uma nova política de acesso noIAM e atribua a política de acesso ao usuário do IAM conforme mostrado a seguir.

Note

A conta raiz da AWS ou o usuário do IAM usado para concluir as etapas a seguir deve terpermissão para criar a política do IAM a seguir e anexá-la ao usuário do IAM. Para obter maisinformações, consulte Trabalhar com políticas.

Para criar uma política de acesso no IAM

1. Abra o console do IAM em https://console.aws.amazon.com/iam/.2. Escolha Policies (Políticas).3. Escolha Create Policy (Criar política). (Se aparecer um botão Get Started, selecione-o e, em seguida,

Create Policy.)4. Próximo a Create Your Own Policy, escolha Select.5. Em Policy Name (Nome da política), digite um nome para política (por exemplo,

AWSDeviceFarmAccessPolicy).6. Em Description (Descrição), digite uma descrição que ajude a associar esse usuário do IAM ao projeto

Jenkins.7. Em Policy Document (Documento da política), digite a seguinte declaração:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "DeviceFarmAll", "Effect": "Allow", "Action": [ "devicefarm:*" ], "Resource": [ "*" ] } ]}

8. Escolha Create Policy (Criar política).

Para atribuir essa política de acesso ao usuário do IAM

1. Abra o console do IAM em https://console.aws.amazon.com/iam/.2. Selecione Users.

Versão da API 2015-06-23246

Page 255: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorEtapa 3: instruções sobre configuração inicial

3. Escolha o usuário do IAM ao qual você atribuirá a política de acesso.4. Na área Permissions (Permissões), em Managed Policies (Políticas gerenciadas), escolha Attach

Policy (Anexar política).5. Selecione a política que você acabou de criar (por exemplo, AWSDeviceFarmAccessPolicy).6. Escolha Attach Policy.

Etapa 3: instruções sobre configuração inicialA primeira vez em que você executar o servidor Jenkins, precisará configurar o sistema conforme a seguir.

Note

Se estiver usando slots de dispositivos (p. 15), o recurso de slots para dispositivo estarádesativado por padrão.

1. Faça login na interface de usuário web do Jenkins.2. No lado esquerdo da tela, escolha Manage Jenkins (Gerenciar Jenkins).3. Escolha Configure System (Configurar sistema).4. Role para baixo até o cabeçalho AWS Device Farm.5. Copie suas credenciais de segurança de Etapa 2: Criar um usuário do IAM (p. 246) e cole o ID da

chave de acesso e a chave de acesso secreta nas respectivas caixas.6. Escolha Salvar.

Etapa 4: usar o plug-in em um trabalho do JenkinsAssim que você tiver instalado o plug-in Jenkins, siga estas instruções para usar o plug-in em um trabalhodo Jenkins.

1. Faça login na interface de usuário web do Jenkins.2. Clique no trabalho que você deseja editar.3. No lado esquerdo da tela, escolha Configure (Configurar).4. Role para baixo até o cabeçalho Post-build Actions (Ações pós-compilação).5. Clique em Add post-build action (Adicionar ação pós-compilação) e selecione Run Tests on AWS

Device Farm (Executar testes no ATP).6. Selecione o projeto que você deseja usar.7. Selecione o grupo de dispositivos que você deseja usar.8. Selecione se você gostaria de ter os artefatos de teste (como logs e capturas de tela) arquivados

localmente.9. Em Application (Aplicativo), preencha o caminho do aplicativo compilado.10. Selecione o teste que deseja executar e preencha todos os campos obrigatórios.11. Escolha Salvar.

DependênciasO plug-in Jenkins CI requer o AWS Mobile SDK 1.10.5 ou posterior. Para obter mais informações e instalaro SDK, consulte AWS Mobile SDK.

Versão da API 2015-06-23247

Page 256: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorPlug-in Gradle para o Device Farm

Plug-in Gradle para o AWS Device FarmEsse plug-in permite a integração do AWS Device Farm com o sistema de compilação Gradle no AndroidStudio. Para obter mais informações, consulte Gradle.

Note

Para fazer download do plug-in Gradle, acesse o GitHub e siga as instruções em Compilar o plug-in Gradle do Device Farm (p. 248).

O plug-in Gradle do Device Farm oferece a funcionalidade do Device Farm no ambiente do Android Studio.Você pode iniciar testes em smartphones e tablets Android reais hospedados pelo Device Farm.

Esta seção contém uma série de procedimentos para configurar e usar o plug-in Gradle para o DeviceFarm.

Tópicos• Etapa 1: criar o plug-in Gradle para o AWS Device Farm (p. 248)• Etapa 2: configurar o plug-in Gradle para o AWS Device Farm (p. 248)• Etapa 3: gerar um usuário do IAM (p. 250)• Etapa 4: configurar tipos de teste (p. 251)• Dependências (p. 253)

Etapa 1: criar o plug-in Gradle para o AWS DeviceFarmEsse plug-in permite a integração do AWS Device Farm com o sistema de compilação Gradle no AndroidStudio. Para obter mais informações, consulte Gradle.

Note

A criação desse plug-in é opcional. O plug-in é publicado por meio do Maven Central. Se desejapermitir que o Gradle faça download do plug-in diretamente, ignore esta etapa e vá para Etapa 2:configurar o plug-in Gradle para o AWS Device Farm (p. 248).

Para criar o plug-in

1. Acesse o GitHub e clone o repositório.2. Crie o plug-in usando gradle install.

O plug-in é instalado no seu repositório maven local.

Próxima etapa: Etapa 2: configurar o plug-in Gradle para o AWS Device Farm (p. 248)

Etapa 2: configurar o plug-in Gradle para o AWSDevice FarmSe você ainda não tiver feito isso, clone o repositório e instale o plug-in usando o procedimento descritoem: Compilar o plug-in Gradle do Device Farm (p. 248).

Versão da API 2015-06-23248

Page 257: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorConfigurar o plug-in Gradle do Device Farm

Para configurar o plug-in Gradle para o AWS Device Farm

1. Adicione o artefato do plug-in à sua lista de dependências em build.gradle.

buildscript {

repositories { mavenLocal() mavenCentral() }

dependencies { classpath 'com.android.tools.build:gradle:1.3.0' classpath 'com.amazonaws:aws-devicefarm-gradle-plugin:1.0' } }

2. Configure o plug-in em seu arquivo build.gradle. A configuração específica de teste a seguir deveservir de guia:

apply plugin: 'devicefarm'

devicefarm {

// Required. The project must already exist. You can create a project in the AWS Device Farm console. projectName "My Project" // required: Must already exist.

// Optional. Defaults to "Top Devices" // devicePool "My Device Pool Name" // Optional. Default is 150 minutes // executionTimeoutMinutes 150 // Optional. Set to "off" if you want to disable device video recording during a run. Default is "on" // videoRecording "on" // Optional. Set to "off" if you want to disable device performance monitoring during a run. Default is "on" // performanceMonitoring "on" // Optional. Add this if you have a subscription and want to use your unmetered slots // useUnmeteredDevices() // Required. You must specify either accessKey and secretKey OR roleArn. roleArn takes precedence. authentication { accessKey "AKIAIOSFODNN7EXAMPLE" secretKey "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY" // OR roleArn "arn:aws:iam::111122223333:role/DeviceFarmRole" }

// Optionally, you can // - enable or disable Wi-Fi, Bluetooth, GPS, NFC radios // - set the GPS coordinates // - specify files and applications that must be on the device when your test runs devicestate { // Extra files to include on the device. // extraDataZipFile file("path/to/zip")

Versão da API 2015-06-23249

Page 258: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorGerar um usuário do IAM

// Other applications that must be installed in addition to yours. // auxiliaryApps files(file("path/to/app"), file("path/to/app2")) // By default, Wi-Fi, Bluetooth, GPS, and NFC are turned on. // wifi "off" // bluetooth "off" // gps "off" // nfc "off" // You can specify GPS location. By default, this location is 47.6204, -122.3491 // latitude 44.97005 // longitude -93.28872 } // By default, the Instrumentation test is used. // If you want to use a different test type, configure it here. // You can set only one test type (for example, Calabash, Fuzz, and so on) // Fuzz // fuzz { }

// Calabash // calabash { tests file("path-to-features.zip") } }

3. Execute o teste do Device Farm usando a seguinte tarefa: gradle devicefarmUpload.

A saída da compilação imprimirá um link para o console do Device Farm, no qual você pode monitorara execução do teste.

Próxima etapa: Gerar um usuário do IAM (p. 250)

Etapa 3: gerar um usuário do IAMO AWS Identity and Access Management (IAM) ajuda a gerenciar permissões e políticas para trabalharcom recursos da AWS. Este tópico orienta você em meio à geração de um usuário do IAM com permissõespara acessar recursos do AWS Device Farm.

Se você ainda não tiver feito isso, preencha as etapas 1 e 2 antes de gerar um usuário do IAM.

É recomendável não usar a conta raiz da AWS para acessar o Device Farm. Em vez disso, crie um novousuário do IAM (ou use um usuário do IAM existente) na conta da AWS e acesse o Device Farm com esseusuário do IAM.

Note

A conta raiz da AWS ou o usuário do IAM usado para concluir as etapas a seguir deve terpermissão para criar a política do IAM a seguir e anexá-la ao usuário do IAM. Para obter maisinformações, consulte Trabalhar com políticas.

Para criar um novo usuário com a política de acesso apropriada no IAM

1. Abra o console do IAM em https://console.aws.amazon.com/iam/.2. Selecione Users.3. Escolha Create New Users (Criar novos usuários).4. Digite o nome de usuário de sua escolha.

Versão da API 2015-06-23250

Page 259: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorConfigurar tipos de teste

Por exemplo, GradleUser.5. Escolha Criar.6. Escolha Download Credentials (Fazer download de credenciais) e as salve em um local onde você

possa recuperá-las facilmente depois.7. Escolha Fechar.8. Escolha o nome de usuário na lista.9. Em Permissions (Permissões), expanda o cabeçalho Inline Policies (Políticas em linha) clicando na

seta para baixo à direita.10. Escolha Click here (Clique aqui) onde se diz There are no inline policies to show (Não há políticas em

linha a serem mostradas). Para criar uma, clique aqui.11. Na tela Set Permissions (Definir permissões), escolha Custom Policy (Política personalizada).12. Escolha Select (Selecionar).13. Dê um nome à política, como AWSDeviceFarmGradlePolicy.14. Cole a política a seguir em Policy Document (Documento da política).

{ "Version": "2012-10-17", "Statement": [ { "Sid": "DeviceFarmAll", "Effect": "Allow", "Action": [ "devicefarm:*" ], "Resource": [ "*" ] } ] }

15. Selecione Apply Policy.

Próxima etapa: Configurar tipos de teste (p. 251).

Para obter mais informações, consulte Criar um usuário do IAM (Console de gerenciamento da AWS) ouConfiguração (p. 3).

Etapa 4: configurar tipos de testePor padrão, o plug-in Gradle do AWS Device Farm executa o teste Como trabalhar com instrumentaçãopara o Android e o AWS Device Farm (p. 74). Se deseja executar seus próprios testes ou especificaroutros parâmetros, você pode optar por configurar um tipo de teste. Este tópico fornece informações sobrecada tipo de teste disponível e o que você precisa fazer no Android Studio a fim de configurá-lo para uso.Para obter mais informações sobre os tipos de teste disponíveis no Device Farm, consulte Como trabalharcom tipos de testes no AWS Device Farm (p. 52).

Se você ainda não tiver feito isso, conclua as etapas de 1 – 3 antes de configurar os tipos de teste.Note

Se você estiver usando slots de dispositivo (p. 15), o recurso de slots de dispositivos permanecerádesabilitado por padrão.

AppiumO Device Farm é compatível com o Appium Java JUnit e TestNG para Android.

• Appium Java JUnit (p. 58)

Versão da API 2015-06-23251

Page 260: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorConfigurar tipos de teste

• Appium Java TestNG (p. 54)

Você pode escolher useTestNG() ou useJUnit(). JUnit é o padrão e não precisa ser especificadoexplicitamente.

appium { tests file("path to zip file") // required useTestNG() // or useJUnit() }

Integrado: ExplorerO Device Farm fornece um explorador de aplicativos integrado para testar fluxos de usuários por meio deseu aplicativo sem gravar scripts de teste personalizados. Você pode especificar um nome de usuário euma senha para testar cenários que exigem login. Veja aqui um exemplo de como configurar o nome deusuário e a senha:

appexplorer { username "my-username" password "my-password" }

Para obter mais informações, consulte Integrado: Explorer (Android) (p. 121).

Integrado: FuzzO Device Farm fornece um tipo de teste fuzz integrado, que envia aleatoriamente eventos de interface deusuário para os dispositivos e, em seguida, relata os resultados.

fuzz {

eventThrottle 50 // optional default eventCount 6000 // optional default randomizerSeed 1234 // optional default blank

}

Para obter mais informações, consulte Integrado: Fuzz (Android e iOS) (p. 121).

CalabashO Device Farm é compatível com o Calabash para Android. Para obter informações sobre como prepararos testes do Android Calabash, consulte Calabash (p. 72).

calabash { tests file("path to zip file") // required tags "my tags" // optional calabash tags profile "my profile" // optional calabash profile }

InstrumentaçãoO Device Farm oferece suporte à instrumentação (JUnit, Espresso, Robotium ou qualquer testebaseado em instrumentação) para Android. Para obter mais informações, consulte Como trabalhar cominstrumentação para o Android e o AWS Device Farm (p. 74).

Versão da API 2015-06-23252

Page 261: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedorDependências

Ao executar um teste na instrumentação no Gradle, o Device Farm usa o arquivo .apk gerado pelodiretório Android Calabash como a origem dos testes.

instrumentation {

filter "test filter per developer docs" // optional

}

UI AutomatorFaça upload do aplicativo e dos testes baseados no UI Automator em um arquivo .jar.

uiautomator { tests file("path to uiautomator jar file") // required filter "test filter per developer docs" // optional

}

Para obter mais informações, consulte UI Automator (p. 75).

DependênciasTempo de execução

• O plug-in Gradle do Device Farm requer o Mobile SDK 1.10.15 ou posterior da AWS. Para obter maisinformações e instalar o SDK, consulte AWS Mobile SDK.

• Android tools builder test api 0.5.2• Apache Commons Lang3 3.3.4

For Unit Tests (Para testes de unidade)

• Testng 6.8.8• Jmockit 1.19• Android gradle tools 1.3.0

Versão da API 2015-06-23253

Page 262: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedor

Histórico do documentoA tabela a seguir descreve as mudanças importantes na documentação desde a última versão deste guia.

Alterar Descrição Alterado em

Remoção do acessodireto a dispositivos.

O acesso direto a dispositivos (depuração remota emdispositivos privados) não está mais disponível para uso geral.Para dúvidas sobre a disponibilidade futura do acesso direto adispositivos, entre em contato conosco.

9 de setembrode 2019

Atualizar aconfiguração do plug-in Gradle

Uma configuração revisada do plug-in Gradle agora inclui umaversão personalizável da configuração gradle, com parâmetrosopcionais comentados. Saiba mais sobre Configurar o plug-inGradle do Device Farm (p. 248).

16 de agostode 2019

Novo requisito paraexecuções de testecom o XCTest

Para execuções de teste que usam a estrutura XCTest, oDevice Farm agora requer um pacote de aplicativos criado paratestes. Saiba mais sobre the section called “XCTest” (p. 99).

4 de fevereirode 2019

Compatibilidadecom os tipos deteste do AppiumNode.js e do AppiumRuby em ambientespersonalizados

Agora você pode executar seus testes nos ambientes de testepersonalizados do Appium Node.js e do Appium Ruby. Saibamais sobre Como trabalhar com tipos de testes no AWS DeviceFarm (p. 52).

10 de janeirode 2019

Suporte para servidorAppium versão 1.7.2em ambientes padrãoe personalizados.Suporte para versão1.8.1 usando umarquivo YAML daespecificação de testepersonalizado em umambiente de testepersonalizado.

Você já pode executar os testes padrão e personalizadosem ambos os ambientes de teste com versões do servidorAppium 1,72, 1.71 e 1.6.5. Você também pode executar ostestes com versões 1.8.1 e 1.8.0 usando um arquivo YAML daespecificação de teste personalizado em um ambiente de testepersonalizado. Saiba mais sobre Como trabalhar com tipos detestes no AWS Device Farm (p. 52).

2 de outubrode 2018

Ambientes de testepersonalizados

Com um ambiente de teste personalizado, você pode garantirque os testes sejam executados como o são no ambientelocal. O Device Farm já fornece suporte para streaming devídeo e log ao vivo. Assim, você pode receber feedbackinstantâneo sobre os testes executados em um ambientede teste personalizado. Saiba mais sobre Trabalhar comambientes de teste personalizados (p. 123).

16 de agostode 2018

Suporte para usar oDevice Farm como umprovedor de testes doAWS CodePipeline

Você já pode configurar um pipeline no AWS CodePipelinea fim de usar execuções do AWS Device Farm comoações de teste no processo de liberação. O CodePipelinepermite vincular rapidamente o repositório para compilar etestar estágios a fim de atingir um sistema de integraçãocontínua personalizado às suas necessidades. Saiba maissobre Usar o AWS Device Farm em um estágio de teste doCodePipeline (p. 157).

19 de julho de2018

Versão da API 2015-06-23254

Page 263: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedor

Alterar Descrição Alterado em

Suporte paradispositivos privados

Agora você pode usar dispositivos privados para programarexecuções de teste e iniciar sessões de acesso remoto. Vocêpode gerenciar perfis e configurações para esses dispositivos,criar endpoints de Amazon VPC para testar aplicativosprivados e criar sessões de depuração remota. Saiba maissobre Trabalhar com dispositivos privados no AWS DeviceFarm (p. 134).

2 de maio de2018

Compatibilidade como Appium 1.6.3

Agora você pode definir uma versão do Appium para testespersonalizados do Appium.

21 de marçode 2017

Definição do tempolimite de execução detestes

Você pode definir o tempo limite para a execução de umteste ou de todos os testes em um projeto. Saiba mais sobreConfiguração do tempo limite de execução para execuções deteste no AWS Device Farm (p. 33).

9 de fevereirode 2017

Modelagem de rede Agora você pode simular conexões e condições de rede paraa execução de um teste. Saiba mais sobre Simular conexões econdições de rede (p. 34).

8 dedezembro de2016

Nova seção desolução de problemas

Agora você pode solucionar uploads de pacotes de testesusando um conjunto de procedimentos elaborado para resolverpossíveis mensagens de erro no console do Device Farm.Saiba mais sobre Solução de problemas (p. 165).

10 de agostode 2016

Sessões de acessoremoto

Agora você pode acessar e interagir remotamente com umúnico dispositivo no console. Saiba mais sobre Trabalhar comacesso remoto (p. 130).

19 de abril de2016

Autoatendimento paraslots de dispositivo

Você já pode comprar slots de dispositivos usando oConsole de gerenciamento da AWS, a AWS Command LineInterface ou a API. Saiba mais sobre como Comprar slots dedispositivos (p. 15).

22 de marçode 2016

Como interromperexecuções de teste

Você já pode interromper execuções de teste usando oConsole de gerenciamento da AWS, a AWS Command LineInterface ou a API. Saiba mais sobre como Interromper umaexecução no AWS Device Farm (p. 37).

22 de marçode 2016

Novos tipos de testedo XCTest UI

Agora você pode executar testes personalizados do XCTest UIem aplicativos iOS. Saiba mais sobre o tipo de teste XCTestUI (p. 101).

8 de março de2016

Novos tipos de testedo Appium Python

Você já pode executar testes personalizados do AppiumPython no Android, no iOS e em aplicativos web. Saiba maissobre Como trabalhar com tipos de testes no AWS DeviceFarm (p. 52).

19 de janeirode 2016

Tipos de teste deaplicativos web

Você já pode executar testes personalizados do AppiumJava JUnit e TestNG em aplicativos web. Saiba mais sobreTrabalhar com testes de aplicativos web no AWS DeviceFarm (p. 102).

19 denovembro de2015

Plug-in Gradle para oAWS Device Farm

Saiba mais sobre como instalar e usar o Plug-in Gradle para oDevice Farm (p. 248).

28 desetembro de2015

Versão da API 2015-06-23255

Page 264: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedor

Alterar Descrição Alterado em

Novo teste integradopara Android: Explorer

Saiba mais sobre Integrado: Explorer (Android) (p. 121). Oteste integrado Explorer percorre o aplicativo analisando cadatela como se fosse um usuário final e faz capturas de tela àmedida que o examina.

16 desetembro de2015

Nova opçãocompatibilidade comiOS

Saiba mais sobre o teste de dispositivos iOS e a execução detestes de iOS (incluindo o XCTest) Como trabalhar com tiposde testes no AWS Device Farm (p. 52).

4 de agostode 2015

Lançamento públicoinicial

Este é o lançamento público inicial do Guia do desenvolvedordo AWS Device Farm.

13 de julho de2015

Versão da API 2015-06-23256

Page 265: AWS Device Farm - docs.aws.amazon.com · AWS Device Farm Guia do desenvolvedor Appium Python ..... 65

AWS Device Farm Guia do desenvolvedor

AWS GlossaryFor the latest AWS terminology, see the AWS Glossary in the AWS General Reference.

Versão da API 2015-06-23257