Google 致力于为黑人社区推动种族平等。查看具体举措
Cette page a été traduite par l'API Cloud Translation.
Switch to English

Commencez avec les tests d'instrumentation

Un test d'instrumentation est un test écrit par vous ou votre équipe pour tester spécifiquement votre application, à l'aide des frameworks de test Android Espresso et UI Automator 2.0 . Test Lab fournit des résultats pour tous les cas de test qui terminent leur exécution pendant cette période.

Lorsque vous écrivez un test d'instrumentation, vous créez un deuxième module APK que vous téléchargez ultérieurement dans Test Lab avec le module APK de votre application. Pour en savoir plus sur la création de fichiers APK de test, consultez Tester votre application .

Délai d'expiration du test d'instrumentation

Les tests d'instrumentation peuvent durer jusqu'à 45 minutes sur les appareils physiques et jusqu'à 60 minutes sur les appareils virtuels .

Exécutez des tests indépendamment avec Orchestrator

Android Test Orchestrator vous permet d'exécuter chacun des tests d'instrumentation de votre application indépendamment. Test Lab utilise toujours la dernière version d'Orchestrator. L'utilisation d'Orchestrator présente quelques avantages et un inconvénient:

Avantages:

  • Pas d'état partagé: chaque test s'exécute dans sa propre instance d'instrumentation afin qu'un état partagé ne s'accumule pas entre les tests.
  • Crashes isolés: si un test plante, seule cette instrumentation est interrompue et les autres tests de votre suite peuvent encore s'exécuter.

Contre:

  • Durée d'exécution plus longue: chaque test exécute sa propre instance d'instrumentation, ce qui signifie que le processus de test prend globalement un peu plus de temps. L'augmentation de la durée d'exécution peut avoir un impact sur l' utilisation de votre quota ou le temps facturé et peut vous amener à atteindre les limites de délai d' expiration de vos appareils.

Activer l'orchestrateur

Pour activer Orchestrator pour Test Lab, dans la configuration des tests d'instrumentation, cliquez sur Options supplémentaires > Exécuter avec Orchestrator .

Accélérez les tests avec le sharding

La partition de test divise un ensemble de tests en sous-groupes (fragments) qui s'exécutent séparément de manière isolée. Test Lab exécute automatiquement chaque partition en parallèle à l'aide de plusieurs appareils et complète l'ensemble des tests en moins de temps.

Disons que vous créez N fragments. Pour chaque appareil que vous sélectionnez, Test Lab fait tourner N appareils identiques et exécute un sous-ensemble de tests sur chaque appareil. Cela signifie que les cas de test fragmentés peuvent entraîner plusieurs exécutions de test par appareil, contrairement aux cas de test non fragmentés, qui entraînent toujours une exécution de test par appareil (pour un aperçu rapide des concepts clés dans Test Lab, voir Concepts clés ).

Facturation des fragments de test

Test Lab implémente vos fragments en tirant parti du mécanisme de partitionnement intégré d'AndroidJUnitRunner. Pour éviter d'être facturé pour la création de fragments vides (fragments sans cas de test attribués), le nombre de fragments que vous créez doit être inférieur au nombre total de cas de test. En fonction de la durée d'exécution de chaque scénario de test, il est généralement judicieux d'attribuer 2 à 10 cas de test par partition.

Pour plus d'informations sur la facturation, lisez Utilisation, quotas et facturation .

Activer le partitionnement de test

Vous pouvez activer la partition de test à l'aide de la console Firebase. Pour activer la partition de test:

  1. Dans la configuration du test d'instrumentation, cliquez sur Options supplémentaires .

  2. Dans la section Partage , entrez le nombre de partitions que vous souhaitez exécuter.

Prendre des captures d'écran

Les instructions suivantes décrivent comment ajouter la bibliothèque de captures d'écran de Test Lab à votre application et appeler cette bibliothèque à partir de votre test. Test Lab fournit une bibliothèque que vous pouvez utiliser pour prendre des captures d'écran lors de l'exécution de tests d'instrumentation, tels que des tests écrits à l'aide du framework de test Espresso . Une fois votre test exécuté, vous pouvez consulter les captures d'écran dans Android Studio ou dans la console Firebase.

