

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á.

# Ferramentas e plug-ins para o AWS Device Farm
<a name="aws-device-farm-tools-plugins"></a>

Esta seção contém links e informações sobre como trabalhar com as ferramentas e os plug-ins do AWS Device Farm. Você pode encontrar os plug-ins do Device Farm no [AWS Labs on GitHub](https://github.com/awslabs/).

Se você for um desenvolvedor Android, também temos uma aplicação de amostra do [AWS Device Farm para Android no GitHub](https://github.com/awslabs/aws-device-farm-sample-app-for-android). Você pode usar a aplicação e os testes de exemplo como referência para seus próprios scripts de teste do Device Farm.

**Topics**
+ [Integrar o Device Farm a um servidor Jenkins CI](continuous-integration-jenkins-plugin.md)
+ [Integrar o Device Farm a um sistema de compilação Gradle](aws-device-farm-android-gradle-plugin.md)

# Integrar o Device Farm a um servidor Jenkins CI
<a name="continuous-integration-jenkins-plugin"></a>

O plug-in do Jenkins CI oferece a funcionalidade do AWS Device Farm por meio do seu próprio servidor de integração contínua (CI) Jenkins. Para obter mais informações, consulte [Jenkins (software)](https://en.wikipedia.org/wiki/Jenkins_%28software%29).

**nota**  
Para baixar o plug-in Jenkins, acesse [GitHub](https://github.com/awslabs/aws-device-farm-jenkins-plugin)e siga as instruções em[Etapa 1: Instalar o plug-in do Jenkins CI para o AWS Device FarmInstalar o plug-in do Jenkins CI](#jenkins-ci-installing-the-plugin).

Esta seção contém uma série de procedimentos para configurar e usar o plug-in Jenkins CI com o AWS Device Farm.

As imagens a seguir mostram os recursos do plug-in Jenkins CI.

![\[Integração com o aplicativo Jenkins CI Hello World\]](http://docs.aws.amazon.com/pt_br/devicefarm/latest/developerguide/images/aws-device-farm-jenkins-plugin-continuous-integration-project-hello-world-app.png)


![\[Integração com ações pós-compilação do Jenkins CI\]](http://docs.aws.amazon.com/pt_br/devicefarm/latest/developerguide/images/aws-device-farm-jenkins-plugin-continuous-integration-post-build-actions.png)


Esse plug-in também pode abrir todos os artefatos de teste (logs, capturas de tela etc.) localmente:

![\[Integração com artefatos de teste do Jenkins CI\]](http://docs.aws.amazon.com/pt_br/devicefarm/latest/developerguide/images/aws-device-farm-jenkins-plugin-continuous-integration-test-artifacts.png)


**Topics**
+ [Dependências](#jenkins-plugin-dependencies)
+ [Etapa 1: Instalar o plug-in do Jenkins CI para o AWS Device Farm](#jenkins-ci-installing-the-plugin)
+ [Etapa 2: Criar um AWS Identity and Access Management usuário para seu plug-in Jenkins CI para AWS Device Farm](#jenkins-ci-set-up-iam-user)
+ [Etapa 3: configurar o plug-in Jenkins CI pela primeira vez no AWS Device Farm](#jenkins-ci-first-time-configuration-instructions)
+ [Etapa 4: usar o plug-in em um trabalho do Jenkins](#jenkins-ci-using-plugin-jenkins-job)

## Dependências
<a name="jenkins-plugin-dependencies"></a>

O plug-in Jenkins CI requer o AWS Mobile SDK 1.10.5 ou posterior. Para obter mais informações e instalar o SDK, consulte [AWS Mobile SDK](https://aws.amazon.com/mobile/sdk/).

## Etapa 1: Instalar o plug-in do Jenkins CI para o AWS Device Farm
<a name="jenkins-ci-installing-the-plugin"></a>

Há duas opções para instalar o plug-in de integração contínua (CI) do Jenkins para o AWS Device Farm. Você pode procurar o plug-in na caixa de diálogo **Available Plugins (Plug-ins disponíveis)** na interface do usuá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 Jenkins
<a name="installing-jenkins-from-within-ui"></a>

1. 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)**.

1. Pesquise por **aws-device-farm**.

1. Instale o plug-in AWS Device Farm.

1. Verifique se o plug-in pertence ao usuário `Jenkins`.

1. Reinicie o Jenkins.

### Faça download do plug-in.
<a name="installing-jenkins-manual-install"></a>

1. Baixe o `hpi` arquivo diretamente de [http://updates.jenkins-ci. org/latest/aws-device-farm.hpi](http://updates.jenkins-ci.org/latest/aws-device-farm.hpi).

1. Verifique se o plug-in pertence ao usuário `Jenkins`.

1. 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`).

1. Reinicie o Jenkins.

## Etapa 2: Criar um AWS Identity and Access Management usuário para seu plug-in Jenkins CI para AWS Device Farm
<a name="jenkins-ci-set-up-iam-user"></a>

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

Para criar um usuário do IAM, consulte [Creating an IAM User (Console de gerenciamento da AWS)](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_SettingUpUser.html#Using_CreateUser_console). Lembre-se de gerar uma chave de acesso para cada usuário e fazer download ou salvar as credenciais de segurança do usuário. Você precisará das credenciais posteriormente.

### Dê ao usuário do IAM permissão para acessar o Device Farm
<a name="jenkins-ci-setting-up-permissions"></a>

Para dar permissão ao usuário do IAM para acessar o Device Farm, crie uma nova política de acesso no IAM e atribua a política de acesso ao usuário do IAM da seguinte forma.

**nota**  
A conta AWS raiz ou o usuário do IAM que você usa para concluir as etapas a seguir deve ter permissão para criar a seguinte política do IAM e anexá-la ao usuário do IAM. Para obter mais informações, consulte [Trabalhar com políticas](https://docs.aws.amazon.com/IAM/latest/UserGuide/policies_manage.html).

**Para criar a política de acesso no IAM**

1. Abra o console do IAM em [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. Selecione **Políticas**.

1. Escolha **Create Policy**. (Se aparecer um botão **Get Started**, selecione-o e, em seguida, **Create Policy**.)

1. Próximo a **Create Your Own Policy**, escolha **Select**.

1. Em **Policy Name (Nome da política)**, digite um nome para política (por exemplo, **AWSDeviceFarmAccessPolicy**).

1. Em **Descrição**, digite uma descrição que ajude a associar esse usuário do IAM ao projeto do Jenkins.

1. Em **Policy Document (Documento da política)**, digite a seguinte declaração:

------
#### [ JSON ]

****  

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

------

1. Escolha **Create Policy**.

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

1. Abra o console do IAM em [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. Selecione **Usuários**.

1. Escolha o usuário do IAM ao qual você atribuirá a política de acesso.

1. Na área **Permissions (Permissões)**, em **Managed Policies (Políticas gerenciadas)**, escolha **Attach Policy (Anexar política)**.

1. Selecione a política que você acabou de criar (por exemplo, **AWSDeviceFarmAccessPolicy**). 

1. Escolha **Attach Policy**.

## Etapa 3: configurar o plug-in Jenkins CI pela primeira vez no AWS Device Farm
<a name="jenkins-ci-first-time-configuration-instructions"></a>

A primeira vez em que você executar o servidor Jenkins, precisará configurar o sistema conforme a seguir.

**nota**  
 Se estiver usando [slots de dispositivos](how-to-purchase-device-slots.md), o recurso de slots para dispositivo estará desativado por padrão. 

1. Faça login na interface de usuário web do Jenkins.

1. No lado esquerdo da tela, escolha **Manage Jenkins (Gerenciar Jenkins)**.

1. Escolha **Configure System (Configurar sistema)**.

1. Role para baixo até o cabeçalho **AWS Device Farm**.

1. Copie suas credenciais de segurança de [Criar um usuário do IAM para o plug-in do Jenkins CI](#jenkins-ci-set-up-iam-user) e cole o ID da chave de acesso e a chave de acesso secreta nas respectivas caixas.

1. Escolha **Salvar**.

## Etapa 4: usar o plug-in em um trabalho do Jenkins
<a name="jenkins-ci-using-plugin-jenkins-job"></a>

Assim que você tiver instalado o plug-in Jenkins, siga estas instruções para usar o plug-in em um trabalho do Jenkins.

1. Faça login na interface de usuário web do Jenkins.

1. Clique no trabalho que você deseja editar.

1. No lado esquerdo da tela, escolha **Configurar**.

1. Role para baixo até o cabeçalho **Ações pós-compilação**.

1. Clique em **Adicionar ação pós-compilação** e selecione **Executar testes no AWS Device Farm**.

1. Selecione o projeto que você deseja usar.

1. Selecione o grupo de dispositivos que você deseja usar.

1. Selecione se você gostaria de ter os artefatos de teste (como logs e capturas de tela) arquivados localmente.

1. Em **Aplicativo**, preencha o caminho do aplicativo compilado.

1. Selecione o teste que deseja executar e preencha todos os campos obrigatórios.

1. Escolha **Salvar**.

# Integrar o Device Farm a um sistema de compilação Gradle
<a name="aws-device-farm-android-gradle-plugin"></a>

O plug-in do Gradle do Device Farm oferece integração do AWS Device Farm ao sistema de compilação Gradle no Android Studio. Para obter mais informações, consulte [Gradle](https://gradle.org).

**nota**  
Para baixar o plug-in do Gradle, acesse [GitHub](https://github.com/awslabs/aws-device-farm-gradle-plugin)e siga as instruções em[Criação do plug-in Gradle do Device Farm](#aws-device-farm-gradle-plugin-building).

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.

**Topics**
+ [Dependências](#aws-device-farm-gradle-plugin-dependencies)
+ [Etapa 1: Criação do plug-in Gradle do AWS Device Farm](#aws-device-farm-gradle-plugin-building)
+ [Etapa 2: Configurar o plug-in Gradle do AWS Device Farm](#aws-device-farm-gradle-plugin-setting-up)
+ [Etapa 3: gerar um usuário do IAM no plug-in do Gradle do Device Farm](#aws-device-farm-gradle-plugin-generating-iam-user)
+ [Etapa 4: Configuração dos tipos de teste](#aws-device-farm-gradle-plugin-configuring-test-types)

## Dependências
<a name="aws-device-farm-gradle-plugin-dependencies"></a>

**Runtime**
+ O plug-in Device Farm Gradle requer o AWS Mobile SDK 1.10.15 ou posterior. Para obter mais informações e instalar o SDK, consulte [AWS Mobile SDK](https://aws.amazon.com/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

## Etapa 1: Criação do plug-in Gradle do AWS Device Farm
<a name="aws-device-farm-gradle-plugin-building"></a>

Esse plug-in fornece integração do AWS Device Farm com o sistema de compilação Gradle no Android Studio. Para obter mais informações, consulte [Gradle](https://gradle.org).

**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 Gradle do AWS Device Farm](#aws-device-farm-gradle-plugin-setting-up).

**Para criar o plug-in**

1. Acesse [GitHub](https://github.com/awslabs/aws-device-farm-gradle-plugin)e clone o repositório.

1. 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 do AWS Device Farm](#aws-device-farm-gradle-plugin-setting-up)

## Etapa 2: Configurar o plug-in Gradle do AWS Device Farm
<a name="aws-device-farm-gradle-plugin-setting-up"></a>

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](#aws-device-farm-gradle-plugin-building).

**Para configurar o plug-in Gradle do 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'            
           }        
       }
   ```

1. 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") }
          
   }
   ```

1. 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: [Gerar um usuário do IAM no plug-in do Gradle do Device Farm](#aws-device-farm-gradle-plugin-generating-iam-user)

## Etapa 3: gerar um usuário do IAM no plug-in do Gradle do Device Farm
<a name="aws-device-farm-gradle-plugin-generating-iam-user"></a>

AWS Identity and Access Management (IAM) ajuda você a gerenciar permissões e políticas para trabalhar com AWS recursos. Este tópico orienta você na geração de um usuário do IAM com permissões para acessar os recursos do AWS Device Farm.

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

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

**nota**  
A conta AWS raiz ou o usuário do IAM que você usa para concluir as etapas a seguir deve ter permissão para criar a seguinte política do IAM e anexá-la ao usuário do IAM. Para obter mais informações, consulte [Trabalhar com políticas](https://docs.aws.amazon.com/IAM/latest/UserGuide/policies_manage.html).

**Para criar um novo usuário com a política de acesso adequada no IAM**

1. Abra o console do IAM em [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. Selecione **Usuários**.

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

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

   Por exemplo, .**GradleUser**

1. Escolha **Criar**.

1. Escolha **Download Credentials (Fazer download de credenciais)** e as salve em um local onde você possa recuperá-las facilmente depois.

1. Escolha **Fechar**.

1. Escolha o nome de usuário na lista.

1. Em **Permissions (Permissões)**, expanda o cabeçalho **Inline Policies (Políticas em linha)** clicando na seta para baixo à direita.

1. Escolha **Clique aqui** onde está escrito: **Não há políticas em linha para mostrar. Para criar uma, clique aqui**.

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

1. Escolha **Selecionar**.

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

1. Cole a política a seguir em **Documento da política**.

------
#### [ JSON ]

****  

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

------

1. Escolha **Aplicar política**.

Próxima etapa: [Configuração de tipos de teste](#aws-device-farm-gradle-plugin-configuring-test-types).

Para obter mais informações, consulte [Creating an IAM User (Console de gerenciamento da AWS)](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_SettingUpUser.html#Using_CreateUser_console) ou [Configurar](setting-up.md).

## Etapa 4: Configuração dos tipos de teste
<a name="aws-device-farm-gradle-plugin-configuring-test-types"></a>

Por padrão, o plug-in do AWS Device Farm Gradle executa o teste [Instrumentação para Android e AWS Device Farm](test-types-android-instrumentation.md). 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 [Frameworks de teste e testes integrados no AWS Device Farm](test-types.md).

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](how-to-purchase-device-slots.md), o recurso de slots para dispositivo estará desativado por padrão.

### Appium
<a name="configuring-test-types-appium"></a>

O Device Farm fornece suporte para Appium Java e JUnit TestNG para Android.
+ [Appium (em Java ()) JUnit](https://docs.aws.amazon.com//devicefarm/latest/developerguide/test-types-appium.html)
+ [Appium (em Java [TestNG])](https://docs.aws.amazon.com//devicefarm/latest/developerguide/test-types-appium.html)

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
<a name="configuring-test-types-built-in-fuzz"></a>

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 [Executar o teste fuzz incorporado do Device Farm (Android e iOS)](test-types-built-in-fuzz.md).

### Instrumentação
<a name="configuring-test-types-instrumentation"></a>

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](test-types-android-instrumentation.md).

Ao executar um teste de instrumentação no Gradle, o Device Farm usa o arquivo `.apk` gerado pelo diretório **androidTest** como a origem dos testes.

```
    instrumentation { 

        filter "test filter per developer docs" // optional

    }
```