In dieser Anleitung wird beschrieben, wie Sie mit der gcloud CLI einen XCTest oder einen Spielschleifentest 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
gcloud firebaseBefehl 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. PROJECT_ID ist
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 Abschnitt XCTest verpacken.
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.
Test Lab können Sie Tests mit verschiedenen iOS-Versionen, Geräten, Bildschirm ausrichtungen und Gebietsschemas ausführen. Diese Konfigurationen werden als Testdimensionen des Tests bezeichnet. Wenn Sie die Optionen für jede Dimension sehen möchten (z.B. unterstützte Xcode-Versionen für die iOS-Version des Geräts), ersetzen Sie
models,versionsoderlocalesdurchdimensionim folgenden Befehl:gcloud firebase test ios dimension list
Die Bildschirmausrichtung ist etwas einfacher, da die einzigen Optionen
portraitundlandscapesind.Sehen Sie sich die Liste der Testdimensionen an und wählen Sie einige Kombinationen aus, mit denen Sie Ihren Test ausführen möchten. Unter Preispläne 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 Test Lab Ihre Tests mit dem
firebase test ios runBefehl ausführen. Fügen Sie für jede Kombination von Testdimensionen, die Sie testen möchten, ein separates--device-Flag 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. Verwenden Sie das Flag
--xcode-version, um eine unterstützte Xcode-Version für Ihren Test anzugeben: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 Console leichter identifizieren und finden können, können Sie Ihre Testmatrix optional mit dem
--client-details matrixLabel="<label>"Flag 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"
Spezielle Berechtigungen testen
Wenn Sie Berechtigungen testen möchten, für die eine explizite App-ID erforderlich ist, können Sie das durch Festlegen des Flags --test-special-entitlements tun. Test Lab
signiert die Anwendung mit einem neuen Paket-Identifikator neu, um spezielle
Berechtigungen zu unterstützen. Achten Sie daher darauf, dass Ihre ZIP-Datei keine Ressourcen enthält,
die direkt auf den Paket-Identifikator der App verweisen.
- Push-Benachrichtigungen
apns-environment - Persönliches VPN
com.apple.developer.networking.vpn.api
Zum Autorisieren von Push-Benachrichtigungsanfragen können Nutzer JSON-Web Tokens mit dem privaten Signaturschlüssel sowie der Schlüssel-ID – C7FD9DJAA8 und der Team-ID – 9CKCGNNUQN erstellen. Die generierten Tokens sind eine Stunde lang gültig und müssen alle 60 Minuten aktualisiert werden. Weitere Informationen finden Sie unter Tokenbasierte Verbindung zu APNs herstellen.
App-GruppenApp-Gruppen-IDs sind universell eindeutig. Wenn wir Nutzer-Apps neu signieren, können wir daher nur die App-Gruppen-ID verwenden, 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 die Ausführung 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 Sie Spielschleifentests ausführen. |
--scenario-numbers
|
Die Schleifen (auch Szenarien genannt), die Sie in Ihrer App ausführen möchten. Sie können eine Schleife, eine Liste von Schleifen oder einen Bereich von Schleifen eingeben. Die Standardschleife ist 1.
Mit |
--device-model
|
Das physische Gerät, auf dem Sie den Test ausführen möchten (Informationen zu den verfügbaren Geräten finden Sie hier). |
--timeout
|
Die maximale Dauer, die der Test ausgeführt werden 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. Beispiel:
|
Mit dem folgenden Befehl wird beispielsweise ein Spielschleifentest 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): Zukünftige Tests automatisieren
gcloud-Befehle mit Test Lab in Skripts verwenden
Sie können Shell-Skripts oder Batchdateien verwenden, um Befehle zum Testen von mobilen Apps zu automatisieren, die Sie andernfalls über die gcloud-Befehlszeile ausführen würden. Dieses Bash-Beispielskript führt einen XCTest mit einem Zeitlimit von zwei Minuten aus und meldet, ob die Testausführung 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
Exit-Codes für Skripts
Test Lab bietet mehrere Exit-Codes, mit denen Sie die Ergebnisse von Tests, die Sie mit Skripts oder Batchdateien ausführen, besser nachvollziehen können.
| 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 | Der Test wurde beendet, da unbekannte Befehle oder Argumente angegeben wurden. |
| 10 | Mindestens ein Testfall (getestete Klassen oder Klassenmethoden) in einer Testausführung wurde nicht bestanden. |
| 15 | Firebase Test Lab konnte aufgrund eines unerwarteten Fehlers nicht feststellen, ob die Testmatrix bestanden oder fehlgeschlagen ist. |
| 19 | Die Testmatrix wurde vom Nutzer abgebrochen. |
| 20 | Es ist ein Fehler in der Testinfrastruktur aufgetreten. |
Schritt 4: Testergebnisse untersuchen
Wenn der Test gestartet wird, erhalten Sie einen Link zur Seite Testergebnisse. Je nach Anzahl der ausgewählten Konfigurationen und der für Ihre Tests festgelegten Zeitüberschreitungsdauer kann es einige Minuten dauern, bis die Tests abgeschlossen sind. Nachdem die Tests ausgeführt wurden, können Sie die Testergebnisse überprüfen. Weitere Informationen zum Interpretieren von Testergebnissen finden Sie unter Analyzing Firebase Test Lab Results.
Nächster Schritt
In der Google Cloud SDK-Dokumentation finden Sie weitere Informationen zu Testoptionen, die allgemein verfügbar oder in der Beta-Phase sind.