了解 2023 年 Google I/O 大会上介绍的 Firebase 亮点。了解详情

Führen Sie einen Robo-Test durch

Robo Test ist ein Testtool, das in Firebase Test Lab integriert ist. Robo-Test analysiert die Struktur der Benutzeroberfläche (UI) Ihrer App und untersucht sie dann methodisch, wobei Benutzeraktivitäten automatisch simuliert werden. Robo Test simuliert immer dieselben Benutzeraktivitäten in derselben Reihenfolge, wenn Sie damit eine App auf einer bestimmten Gerätekonfiguration mit denselben Einstellungen testen. Mit diesem wiederholbaren Testansatz können Sie Robo-Tests verwenden, um Fehlerkorrekturen zu validieren und auf Regressionen zu testen.

Robo-Test erfasst Protokolldateien, speichert eine Reihe von kommentierten Screenshots und erstellt dann ein Video aus diesen Screenshots, um Ihnen die simulierten Benutzervorgänge zu zeigen, die es durchgeführt hat. Diese Protokolle, Screenshots und Videos können Ihnen dabei helfen, die Ursache von App-Abstürzen zu ermitteln. Diese Robo-Testfunktionen können Ihnen auch dabei helfen, Probleme mit der Benutzeroberfläche Ihrer App zu finden.

Zusätzlich zur Ausführung regelmäßiger Robo-Tests können Sie Ihre Tests mithilfe von Robo-Skripts anpassen, die eine Funktion von Robo-Tests sind. Weitere Informationen finden Sie unter Ausführen eines Robo-Skripts .

Robo-Test-Crawling-Statistiken

Um Ihnen bei der Interpretation Ihrer Robo-Testergebnisse zu helfen, zeichnet Robo-Test während jedes Test-Crawls Statistiken auf. Test Lab zeigt die Statistiken oben auf der Registerkarte Robo-Test auf Ihrer Testergebnisseite an:

  • Aktionen: Die Gesamtzahl der während des Crawls ausgeführten Aktionen, einschließlich Robo-Skriptaktionen, Affenaktionen und Robo-Anweisungen.

  • Aktivitäten: Die Anzahl der unterschiedlichen Aktivitäten, die während des Crawls abgedeckt wurden.

  • Bildschirme: Die Anzahl der unterschiedlichen Bildschirme, die während des Crawls besucht wurden.

Test Lab verwendet die Statistiken auch, um eine visuelle Darstellung des Robo-Tests in Form eines Crawl-Diagramms zu erstellen. Der Graph hat Bildschirme als Knoten und Aktionen als Kanten. Indem Sie den Rändern zwischen den Bildschirmen folgen, können Sie sich ein Bild davon machen, wie der Robo-Test Ihre App während des Crawls durchquert hat.

Robo-Test-Zeitüberschreitung

Abhängig von der Komplexität der Benutzeroberfläche Ihrer App kann der Robo-Test fünf Minuten oder länger dauern, um eine gründliche Reihe von Benutzeroberflächeninteraktionen abzuschließen. Wir empfehlen, das Testzeitlimit für die meisten Apps auf mindestens 120 Sekunden (2 Minuten) und für mäßig komplexe Apps auf 300 Sekunden (5 Minuten) festzulegen. Der Standardwert für das Zeitlimit beträgt 300 Sekunden (5 Minuten) für Tests, die von Android Studio und der Firebase-Konsole ausgeführt werden, und 900 Sekunden (15 Minuten) für Tests, die von der gcloud Befehlszeile ausgeführt werden.

Zeitüberschreitungsfehler beim App-Start

Wenn das Starten Ihrer App lange dauert, kann Robo Test einen Fehler ausgeben und Ihre App nicht crawlen. Dies tritt nur bei extrem langer Startzeit auf und kann nur behoben werden, indem Sie Ihre App überarbeiten, um sie schneller starten zu lassen.

Mehr Kontrolle mit Robo-Skripten

Manchmal benötigen Sie mehr Kontrolle über Ihre Tests. Beispielsweise möchten Sie möglicherweise eine allgemeine Benutzerreise testen oder bestimmte UI-Eingaben wie einen Benutzernamen und ein Kennwort bereitstellen. Robo-Skripte können helfen. Weitere Informationen zu Robo-Skripts finden Sie unter Ausführen eines Robo-Skripts und Robo-Skripts-Referenzhandbuch .

Robo-Tests und Nicht-Android-UI-Widgets

Robo-Tests verwenden die Android-API, um Aktionen direkt auf Android-UI-Widgets auszuführen. Das hilft den Tests, Ihre Benutzeroberfläche automatisch zu erkunden, bedeutet aber auch, dass sie in der Lage sein müssen, eine Android-Benutzeroberflächenhierarchie für einen Bildschirm zu extrahieren, um Tests darauf auszuführen.

Wenn ein Bildschirm in Ihrer App keine Android-UI-Widgets verwendet, greifen Robo-Tests auf Monkey Actions zurück, um diesen Bildschirm zu testen. Im Gegensatz zu den eher methodischen Robo-Testaktionen simulieren Monkey Actions einfach Tap-Ereignisse an halbzufälligen Stellen auf dem Bildschirm eines Geräts.

Um Bildschirme, die keine Android-UI-Widgets verwenden, besser zu testen, können Sie die willkürlichen Berührungen einer Affenaktion durch eine Reihe von geskripteten Berührungen und Interaktionen durch Firebase Test Lab Game Loop Tests ersetzen.

Integration mit Google Play

