Robo-Script ausführen (Android)

In diesem Dokument wird beschrieben, wie Sie Robo-Scripts verwenden. Dabei handelt es sich um Tests, die manuelle QA-Aufgaben für mobile Apps automatisieren und Continuous Integration (CI) und Pre-Launch-Teststrategien ermöglichen. Sie können Robo-Scripts beispielsweise verwenden, um eine gängige User Journey zu testen oder bestimmte Eingaben für die Benutzeroberfläche (UI) wie einen Nutzernamen und ein Passwort anzugeben. Robo-Skripts sind eine Funktion des Robo-Tests.

Mit Robo-Scripts können Sie sich dabei aufzeichnen, wie Sie einen Workflow in Ihrer App durchgehen, und diese Aufzeichnung dann in die Firebase-Konsole hochladen, um sie in Robo-Tests auszuführen. Wenn Sie einen Robo-Test mit einem angehängten Skript ausführen, geht Robo zuerst Ihre vordefinierten Aktionen durch und erkundet dann die App wie gewohnt.

Robo-Scripts verwenden den Robo-Test als Test-Engine. In seiner einfachsten Form besteht ein Robo-Script aus einer Abfolge von UI-Aktionen wie Text „username“ eingeben und dann auf die Schaltfläche „OK“ tippen. Robo-Scripts können auch Aktionen wie das Warten auf das Erscheinen eines Elements, das Tippen auf einen bestimmten Punkt innerhalb eines Elements und das Ausführen von adb-Shell-Befehlen (Android Debug Bridge) umfassen.

Robo-Scripts haben gegenüber herkömmlichen Test-Frameworks folgende Vorteile:

Funktion Beschreibung
Äußerst robust Robo-Scripts können erhebliche strukturelle und verhaltensbezogene Unterschiede zwischen App-Versionen und App-Unzuverlässigkeiten tolerieren.
Offene Frage Nachdem ein Robo-Script abgeschlossen ist, kann der grundlegende Robo-Test übernehmen und die App weiter testen. Dieser Ansatz für fortlaufende Tests ermöglicht mehrere wichtige Anwendungsfälle. Sie können beispielsweise ein Robo-Script verwenden, um eine App in einen bestimmten Status zu versetzen, indem Sie einen benutzerdefinierten Anmeldevorgang ausführen.
Beschreibbar Sie müssen Robo-Scripts nicht manuell programmieren. Sie können mit dem Robo-Skriptrekorder in Android Studio aufgenommen werden. Für das Erstellen oder Ändern von Robo-Skripts sind in der Regel keine Kenntnisse in der mobilen Entwicklung erforderlich.
Flexibel Robo-Scripts können mit nicht nativen UI-Elementen interagieren, die in Spielen häufig vorkommen.

Robo-Scripts werden während eines Robo-Tests bedingt ausgelöst. So können Nutzer das Verhalten des Bots erweitern, um in der Regel eine größere Abdeckung oder eine bestimmte Funktion zu erreichen. Im Gegensatz zu herkömmlichen Test-Frameworks unterstützen Robo-Skripts Folgendes:

  • Verschiedene Triggerbedingungen, z. B. ob ein bestimmter App-Paketname aktiv ist oder nicht oder ob ein bestimmtes Element auf dem Bildschirm angezeigt wird oder nicht.
  • Ausführungssteuerungen, z. B. maximale Anzahl von Ausführungen, Priorität, relevante Crawling-Phase.
  • Unkonventionelle Aktionstypen (bedingt, Element ignorieren, Bildschirm schließen)

Wir empfehlen, nach Möglichkeit Robo-Scripts zu verwenden, da sie mühelos gewartet werden können. Mit einem Robo-Script können Sie beispielsweise Folgendes tun:

  • Gehen Sie wichtige Workflows durch, um die Hauptfunktionen einer App zu verstehen. Sie können beispielsweise eine Anmeldung ausführen, den Status einer App nach der ersten Ausführung einrichten und einen neuen Nutzer registrieren.
  • Sie können Robo auf einen bestimmten Teil einer App ausrichten, um die Robo-Testzeit optimal zu nutzen. Das Robo-Skript leitet den Robo-Test an den relevanten Teil einer App an, in dem der Robo-Test einen vollständig automatisierten Crawling-Vorgang fortsetzt.
  • Eine App in einen bestimmten Status oder zu einem bestimmten Bildschirm bringen, um eine Analyse durchzuführen, z. B. um eine In-App-Mitteilung, eine Datenschutzerklärung oder ein bestimmtes Level eines Spiels zu analysieren.
  • Führen Sie einen End-to-End-Instrumentierungstest mit oder ohne Robo-Test durch. Wenn Sie einen Robo-Test verwenden, wird nach Abschluss des Robo-Scripts ein vollautomatischer Crawling fortgesetzt.

