Join us for Firebase Summit on November 10, 2021. Tune in to learn how Firebase can help you accelerate app development, release with confidence, and scale with ease. Register

Erste Schritte mit Robo-Tests

Robo Test ist ein Testtool, das in Firebase Test Lab integriert ist. Robo-Test analysiert die Struktur der Benutzeroberfläche Ihrer App und untersucht sie dann methodisch, wobei Benutzeraktivitäten automatisch simuliert werden. Im Gegensatz zu dem UI / Application Exerciser Affen Test, Robo - Test simuliert immer die gleichen Benutzeraktivitäten in der gleichen Reihenfolge , wenn Sie es verwenden , um eine Anwendung auf einer bestimmte Gerätekonfiguration mit den gleichen Einstellungen zu testen. Auf diese Weise können Sie Robo - Test zu validieren Fehlerbehebung und Test für Regressionen in eine Weise, die nicht möglich ist , wenn sie mit dem UI / Application Exerciser Affen Test zu testen.

Robo-Test erfasst Protokolldateien, speichert eine Reihe von mit Anmerkungen versehenen Screenshots und erstellt dann ein Video aus diesen Screenshots, um Ihnen die simulierten Benutzervorgänge zu zeigen, die er ausgeführt hat. Diese Protokolle, Screenshots und Videos können Ihnen helfen, die Ursache für einen App-Absturz zu ermitteln und Probleme mit der Benutzeroberfläche Ihrer App zu finden.

Robo-Test-Crawling-Statistiken

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

  • Aktionen: Die Gesamtzahl der Aktionen während des Crawl durchgeführt, einschließlich Robo Script - Aktionen, Affen Aktionen und Robo - Richtlinien.
  • Aktivitäten: Die Anzahl der verschiedenen Aktivitäten während des Crawl abgedeckt.
  • Screens: Die Anzahl der verschiedenen Bildschirme während des Crawl besucht.

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

Zeitüberschreitung beim Robo-Test

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 UI-Interaktionen abzuschließen. Wir empfehlen, das Test-Timeout für die meisten Apps auf mindestens 120 Sekunden (2 Minuten) und für mäßig komplexe Apps auf 300 Sekunden (5 Minuten) einzustellen. Der Standardwert für Timeout von 300 Sekunden (5 Minuten) für Tests liefen von Android Studio und dem Google Developer Console und 1500 Sekunden (25 Minuten) für Tests vom liefen gcloud Kommandozeile.

Timeout-Fehler beim App-Start

Wenn der Start Ihrer App lange dauert, kann Robo einen Fehler ausgeben und Ihre App nicht crawlen. Dies geschieht nur bei extrem langen Startzeiten und kann nur durch Überarbeitung Ihrer App behoben werden, um sie schneller zu starten.

Mehr Kontrolle mit Robo-Skripten

Manchmal benötigen Sie mehr Kontrolle über Ihre Tests. Sie können beispielsweise eine allgemeine Benutzerreise testen oder bestimmte Benutzeroberflächeneingaben wie einen Benutzernamen und ein Kennwort bereitstellen. Robo-Skripte können helfen.

Mit Robo-Skripts zeichnen Sie sich selbst beim Durchlaufen eines Workflows in Ihrer App auf und laden diese Aufzeichnung dann auf 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 vorgefertigten Aktionen durch und fährt dann wie gewohnt mit der Erkundung der App fort.

Erste Schritte mit Robo-Scripting über das Firebase-Tool in Android Studio:

  1. Öffnen Sie Android-Studio.
  2. Im Hauptmenü wählen Sie Extras> Firebase.
  3. Wählen Sie Test Lab und klicken Sie auf Aufzeichnen Robo Script und verwenden Sie es zum Führer Robo - Test.
  4. Befolgen Sie die restlichen Schritte im Tool, um Ihr Robo Script aufzuzeichnen.
  5. Laden Sie dieses Robo-Skript in Test Lab hoch und starten Sie Ihren Test.

Robo-Script-Fehler

Wenn ein Robo-Skript zu irgendeinem Zeitpunkt fehlschlägt, bricht Test Lab alle weiteren Schritte im Skript ab und setzt einen regulären Robo-Crawl fort. In den meisten Fällen schlagen Robo-Skripts fehl, weil Test Lab ein erforderliches Element auf dem Bildschirm nicht finden kann. Um Fehler zu vermeiden, stellen Sie sicher, dass Ihre App-Navigation vorhersehbar ist und Ihre Bildschirme nicht in einer nicht deterministischen Reihenfolge angezeigt werden.

