Google is committed to advancing racial equity for Black communities. See how.
Diese Seite wurde von der Cloud Translation API übersetzt.
Switch to English

Beginnen Sie mit Robo-Tests

Robo Test ist ein Testwerkzeug, das in Firebase Test Lab integriert ist. Der Robo-Test analysiert die Struktur der Benutzeroberfläche Ihrer App und untersucht sie dann methodisch, wobei Benutzeraktivitäten automatisch simuliert werden. Im Gegensatz zum Monkey- Test für UI / Application Exerciser simuliert der Robo-Test immer dieselben Benutzeraktivitäten in derselben Reihenfolge, wenn Sie damit eine App auf einer bestimmten Gerätekonfiguration mit denselben Einstellungen testen. Auf diese Weise können Sie den Robo-Test verwenden, um Fehlerkorrekturen zu überprüfen und auf Regressionen zu testen, die beim Testen mit dem UI / Application Exerciser Monkey-Test nicht möglich sind.

Der Robo-Test erfasst Protokolldateien, speichert eine Reihe von kommentierten Screenshots und erstellt dann aus diesen Screenshots ein Video, um Ihnen die simulierten Benutzeroperationen zu zeigen, die er ausgeführt hat. Mithilfe dieser Protokolle, Screenshots und Videos können Sie die Hauptursache für den Absturz Ihrer App ermitteln und Probleme mit der Benutzeroberfläche Ihrer App finden.

Robo-Test-Crawling-Statistiken

Um Ihnen bei der Interpretation Ihrer Robo-Testergebnisse zu helfen, zeichnet Robo bei jedem Testcrawl Statistiken auf. Test Lab zeigt die Statistiken oben auf der Registerkarte Robo auf der Ergebnisseite Ihres Tests 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 verschiedenen Aktivitäten, die während des Crawls abgedeckt werden.
  • Bildschirme: Die Anzahl der verschiedenen Bildschirme, die während des Crawls besucht wurden.

Test Lab verwendet die Statistiken auch, um eine visuelle Darstellung des Robo-Crawls in Form eines Crawling-Diagramms zu erstellen. Das Diagramm 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 durchlaufen hat.

Robo-Test-Timeout

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 durchzuführen. 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 Google Developer Console ausgeführt werden, und 1500 Sekunden (25 Minuten) für Tests, die über die gcloud von gcloud ausgeführt werden.

Timeout-Fehler beim Starten der App

Wenn der Start Ihrer App lange dauert, kann Robo einen Fehler auslösen und Ihre App nicht crawlen. Dies geschieht nur bei extrem langer Startzeit und kann nur durch Überarbeiten Ihrer App behoben werden, um den Start zu beschleunigen.

Mehr Kontrolle mit Robo-Skripten

Manchmal brauchen Sie mehr Kontrolle über Ihre Tests. Beispielsweise möchten Sie möglicherweise eine allgemeine Benutzerreise testen oder bestimmte Eingaben in die Benutzeroberfläche wie einen Benutzernamen und ein Kennwort bereitstellen. Robo-Skripte können helfen.

Mit Robo-Skripten 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 Skript ausführen, führt Robo zunächst Ihre vorgefertigten Aktionen durch und untersucht dann die App wie gewohnt.

Beginnen Sie mit Robo-Skripten über das Firebase-Tool in Android Studio:

  1. Öffnen Sie Android Studio.
  2. Wählen Sie im Hauptmenü Extras > Firebase .
  3. Wählen Sie Test Lab aus, klicken Sie auf Record Robo Script und verwenden Sie es, um Robo Test zu führen .
  4. Befolgen Sie die restlichen Schritte im Tool, um Ihr Robo-Skript aufzuzeichnen.
  5. Laden Sie das Robo-Skript in das Testlabor hoch und starten Sie den Test.

Robo-Skriptfehler

