Dieses Dokument beschreibt die Verwendung von Robo-Skripts , bei denen es sich um Tests handelt, die manuelle QA-Aufgaben für mobile Apps automatisieren und kontinuierliche Integrations- (CI) und Pre-Launch-Teststrategien ermöglichen. Beispielsweise können Sie Robo-Skripte verwenden, um eine allgemeine Benutzerreise zu testen oder bestimmte Eingaben für die Benutzeroberfläche (UI) wie einen Benutzernamen und ein Kennwort bereitzustellen. Robo-Skripte sind eine Funktion von Robo-Test .
Mit Robo-Skripts nehmen Sie sich selbst 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 Skript ausführen, führt Robo zunächst Ihre vorgeskripteten Aktionen durch und untersucht dann wie gewohnt die App.
Robo-Skripte verwenden Robo-Test als Test-Engine. In seiner einfachsten Form besteht ein Robo-Skript aus einer Folge von UI-Aktionen wie der Eingabe des Textes „Benutzername“ und dem anschließenden Tippen auf die Schaltfläche „OK“ . Robo-Skripte 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 ( adb
)-Shell-Befehlen enthalten.
Robo-Skripte haben gegenüber herkömmlichen Test-Frameworks folgende Vorteile:
Fähigkeit | Beschreibung |
Sehr robust | Robo-Skripte können erhebliche strukturelle und Verhaltensunterschiede zwischen App-Versionen und App-Flakiness tolerieren. |
Offenes Ende | Nachdem ein Robo-Skript abgeschlossen ist, kann der Basis-Robo-Test übernehmen und mit dem Testen der App fortfahren. Dieser kontinuierliche Testansatz ermöglicht mehrere wichtige Anwendungsfälle. Beispielsweise können Sie ein Robo-Skript verwenden, um eine App in einen bestimmten Zustand zu versetzen, indem Sie einen benutzerdefinierten Anmeldeablauf ausführen. |
Beschreibbar | Sie müssen Robo-Skripte nicht manuell codieren. Sie können mit dem Robo Script Recorder in Android Studio aufgezeichnet werden. Das Erstellen oder Ändern von Robo-Skripten erfordert normalerweise keine Kenntnisse der mobilen Entwicklung. |
Flexibel | Robo-Skripte können mit nicht-nativen UI-Elementen interagieren, die in Spielen üblich sind. |
Robo-Skripte werden während eines Robo-Tests bedingt ausgelöst, wodurch Benutzer das Verhalten von Robo erweitern können – in der Regel, um eine größere Abdeckung oder zielspezifische Funktionen zu erreichen. Im Gegensatz zu herkömmlichen Test-Frameworks unterstützen Robo-Skripte Folgendes:
- Verschiedene Auslösebedingungen, z. B. ob ein bestimmter App-Paketname aktiv ist (oder nicht) oder ein bestimmtes Element auf dem Bildschirm angezeigt wird (oder nicht).
- Ausführungskontrollen, zum Beispiel eine maximale Anzahl von Ausführungen, Priorität, relevante Crawl-Phase.
- Unkonventionelle Aktionstypen (bedingt, Elemente ignorierend, Bildschirm schließend).
Wir empfehlen, wann immer möglich Robo-Skripte zu verwenden, da sie einfach zu warten sind. Beispielsweise können Sie ein Robo-Skript verwenden, um Folgendes zu tun:
- Navigieren Sie durch wichtige Workflows, um zum Kern der Funktionalität einer App zu gelangen. Beispielsweise können Sie sich anmelden, den Status einer App nach dem ersten Start festlegen und einen neuen Benutzer registrieren.
- Konzentrieren Sie Robo auf einen bestimmten Teil einer App, um die Robo-Testzeit optimal zu nutzen. Das Robo-Skript leitet Robo Test an den relevanten Teil einer App, wo Robo Test ein vollautomatisches Crawling fortsetzt.
- Bringen Sie eine App in einen bestimmten Zustand oder Bildschirm, um eine Analyse durchzuführen, z. B. um eine In-App-Nachricht, eine Datenschutzrichtlinie oder ein bestimmtes Level eines Spiels zu analysieren.
- Führen Sie einen End-to-End-Instrumentierungstest mit oder ohne Robo-Test durch, der ein vollständig automatisiertes Crawling fortsetzt, nachdem das Robo-Skript abgeschlossen ist.
Verwenden Sie erweiterte Robo-Skriptfunktionen, um Folgendes zu 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, Geräteeinstellungen ändern usw.
- Ändern Sie Aspekte des Robo-Verhaltens während eines Crawls, insbesondere:
- Lassen Sie Robo einige UI-Widgets oder App-Bildschirme ignorieren.
- Stellen Sie eine benutzerdefinierte Aktion bereit, die Robo beim Zurückverfolgen von einem bestimmten Bildschirm ausführen soll.
- Lassen Sie Robo bestimmte Aktionen ausführen, wenn während eines Crawls auf einen bestimmten App-Bildschirm gestoßen wird.
- Passen Sie vollständig an, wie Robo einen Crawl durchführt. 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 Gerätemanipulationen durchführen und alle Popup-Dialoge schließen, die währenddessen angezeigt werden.
Denken Sie daran, dass Robo-Skripte nicht alle Arten von Tests ersetzen. Sie benötigen immer noch Unit-Tests, um Low-Level-Logikfehler in Ihrer App zu finden. Diese Tests erfordern in der Regel keine Android- oder iOS-Umgebung. Wir empfehlen, dass Sie Robo-Skripttests durch gezielte Instrumentierungstests ergänzen, die spezifische, detaillierte Aussagen zur Geschäftslogik enthalten können, die am besten im Code ausgedrückt werden.
Zeichnen Sie ein Robo-Skript mit Test Lab in Android Studio auf
Mit dem Robo-Script-Rekorder in Android Studio können Sie Robo-Scripts aufzeichnen, indem Sie direkt mit der App auf Ihrem Gerät interagieren. Befolgen Sie diese Anweisungen, um mit dem Robo-Skripting über das Firebase-Tool in Android Studio zu beginnen:
Öffnen Sie Android Studio und wählen Sie Extras -> Firebase .
Klicken Sie im Firebase-Bereich auf Robo-Skript aufzeichnen und zum Führen von Robo-Test verwenden .
Klicken Sie auf Robo-Skript aufzeichnen . Das Dialogfeld Bereitstellungsziel auswählen wird angezeigt.
Wählen Sie das Gerät aus, auf dem Sie das Robo-Skript aufzeichnen möchten.
Nachdem Sie das Robo-Skript auf dem Gerät aufgezeichnet haben, speichern Sie die Datei als JSON-Datei am gewünschten Speicherort.
Öffnen Sie die Testlaborseite in der Firebase-Konsole und laden Sie die JSON-Skriptdatei und die Anwendungs-APK hoch.
Klicken Sie auf die Schaltfläche Weiter . Sie werden aufgefordert, das Gerät und die API-Ebene auszuwählen. Nachdem das Testskript abgeschlossen ist, generiert Test Lab den Testbericht.
(Optional) Um den Logcat des Testberichts und des Videos zu kopieren oder herunterzuladen, klicken Sie auf Quelldateien anzeigen .
Standardmäßig verhindern Robo-Skript-Robustheitsmechanismen, dass es frühzeitig fehlschlägt. Wenn Sie den strict
Ausführungsmodus auswählen und ein Robo-Skript an irgendeiner Stelle fehlschlägt, verwirft Test Lab alle weiteren Schritte im Skript und setzt ein reguläres Robo-Crawling fort. Meistens schlagen Robo-Skripte fehl, weil Robo ein erforderliches Element auf dem Bildschirm nicht finden kann. Um Fehler zu vermeiden, stellen Sie sicher, dass Ihre App-Navigation vorhersehbar ist und dass Ihre Bildschirme in einer deterministischen Reihenfolge angezeigt werden.
Führen Sie ein Robo-Skript in Test Lab aus
Befolgen Sie diese Anweisungen, um ein Robo-Skript in Test Lab auszuführen:
Öffnen Sie die Seite „Testlabor“ in der Firebase-Konsole.
Laden Sie das APK oder AAB der App in das Feld App APK oder AAB hoch .
Laden Sie Ihre aufgezeichnete oder manuell erstellte Robo-Skriptdatei in das Feld Robo-Skript (optional) hoch.
Stellen Sie ein Robo-Skript für einen lokalen Robo-Testlauf bereit
Verwenden Sie die folgende Robo-Testoption, um ein Robo-Skript für einen lokalen Robo-Testlauf bereitzustellen:
--robo-script-file <robo-script-path>
Ersetzen Sie <robo-script-path>
durch einen Pfad zu Ihrer Robo-Skriptdatei im lokalen Dateisystem. Befolgen Sie die Anweisungen für einen lokalen Robo-Testlauf .
Geben Sie ein Robo-Skript in einem gcloud-CLI-Testaufruf an
Um ein Robo-Skript in einem gcloud-CLI-Testaufruf anzugeben, 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 unter Verwendung gs://
Notation. Zum Beispiel:
gcloud firebase test android run --app = <path_to_app_apk_file> --robo-script = <robo-script-path>
Nächste Schritte
- Um mehr über die Struktur, die Funktionen, die Verwendung und die Aktionen von Robo-Skripts zu erfahren, lesen Sie das Robo-Skript-Referenzhandbuch .
- Führen Sie einen Robo-Test durch .