In diesem Leitfaden wird beschrieben, wie Sie einen XCTest oder einen Game Loop-Test mit der gcloud CLI ausführen.
Schritt 1: Lokale Google Cloud SDK-Umgebung konfigurieren
- Google Cloud SDK herunterladen
- Prüfen Sie, ob Ihre Installation auf dem neuesten Stand ist und den Befehl
gcloud firebase
enthält:gcloud components update
- Melden Sie sich mit Ihrem Google-Konto in der gcloud CLI an:
gcloud auth login
- Legen Sie Ihr Firebase-Projekt in gcloud fest. Dabei steht PROJECT_ID für die ID Ihres Firebase-Projekts:
gcloud config set project PROJECT_ID
Dazu gehört auch das gcloud-CLI-Tool.
Schritt 2: Test ausführen
XCTest ausführen
Laden Sie die ZIP-Datei Ihres Tests mit dem folgenden Befehl hoch. Wenn Sie Ihre App noch nicht verpackt haben, lesen Sie den Hilfeartikel XCTest-Paket erstellen.
cd FOLDER_WITH_TEST_OUTPUT/Build/Products ; \ zip -r MyTests.zip Debug-iphoneos YOUR_SCHEME_iphoneosDEPLOYMENT_TARGET-arm64.xctestrun
Wählen Sie die Testdimensionen aus.
Mit Test Lab können Sie Tests auf verschiedenen iOS-Versionen, Geräten, Bildschirmausrichtungen und Sprachen ausführen. Diese Konfigurationen werden als Testdimensionen bezeichnet. Wenn Sie die Optionen für die einzelnen Dimensionen sehen möchten (z.B. unterstützte Xcode-Versionen für die iOS-Version des Geräts), ersetzen Sie im folgenden Befehl
dimension
durchmodels
,versions
oderlocales
:gcloud firebase test ios dimension list
Die Bildschirmausrichtung ist etwas einfacher, da nur
portrait
undlandscape
als Optionen verfügbar sind.Sehen Sie sich die Liste der Testdimensionen an und wählen Sie einige Kombinationen aus, für die Sie den Test ausführen möchten. Unter Preismodelle finden Sie die maximale Anzahl von Kombinationen, die Sie pro Tag ausführen können.
Nachdem Sie eine Reihe von Testdimensionen ausgewählt haben, können Sie die Tests mit dem Befehl
firebase test ios run
ausführen.Test Lab Fügen Sie für jede Kombination von Testdimensionen, die Sie testen möchten, ein separates--device
-Flag hinzu: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 der 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. Wenn Sie eine unterstützte Xcode-Version für Ihren Test angeben möchten, 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
Damit Sie Ihre Testmatrizen in der Firebase-Konsole leichter finden, können Sie sie wie im folgenden Beispiel mit dem Flag
--client-details matrixLabel="<label>"
versehen: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"
Spezielle Berechtigungen testen
Wenn Sie Berechtigungen testen möchten, für die eine explizite App-ID erforderlich ist, können Sie das Flag --test-special-entitlements
festlegen. Test Lab
signiert die Anwendung noch einmal mit einer neuen Bundle-ID, um spezielle Berechtigungen zu unterstützen. Achten Sie daher darauf, dass sich in Ihrer ZIP-Datei keine Ressourcen befinden, die direkte Verweise auf die Bundle-ID der App enthalten.
- Push-Benachrichtigungen
apns-environment
- Persönliches VPN
com.apple.developer.networking.vpn.api
Zur Autorisierung von Push-Benachrichtigungsanfragen können Nutzer JSON Web Tokens erstellen. Dazu verwenden sie den privaten Signaturschlüssel zusammen mit der Schlüssel-ID C7FD9DJAA8 und der Team-ID 9CKCGNNUQN. Die generierten Tokens sind eine Stunde lang gültig und müssen alle 60 Minuten aktualisiert werden. Weitere Informationen finden Sie unter Herstellen einer tokenbasierten Verbindung zu APNs.
App-GruppenApp-Gruppen-IDs sind global eindeutig. Das bedeutet, dass wir beim erneuten Signieren von Nutzer-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 er fehl.
Spielschleifentest ausführen
Führen Sie den Befehl gcloud beta firebase test ios run
aus und verwenden Sie die folgenden Flags, um den Ablauf zu konfigurieren:
Flags für Spielschleifentests | |
---|---|
--type
|
Erforderlich: Gibt den Typ des iOS-Tests an, den Sie ausführen möchten. Sie können die Testtypen |
--app
|
Erforderlich: Absoluter Pfad (GCS oder Dateisystem) zur IPA-Datei Ihrer App. Dieses Flag ist nur gültig, wenn Spielschleifentests ausgeführt werden. |
--scenario-numbers
|
Die Schleifen (auch Szenarien genannt), die in Ihrer App ausgeführt werden sollen. Sie können eine Schleife, eine Liste von Schleifen oder einen Bereich von Schleifen eingeben. Die Standardschleife ist 1.
Beispiel: Mit |
--device-model
|
Das physische Gerät, auf dem Sie den Test ausführen möchten (Hier finden Sie Informationen zu den verfügbaren Geräten). |
--timeout
|
Die maximale Dauer, für die der Test laufen soll. Sie können eine Ganzzahl eingeben, um die Dauer in Sekunden anzugeben, oder eine Ganzzahl und eine Aufzählung, um die Dauer in einer längeren Zeiteinheit anzugeben. Beispiel:
|
Mit dem folgenden Befehl wird beispielsweise ein Game Loop-Test ausgeführt, bei dem die Schleifen 1, 4, 6, 7 und 8 auf einem iPhone 8 Plus ausgeführt werden:
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): Künftige Tests automatisieren
gcloud-Befehle mit Test Lab in Skripts verwenden
Mit Shell-Scripts oder Batchdateien können Sie Befehle für mobile App-Tests automatisieren, die Sie sonst über die gcloud-Befehlszeile ausführen würden. In diesem Beispiel-Bash-Script wird ein XCTest mit einer Zeitüberschreitung von zwei Minuten ausgeführt und es wird gemeldet, ob der Test 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
Script-Exit-Codes
Test Lab bietet mehrere Rückgabecodes, mit denen Sie die Ergebnisse von Tests besser nachvollziehen können, die Sie mit Scripts oder Batchdateien ausführen.
Exit-Code | Hinweise |
---|---|
0 | Alle Testausführungen wurden bestanden. |
1 | Ein allgemeiner Fehler ist aufgetreten. Mögliche Ursachen sind ein nicht vorhandener Dateiname oder ein HTTP-/Netzwerkfehler. |
2 | Die Tests wurden beendet, weil unbekannte Befehle oder Argumente angegeben wurden. |
10 | Mindestens einer der Testfälle (getestete Klassen oder Klassenmethoden) innerhalb einer Testausführung ist fehlgeschlagen. |
15 | Firebase Test Lab konnte aufgrund eines unerwarteten Fehlers nicht feststellen, ob die Testmatrix bestanden oder nicht bestanden hat. |
19 | Die Testmatrix wurde vom Nutzer abgebrochen. |
20 | Ein Fehler bei der Testinfrastruktur ist aufgetreten. |
Schritt 4: Testergebnisse untersuchen
Zu Beginn des Tests erhalten Sie einen Link zur Seite Testergebnisse. Die Ausführung der Tests kann einige Minuten dauern, je nachdem, wie viele verschiedene Konfigurationen Sie ausgewählt haben und wie lang die Zeitüberschreitung für die Tests ist. Nach Abschluss der Tests können Sie die Testergebnisse überprüfen. Weitere Informationen zur Interpretation Ihrer Testergebnisse finden Sie unter Firebase Test Lab-Ergebnisse analysieren.
Nächster Schritt
In der Google Cloud SDK-Dokumentation finden Sie Informationen zu Testoptionen, die allgemein verfügbar oder in der Betaphase sind.