Wenn ein Robo-Skript zu irgendeinem Zeitpunkt fehlschlägt, gibt Test Lab alle weiteren Schritte im Skript auf und setzt einen regulären Robo-Crawl fort. Meistens schlagen Robo-Skripte fehl, weil Test Lab kein erforderliches Element auf dem Bildschirm finden kann. Stellen Sie zur Vermeidung von Fehlern sicher, dass Ihre App-Navigation vorhersehbar ist und Ihre Bildschirme nicht in einer nicht deterministischen Reihenfolge angezeigt werden.

Robo-Tests und Widgets für Nicht-Android-Benutzeroberflächen

Robo-Tests verwenden die Android-API, um Aktionen auf Android-UI-Widgets direkt auszuführen. Dies hilft den Tests dabei, 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 ausführen zu können.

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

Um Bildschirme besser zu testen, die keine Widgets für die Android-Benutzeroberfläche verwenden, können Sie die willkürlichen Taps einer Affenaktion durch eine Reihe von Skript-Taps 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-Kanal oder den Beta-Kanal hochladen und veröffentlichen. Der Robo-Test wird auf einer Reihe beliebter physischer Geräte von verschiedenen geografischen Standorten aus ausgeführt und bietet Testabdeckung für verschiedene Formfaktoren und Hardwarekonfigurationen. Weitere Informationen finden Sie unter Verwenden von Berichten vor dem Start, um Probleme zu identifizieren .

Testen Sie die Kontoanmeldung und die vordefinierte Texteingabe

Robo Test unterstützt die Anmeldung für Testkonten und ermöglicht Ihnen die Eingabe von vordefiniertem Text in Felder in Ihrer App. Für die benutzerdefinierte Anmeldung und andere vordefinierte Texteingaben kann der Robo-Test Text in die EditText Felder Ihrer App EditText . Für jede Zeichenfolge müssen Sie das EditText Feld anhand eines Android-Ressourcennamens identifizieren. Weitere Informationen finden Sie unter Zugreifen auf Ressourcen .

Anmelden

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

  • Benutzerdefinierte Anmeldung: Wenn Sie Anmeldeinformationen für das Testkonto angeben, müssen Sie Robo test mitteilen, wo diese eingegeben werden sollen, und diese Anmeldeinformationen angeben.
  • Automatische Anmeldung: Wenn Ihre App über einen Anmeldebildschirm verfügt, auf dem ein Google-Konto zur Authentifizierung verwendet wird, verwendet Robo Test ein Google-Testkonto, es sei denn, Sie geben Anmeldeinformationen für das Testkonto für die benutzerdefinierte Anmeldung an.

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

  1. Wählen Sie auf der Seite Dimensionen auswählen die Option Zusätzliche Optionen .
  2. Geben Sie unter Anmeldeinformationen des Testkontos (optional) den Benutzernamen und das Kennwort für die 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 .
  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 sucht nach EditText Feldern mit einem Android-Ressourcennamen, der einem angegebenen regulären Ausdruck entspricht. Wenn Robo kein passendes Feld findet, gibt es Ihren Text nicht ein, setzt aber ansonsten das Crawlen wie gewohnt fort.

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

Wenn ein oder mehrere Deep Links bereitgestellt werden, wird die App zuerst normal gestartet (unter Verwendung der Absicht ACTION_MAIN ) und bis zum angegebenen Zeitlimit ACTION_MAIN . Nach dem Hauptcrawlen wird jeder Deep Link jeweils weitere 30 Sekunden lang 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 angegebene URL als auch Ihre App auf Tippfehler oder andere Inkonsistenzen.

App-Lizenzierungsunterstützung

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

Der Robo-Test weist derzeit die folgenden bekannten Einschränkungen auf:

  • Unterstützung des UI-Frameworks . Der Robo-Test ist nur mit Apps kompatibel, die UI-Elemente aus dem Android-UI-Framework verwenden (einschließlich View und ViewGroup Objekte, jedoch ohne WebView Objekte). Wenn Sie den Robo-Test verwenden, um Apps zu trainieren, 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.
  • Anmelden Captchas . Der Robo-Test kann Anmeldebildschirme nicht umgehen, die zusätzliche Benutzeraktionen erfordern, die über die Eingabe von Anmeldeinformationen für die Anmeldung hinausgehen (z. B. das Ausfüllen eines Captcha).