In diesem Dokument wird beschrieben, wie Sie Robo-Scripts verwenden. Das sind Tests, mit denen manuelle QA-Aufgaben für mobile Apps automatisiert werden können. Außerdem ermöglichen sie Strategien für Continuous Integration (CI) und Pre-Launch-Tests. Sie können beispielsweise Robo-Scripts verwenden, um gängige Nutzeraktionen zu testen oder bestimmte Eingaben für die Benutzeroberfläche (UI) wie einen Nutzernamen und ein Passwort bereitzustellen. Robo-Skripts sind ein Feature von Robo-Tests.
Mit Robo-Skripten zeichnen Sie einen Workflow in Ihrer App auf und laden die 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.
Für Robo-Scripts wird der Robo-Test als Test-Engine verwendet. In der einfachsten Form besteht ein Robo-Script aus einer Reihe von UI-Aktionen wie enter text 'username' (Gib den Text „Nutzername“ ein) und dann tap the OK button (Tippe auf die Schaltfläche „OK“). Robo-Scripts können auch Aktionen wie das Warten auf das Erscheinen eines Elements, das Tippen an einer bestimmten Stelle innerhalb eines Elements und das Ausführen von adb
-Shell-Befehlen (Android Debug Bridge) enthalten.
Robo-Skripts haben folgende Vorteile gegenüber herkömmlichen Test-Frameworks:
Funktion | Beschreibung |
Sehr robust | Robo-Scripts können erhebliche strukturelle und verhaltensbezogene Unterschiede zwischen App-Versionen und App-Instabilität tolerieren. |
Offene Frage | Nachdem ein Robo-Script abgeschlossen ist, kann der Basis-Robo-Test die App weiter testen. Dieser Ansatz ermöglicht mehrere wichtige Anwendungsfälle. Mit einem Robo-Script können Sie beispielsweise eine App in einen bestimmten Zustand versetzen, indem Sie einen benutzerdefinierten Anmeldevorgang ausführen. |
Mit Aufnahme- und Wiedergabefunktion | Sie müssen keine Robo-Skripts 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 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 von Robo anpassen, um in der Regel eine höhere Abdeckung zu erzielen oder bestimmte Funktionen zu testen. Im Gegensatz zu herkömmlichen Test-Frameworks unterstützen Robo-Scripts Folgendes:
- Verschiedene Auslösebedingungen, z. B. ein bestimmter App-Paketname, der aktiv ist (oder nicht), oder ein bestimmtes Element, das auf dem Bildschirm angezeigt wird (oder nicht).
- Ausführungssteuerungen, z. B. eine maximale Anzahl von Ausführungen, Priorität, relevante Crawling-Phase.
- Unkonventionelle Aktionstypen (bedingte, elementignorierende, bildschirmschließende).
Wir empfehlen, nach Möglichkeit Robo-Scripts zu verwenden, da sie sich mühelos verwalten lassen. Sie können beispielsweise ein Robo-Script für Folgendes verwenden:
- 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.
- Wenn Sie Robo auf einen bestimmten Teil einer App konzentrieren, können Sie die Zeit für Robo-Tests optimal nutzen. Mit einem Robo-Script wird der Robo-Test zum relevanten Teil einer App geleitet, wo er einen vollständig automatisierten Crawl fortsetzt.
- Sie können eine App in einen bestimmten Status oder auf einen 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 durch, mit oder ohne Robo-Test, bei dem nach Abschluss des Robo-Scripts ein vollständig automatisierter Crawl fortgesetzt wird.
Mit erweiterten Robo-Skript-Funktionen können Sie Folgendes tun:
- Sie können Aktionen ausführen, bevor Robo mit dem Crawlen der zu testenden App beginnt oder nachdem ein Crawl abgeschlossen ist. So können Sie beispielsweise die Daten der zu testenden App vor einem Crawl bereinigen oder Geräteeinstellungen ändern.
- Sie können Aspekte des Robo-Verhaltens während eines Crawls ändern, insbesondere:
- Robo soll bestimmte UI-Widgets oder App-Bildschirme ignorieren.
- Geben Sie eine benutzerdefinierte Aktion an, die Robo ausführen soll, wenn es von einem bestimmten Bildschirm zurückkehrt.
- Sie können Robo dazu anleiten, bestimmte Aktionen auszuführen, wenn während eines Crawls ein bestimmter App-Bildschirm aufgerufen wird.
- Sie können das Crawling durch Robo vollständig anpassen. Verwenden Sie beispielsweise eine Kombination aus bedingten und nicht bedingten Aktionen, um die zu testende App während des Crawls im Hintergrund zu halten und gleichzeitig Gerätemanipulationen durchzuführen und alle Pop-up-Dialogfelder zu schließen, die dabei angezeigt werden.
Robo-Scripts ersetzen nicht alle Arten von Tests. Sie benötigen weiterhin Einheitentests, um Logikfehler auf niedriger Ebene in Ihrer App zu erkennen. 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 Zusicherungen 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. So beginnen Sie mit dem Robo-Scripting über das Firebase-Tool in Android Studio:
Öffnen Sie Android Studio und wählen Sie Tools -> Firebase aus.
Klicken Sie im Firebase-Bereich auf Robo-Script aufzeichnen und zum Steuern von Robo-Tests verwenden.
Klicken Sie auf Robo-Script aufzeichnen. Das Dialogfeld „Bereitstellungsziel auswählen“ wird angezeigt.
Wählen Sie das Gerät aus, auf dem Sie das Robo-Script aufzeichnen möchten.
Nachdem Sie das Robo-Script auf dem Gerät aufgezeichnet haben, speichern Sie die Datei als JSON-Datei am gewünschten Speicherort.
Öffnen Sie die Seite Test Lab in der Firebase Console und laden Sie die JSON-Scriptdatei und die APK der Anwendung hoch.
Klicken Sie auf die Schaltfläche Weiter. Sie werden aufgefordert, das Gerät und das API-Level auszuwählen. Nach Abschluss des Testskripts wird der Testbericht von Test Lab generiert.
Optional: Wenn Sie das Logcat des Testberichts und das Video kopieren oder herunterladen möchten, klicken Sie auf View Source Files (Quelldateien ansehen).
Standardmäßig verhindern die Robustheitsmechanismen von Robo-Skripten, dass sie frühzeitig 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 einen regulären Robo-Crawl fort. Robo-Skripts schlagen meistens 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-Skript in Test Lab ausführen
So führen Sie ein Robo-Skript in Test Lab aus:
Öffnen Sie die Seite Test Lab in der Firebase Console.
Laden Sie das APK oder AAB der App im Feld „APK oder AAB der App“ hoch.
Laden Sie die aufgezeichnete oder manuell erstellte Robo-Script-Datei in das 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 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-Testlauf.
Robo-Script in einem gcloud-Befehlszeilenaufruf für Tests 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-Script-Datei im lokalen Dateisystem oder in Cloud Storage mit der gs://
-Notation. Beispiel:
gcloud firebase test android run --app = <path_to_app_apk_file> --robo-script = <robo-script-path>
Nächste Schritte
- Informationen zur Struktur, den Funktionen, der Verwendung und den Aktionen von Robo-Scripts finden Sie im Referenzhandbuch für Robo-Scripts.
- Robo-Test ausführen