Integrando o Device Farm com um sistema de compilação Gradle - AWS Device Farm

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Integrando o Device Farm com um sistema de compilação Gradle

O plug-in Device Farm Gradle fornece integração AWS do Device Farm com o sistema de compilação Gradle no Android Studio. Para obter mais informações, consulte Gradle.

nota

Para baixar o plug-in do Gradle, acesse GitHube siga as instruções emCriação do plug-in Gradle do Device Farm.

O plug-in Gradle do Device Farm fornece a funcionalidade do Device Farm em seu ambiente do Android Studio. Você pode iniciar testes em telefones 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 do Device Farm.

Dependências

Runtime

  • O plug-in Device Farm Gradle requer o AWS Mobile SDK 1.10.15 ou posterior. Para obter mais informações e instalar oSDK, consulte AWSCelular 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

Etapa 1: Criando o plug-in AWS Device Farm Gradle

Esse plug-in fornece a integração AWS do Device Farm com o sistema de compilação Gradle no Android Studio. Para obter mais informações, consulte Gradle.

nota

A criação desse plug-in é opcional. O plug-in é publicado por meio do Maven Central. Se deseja permitir que o Gradle faça download do plug-in diretamente, ignore esta etapa e vá para Etapa 2: Configurar o plug-in AWS Device Farm Gradle.

Para criar o plug-in
  1. Acesse GitHube 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 AWS Device Farm Gradle

Etapa 2: Configurar o plug-in AWS Device Farm Gradle

Se você ainda não tiver feito isso, clone o repositório e instale o plug-in usando o procedimento descrito em: Criação do plug-in Gradle do Device Farm.

Para configurar o plug-in AWS Device Farm Gradle
  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 deve servir 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") // 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, onde você poderá monitorar a execução do teste.

Próxima etapa: Gerando um IAM usuário no plug-in Device Farm Gradle

Etapa 3: Gerar um IAM usuário no plug-in Device Farm Gradle

AWS Identity and Access Management (IAM) ajuda você a gerenciar permissões e políticas para trabalhar com AWS recursos. Este tópico explica como gerar um IAM usuário com permissões para acessar os recursos do AWS Device Farm.

Se você ainda não tiver feito isso, conclua as etapas 1 e 2 antes de gerar um IAM usuário.

Recomendamos que você não use sua conta AWS root para acessar o Device Farm. Em vez disso, crie um novo IAM usuário (ou use um IAM usuário existente) em sua AWS conta e acesse o Device Farm com esse IAM usuário.

nota

A conta AWS raiz ou o IAM usuário que você usa para concluir as etapas a seguir deve ter permissão para criar a IAM política a seguir e anexá-la ao IAM usuário. Para obter mais informações, consulte Trabalhar com políticas.

Para criar um novo usuário com a política de acesso adequada no IAM
  1. Abra o IAM console em https://console.aws.amazon.com/iam/.

  2. Selecione Usuários.

  3. Escolha Create New Users (Criar novos usuários).

  4. Digite o nome de usuário de sua escolha.

    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 Clique aqui onde está escrito: Não há políticas em linha para mostrar. Para criar uma, clique aqui.

  11. Na tela Definir permissões, escolha Política personalizada.

  12. Escolha Selecionar.

  13. Dê um nome à política, como AWSDeviceFarmGradlePolicy.

  14. Cole a política a seguir em Documento da política.

    { "Version": "2012-10-17", "Statement": [ { "Sid": "DeviceFarmAll", "Effect": "Allow", "Action": [ "devicefarm:*" ], "Resource": [ "*" ] } ] }
  15. Escolha Aplicar política.

Próxima etapa: Configuração de tipos de teste.

Para obter mais informações, consulte Criação de um IAM usuário (AWS Management Console) ouConfiguração.

Etapa 4: Configuração dos tipos de teste

Por padrão, o plug-in AWS Device Farm Gradle executa o Instrumentação para Android e AWS Device Farm teste. Se deseja executar seus próprios testes ou especificar outros parâmetros, você pode optar por configurar um tipo de teste. Este tópico fornece informações sobre cada 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 Estruturas de teste e testes integrados no AWS Device Farm.

Se ainda não tiver feito isso, execute as etapas de 1 a 3 antes de configurar os tipos de teste.

nota

Se estiver usando slots de dispositivos, o recurso de slots para dispositivo estará desativado por padrão.

Appium

O Device Farm fornece suporte para Appium Java e JUnit TestNG para Android.

Você pode escolher useTestNG() ou useJUnit(). JUnit é o padrão e não precisa ser especificado explicitamente.

appium { tests file("path to zip file") // required useTestNG() // or useJUnit() }

Integrado: Fuzz

O Device Farm fornece um tipo de teste de fuzz incorporado, que envia aleatoriamente eventos da interface do usuário para 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 Executando o teste de fuzz integrado do Device Farm (Android e iOS).

Instrumentação

O Device Farm fornece suporte para instrumentação (EspressoJUnit, Robotium ou qualquer teste baseado em instrumentação) para Android. Para obter mais informações, consulte Instrumentação para Android e AWS Device Farm.

Ao executar um teste de instrumentação no Gradle, o Device Farm usa o .apk arquivo gerado do seu androidTestdiretório como fonte dos seus testes.

instrumentation { filter "test filter per developer docs" // optional }