Démarrer avec les tests Robo

Robo test est un outil de test intégré à Firebase Test Lab. Le test Robo analyse la structure de l'interface utilisateur de votre application, puis l'explore méthodiquement, simulant automatiquement les activités des utilisateurs. Contrairement à l' exerciseur UI / Application singe test, test Robo simule toujours les mêmes activités de l' utilisateur dans le même ordre lorsque vous l' utilisez pour tester une application sur une configuration de dispositif spécifique avec les mêmes paramètres. Cela vous permet d' utiliser le test Robo pour valider des corrections de bugs et tests pour les régressions d'une manière qui est impossible lors du test avec le test exerciseur UI / Application singe.

Le test Robo 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 du plantage de votre application, et peuvent également vous aider à trouver des problèmes avec l'interface utilisateur de votre application.

Statistiques d'exploration des tests robotisés

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

  • Actions: Le nombre total d'actions réalisées au cours de l'exploration, y compris les actions de script Robo, des actions de singe et directives Robo.
  • Activités: Le nombre d'activités distinctes couvertes au cours de l'exploration.
  • Écrans: Le nombre d'écrans distincts visités au cours de l'exploration.

Test Lab utilise également les statistiques pour créer une représentation visuelle du robot d'exploration sous la forme d'un graphique d'exploration. Le graphe a 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 Robo a traversé votre application tout au long de l'exploration.

Délai d'expiration du test du robot

Selon 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 de 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 modérément complexes. La valeur par défaut de délai d' attente est de 300 secondes (5 minutes) pour effectuer des tests à partir d' Android Studio Developer Console Google et 1500 secondes (25 minutes) pour effectuer des tests de la gcloud ligne de commande.

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

Si votre application met beaucoup de temps à démarrer, 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 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 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 robotiques peuvent vous aider.

Avec les scripts Robo, vous vous enregistrez en parcourant un flux de travail dans votre application, puis chargez cet enregistrement sur la console Firebase pour l'exécuter dans les tests Robo. Lorsque vous exécutez un test Robo avec un script attaché, Robo parcourt d'abord vos actions pré-scriptées, puis continue à explorer l'application comme d'habitude.

Commencez avec les scripts Robo via l'outil Firebase dans Android Studio :

  1. Ouvrez Android Studio.
  2. Dans le menu principal, sélectionnez Outils> Firebase.
  3. Sélectionnez Test Lab et cliquez sur Enregistrer Robo Script et l' utiliser pour Guide Robo test.
  4. Suivez le reste des étapes de l'outil pour enregistrer votre script Robo.
  5. Téléchargez ce script Robo dans Test Lab et démarrez votre test.

Erreurs de script robotique

Si un script Robo échoue à tout moment, Test Lab abandonne toutes les étapes ultérieures du script et reprend une analyse Robo régulière. Le plus souvent, les scripts Robo échouent car Test Lab n'est pas en mesure de trouver un élément nécessaire à l'écran. Pour éviter les échecs, assurez-vous que la navigation de votre application est prévisible et que vos écrans ne sont pas affichés dans un ordre non déterministe.

Tests de robot et widgets d'interface utilisateur non Android

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

Pour de meilleurs écrans de test qui n'utilisent pas l' interface utilisateur Android widgets, vous pouvez remplacer les robinets arbitraires d'une action de singe avec un ensemble de robinets et interactions scriptées par Tests du jeu Test Lab Firebase boucle .

Intégration avec Google Play

Vous pouvez utiliser le test Robo 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. Le test Robo s'exécute sur un ensemble de périphériques physiques populaires à partir de différents emplacements géographiques, offrant une couverture de test à travers divers facteurs de forme et configurations matérielles. Pour en savoir plus, consultez la section Utiliser des rapports pré-lancement pour identifier les problèmes .

Tester la connexion au compte et la saisie de texte prédéfinie

Le test Robo 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 ouverture de session personnalisée et autre entrée de texte prédéfini, le test Robo peut entrer du texte dans EditText champs dans votre application. Pour chaque chaîne, vous devez identifier le EditText champ en utilisant un nom de ressource Android. Pour en savoir plus, consultez Accès aux ressources .

S'identifier

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

  • Ouverture de session personnalisée: Si vous fournissez des informations d' identification de compte de test, vous devez dire tester Robo où les saisir, et également fournir ces informations d' identification.
  • Connexion automatique: Si votre application a un écran de connexion qui utilise un compte Google pour l' authentification, le test utilise Robo un compte de test Google, sauf si vous fournissez des informations d' identification de compte de test pour la connexion dans la coutume.

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

  1. Sur la page Sélectionner les dimensions, choisir des options supplémentaires.
  2. Sous les informations d' identification de compte de test ( en option), entrez le nom nom d'utilisateur et mot de passe ressources et le nom d' utilisateur et mot de passe pour le 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 entrée de texte pour des champs supplémentaires, procédez comme suit :

  1. Sur la page Sélectionner les dimensions, choisir des options supplémentaires.
  2. Sous champs supplémentaires ( en option), entrez un ou plusieurs noms de ressources et les chaînes pour entrer dans les champs de texte correspondants.

Erreurs de saisie de texte prédéfinies

Recherches Robo pour EditText champs 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 pour tester. Les liens profonds sont émis à votre application Android comme ACTION_VIEW intentions. 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é normalement ( en utilisant l' ACTION_MAIN intention) et rampa jusqu'à le délai spécifié. Après l'exploration principale, chaque lien profond est exploré pendant 30 secondes supplémentaires chacun.

Si 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 le résultat d'un écart entre le lien profond fourni et sa définition dans votre application. Vérifiez à la fois l'URL fournie et votre application pour les fautes de frappe ou d'autres incohérences.

Prise en charge des licences d'applications

Test Lab prend en charge les applications qui utilisent la licence App service offert 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 des licences avant de télécharger votre application dans Test Lab.

Problèmes connus

Le test Robo présente actuellement les limitations connues suivantes :

  • Soutien-cadre UI. Test Robo est uniquement compatible avec les applications qui utilisent des éléments de l' interface utilisateur de l' interface utilisateur Android du cadre (y compris View et ViewGroup objets, mais à l' exclusion WebView objets). Si vous utilisez le test Robo pour tester des applications qui utilisent d'autres frameworks d'interface utilisateur, y compris des applications qui utilisent le moteur de jeu Unity, le test peut se terminer sans explorer au-delà du premier écran.
  • Inscrivez -vous en captchas. Le test Robo ne peut pas contourner les écrans de connexion qui nécessitent une action supplémentaire de l'utilisateur au-delà de la saisie des informations d'identification pour se connecter (comme remplir un Captcha).