Mit erweiterten Funktionen von Robo-Scripts können Sie Folgendes tun:

  • Sie können Aktionen ausführen, bevor Robo mit dem Crawling der zu testenden App beginnt oder nachdem ein Crawling abgeschlossen ist. Beispielsweise können Sie die Daten der zu testenden App vor einem Crawling bereinigen oder die Geräteeinstellungen ändern.
  • Sie können Aspekte des Roboterverhaltens während eines Crawlings ändern, insbesondere:
    • Robo kann dazu veranlasst werden, bestimmte UI-Widgets oder App-Bildschirme zu ignorieren.
    • Geben Sie eine benutzerdefinierte Aktion an, die Robo beim Rückwärtsverfolgung von einem bestimmten Bildschirm ausführen soll.
    • Lass Robo bestimmte Aktionen ausführen, wenn während eines Crawlings ein bestimmter App-Bildschirm auftritt.
  • Sie können die Ausführung eines Robo-Crawlings vollständig anpassen. Verwenden Sie beispielsweise eine Kombination aus bedingten und nicht bedingten Aktionen, um die App während des gesamten Crawlings im Hintergrund zu testen, Gerätebearbeitungen durchzuführen und alle Pop-up-Dialogfelder zu schließen, die dabei angezeigt werden.

Beachten Sie, dass Robo-Skripts nicht alle Arten von Tests ersetzen. Einheitentests sind weiterhin erforderlich, um Logikfehler in Ihrer App auf niedriger Ebene zu erkennen. Für diese Tests ist normalerweise keine Android- oder iOS-Umgebung erforderlich. Wir empfehlen, Robo-Script-Tests durch gezielte Instrumentierungstests zu ergänzen, die spezifische, detaillierte Behauptungen zur Geschäftslogik enthalten können, die am besten in Code ausgedrückt werden.

Robo-Script mit Test Lab in Android Studio aufzeichnen

Mit dem Robo-Skriptrekorder in Android Studio kannst du Robo-Skripte aufnehmen, indem du direkt mit der App auf deinem Gerät interagierst. Folgen Sie dieser Anleitung, um mit dem Robo-Scripting über das Firebase-Tool in Android Studio zu beginnen:

  1. Öffnen Sie Android Studio und wählen Sie Tools -> Firebase aus.

  2. Klicken Sie im Firebase-Bereich auf Robo-Skript aufzeichnen und als Leitfaden für den Robo-Test verwenden.

  3. Klicken Sie auf Robo-Script aufzeichnen. Das Dialogfeld „Bereitstellungsziel auswählen“ wird angezeigt.

  4. Wählen Sie das Gerät aus, auf dem Sie das Robo-Script aufzeichnen möchten.

  5. Nachdem Sie das Robo-Script auf dem Gerät aufgezeichnet haben, speichern Sie die Datei als JSON-Datei am gewünschten Speicherort.

  6. Öffnen Sie die Seite Test Lab in der Firebase-Konsole und laden Sie die JSON-Skriptdatei und das App-APK hoch.

  7. Klicken Sie auf die Schaltfläche Weiter. Sie werden aufgefordert, das Gerät und das API-Level auszuwählen. Nach Abschluss des Testscripts generiert Test Lab den Testbericht.

  8. Optional: Wenn Sie das Logcat des Testberichts und das Video kopieren oder herunterladen möchten, klicken Sie auf Quelldateien ansehen.

Standardmäßig verhindern Robustheitsmechanismen von Robo-Scripts, dass das Script vorzeitig fehlschlägt. Wenn Sie den Ausführungsmodus strict auswählen und ein Robo-Script an einer Stelle fehlschlägt, werden alle weiteren Schritte im Script von Test Lab abgebrochen und ein regulärer Robo-Crawling-Vorgang fortgesetzt. In den meisten Fällen schlagen Robo-Skripts fehl, weil Robo ein erforderliches Element auf dem Bildschirm nicht finden kann. Achten Sie darauf, dass die Navigation in Ihrer App vorhersehbar ist und dass die Bildschirme in einer deterministischen Reihenfolge angezeigt werden, um Fehler zu vermeiden.

Robo-Script in Test Lab ausführen

So führen Sie ein Robo-Script in Test Lab aus:

  1. Öffnen Sie in der Firebase-Console die Seite Test Lab.

  2. Laden Sie das APK oder AAB der App in das Feld App APK oder AAB hoch.

  3. Laden Sie die aufgezeichnete oder manuell erstellte Robo-Script-Datei in das Feld Robo-Script (optional) hoch.

Robo-Script für einen lokalen Robo-Test bereitstellen

Wenn Sie für einen lokalen Robo-Test ein Robo-Script angeben möchten, verwenden Sie die folgende Robo-Testoption:

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

Ersetzen Sie <robo-script-path> durch einen Pfad zu Ihrer Robo-Script-Datei im lokalen Dateisystem. Folgen Sie der Anleitung für einen lokalen Robo-Test.

Robo-Script in einer gcloud-Befehlszeilen-Testausführung angeben

Verwenden Sie das folgende gcloud CLI-Flag, um ein Robo-Script in einem Testaufruf der gcloud CLI anzugeben:

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

Ersetzen Sie <robo-script-path> durch einen Pfad zur Robo-Scriptdatei im lokalen Dateisystem oder in Cloud Storage mit gs://-Notation. Beispiel:

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

Nächste Schritte