

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Intégrer Device Farm à un système de construction Gradle
<a name="aws-device-farm-android-gradle-plugin"></a>

Le plugin Device Farm Gradle permet l'intégration d'AWS Device Farm au système de build Gradle dans Android Studio. Pour plus d'informations, consultez [Gradle](https://gradle.org).

**Note**  
Pour télécharger le plugin Gradle, rendez-vous sur [GitHub](https://github.com/awslabs/aws-device-farm-gradle-plugin)et suivez les instructions dans[Création du plugin Device Farm Gradle](#aws-device-farm-gradle-plugin-building).

Le plugin Device Farm Gradle fournit les fonctionnalités Device Farm à partir de votre environnement Android Studio. Vous pouvez lancer les tests sur de vrais téléphones et tablettes Android hébergés par Device Farm.

Cette section contient une série de procédures pour configurer et utiliser le plugin Device Farm Gradle.

**Topics**
+ [Dépendances](#aws-device-farm-gradle-plugin-dependencies)
+ [Étape 1 : Création du plugin AWS Device Farm Gradle](#aws-device-farm-gradle-plugin-building)
+ [Étape 2 : Configuration du plugin AWS Device Farm Gradle](#aws-device-farm-gradle-plugin-setting-up)
+ [Étape 3 : Génération d'un utilisateur IAM dans le plugin Device Farm Gradle](#aws-device-farm-gradle-plugin-generating-iam-user)
+ [Étape 4 : Configuration des types de tests](#aws-device-farm-gradle-plugin-configuring-test-types)

## Dépendances
<a name="aws-device-farm-gradle-plugin-dependencies"></a>

**Exécution**
+ Le plug-in Device Farm Gradle nécessite le SDK AWS mobile 1.10.15 ou version ultérieure. Pour plus d'informations et pour installer le kit SDK, consultez [Kit SDK AWS Mobile](https://aws.amazon.com/mobile/sdk/).
+ Android tools builder test api 0.5.2
+ Apache Commons Lang3 3.3.4

**Pour les tests d'unité**
+ Testng 6.8.8
+ Jmockit 1.19
+ Android gradle tools 1.3.0

## Étape 1 : Création du plugin AWS Device Farm Gradle
<a name="aws-device-farm-gradle-plugin-building"></a>

Ce plugin permet l'intégration d'AWS Device Farm au système de build Gradle dans Android Studio. Pour plus d'informations, consultez [Gradle](https://gradle.org).

**Note**  
La création du plug-in est facultative. Le plug-in est publié via Maven Central. Si vous souhaitez autoriser Gradle à télécharger le plug-in directement, ignorez cette étape et passez à [Étape 2 : Configuration du plugin AWS Device Farm Gradle](#aws-device-farm-gradle-plugin-setting-up).

**Pour créer le plug-in**

1. Accédez au dépôt [GitHub](https://github.com/awslabs/aws-device-farm-gradle-plugin)et clonez-le.

1. Créez le plug-in à l'aide de `gradle install`.

   Le plug-in est installé sur votre référentiel Maven local.

Étape suivante : [Étape 2 : Configuration du plugin AWS Device Farm Gradle](#aws-device-farm-gradle-plugin-setting-up)

## Étape 2 : Configuration du plugin AWS Device Farm Gradle
<a name="aws-device-farm-gradle-plugin-setting-up"></a>

Si ce n'est pas déjà fait, clonez le référentiel et installez le plug-in à l'aide de la procédure suivante : [Création du plugin Device Farm Gradle](#aws-device-farm-gradle-plugin-building).

**Pour configurer le plug-in AWS Device Farm Gradle**

1. Ajoutez l'artéfact du plug-in à votre liste de dépendances dans `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. Configurez le plug-in dans votre fichier `build.gradle`. Le configuration spécifique au test suivante doit vous servir de guide :

   ```
   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. Exécutez votre test Device Farm à l'aide de la tâche suivante :`gradle devicefarmUpload`.

   La sortie de compilation affichera un lien vers la console Device Farm où vous pourrez surveiller l'exécution de vos tests.

Étape suivante : [Génération d'un utilisateur IAM dans le plugin Device Farm Gradle](#aws-device-farm-gradle-plugin-generating-iam-user)

## Étape 3 : Génération d'un utilisateur IAM dans le plugin Device Farm Gradle
<a name="aws-device-farm-gradle-plugin-generating-iam-user"></a>

Gestion des identités et des accès AWS (IAM) vous aide à gérer les autorisations et les politiques relatives à l'utilisation des AWS ressources. Cette rubrique explique comment créer un utilisateur IAM autorisé à accéder aux ressources AWS Device Farm.

Si ce n'est pas déjà fait, effectuez les étapes 1 et 2 avant de générer un utilisateur IAM.

Nous vous recommandons de ne pas utiliser votre compte AWS root pour accéder à Device Farm. Créez plutôt un nouvel utilisateur IAM (ou utilisez un utilisateur IAM existant) dans votre AWS compte, puis accédez à Device Farm avec cet utilisateur IAM.

**Note**  
Le compte AWS root ou l'utilisateur IAM que vous utilisez pour effectuer les étapes suivantes doit être autorisé à créer la politique IAM suivante et à l'associer à l'utilisateur IAM. Pour plus d'informations, consultez [Utilisation de stratégies](https://docs.aws.amazon.com/IAM/latest/UserGuide/policies_manage.html).

**Pour créer un nouvel utilisateur avec la politique d'accès appropriée dans IAM**

1. Ouvrez la console IAM à l’adresse [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. Choisissez **Utilisateurs**.

1. Choisissez **Créer des utilisateurs**.

1. Entrez le nom d'utilisateur de votre choix.

   Par exemple, **GradleUser**.

1. Choisissez **Créer**.

1. Choisissez **Télécharger les informations d'identification** et enregistrez-les à un emplacement où vous pourrez facilement les récupérer ultérieurement.

1. Choisissez **Fermer**.

1. Choisissez le nom d'utilisateur dans la liste.

1. Sous **Autorisations**, développez l'en-tête **Stratégies en ligne** en cliquant sur la flèche vers le bas située à droite.

1. Choisissez **Cliquez ici là** où il est écrit « Il **n'y a aucune politique en ligne à afficher ». Pour en créer un, cliquez ici**.

1. Sur l'écran **Set Permissions (Réglez les permissions)**, choisissez **Stratégie personnalisée**.

1. Choisissez **Select (Sélectionner)**.

1. Attribuez un nom à votre stratégie, par exemple **AWSDeviceFarmGradlePolicy**.

1. Collez la stratégie suivante dans **Document de stratégie**.

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

****  

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

------

1. Choisissez **Apply Policy (Appliquer la stratégie)**.

Étape suivante: [Configuration des types de tests](#aws-device-farm-gradle-plugin-configuring-test-types).

Pour plus d'informations, consultez [Création d'un utilisateur IAM (AWS Management Console)](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_SettingUpUser.html#Using_CreateUser_console) ou[Configuration](setting-up.md).

## Étape 4 : Configuration des types de tests
<a name="aws-device-farm-gradle-plugin-configuring-test-types"></a>

Par défaut, le plug-in AWS Device Farm Gradle exécute le [Instrumentation pour Android et AWS Device Farm](test-types-android-instrumentation.md) test. Si vous souhaitez exécuter vos propres tests ou spécifier des paramètres supplémentaires, vous pouvez choisir de configurer un type de test. Cette rubrique fournit des informations sur chaque type de test disponible, ainsi que la procédure à suivre dans Android Studio pour le configurer afin de l'utiliser. Pour plus d'informations sur les types de tests disponibles dans Device Farm, consultez[Frameworks de test et tests intégrés dans AWS Device Farm](test-types.md).

Si ce n'est pas déjà fait, effectuez les étapes 1 à 3 avant de configurer les types de tests.

**Note**  
Si vous utilisez des [emplacements d'appareils](how-to-purchase-device-slots.md), la fonction d'emplacement d'appareil est désactivée par défaut.

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

Device Farm prend en charge Appium Java et JUnit TestNG pour Android.
+ [Appium (sous Java ()) JUnit](https://docs.aws.amazon.com//devicefarm/latest/developerguide/test-types-appium.html)
+ [Appium (sous Java (TestNG))](https://docs.aws.amazon.com//devicefarm/latest/developerguide/test-types-appium.html)

Vous pouvez choisir `useTestNG()` ou `useJUnit()`. `JUnit` est la valeur par défaut et n'a pas besoin d'être explicitement spécifié.

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

### Intégré : fuzz
<a name="configuring-test-types-built-in-fuzz"></a>

Device Farm propose un type de test de fuzz intégré, qui envoie de manière aléatoire les événements de l'interface utilisateur aux appareils, puis communique les résultats.

```
    fuzz {

       eventThrottle 50 // optional default
       eventCount 6000  // optional default
       randomizerSeed 1234 // optional default blank

     }
```

Pour de plus amples informations, veuillez consulter [Exécution du test de fuzz intégré à Device Farm (Android et iOS)](test-types-built-in-fuzz.md).

### Instrumentation
<a name="configuring-test-types-instrumentation"></a>

Device Farm prend en charge l'instrumentation (EspressoJUnit, Robotium ou tout autre test basé sur l'instrumentation) pour Android. Pour de plus amples informations, veuillez consulter [Instrumentation pour Android et AWS Device Farm](test-types-android-instrumentation.md).

Lorsque vous exécutez un test d'instrumentation dans Gradle, Device Farm utilise le `.apk` fichier généré à partir de votre répertoire **AndroidTest** comme source de vos tests.

```
    instrumentation { 

        filter "test filter per developer docs" // optional

    }
```