Exécuter un test Robo (Android)

Robo test est un outil de test intégré à Firebase Test Lab. Robo test analyse la structure de l'interface utilisateur (UI) de votre application, puis l'explore méthodiquement, simulant automatiquement les activités des utilisateurs. Le test robot simule toujours les mêmes activités utilisateur dans le même ordre lorsque vous l'utilisez pour tester une application sur une configuration d'appareil spécifique avec les mêmes paramètres. Cette approche de test reproductible vous permet d'utiliser le test Robo pour valider les corrections de bugs et tester les régressions.

Robo test capture les fichiers journaux, enregistre une série de captures d'écran annotées, puis crée une vidéo à partir de ces captures d'écran pour vous montrer les opérations utilisateur simulées qu'il a effectuées. Ces journaux, captures d'écran et vidéos peuvent vous aider à déterminer la cause première des plantages d'applications. Ces fonctionnalités de test Robo peuvent également vous aider à détecter des problèmes avec l'interface utilisateur de votre application.

En plus d'exécuter des tests Robo réguliers, vous pouvez personnaliser vos tests à l'aide de scripts Robo, qui sont une fonctionnalité des tests Robo. Pour en savoir plus, consultez Exécuter un script Robo .

Si vous souhaitez essayer la version bêta de Robo pour iOS+, consultez Exécuter un test Robo .

Statistiques d'exploration des tests robots

Pour vous aider à interpréter les résultats de votre test Robo, le test Robo enregistre les statistiques lors de chaque analyse de test. Test Lab affiche les statistiques en haut de l'onglet Test Robo dans la page de résultats de votre test :

  • Actions : nombre total d'actions effectuées pendant l'analyse, y compris les actions de script Robo, les actions de singe et les directives Robo.

  • Activités : nombre d'activités distinctes couvertes au cours de l'exploration.

  • Écrans : le nombre d'écrans distincts visités lors de l'analyse.

Test Lab utilise également les statistiques pour créer une représentation visuelle du test Robo sous la forme d'un graphique d'analyse. Le graphique a des écrans comme nœuds et des actions comme bords. En suivant les bords entre les écrans, vous pouvez avoir une idée de la façon dont le test Robo a parcouru votre application tout au long de l'analyse.

Expiration du délai de test du robot

En fonction de la complexité de l'interface utilisateur de votre application, le test Robo peut prendre cinq minutes ou plus pour effectuer un ensemble complet d'interactions avec l'interface utilisateur. Nous vous recommandons de définir le délai d'expiration du test sur au moins 120 secondes (2 minutes) pour la plupart des applications et 300 secondes (5 minutes) pour les applications moyennement complexes. La valeur par défaut du délai d'expiration est de 300 secondes (5 minutes) pour les tests exécutés à partir d'Android Studio et de la console Firebase, et de 900 secondes (15 minutes) pour les tests exécutés à partir de la ligne de commande gcloud .

Erreurs d'expiration du délai de démarrage de l'application

Si votre application met beaucoup de temps à démarrer, le test Robo peut générer une erreur et ne pourra pas explorer votre application. Cela ne se produit que dans les cas de temps de démarrage extrêmement long et ne peut être résolu qu'en révisant votre application pour qu'elle démarre plus rapidement.

Plus de contrôle avec les scripts Robo

Parfois, vous avez besoin de plus de contrôle sur vos tests. Par exemple, vous souhaiterez peut-être tester un parcours utilisateur commun ou fournir une entrée d'interface utilisateur spécifique comme un nom d'utilisateur et un mot de passe. Les scripts robots peuvent vous aider. Pour en savoir plus sur les scripts Robo, consultez Exécuter un script Robo et Guide de référence des scripts Robo .

Tests robotisés et widgets d'interface utilisateur non Android

Les tests robotisés utilisent l'API Android pour effectuer des actions directement sur les widgets de l'interface utilisateur Android. Cela aide les tests à explorer automatiquement votre interface utilisateur, mais signifie également qu'ils doivent pouvoir extraire une hiérarchie d'interface utilisateur Android pour un écran afin d'exécuter des tests dessus.

Si un écran de votre application n'utilise pas les widgets de l'interface utilisateur Android, les tests Robo s'appuient sur Monkey Actions pour tester cet écran. Contrairement aux actions de test Robo plus méthodiques, Monkey Actions simule simplement des événements de tapotement sur des emplacements semi-aléatoires sur l'écran d'un appareil.

