

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.

# Instrumentation pour Android et AWS Device Farm
<a name="test-types-android-instrumentation"></a>

Device Farm prend en charge l'instrumentation (EspressoJUnit, Robotium ou tout autre test basé sur l'instrumentation) pour Android.

Device Farm fournit également un exemple d'application Android et des liens vers des tests fonctionnels dans trois frameworks d'automatisation Android, dont Instrumentation (Espresso). L'[exemple d'application Device Farm pour Android](https://github.com/awslabs/aws-device-farm-sample-app-for-android) est disponible en téléchargement sur GitHub.

Pour plus d'informations sur les tests dans Device Farm, consultez[Frameworks de test et tests intégrés dans AWS Device Farm](test-types.md).

**Topics**
+ [Qu'est-ce que l'instrumentation ?](#test-types-android-instrumentation-what-is)
+ [Considérations relatives aux tests d'instrumentation Android](#test-types-android-instrumentation-settings)
+ [Analyse syntaxique des tests en mode standard](#test-types-android-standard-mode-test-parse)
+ [Intégrer l'instrumentation Android à Device Farm](test-types-android-instrumentation-integrate.md)

## Qu'est-ce que l'instrumentation ?
<a name="test-types-android-instrumentation-what-is"></a>

Instrumentation Android vous permet d'appeler des méthodes de rappel dans votre code de test, afin que vous puissiez parcourir le cycle de vie d'un composant étape par étape, comme si vous déboguiez le composant. Pour plus d'informations, consultez la section [Tests instrumentés](https://developer.android.com/studio/test/test-in-android-studio#test_types_and_locations) dans la section *Types et emplacements de tests* de la documentation des *outils de développement Android*.

## Considérations relatives aux tests d'instrumentation Android
<a name="test-types-android-instrumentation-settings"></a>

Lorsque vous utilisez l'instrumentation Android, tenez compte des recommandations et remarques suivantes.

**Vérifiez la compatibilité du système d'exploitation Android**  
 Consultez la [documentation Android](https://developer.android.com/jetpack/androidx/releases/test#orchestrator-1.5.0) pour vous assurer que l'instrumentation est compatible avec la version de votre système d'exploitation Android. 

**Exécution depuis la ligne de commande**  
 Pour exécuter des tests d'instrumentation depuis la ligne de commande, veuillez suivre la [documentation Android.](https://developer.android.com/training/testing/instrumented-tests/androidx-test-libraries/runner#enable-command) 

**System Animations (Animations système)**  
 Selon la [documentation Android pour les tests d'Espresso](https://developer.android.com/training/testing/espresso), il est recommandé de désactiver les animations du système lors des tests sur des appareils réels. Device Farm désactive automatiquement les paramètres **Window Animation Scale**, **Transition Animation Scale** et **Animator Duration Scale** lorsqu'il s'exécute avec le testeur d'instrumentation [JUnitandroid.support.test.runner.Android](http://developer.android.com/reference/android/support/test/runner/AndroidJUnitRunner.html) Runner.

**Test Recorders (Enregistreurs de test)**  
Device Farm prend en charge les frameworks, tels que Robotium, dotés d'outils record-and-playback de script.

## Analyse syntaxique des tests en mode standard
<a name="test-types-android-standard-mode-test-parse"></a>

En mode standard d'exécution, Device Farm analyse votre suite de tests et identifie les classes et méthodes de test uniques qu'elle exécutera. Cela se fait par le biais d'un outil appelé [Dex Test Parser](https://github.com/linkedin/dex-test-parser). 

Lorsqu'un fichier .apk d'instrumentation Android est fourni en entrée, l'analyseur renvoie les noms de méthode complets des tests qui correspondent aux conventions JUnit 3 et JUnit 4. 

Pour tester cela dans un environnement local : 

1. Téléchargez le [https://github.com/linkedin/dex-test-parser](https://github.com/linkedin/dex-test-parser)binaire.

1. Exécutez la commande suivante pour obtenir la liste des méthodes de test qui seront exécutées sur Device Farm :

   ```
   java -jar parser.jar path/to/apk path/for/output
   ```

# Intégrer l'instrumentation Android à Device Farm
<a name="test-types-android-instrumentation-integrate"></a>

**Note**  
Suivez les instructions suivantes pour intégrer les tests d'instrumentation Android à AWS Device Farm. Pour plus d'informations sur l'utilisation des tests d'instrumentation dans Device Farm, consultez[Instrumentation pour Android et AWS Device Farm](test-types-android-instrumentation.md). 

## Téléchargez vos tests d'instrumentation Android
<a name="test-types-android-instrumentation-upload"></a>

Utilisez la console Device Farm pour télécharger vos tests.

1. Connectez-vous à la console Device Farm à l'adresse [https://console.aws.amazon.com/devicefarm](https://console.aws.amazon.com/devicefarm).

1. Sur le panneau de navigation de Device Farm, choisissez **Mobile Device Testing**, puis **Projects**.

1. Dans la liste des projets, choisissez le projet dans lequel vous souhaitez télécharger vos tests.
**Astuce**  
Vous pouvez utiliser la barre de recherche pour filtrer la liste des projets par nom.  
Pour créer un projet, suivez les instructions fournies dans [Création d'un projet dans AWS Device Farm](how-to-create-project.md).

1. Sélectionnez **Créer une course**.

1. Sous **Sélectionner une application**, dans la section **Options de sélection des applications**, sélectionnez **Télécharger votre propre application**.

1. Recherchez et sélectionnez votre fichier d'application Android. Le fichier doit être au format .apk.

1. Sous **Configurer le test**, dans la section **Sélectionner le cadre de test**, choisissez **Instrumentation**, puis sélectionnez **Choisir un fichier**.

1. Recherchez et choisissez le fichier .apk contenant vos tests.

1. Suivez les instructions restantes pour sélectionner les appareils et démarrer l'exécution.

## (Facultatif) Prenez des captures d'écran lors des tests d'instrumentation Android
<a name="test-types-android-instrumentation-screenshots"></a>

Vous pouvez effectuer des captures d'écran dans le cadre de vos tests Instrumentation Android.

Pour effectuer des captures d'écran, appelez l'une des méthodes suivantes :
+ Pour Robotium, appelez la méthode `takeScreenShot` (par exemple, `solo.takeScreenShot();`).
+ Pour Spoon, appelez la méthode `screenshot`, par exemple :

  ```
  Spoon.screenshot(activity, "initial_state");
  /* Normal test code... */
  Spoon.screenshot(activity, "after_login");
  ```

Lors d'un test, Device Farm obtient des captures d'écran des emplacements suivants sur les appareils, s'ils existent, puis les ajoute aux rapports de test :
+ `/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`