Catch up on highlights from Firebase at Google I/O 2023. Learn more

Exécuter un script Robo

Ce document décrit comment utiliser les scripts Robo , qui sont des tests qui automatisent les tâches manuelles d'AQ pour les applications mobiles et permettent l'intégration continue (CI) et les stratégies de test avant le lancement. Par exemple, vous pouvez utiliser des scripts Robo pour tester un parcours utilisateur courant ou fournir une entrée d'interface utilisateur (UI) spécifique, comme un nom d'utilisateur et un mot de passe. Les scripts Robo sont une fonctionnalité du test Robo .

Avec les scripts Robo, vous vous enregistrez en parcourant un flux de travail dans votre application, puis vous télé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 joint, Robo parcourt d'abord vos actions pré-scriptées, puis explore l'application comme d'habitude.

Les scripts Robo utilisent le test Robo comme moteur de test. Dans sa forme la plus basique, un script Robo se compose d'une séquence d'actions d'interface utilisateur telles que la saisie de texte "nom d'utilisateur" , puis appuyez sur le bouton OK . Les scripts Robo peuvent également inclure des actions telles que l'attente de l'apparition d'un élément, le tapotement à un point spécifique d'un élément et l'exécution de commandes shell Android Debug Bridge ( adb ).

Les scripts Robo présentent les avantages suivants par rapport aux frameworks de test traditionnels :

Aptitude Description
Très robuste Les scripts Robo peuvent tolérer des différences structurelles et comportementales significatives entre les versions d'application et la flakiness de l'application.
Ouvert Une fois qu'un script Robo est terminé, le test Robo de base peut prendre le relais et continuer à tester l'application. Cette approche de test continu permet plusieurs cas d'utilisation clés. Par exemple, vous pouvez utiliser un script Robo pour amener une application dans un état particulier en exécutant un flux de connexion personnalisé.
Enregistrable Vous n'avez pas besoin de coder les scripts Robo manuellement. Ils peuvent être enregistrés à l'aide de l'enregistreur de script Robo dans Android Studio. La création ou la modification de scripts Robo ne nécessite généralement aucune connaissance du développement mobile.
Flexible Les scripts Robo peuvent interagir avec des éléments d'interface utilisateur non natifs courants dans les jeux.

Les scripts Robo sont déclenchés de manière conditionnelle lors d'un test Robo, ce qui permet aux utilisateurs d'augmenter le comportement de Robo - généralement pour obtenir une plus grande couverture ou cibler des fonctionnalités spécifiques. Contrairement aux frameworks de test traditionnels, les scripts Robo prennent en charge les éléments suivants :

  • Diverses conditions de déclenchement, par exemple, un nom de package d'application particulier étant actif (ou non) ou un élément spécifique affiché à l'écran (ou non).
  • L'exécution contrôle, par exemple, un nombre maximum d'exécutions, la priorité, l'étape d'analyse pertinente.
  • Types d'action non conventionnels (conditionnels, ignorant les éléments, fermant l'écran).

Nous vous recommandons d'utiliser des scripts Robo dans la mesure du possible car ils sont faciles à gérer. Par exemple, vous pouvez utiliser un script Robo pour effectuer les actions suivantes :

  • Naviguez dans des flux de travail importants pour accéder au cœur de la fonctionnalité d'une application. Par exemple, vous pouvez effectuer une connexion, configurer l'état d'une application après le premier lancement et enregistrer un nouvel utilisateur.
  • Concentrez Robo sur une partie particulière d'une application pour tirer le meilleur parti du temps de test Robo. Le script Robo guide le test Robo pour atteindre la partie pertinente d'une application, où le test Robo reprend une analyse entièrement automatisée.
  • Amenez une application dans un état ou un écran spécifique pour effectuer une analyse, par exemple, pour analyser un message intégré à l'application, une politique de confidentialité ou un niveau spécifique d'un jeu.
  • Effectuez un test d'instrumentation de bout en bout, avec ou sans test Robo reprenant une analyse entièrement automatisée une fois le script Robo terminé.

