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 beispielsweise Robo-Scripts 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-Scripts sind ein Feature 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 Script ausführen, führt Robo zuerst die vordefinierten Aktionen aus und prüft 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 Geben Sie den Text „Nutzername“ ein und tippen Sie auf die Schaltfläche „OK“. 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
Sehr 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 Robo-Test fortgesetzt werden. Dieser Ansatz 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-Script-Recorder in Android Studio aufgezeichnet werden. Für das Erstellen oder Ändern von Robo-Scripts sind in der Regel keine Kenntnisse 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-Scripts 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 Zeit für den Robo-Test optimal zu nutzen. Das Robo-Script leitet den Robo-Test zum relevanten Teil einer App, wo der Robo-Test einen vollautomatischen Crawling 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 ausführen soll, wenn er von einem bestimmten Bildschirm zurückgeht.
    • Robo kann bestimmte Aktionen ausführen, wenn während eines Crawlings ein bestimmter App-Bildschirm angezeigt wird.
  • Sie können die Crawling-Methode von Robo vollständig anpassen. Verwenden Sie beispielsweise eine Kombination aus bedingten und nicht bedingten Aktionen, um die zu testende App während des gesamten Crawlings im Hintergrund zu halten, während Sie Gerätemanipulationen ausführen und alle Pop-up-Dialogfelder schließen, die angezeigt werden.

Robo-Scripts ersetzen nicht alle Arten von Tests. Sie benötigen jedoch weiterhin Unit-Tests, um Low-Level-Logikfehler in Ihrer App zu finden. Für diese Tests ist in der Regel 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-Script-Aufzeichnungstool in Android Studio können Sie Robo-Scripts aufzeichnen, indem Sie direkt mit der App auf Ihrem Gerät interagieren. 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-Steuerfeld auf Robo-Script aufzeichnen und für Robo-Test verwenden.

  3. Klicken Sie auf Robo-Script aufnehmen. 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 in der Firebase-Konsole die Seite Test Lab und laden Sie die JSON-Scriptdatei und das APK der Anwendung 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-Scripts 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 APK oder AAB der App 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 den Pfad zur Robo-Scriptdatei im lokalen Dateisystem. Folgen Sie der Anleitung für einen lokalen Robo-Test.

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

Wenn Sie ein Robo-Script in einer gcloud CLI-Testausführung angeben möchten, verwenden Sie das folgende gcloud CLI-Flag:

--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