Google 致力于为黑人社区推动种族平等。查看具体举措
Diese Seite wurde von der Cloud Translation API übersetzt.
Switch to English

Beginnen Sie mit Instrumentierungstests

Ein Instrumentierungstest ist ein Test, der von Ihnen oder Ihrem Team speziell zum Testen Ihrer App unter Verwendung der Android- Testframeworks von Espresso und UI Automator 2.0 geschrieben wurde . Test Lab liefert Ergebnisse für alle Testfälle, deren Ausführung während dieser Zeit abgeschlossen ist.

Wenn Sie einen Instrumentierungstest schreiben, erstellen Sie ein zweites APK-Modul, das Sie später zusammen mit dem APK-Modul für Ihre App in Test Lab hochladen. Informationen zum Erstellen von Test-APKs finden Sie unter Testen Ihrer App .

Zeitlimit für Instrumentierungstests

Instrumentierungstests können auf physischen Geräten bis zu 45 Minuten und auf virtuellen Geräten bis zu 60 Minuten dauern.

Führen Sie Tests unabhängig mit Orchestrator aus

Mit Android Test Orchestrator können Sie jeden Instrumentierungstest Ihrer App unabhängig ausführen. Test Lab verwendet immer die neueste Version von Orchestrator. Die Verwendung von Orchestrator bietet einige Vorteile und einen Nachteil:

Vorteile:

  • Kein gemeinsam genutzter Status: Jeder Test wird in einer eigenen Instrumentierungsinstanz ausgeführt, sodass sich ein gemeinsam genutzter Status nicht über Tests hinweg ansammelt.
  • Isolierte Abstürze: Wenn ein Test abstürzt, wird nur diese Instrumentierung beendet und andere Tests in Ihrer Suite können weiterhin ausgeführt werden.

Con:

Aktivieren Sie Orchestrator

Um Orchestrator for Test Lab zu aktivieren , klicken Sie im Setup des Instrumentierungstests auf Zusätzliche Optionen > Mit Orchestrator ausführen .

Beschleunigen Sie Tests mit Sharding

Test-Sharding unterteilt eine Reihe von Tests in Untergruppen (Shards), die separat isoliert ausgeführt werden. Test Lab führt jeden Shard automatisch parallel mit mehreren Geräten aus und führt den gesamten Testsatz in kürzerer Zeit durch.

Angenommen, Sie erstellen N Shards. Für jedes ausgewählte Gerät startet Test Lab N identische Geräte und führt eine Teilmenge der Tests auf jedem Gerät aus. Dies bedeutet, dass Sharded-Testfälle im Gegensatz zu nicht Sharded-Testfällen, die immer zu einer Testausführung pro Gerät führen, zu mehreren Testausführungen pro Gerät führen können (eine schnelle Übersicht über die Schlüsselkonzepte in Test Lab finden Sie unter Schlüsselkonzepte ).

Abrechnung für Testscherben

Test Lab implementiert Ihre Shards, indem es den integrierten Sharding-Mechanismus von AndroidJUnitRunner nutzt. Um zu vermeiden, dass für das Hochfahren leerer Shards (Shards ohne zugewiesene Testfälle) eine Gebühr erhoben wird, sollte die Anzahl der von Ihnen erstellten Shards geringer sein als die Gesamtzahl der Testfälle. Abhängig davon, wie lange die Ausführung jedes Testfalls dauert, empfiehlt es sich normalerweise, 2 bis 10 Testfälle pro Shard zuzuweisen.

Weitere Informationen zur Abrechnung finden Sie unter Verwendung, Kontingente und Abrechnung .

Aktivieren Sie das Test-Sharding

Sie können das Test-Sharding mithilfe der Firebase-Konsole aktivieren. So aktivieren Sie das Test-Sharding:

  1. Klicken Sie im Setup des Instrumentierungstests auf Zusätzliche Optionen .

  2. Geben Sie im Abschnitt Sharding die Anzahl der Shards ein, die Sie ausführen möchten.

Screenshots machen

In den folgenden Anweisungen wird beschrieben, wie Sie die Screenshot-Bibliothek von Test Lab zu Ihrer App hinzufügen und diese Bibliothek aus Ihrem Test aufrufen. Test Lab bietet eine Bibliothek, mit der Sie Screenshots machen können, wenn Sie Instrumentierungstests ausführen, z. B. Tests, die mit dem Espresso-Testframework geschrieben wurden . Nachdem Ihr Test ausgeführt wurde, können Sie die Screenshots in Android Studio oder in der Firebase-Konsole überprüfen.