Pour activer votre test de capture d'écran, ajoutez la bibliothèque suivante: cloudtestingscreenshotter_lib.aar . Notez que la possibilité de prendre des captures d'écran est déjà incorporée dans le test APK app-debug-test-unaligned.apk et l' exemple d'application NotePad . Les captures d'écran sont également automatiquement capturées lorsque vous exécutez un test Robo .

1. Ajoutez la bibliothèque de captures d'écran à votre projet

  1. Dans Android Studio, ouvrez la vue Projet et cliquez avec le bouton droit sur le nom de votre projet. Ensuite, cliquez sur Nouveau > Répertoire .

  2. Dans la boîte de dialogue Nouveau répertoire , saisissez aars . Cela crée un répertoire aars à la racine de votre projet de test (en tant que répertoire homologue dans le dossier de l' application ).

  3. Copiez cloudtestingscreenshotter_lib.aar et collez-le dans le dossier aars .

  4. Dans le fichier build.gradle niveau racine (au niveau du projet) de votre application, ajoutez une référence au dossier aars dans chaque bloc de repositories :

    repositories {
        jcenter()
        flatDir {
            dirs '../aars'
        }
    }
    ...
  5. Dans le répertoire de niveau supérieur de votre module (pour l'exemple d'application build.gradle , il s'agit du répertoire de l' application ), ouvrez le fichier build.gradle et ajoutez une dépendance à cloudtestingscreenshotter_lib.aar au bloc de dependencies niveau supérieur:

    dependencies {
        // Cloud testing
        androidTestCompile (name:'cloudtestingscreenshotter_lib', ext:'aar')
        // Other dependencies go here
        }
    
  6. Dans votre fichier AndroidManifest.xml , spécifiez les autorisations système pour votre application en ajoutant les lignes suivantes dans la <manifest> . Si vous testez sur Android 10 (niveau d'API 29) ou supérieur , omettez l'autorisation WRITE_EXTERNAL_STORAGE (votre application ne nécessite pas cette autorisation pour lire et écrire des captures d'écran sur l'appareil).

    <manifest ... >
       <!-- WRITE_EXTERNAL_STORAGE is not needed on Android 10 (API level 29) or higher. -->
       <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
       <uses-permission android:name="android.permission.INTERNET"/>
       ...
    </manifest>
    

2. Prenez une capture d'écran de votre test

A tout moment dans votre test où vous voulez prendre une capture d' écran, appelez la ScreenShotter.takeScreenshot méthode de la bibliothèque cloudtestingscreenshotter_lib, où le premier argument est une étiquette que vous utilisez pour identifier la capture d' écran ( main_screen_2 est utilisé dans l'exemple suivant):

Java

ScreenShotter.takeScreenshot("main_screen_2", this /* activity */);

Kotlin + KTX

ScreenShotter.takeScreenshot("main_screen_2", this /* activity */)

3. Affichez vos captures d'écran

Une fois votre test terminé, vous pouvez comparer toutes les captures d'écran prises pendant le test en sélectionnant un élément dans l'arborescence des résultats du test, puis en cliquant sur Afficher les captures d'écran.Afficher les captures d'écran option.

Screenshot comparison screen

Vous pouvez sélectionner et comparer des captures d'écran de différentes configurations comme suit:

Tâche action
Basculez entre les exécutions de test. Utilisez le menu déroulant dans le coin supérieur gauche.

menu de cas de test
Basculez entre les captures d'écran au cours d'une exécution de test. Utilisez les flèches dans le coin supérieur droit.

sélecteur de capture d'écran
Ajoutez des panneaux de comparaison de captures d'écran supplémentaires à la vue actuelle. Cliquez sur Comparer .

Comparer
Choisissez une dimension de test différente (type d'appareil, orientation, paramètres régionaux, etc.). Sélectionnez un nouveau membre de dimension dans la liste au bas de la capture d'écran.