Exécuter un test Robo (Android)

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

Robo test capture des 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'application. Ces fonctionnalités de Robo test peuvent également vous aider à identifier les problèmes liés à l'interface utilisateur de votre application.

En plus d'exécuter des tests Robo standards, 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 de Robo test

Pour vous aider à interpréter les résultats de vos tests Robo, Robo test enregistre des statistiques lors de chaque exploration de test. Test Lab affiche les statistiques en haut de l'onglet "Robo test" de la page de résultats de test :

  • Actions : nombre total d'actions effectuées lors de l'exploration, y compris les actions de script Robo, les actions semi-aléatoires et les directives Robo.

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

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

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

Délai avant expiration de Robo test

Selon la complexité de l'interface utilisateur de votre application, Robo test 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 avant expiration du test sur au moins 120 secondes (2 minutes) pour la plupart des applications et sur 300 secondes (5 minutes) pour les applications modérément complexes. La valeur par défaut du délai avant expiration est de 300 secondes (5 minutes) pour les tests exécutés à partir d'Android Studio et de la console Firebase, et 900 secondes (15 minutes) pour les tests exécutés à partir de la ligne de gcloud commande.

Erreurs de délai avant expiration au démarrage de l'application

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

Contrôle plus précis avec les scripts Robo

Vous avez parfois besoin d'un contrôle plus précis sur vos tests. Par exemple, vous pouvez tester un parcours utilisateur courant ou fournir une entrée d'interface utilisateur spécifique, comme un nom d'utilisateur et un mot de passe. Les scripts Robo peuvent vous aider. Pour en savoir plus sur les scripts Robo, consultez Exécuter un script Robo et le guide de référence des scripts Robo.

Tests Robo et widgets d'interface utilisateur non Android

Les tests Robo utilisent l'API Android pour effectuer des actions directement sur les widgets d'interface utilisateur Android. Cela permet aux tests d'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 de widgets d'interface utilisateur Android, les tests Robo se rabattent sur les actions semi-aléatoires pour tester cet écran. Contrairement aux actions de test Robo plus méthodiques, les actions semi-aléatoires simulent simplement des événements de pression sur des emplacements semi-aléatoires de l'écran d'un appareil.

Pour mieux tester les écrans qui n'utilisent pas de widgets d'interface utilisateur Android, vous pouvez remplacer les pressions arbitraires d'une action semi-aléatoire par un ensemble de pressions et d'interactions scriptées via Firebase Test Lab tests de boucle de jeu.

Intégration à Google Play

Vous pouvez utiliser Robo test dans la Google Play Console lorsque vous importez et publiez le fichier APK de votre application à l'aide du canal alpha ou bêta. Robo test s'exécute sur un ensemble d'appareils physiques populaires provenant de différentes zones géographiques, offrant une couverture de test sur différents facteurs de forme et configurations matérielles. Pour en savoir plus, consultez Utiliser les rapports pré-lancement pour identifier les problèmes.

Connexion au compte de test et saisie de texte prédéfini

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

Connexion

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

  • Connexion personnalisée : si vous fournissez des identifiants de compte de test, vous devez indiquer à Robo test où les saisir et les fournir.

  • Connexion automatique : si vous ne fournissez pas d'identifiants de compte de test pour la connexion personnalisée, la connexion automatique est utilisée. Robo test peut se connecter automatiquement aux applications créées avec des widgets Android standards ou des applications Compose, à l'aide d'un compte de test Google.

Pour fournir des identifiants de compte de test pour la connexion personnalisée, procédez comme suit :

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

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

Saisie de texte prédéfini

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

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

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

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

Robo test 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 poursuit son exploration comme d'habitude.

Vous pouvez fournir jusqu'à trois liens profonds compatibles avec votre application pour les tests. Les liens profonds sont émis dans votre application en tant qu'Android ACTION_VIEW intents. Par conséquent, chaque lien doit correspondre à un filtre d'intent dans votre application.

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

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

Compatibilité avec l'attribution de licences d'application

Test Lab est compatible avec les applications qui utilisent le service d'attribution de licences d'application proposé par Google Play. Pour vérifier correctement les licences lorsque vous testez votre application avec Test Lab, vous devez la publier sur le canal de production du Play Store. Pour tester votre application sur le canal alpha ou bêta à l'aide de Test Lab, supprimez la vérification de licence avant d'importer votre application dans Test Lab.

Étapes suivantes