Testen Sie mit der Google Cloud CLI

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 das Google Cloud SDK herunter
  2. Dazu gehört das gcloud CLI-Tool.

  3. Stellen Sie sicher, dass Ihre Installation auf dem neuesten Stand ist und den gcloud firebase Befehl „
          gcloud components update
    enthält
  4. Melden Sie sich mit Ihrem Google-Konto bei der gcloud-CLI an:
          gcloud auth login
  5. Legen Sie Ihr Firebase-Projekt in gcloud fest, wobei PROJECT_ID die ID Ihres Firebase-Projekts ist:
         gcloud config set project PROJECT_ID

Schritt 2 : Führen Sie Ihren Test durch

Führen Sie einen XCTest durch

  1. Laden Sie die ZIP-Datei Ihres Tests hoch, indem Sie den folgenden Befehl ausführen (wenn Sie Ihre App noch nicht gepackt haben, lesen Sie den Abschnitt „Verpacken Ihres 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 verschiedenen iOS-Versionen, Geräten, Bildschirmausrichtungen und Gebietsschemata ausführen. Diese Konfigurationen werden als Testdimensionen des Tests bezeichnet. Um die Optionen für jede Dimension anzuzeigen (z. B. unterstützte Xcode-Versionen für die iOS-Version des Geräts), ersetzen Sie models , versions “ oder locales durch dimension im folgenden Befehl:

    gcloud firebase test ios dimension list

    Die Bildschirmausrichtung ist etwas einfacher, da die einzigen Optionen portrait und landscape sind.

    Sehen Sie sich die Liste der Testdimensionen an und wählen Sie einige Kombinationen aus, für die Sie Ihren Test durchführen möchten. Besuchen Sie „Preispläne“ , um die maximale Anzahl an Kombinationen zu sehen, die Sie pro Tag ausführen können.

  3. Sobald Sie eine Reihe von Testdimensionen ausgewählt haben, können Sie Test Lab Ihre Tests mit dem firebase test ios run Befehl ausführen lassen. Fügen Sie für jede Kombination von Testdimensionen, die Sie testen möchten, ein separates Flag --device ein:

    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 anzugeben, verwenden Sie das Flag --xcode-version :

    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=15

    Um Ihnen beim Identifizieren und Auffinden Ihrer Testmatrizen in der Firebase-Konsole zu helfen, können Sie Ihre Testmatrix optional mit dem Flag --client-details matrixLabel="<label>" im folgenden Beispiel kennzeichnen:

    gcloud beta firebase test ios run --test PATH/TO/MyTests.zip \
      --device model=MODEL_ID_1,version=VERSION_ID_1,locale=LOCALE_1,orientation=ORIENTATION_1 \
      --client-details matrixLabel="my label"

Testen Sie besondere Berechtigungen

Um Berechtigungen zu testen, die eine explizite App-ID erfordern, können Sie dies tun, indem Sie das Flag --test-special-entitlements setzen. 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.

Unterstützte Berechtigungen:
  1. Push-Benachrichtigungen apns-environment
  2. Persönliches VPN com.apple.developer.networking.vpn.api
Mitteilungen

Zum Autorisieren von Push-Benachrichtigungsanfragen können Benutzer JSON-Webtoken erstellen, indem sie den privaten Signaturschlüssel zusammen mit der Schlüssel-ID – C7FD9DJAA8 und der Team-ID – 9CKCGNNUQN verwenden. Die generierten Token wären eine Stunde lang gültig und müssten alle 60 Minuten aktualisiert werden. Lesen Sie mehr über den Aufbau einer tokenbasierten Verbindung zu APNs.

App-Gruppen

App-Gruppen-IDs sind allgemein eindeutig. Das bedeutet, dass wir beim erneuten Signieren von Benutzer-Apps nur die App-Gruppen-ID verwenden können, die mit dem Test Lab-Entwicklerkonto verknüpft ist. Wenn Ihr Test auf App-Gruppen basiert, schlägt Ihr Test fehl.

Führen Sie einen Game-Loop-Test durch

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

Flags für Game-Loop-Tests
--type

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

--app

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

--scenario-numbers

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

Beispielsweise führt --scenario-numbers=1-3,5 die Schleifen 1, 2, 3 und 5 aus.

--device-model

Das physische Gerät, auf dem Sie Ihren Test durchführen möchten (finden Sie heraus, welche verfügbaren Geräte Sie verwenden können).

--timeout

Die maximale Dauer, die Ihr Test ausführen soll. Sie können eine Ganzzahl eingeben, um die Dauer in Sekunden darzustellen, oder eine Ganzzahl und eine Aufzählung, um die Dauer als längere Zeiteinheit darzustellen.

Zum Beispiel:

  • --timeout=200 erzwingt die Beendigung Ihres Tests, wenn er bis zu 200 Sekunden dauert.
  • --timeout=1h erzwingt die Beendigung Ihres Tests, wenn er 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 zur gcloud-CLI finden Sie in der Referenzdokumentation .

Schritt 3 (optional) : Automatisieren Sie zukünftige Tests, die Sie erstellen

Skripterstellung für gcloud-Befehle mit Test Lab

Sie können Shell-Skripte 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 Zeitlimit von zwei Minuten 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 Exit-Codes, die Sie verwenden können, um die Ergebnisse von Tests, die Sie mithilfe von Skripts oder Batchdateien ausführen, besser zu verstehen.

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

Schritt 4 : Untersuchen Sie die Testergebnisse

Wenn der Test beginnt, erhalten Sie einen Link zur Seite mit den Testergebnissen . 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 Test-Timeout-Dauer. Nachdem Ihre Tests ausgeführt wurden, können Sie die Testergebnisse überprüfen. Weitere Informationen zur Interpretation Ihrer Testergebnisse finden Sie unter Analysieren von Firebase-Testlaborergebnissen .

Nächster Schritt

Lesen Sie die Dokumentation zum Google Cloud SDK, um Testoptionen kennenzulernen, die allgemein verfügbar oder in der Betaphase sind.