Pour mieux tester les écrans qui n'utilisent pas les widgets de l'interface utilisateur Android, vous pouvez remplacer les pressions arbitraires d'une action Monkey par un ensemble de pressions et d'interactions scriptées via Firebase Test Lab Game Loop Tests .

Intégration avec Google Play

Vous pouvez utiliser Robo test dans la console Google Play lorsque vous téléchargez et publiez le fichier APK de votre application en utilisant le canal alpha ou bêta. Les tests robotisés s'exécutent sur un ensemble d'appareils physiques populaires provenant de différents emplacements géographiques, offrant une couverture de test sur divers facteurs de forme et configurations matérielles. Pour en savoir plus, consultez Utiliser les rapports préalables au lancement pour identifier les problèmes .

Test de connexion au compte et saisie de texte prédéfinie

Robo test prend en charge la connexion au compte de test et vous permet également de saisir du texte prédéfini dans les champs de votre application. Pour une connexion personnalisée et d'autres saisies de texte prédéfinies, Robo test peut saisir du texte dans les champs EditText de votre application. Pour chaque chaîne, vous devez identifier le champ EditText à l'aide d'un nom de ressource Android. Pour en savoir plus, consultez Accès aux ressources .

Se connecter

Robo test propose deux méthodes mutuellement exclusives pour prendre en charge la connexion :

  • Connexion personnalisée : si vous fournissez les informations d'identification du compte de test, vous devez indiquer à Robo test où les saisir, ainsi que fournir ces informations d'identification.

  • Connexion automatique : si votre application dispose d'un écran de connexion qui utilise un compte Google pour l'authentification, Robo test utilise un compte de test Google, sauf si vous fournissez les informations d'identification du compte de test pour une connexion personnalisée.

Pour fournir les informations d'identification du compte de test pour une connexion personnalisée, procédez comme suit :

  1. Sur la page Sélectionner les dimensions , choisissez Options supplémentaires .

  2. Sous Informations d'identification du compte de test (facultatif) , entrez les noms d'utilisateur et de mot de passe des ressources, ainsi que le nom d'utilisateur et le mot de passe du compte de test.

Saisie de texte prédéfinie

Vous pouvez fournir un texte de saisie personnalisé pour d'autres champs de texte utilisés par votre application. Pour fournir une saisie de texte pour des champs supplémentaires, procédez comme suit :

  1. Sur la page Sélectionner les dimensions , choisissez Options supplémentaires .

  2. Sous Champs supplémentaires (facultatifs) , saisissez un ou plusieurs noms de ressources et les chaînes à saisir dans les champs de texte correspondants.

Erreurs de saisie de texte prédéfinie {:#predefined-text}

Le test robot recherche les champs EditText avec un nom de ressource Android qui correspond à une expression régulière fournie. Si Robo ne trouve pas de champ correspondant, il ne saisit pas votre texte, mais continue son exploration comme d'habitude.

Vous pouvez fournir jusqu'à trois liens profonds pris en charge par votre application à des fins de test. Des liens profonds sont émis vers votre application en tant qu'intentions Android ACTION_VIEW . Par conséquent, chaque lien doit correspondre à un filtre d’intention dans votre application.

Si un ou plusieurs liens profonds sont fournis, l'application est d'abord lancée normalement (à l'aide de l'intention ACTION_MAIN ) et analysée jusqu'au délai d'expiration spécifié. Après l’exploration principale, chaque lien profond est exploré pendant 30 secondes supplémentaires chacun.

Si le test Robo ne trouve pas d'activité correspondant à votre lien profond, Test Lab ignore le lien. Les problèmes de liens profonds sont généralement le résultat d’une divergence entre le lien profond fourni et sa définition dans votre application. Vérifiez à la fois l'URL fournie et votre application pour détecter les fautes de frappe ou autres incohérences.

Prise en charge des licences d'application

Test Lab prend en charge les applications qui utilisent le service App Licensing proposé par Google Play. Pour vérifier avec succès les licences lors du test de votre application avec Test Lab, vous devez publier votre application sur le canal de production du Play Store. Pour tester votre application dans le canal alpha ou bêta à l'aide de Test Lab, supprimez la vérification de licence avant de télécharger votre application sur Test Lab.

Prochaines étapes