Robo-Tests und Nicht-Android-UI-Widgets

Robo-Tests verwenden die Android-API, um Aktionen auf Android-UI-Widgets direkt 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-UI-Hierarchie 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-Aktionen simulieren Monkey Actions einfach Tap-Ereignisse an halbzufälligen Orten auf dem Bildschirm eines Geräts.

Um eine bessere Test Bildschirme , die Sie nicht Android UI - Widgets verwenden, können mit einer Reihe von skript Hähnen und Interaktionen durch die willkürlichen Abgriffe eines Affen Aktion ersetzen Firebase Test Lab Spiel Loop - Tests .

Integration mit Google Play

Sie können 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. Um mehr zu erfahren, siehe Verwenden Pre-Launch Berichte Probleme zu identifizieren .

Kontoanmeldung und vordefinierte Texteingabe testen

Robo-Test unterstützt die Anmeldung bei einem Testkonto und ermöglicht Ihnen außerdem die Eingabe von vordefiniertem Text in Felder in Ihrer App. Für benutzerdefinierte Anmelde- und andere vordefinierten Texteingabe kann Robo - Test Text eingeben EditText Felder in Ihrer Anwendung. Für jede Zeichenfolge, müssen Sie die identifizieren EditText Feld mit einem Android Ressourcennamen. Um mehr zu erfahren, siehe Zugriff auf Ressourcen .

Einloggen

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

  • Benutzerdefinierte Zeichen-in: Wenn Sie Testkontoinformationen zur Verfügung stellen, müssen Sie Robo - Test sagen , wo sie betreten, und auch diese Anmeldeinformationen zur Verfügung stellen.
  • Automatische Anmeldung in: Wenn Ihre Anwendung einen Anmeldebildschirm hat , die ein Google - Konto für die Authentifizierung verwendet, verwendet Robo - Test einen Google - Test - Account, es sei denn , Sie Testkontoanmeldeinformationen für benutzerdefinierte Zeichen-in.

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

  1. Wählen Sie auf der Seite Dimensionen, wählen Sie Weitere Optionen.
  2. Under Test Kontoinformationen (optional), geben Sie die Benutzernamen und Passwort Ressourcennamen und den Benutzernamen und das Kennwort für das Testkonto.

Vordefinierte Texteingabe

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

  1. Wählen Sie auf der Seite Dimensionen, wählen Sie Weitere Optionen.
  2. Unter Zusätzliche Felder (Optional) Geben Sie eine oder mehrere Ressourcennamen und die Zeichenfolgen in die entsprechenden Textfelder eingeben.

Vordefinierte Texteingabefehler

Robo sucht EditText Felder mit einem Android - Ressource - Namen , die ein geliefertes regulären Ausdruck übereinstimmt. Wenn Robo kein passendes Feld findet, gibt es Ihren Text nicht ein, sondern fährt ansonsten wie gewohnt mit dem Crawlen fort.

Sie können bis zu drei bieten Deep - Links für die Prüfung von Ihrer App unterstützt. Deep - Links sind auf Ihre App als Android ausgegeben ACTION_VIEW Absichten. Daher muss jeder Link einem Intent-Filter in Ihrer App entsprechen.

Wenn ein oder mehr Deep - Links zur Verfügung gestellt werden, wird die App zunächst normal gestartet (mit der ACTION_MAIN Absicht) und kroch an die angegebenen Timeout auf. Nach dem Haupt-Crawl wird jeder Deep-Link für jeweils weitere 30 Sekunden gecrawlt.

Wenn Robo 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 Anwendungen , die die Verwendung App Licensing Service von Google Play angeboten. 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 kompatibel mit Anwendungen , dass die Verwendung UI - Elemente aus dem Android UI - Framework (einschließlich View und ViewGroup - Objekte, mit Ausnahme von WebView - Objekten). Wenn Sie Robo-Test verwenden, um Apps zu testen, die andere UI-Frameworks verwenden, einschließlich Apps, die die Unity-Spiele-Engine verwenden, wird der Test möglicherweise beendet, ohne über den ersten Bildschirm hinaus zu erkunden.
  • Log-in Captchas. Robo-Test kann keine Anmeldebildschirme umgehen, die eine zusätzliche Benutzeraktion erfordern, die über die Eingabe von Anmeldeinformationen zum Anmelden hinausgeht (z. B. das Ausfüllen eines Captchas).