Fügen Sie die folgende Bibliothek hinzu, um Ihren Test für Screenshots zu aktivieren: cloudtestingscreenshotter_lib.aar . Beachten Sie, dass die Möglichkeit zum Erstellen von Screenshots bereits in der Test-APK- App-debug-test-unaligned.apk und der NotePad-Beispiel-App enthalten ist . Screenshots werden auch automatisch erfasst, wenn Sie einen Robo-Test ausführen.

1. Fügen Sie die Screenshot-Bibliothek zu Ihrem Projekt hinzu

  1. Öffnen Sie in Android Studio die Projektansicht und klicken Sie mit der rechten Maustaste auf Ihren Projektnamen. Klicken Sie dann auf Neu > Verzeichnis .

  2. Geben Sie im Dialogfeld " Neues Verzeichnis " aars ein . Dadurch wird ein aars- Verzeichnis im Stammverzeichnis Ihres Testprojekts erstellt (als Peer-Verzeichnis zum App- Ordner).

  3. Kopieren Sie cloudtestingscreenshotter_lib.aar und fügen Sie es in den Ordner aars ein .

  4. build.gradle Datei build.gradle auf Stammebene (Projektebene) Ihrer App in jedem repositories Block einen Verweis auf den Ordner aars hinzu:

    repositories {
        jcenter()
        flatDir {
            dirs '../aars'
        }
    }
    ...
  5. In Ihrem Modul Top-Level - Verzeichnis (für das Notizbuch Beispiel app, das ist die App - Verzeichnis), die öffnen build.gradle Datei und eine Abhängigkeit cloudtestingscreenshotter_lib.aar auf der obersten Ebene hinzufügen dependencies Block:

    dependencies {
        // Cloud testing
        androidTestCompile (name:'cloudtestingscreenshotter_lib', ext:'aar')
        // Other dependencies go here
        }
    
  6. AndroidManifest.xml Sie in AndroidManifest.xml Datei AndroidManifest.xml die Systemberechtigungen für Ihre App an, indem Sie die folgenden Zeilen in das Tag <manifest> einfügen. Wenn Sie auf Android 10 (API-Stufe 29) oder höher WRITE_EXTERNAL_STORAGE , lassen Sie die WRITE_EXTERNAL_STORAGE (Ihre App benötigt diese Berechtigung nicht, um Screenshots auf dem Gerät zu lesen und zu schreiben).

    <manifest ... >
       <!-- WRITE_EXTERNAL_STORAGE is not needed on Android 10 (API level 29) or higher. -->
       <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
       <uses-permission android:name="android.permission.INTERNET"/>
       ...
    </manifest>
    

2. Machen Sie einen Screenshot von Ihrem Test

Rufen Sie an jedem Punkt in Ihrem Test, an dem Sie einen Screenshot ScreenShotter.takeScreenshot möchten, die ScreenShotter.takeScreenshot Methode aus der Bibliothek cloudtestingscreenshotter_lib auf. Das erste Argument ist eine Bezeichnung, mit der Sie den Screenshot identifizieren ( main_screen_2 wird im folgenden Beispiel verwendet):

Java

ScreenShotter.takeScreenshot("main_screen_2", this /* activity */);

Kotlin + KTX

ScreenShotter.takeScreenshot("main_screen_2", this /* activity */)

3. Zeigen Sie Ihre Screenshots an

Nach Abschluss Ihres Tests können Sie alle während des Tests aufgenommenen Screenshots vergleichen, indem Sie ein Element im Testergebnisbaum auswählen und dann auf Screenshots anzeigen klickenScreenshots anzeigen Möglichkeit.

Screenshot comparison screen

Sie können Screenshots aus verschiedenen Konfigurationen wie folgt auswählen und vergleichen:

Aufgabe Aktion
Wechseln Sie zwischen Testausführungen. Verwenden Sie das Dropdown-Menü in der oberen linken Ecke.

Testfallmenü
Wechseln Sie innerhalb einer Testausführung zwischen Screenshots. Verwenden Sie die Pfeile in der oberen rechten Ecke.

Screenshot-Umschalter
Fügen Sie der aktuellen Ansicht zusätzliche Screenshot-Vergleichsfelder hinzu. Klicken Sie auf Vergleichen .

Vergleichen Sie
Wählen Sie eine andere Testdimension (Gerätetyp, Ausrichtung, Gebietsschema usw.). Wählen Sie ein neues Dimensionselement aus der Liste am unteren Rand des Screenshots aus.