Sie können den Robo-Test in der Google Play Console verwenden, wenn Sie die APK-Datei Ihrer App über den Alpha- oder Betakanal hochladen und veröffentlichen. Robo-Tests werden auf einer Reihe beliebter physischer Geräte an verschiedenen geografischen Standorten ausgeführt und bieten eine Testabdeckung für verschiedene Formfaktoren und Hardwarekonfigurationen. Weitere Informationen finden Sie unter Pre-Launch-Berichte zum Identifizieren von Problemen verwenden .

Testkonto-Anmeldung und vordefinierte Texteingabe

Robo Test unterstützt die Anmeldung bei Testkonten und ermöglicht Ihnen auch, vordefinierten Text in Felder in Ihrer App einzugeben. Für die benutzerdefinierte Anmeldung und andere vordefinierte Texteingaben kann Robo Test Text in EditText Felder in Ihrer App eingeben. Für jede Zeichenfolge müssen Sie das EditText Feld mit einem Android-Ressourcennamen identifizieren. Weitere Informationen finden Sie unter Zugreifen auf Ressourcen .

Anmelden

Robo-Test verfügt über zwei sich gegenseitig ausschließende Methoden zur Unterstützung der Anmeldung:

  • Benutzerdefinierte Anmeldung: Wenn Sie Anmeldeinformationen für Testkonten angeben, müssen Sie Robo Test mitteilen, wo diese eingegeben werden sollen, und diese Anmeldeinformationen ebenfalls bereitstellen.

  • Automatische Anmeldung: Wenn Ihre App über einen Anmeldebildschirm verfügt, der ein Google-Konto zur Authentifizierung verwendet, verwendet Robo Test ein Google-Testkonto, es sei denn, Sie geben Testkonto-Anmeldeinformationen für die benutzerdefinierte Anmeldung an.

Gehen Sie wie folgt vor, um Testkonto-Anmeldeinformationen für die benutzerdefinierte Anmeldung bereitzustellen:

  1. Wählen Sie auf der Seite Dimensionen auswählen die Option Zusätzliche Optionen aus.

  2. Geben Sie unter Anmeldeinformationen für das Testkonto (optional) den Benutzernamen und das Kennwort der Ressourcennamen sowie den Benutzernamen und das Kennwort für das Testkonto ein.

Vordefinierte Texteingabe

Sie können benutzerdefinierten Eingabetext für andere von Ihrer App verwendete Textfelder bereitstellen. Gehen Sie wie folgt vor, um Texteingaben für zusätzliche Felder bereitzustellen:

  1. Wählen Sie auf der Seite Dimensionen auswählen die Option Zusätzliche Optionen aus.

  2. Geben Sie unter Zusätzliche Felder (optional) einen oder mehrere Ressourcennamen und die Zeichenfolgen ein, die in die entsprechenden Textfelder eingegeben werden sollen.

Vordefinierte Texteingabefehler

Robo-Test sucht nach EditText Feldern mit einem Android-Ressourcennamen, der mit einem bereitgestellten regulären Ausdruck übereinstimmt. Wenn Robo kein passendes Feld finden kann, gibt es Ihren Text nicht ein, fährt aber ansonsten wie gewohnt mit dem Crawlen fort.

Sie können bis zu drei von Ihrer App unterstützte Deeplinks zum Testen bereitstellen. Deep-Links werden als Android- ACTION_VIEW Intents an Ihre App ausgegeben. Daher muss jeder Link mit einem Absichtsfilter in Ihrer App übereinstimmen.

Wenn ein oder mehrere Deeplinks bereitgestellt werden, wird die App zuerst normal gestartet (mit der Absicht ACTION_MAIN ) und bis zum angegebenen Timeout gecrawlt. Nach dem Hauptcrawl wird jeder Deeplink für jeweils weitere 30 Sekunden gecrawlt.

Wenn Robo Test keine Aktivität finden kann, die Ihrem Deep-Link entspricht, ignoriert Test Lab den Link. Deep-Link-Probleme sind normalerweise das Ergebnis einer Diskrepanz zwischen dem bereitgestellten Deep-Link und seiner Definition in Ihrer App. Überprüfen Sie sowohl die bereitgestellte URL als auch Ihre App auf Tippfehler oder andere Inkonsistenzen.

Unterstützung bei der App-Lizenzierung

Test Lab unterstützt Apps, die den von Google Play angebotenen App-Lizenzierungsdienst verwenden. Um die Lizenzierung beim Testen Ihrer App mit Test Lab erfolgreich zu überprüfen, müssen Sie Ihre App im Produktionskanal im Play Store veröffentlichen. Um Ihre App im Alpha- oder Betakanal mit Test Lab zu testen, entfernen Sie die Lizenzprüfung, bevor Sie Ihre App in Test Lab hochladen.

Bekannte Probleme

Robo-Test hat derzeit die folgenden bekannten Einschränkungen:

  • UI-Framework-Unterstützung: Robo Test ist nur mit Apps kompatibel, die UI-Elemente aus dem Android-UI-Framework verwenden (einschließlich View und ViewGroup Objekten, aber ohne WebView Objekte). Wenn Sie den Robo-Test verwenden, um Apps zu testen, die andere UI-Frameworks verwenden, einschließlich Apps, die die Unity-Game-Engine verwenden, wird der Test möglicherweise beendet, ohne den ersten Bildschirm zu erkunden.
  • Anmelde-Captchas: Robo-Test kann keine Anmeldebildschirme umgehen, die zusätzliche Benutzeraktionen über die Eingabe von Anmeldeinformationen hinaus erfordern, um sich anzumelden, z. B. das Ausfüllen eines Captchas.

Nächste Schritte