Le test Robo est un outil de test intégré à Firebase Test Lab. Le test robot analyse la structure de l'interface utilisateur (UI) de votre application, puis l'explore méthodiquement en 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 rechercher des régressions.
Le test robot 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 de l'application. Ces fonctionnalités de test Robo peuvent également vous aider à détecter les problèmes liés à 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 et versions ultérieures, consultez Exécuter un test Robo.
Statistiques sur l'exploration du test Robo
Pour vous aider à interpréter les résultats de votre test Robo, le test Robo enregistre des statistiques lors de chaque exploration de test. Test Lab affiche les statistiques en haut de l'onglet "Test Robo" de la page des résultats de test:
Actions: nombre total d'actions effectuées lors de l'exploration, y compris les actions du 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 graphe comporte des écrans comme nœuds et des actions comme arêtes. 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 pendant l'exploration.
Délai avant la fin du test Robo
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'UI. 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 de 900 secondes (15 minutes) pour les tests exécutés à partir de la ligne de commande gcloud
.
Erreurs de délai d'attente de démarrage de l'application
Si le démarrage de votre application prend beaucoup de temps, le test Robo peut générer une erreur et ne pas pouvoir explorer votre application. Cela ne se produit que dans les cas de temps de démarrage extrêmement longs et ne peut être résolu qu'en révisant votre application pour la faire démarrer 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 pouvez tester un parcours utilisateur courant ou fournir une entrée d'UI spécifique, comme un nom d'utilisateur et un mot de passe. Les scripts Robo peuvent vous y 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 autres qu'Android
Les tests Robo utilisent l'API Android pour effectuer directement des actions sur les widgets d'interface utilisateur Android. Cela permet aux tests d'explorer automatiquement votre UI, mais cela signifie également qu'ils doivent pouvoir extraire une hiérarchie d'UI Android pour un écran afin d'y exécuter des tests.
Si un écran de votre application n'utilise pas de widgets d'interface utilisateur Android, les tests Robo reviennent aux actions Monkey pour tester cet écran. Contrairement aux actions de test Robo plus méthodiques, les actions Monkey simulent simplement des événements de pression sur des emplacements semi-aléatoires à 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 Monkey par un ensemble de pressions et d'interactions programmées via les tests de boucle de jeu Firebase Test Lab.
Intégration à Google Play
Vous pouvez utiliser le test Robo dans la Google Play Console lorsque vous importez et publiez le fichier APK de votre application à l'aide du canal alpha ou bêta. Le test robot s'exécute sur un ensemble d'appareils physiques populaires situés dans différentes zones géographiques, ce qui offre 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.
Tester la connexion au compte et la saisie de texte prédéfini
Le test Robo est compatible avec la connexion à un 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 entrées de texte prédéfinies, le test Robo 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 la section Accéder aux ressources.
Connexion
Le test Robo propose deux méthodes mutuellement exclusives pour prendre en charge la connexion:
Connexion personnalisée: si vous fournissez des identifiants de compte de test, vous devez indiquer à Robo Test où les saisir, et également fournir ces identifiants.
Connexion automatique: si votre application comporte un écran de connexion qui utilise un compte Google pour l'authentification, le test Robo utilise un compte de test Google, sauf si vous fournissez des identifiants de compte de test pour la connexion personnalisée.
Pour fournir les identifiants d'un compte de test pour la connexion personnalisée, procédez comme suit:
Sur la page Sélectionner des dimensions, sélectionnez Options supplémentaires.
Sous Identifiants du compte de test (facultatif), saisissez les noms de ressources de nom d'utilisateur et de 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 du texte de saisie personnalisé pour d'autres champs de texte utilisés par votre application. Pour fournir du texte de saisie pour des champs supplémentaires, procédez comme suit:
Sur la page Sélectionner des dimensions, choisissez Options supplémentaires.
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}
Le test Robo recherche des 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.
Liens profonds
Vous pouvez fournir jusqu'à trois liens profonds compatibles avec votre application à des fins de test.
Les liens profonds sont émis dans votre application en tant qu'intents Android ACTION_VIEW
. 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'intent ACTION_MAIN
) et exploré jusqu'à l'expiration spécifiée. Après l'exploration principale, chaque lien profond est exploré pendant 30 secondes supplémentaires.
Erreurs de lien profond
Si le test Robo 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 divergence 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 autres incohérences.
Assistance pour l'attribution de licences d'application
Test Lab est compatible avec les applications qui utilisent le service de gestion des licences 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 dans le canal alpha ou bêta à l'aide de Test Lab, supprimez le contrôle de licence avant de l'importer dans Test Lab.
Étapes suivantes
- Personnalisez vos tests à l'aide de scripts Robo.