Catch up on everthing we announced at this year's Firebase Summit. Learn more

Mit der gcloud-Befehlszeile testen

In dieser Anleitung wird beschrieben, wie Sie einen XCTest- oder Game Loop-Test mit der gcloud-CLI ausführen.

Schritt 1: Konfigurieren Sie Ihre lokale Google Cloud SDK Umgebung

  1. Laden Sie die Google Cloud SDK.
  2. Dazu gehört das gcloud-CLI-Tool.

  3. Stellen Sie sicher , dass Ihre Installation ist up-to-date und beinhaltet die gcloud firebase Befehl:
          gcloud components update
  4. Melden Sie sich bei der gcloud CLI mit Ihrem Google - Konto:
          gcloud auth login
  5. Stellen Sie Ihr Projekt in Firebase gcloud, wo PROJECT_ID die ID Ihres Firebase - Projekt ist:
         gcloud config set project PROJECT_ID

Schritt 2: Starten des Test

Führen Sie einen XCTest durch

  1. Laden Sie die ZIP - Datei Ihres Tests mit dem folgenden Befehl ausgeführt wird (wenn Sie noch nicht verpackt bis Ihre Anwendung finden Verpackung Ihre XCTest ):

    cd FOLDER_WITH_TEST_OUTPUT/Build/Products ; \
    zip -r MyTests.zip Debug-iphoneos YOUR_SCHEME_iphoneosDEPLOYMENT_TARGET-arm64.xctestrun
  2. Wählen Sie Ihre Testabmessungen.

    Mit Test Lab können Sie Tests auf einer Vielzahl von iOS-Versionen, Geräten, Bildschirmausrichtungen und Gebietsschemas ausführen. Diese Konfigurationen werden als der Test-Test Dimensionen bekannt. Um zu sehen , die Optionen für jede Dimension (zB unterstützten Xcode - Versionen für das iOS - Version des Geräts), Ersatz - models , versions oder locales für dimension im folgenden Befehl ein :

    gcloud firebase test ios dimension list

    Bildschirmausrichtung ist etwas einfacher, als einzige Optionen sind portrait und landscape .

    Sehen Sie sich die Liste der Testdimensionen an und wählen Sie einige Kombinationen aus, mit denen Sie Ihren Test ausführen möchten. Besuchen Sie Preispläne , die maximale Anzahl von Kombinationen zu sehen , die Sie pro Tag laufen.

  3. Sobald Sie eine Reihe von Testdimensionen gewählt haben, können Sie Test Lab haben Ihre Tests ausgeführt unter Verwendung der firebase test ios run Befehl. Für jede Kombination von Testdimensionen Sie testen auf möchten, verfügt über eine separate --device Flagge:

    gcloud firebase test ios run --test PATH/TO/MyTests.zip \
     --device model=MODEL_ID_1,version=VERSION_ID_1,locale=LOCALE_1,orientation=ORIENTATION_1 \
     --device model=MODEL_ID_2,version=VERSION_ID_2,locale=LOCALE_2,orientation=ORIENTATION_2 \
     etc...

    Es ist möglich, dass Ihr Test aufgrund einer Inkompatibilität zwischen der Xcode-Version, mit der der Test erstellt wurde, und der von Test Lab verwendeten Standard-Xcode-Version fehlschlägt. Um eine unterstützte Xcode - Version für Ihren Test angeben, verwenden Sie die --xcode-version Flagge:

    gcloud firebase test ios run --test PATH/TO/MyTests.zip \
     --device model=MODEL_ID_1,version=VERSION_ID_1,locale=LOCALE_1,orientation=ORIENTATION_1 \
     --xcode-version=11.3

Spezielle Berechtigungen testen

Um Testansprüche , die eine explizite App - ID benötigen, können Sie dies tun, indem Sie die Einstellung --test-special-entitlements Flagge. Test Lab signiert die Anwendung erneut mit einer neuen Bundle-ID, um spezielle Berechtigungen zu unterstützen. Stellen Sie daher sicher, dass Ihre ZIP-Datei keine Ressourcen enthält, die direkte Verweise auf die Bundle-ID der App enthalten.

Mitteilungen

Für die Genehmigung Push - Benachrichtigung Anfragen können Benutzer JSON Web - Token erstellen , indem die privaten Verwendung von Signaturschlüsseln zusammen mit dem Key ID - C7FD9DJAA8 und dem Team ID - 9CKCGNNUQN. Die generierten Token sind eine Stunde lang gültig und müssen alle 60 Minuten aktualisiert werden. Lesen Sie mehr auf Einrichtung eine Token-basierte Anbindung an APNs.

Führen Sie einen Game Loop-Test durch

