Robo-Script ausführen (Android)

In diesem Dokument wird beschrieben, wie Sie Robo-Scripts verwenden. Das sind Tests, mit denen manuelle QA-Aufgaben für mobile Apps automatisiert werden und die Strategien für Continuous Integration (CI) und Pre-Launch-Tests ermöglichen. Mit Robo-Scripts können Sie beispielsweise eine gängige User Journey testen oder bestimmte Eingaben für die Benutzeroberfläche bereitstellen, z. B. einen Nutzernamen und ein Passwort. Robo-Scripts sind eine Funktion von Robo-Tests.

Mit Robo-Skripts zeichnen Sie auf, wie Sie einen Workflow in Ihrer App durchlaufen, und laden diese Aufzeichnung dann in die Firebase-Konsole hoch, um sie in Robo-Tests auszuführen. Wenn Sie einen Robo-Test mit einem angehängten Script durchführen, folgt Robo zuerst den vordefinierten Aktionen und prüft dann die App wie gewohnt.

Robo-Scripts verwenden Robo-Tests als Test-Engine. In seiner einfachsten Form besteht ein Robo-Script aus einer Abfolge von UI-Aktionen wie Text „Nutzername“ eingeben und dann auf die Schaltfläche „OK“ tippen. Robo-Skripts 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 Android Debug Bridge-Shell-Befehlen (adb) enthalten.

Robo-Skripts haben gegenüber herkömmlichen Test-Frameworks die folgenden Vorteile:

Funktion Beschreibung
Sehr robust Robo-Scripts können erhebliche strukturelle und verhaltensbezogene Unterschiede zwischen App-Versionen und App-Flakiness tolerieren.
Offene Frage Nachdem ein Robo-Script abgeschlossen ist, kann der grundlegende Robo-Test die App weiter testen. Dieser Ansatz ermöglicht mehrere wichtige Anwendungsfälle. Beispielsweise können Sie ein Robo-Script verwenden, um eine App durch einen benutzerdefinierten Anmeldevorgang in einen bestimmten Zustand zu versetzen.
Aufnehmbar Sie müssen Robo-Scripts nicht manuell programmieren. Sie können mit dem Robo-Skript-Recorder in Android Studio aufgezeichnet werden. Für das Erstellen oder Ändern von Robo-Scripts sind in der Regel keine Kenntnisse in der Mobilgeräteentwicklung 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 von Robo erweitern, um in der Regel eine größere Abdeckung zu erreichen oder bestimmte Funktionen anzusprechen. Im Gegensatz zu herkömmlichen Test-Frameworks unterstützen Robo-Skripts Folgendes:

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

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

  • Wichtige Workflows durchlaufen, um die Hauptfunktionen einer App zu testen. Sie können beispielsweise eine Anmeldung durchführen, den Status einer App nach dem ersten Start einrichten und einen neuen Nutzer registrieren.
  • Konzentrieren Sie Robo auf einen bestimmten Teil einer App, um die Robo-Testzeit optimal zu nutzen. Das Robo-Script führt den Robo-Test zum relevanten Teil einer App, wo der Robo-Test dann einen vollständig automatisierten Crawl fortsetzt.
  • Eine App in einen bestimmten Status oder auf einen bestimmten Bildschirm bringen, um eine Analyse durchzuführen, z. B. um eine In-App-Nachricht, eine Datenschutzerklärung oder ein bestimmtes Level eines Spiels zu analysieren.
  • Führen Sie einen End-to-End-Instrumentierungstest durch, mit oder ohne Robo-Test, der nach Abschluss des Robo-Scripts einen vollständig automatisierten Crawl fortsetzt.

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

  • Aktionen ausführen, bevor Robo mit dem Crawlen der zu testenden App beginnt oder nachdem ein Crawling abgeschlossen ist, z. B. die Daten der zu testenden App vor einem Crawling bereinigen oder Geräteeinstellungen ändern.
  • Aspekte des Robo-Verhaltens während eines Crawls ändern, insbesondere:
    • Sie können festlegen, dass Robo bestimmte UI-Widgets oder App-Bildschirme ignoriert.
    • Geben Sie eine benutzerdefinierte Aktion an, die Robo ausführen soll, wenn er von einem bestimmten Bildschirm zurückkehrt.
    • Sie können Robo anweisen, bestimmte Aktionen auszuführen, wenn während eines Crawls 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 Crawls im Hintergrund zu halten, während Sie das Gerät manipulieren und alle Pop-up-Dialoge schließen, die währenddessen angezeigt werden.

Beachten Sie, dass Robo-Scripts nicht alle Arten von Tests ersetzen. Sie benötigen weiterhin Unit-Tests, um Logikfehler auf niedriger Ebene 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 Assertions zur Geschäftslogik enthalten können, die am besten im Code ausgedrückt werden.

Robo-Script mit Test Lab in Android Studio aufzeichnen

Mit dem Robo-Script-Recorder 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 Firebase-Tool in Android Studio mit dem Robo-Scripting zu beginnen:

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

  2. Klicken Sie im Firebase-Bereich auf Robo-Script aufzeichnen und für Robo-Test verwenden.

  3. Klicken Sie auf Robo-Script aufzeichnen. Das Dialogfeld „Select Deployment Target“ 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 Console und laden Sie die JSON-Skriptdatei und das Anwendungs-APK hoch.

  7. Klicken Sie auf die Schaltfläche Weiter. Sie werden aufgefordert, das Gerät und das API-Level auszuwählen. Nachdem das Testskript abgeschlossen ist, 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 die Robustheitsmechanismen von Robo-Scripts, dass sie vorzeitig fehlschlagen. Wenn Sie den Ausführungsmodus strict auswählen und ein Robo-Script an irgendeiner Stelle fehlschlägt, bricht Test Lab alle weiteren Schritte im Script ab und setzt das reguläre Robo-Crawling fort. Meistens 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 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 im Feld APK oder AAB der App hoch.

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

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

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

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

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

Robo-Script in einem gcloud CLI-Testaufruf angeben

Wenn Sie ein Robo-Script in einem gcloud CLI-Testaufruf angeben möchten, verwenden Sie das folgende gcloud CLI-Flag:

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

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

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

Nächste Schritte