Utilisez des fonctionnalités de script Robo plus avancées pour effectuer les opérations suivantes :

  • Effectuez des actions avant que Robo ne commence à explorer l'application en cours de test ou après la fin d'une analyse, par exemple, nettoyez les données de l'application en cours de test avant une analyse, modifiez les paramètres de l'appareil, etc.
  • Modifiez les aspects du comportement de Robo lors d'un crawl, en particulier :
    • Faites en sorte que Robo ignore certains widgets d'interface utilisateur ou écrans d'application.
    • Fournissez une action personnalisée que Robo doit effectuer lors du retour en arrière à partir d'un écran particulier.
    • Faites en sorte que Robo effectue des actions spécifiques chaque fois qu'un écran d'application particulier est rencontré lors d'une analyse.
  • Personnalisez complètement la façon dont Robo effectue une exploration. Par exemple, utilisez une combinaison d'actions conditionnelles et non conditionnelles pour conserver l'application en cours de test en arrière-plan tout au long de l'analyse, tout en effectuant des manipulations sur l'appareil et en fermant toutes les boîtes de dialogue contextuelles qui apparaissent en cours de route.

Gardez à l'esprit que les scripts Robo ne remplacent pas tous les types de tests. Vous avez toujours besoin de tests unitaires pour détecter les bogues logiques de bas niveau dans votre application ; ces tests ne nécessitent généralement pas d'environnement Android ou iOS. Nous vous recommandons de compléter les tests de script Robo avec des tests d'instrumentation ciblés qui peuvent avoir des assertions spécifiques et détaillées sur la logique métier, qui sont mieux exprimées dans le code.

Enregistrer un script Robo à l'aide de Test Lab dans Android Studio

L'enregistreur de script Robo dans Android Studio vous permet d'enregistrer des scripts Robo en interagissant directement avec l'application sur votre appareil. Suivez ces instructions pour démarrer avec les scripts Robo via l'outil Firebase dans Android Studio :

  1. Ouvrez Android Studio et sélectionnez Outils -> Firebase .

  2. Dans le volet Firebase, cliquez sur Enregistrer le script Robo et l'utiliser pour guider le test Robo .

  3. Cliquez sur Enregistrer le script Robo . La boîte de dialogue Sélectionner la cible de déploiement s'affiche.

  4. Sélectionnez l'appareil dans lequel vous souhaitez enregistrer le script Robo.

  5. Après avoir enregistré le script Robo dans l'appareil, enregistrez le fichier en tant que fichier JSON à l'emplacement souhaité.

  6. Ouvrez la page Test Lab dans la console Firebase et chargez le fichier de script JSON et l'APK de l'application.

  7. Cliquez sur le bouton Continuer . Vous êtes invité à sélectionner l'appareil et le niveau d'API. Une fois le script de test terminé, Test Lab génère le rapport de test.

  8. (Facultatif) Pour copier ou télécharger le logcat du rapport de test et de la vidéo, cliquez sur Afficher les fichiers source .

Par défaut, les mécanismes de robustesse du script Robo l'empêchent d'échouer tôt. Si vous choisissez le mode d'exécution strict et qu'un script Robo échoue à tout moment, Test Lab abandonne toutes les autres étapes du script et reprend une analyse Robo régulière. Le plus souvent, les scripts Robo échouent car Robo ne trouve pas un élément requis à l'écran. Pour éviter les échecs, assurez-vous que la navigation de votre application est prévisible et que vos écrans s'affichent dans un ordre déterministe.

Exécuter un script Robo dans Test Lab

Pour exécuter un script Robo dans Test Lab, suivez ces instructions :

  1. Ouvrez la page Test Lab dans la console Firebase.

  2. Chargez l'APK ou l'AAB de l'application dans le champ App APK ou AAB .

  3. Téléchargez votre fichier de script Robo enregistré ou créé manuellement dans le champ Script Robo (facultatif) .

Fournir un script Robo à une exécution de test Robo local

Pour fournir un script Robo à une exécution de test Robo local, utilisez l'option de test Robo suivante :

--robo-script-file <robo-script-path>

Remplacez <robo-script-path> par un chemin vers votre fichier de script Robo dans le système de fichiers local. Suivez les instructions pour un test Robo local .

Spécifier un script Robo dans un appel de test CLI gcloud

Pour spécifier un script Robo dans un appel de test de l'interface de ligne de commande gcloud, utilisez l'indicateur d'interface de ligne de commande gcloud suivant :

--robo-script = <robo-script-path>

Remplacez <robo-script-path> par un chemin d'accès à votre fichier de script Robo dans le système de fichiers local ou dans Cloud Storage en utilisant la notation gs:// . Par exemple:

gcloud firebase test android run --app = <path_to_app_apk_file> --robo-script = <robo-script-path>

Prochaines étapes