Führen Sie die gcloud beta firebase test ios run Befehl und verwenden Sie die folgenden Flags um den Lauf zu konfigurieren:

Flags für Game Loop-Tests
--type

Erforderlich: Gibt den Typ des iOS Test , den Sie ausführen möchten. Sie können Testtypen eingeben xctest (Standard) oder game-loop .

--app

Erforderlich: Absoluter Pfad (GCS oder Dateisystem) , um Ihre App - IPA - Datei. Dieses Flag ist nur gültig, wenn Game Loop-Tests ausgeführt werden.

--scenario-numbers

Die Schleifen (auch bekannt als Szenarien), die Sie in Ihrer App ausführen möchten. Sie können eine Schleife, eine Liste oder Schleifen oder einen Bereich von Schleifen eingeben. Die Standardschleife ist 1.

Zum Beispiel --scenario-numbers=1-3,5 Schlaufen Läufe 1, 2, 3 und 5.

--device-model

Die physikalische Gerät , das Sie auf Ihrem Test ausführen möchten (herauszufinden , welche verfügbaren Geräte können Sie verwenden).

--timeout

Die maximale Dauer, für die Ihr Test ausgeführt werden soll. Sie können eine ganze Zahl eingeben, um die Dauer in Sekunden darzustellen, oder eine ganze Zahl und eine Aufzählung, um die Dauer als längere Zeiteinheit darzustellen.

Zum Beispiel:

  • --timeout=200 Kräfte Ihres Test zu beenden , wenn es bis 200 Sekunden läuft.
  • --timeout=1h zwingt den Test zu beenden , wenn es bis zu einer Stunde läuft.

Der folgende Befehl führt beispielsweise einen Game Loop-Test aus, der die Schleifen 1, 4, 6, 7 und 8 auf einem iPhone 8 Plus ausführt:

gcloud beta firebase test ios run
 --type game-loop --app path/to/my/App.ipa --scenario-numbers 1,4,6-8
 --device-model=iphone8plus

Weitere Informationen über die gcloud CLI finden Sie in der Referenzdokumentation .

Schritt 4 (Optional): Automate Zukunft testet Sie bauen

Skripting von gcloud-Befehlen mit Test Lab

Sie können Shell-Skripts oder Batchdateien verwenden, um Testbefehle für mobile Apps zu automatisieren, die Sie sonst über die gcloud-Befehlszeile ausführen würden. Dieses Beispiel-Bash-Skript führt einen XCTest mit einem zweiminütigen Timeout aus und meldet, ob der Testlauf erfolgreich abgeschlossen wurde:

if gcloud firebase test ios run --test MyTest.zip --timeout 2m
then
    echo "Test matrix successfully finished"
else
    echo "Test matrix exited abnormally with non-zero exit code: " $?
fi

Skript-Exit-Codes

Test Lab bietet mehrere Exitcodes, die Sie verwenden können, um die Ergebnisse von Tests, die Sie mit Skripts oder Batchdateien ausführen, besser zu verstehen.

Exit-Code Anmerkungen
0 Alle Testdurchführungen bestanden.
1 Ein allgemeiner Fehler ist aufgetreten. Mögliche Ursachen sind: ein nicht vorhandener Dateiname oder ein HTTP-/Netzwerkfehler.
2 Der Test wurde abgebrochen, weil unbekannte Befehle oder Argumente angegeben wurden.
10 Ein oder mehrere Testfälle (getestete Klassen oder Klassenmethoden) innerhalb einer Testausführung haben nicht bestanden.
fünfzehn Firebase Test Lab konnte aufgrund eines unerwarteten Fehlers nicht feststellen, ob die Testmatrix bestanden oder fehlgeschlagen ist.
19 Die Testmatrix wurde vom Benutzer abgebrochen.
20 Ein Fehler in der Testinfrastruktur ist aufgetreten.

Schritt 5: Untersuchen Sie die Testergebnisse

Wenn der Test beginnt, erhalten Sie einen Link auf die Seite Testergebnisse. Die Ausführung von Tests kann einige Minuten dauern, abhängig von der Anzahl der verschiedenen Konfigurationen, die Sie ausgewählt haben, und der für Ihre Tests festgelegten Testzeitüberschreitungsdauer. Nachdem Ihre Tests ausgeführt wurden, können Sie die Testergebnisse überprüfen. Siehe Analyse Firebase Test Lab Ergebnisse mehr darüber zu erfahren , wie Sie Ihre Testergebnisse zu interpretieren.

Nächster Schritt

Lesen Sie die Google Cloud SDK - Dokumentation Testen Möglichkeiten zu erkunden, die allgemein verfügbar oder in Beta .