Mit der Google Cloud CLI testen

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

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

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

Schritt 2: Test ausführen

XCTest ausführen

  1. Laden Sie die ZIP-Datei Ihres Tests mit dem folgenden Befehl hoch (wenn Sie die App noch nicht verpackt haben, XCTest-Paket erstellen):

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

    Mit Test Lab kannst du Tests für eine Vielzahl von iOS-Versionen, Geräten und Bildschirmen durchführen Ausrichtungen und Sprachen. Diese Konfigurationen werden Testdimensionen herunter. 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 durch models, versions oder locales:

    gcloud firebase test ios dimension list

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

    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.

  3. Nachdem Sie einen Satz von Testdimensionen ausgewählt haben, können Sie Test Lab ausführen mit dem Befehl firebase test ios run. Für jede Kombination von Testdimensionen, mit denen getestet werden soll, fügen Sie 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 und der der Test erstellt wurde, und die Xcode-Standardversion, die von Test Lab verwendet wird. 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 im Modul Firebase-Konsole können Sie Ihre Testmatrix optional mit dem --client-details matrixLabel="<label>" im folgenden Beispiel:

    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"

Besondere Berechtigungen testen

Um Berechtigungen zu testen, für die eine explizite App-ID erforderlich ist, kannst du dies tun: und legen das Flag --test-special-entitlements fest. Test Lab signiert die Anwendung mit einer neuen Bundle-ID neu, um Berechtigungen. Achte also darauf, dass deine ZIP-Datei keine Ressourcen enthält. mit direkten Verweisen auf die Bundle-ID der App.

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

Zum Autorisieren von Push-Benachrichtigungsanfragen können Nutzer JSON-Webdateien erstellen mit dem privaten Signaturschlüssel zusammen mit der Schlüssel-ID C7FD9DJAA8 und der Team-ID: 9CKCGNNUQN Die generierten Tokens sind gültig für einen und muss alle 60 Minuten aktualisiert werden. Erfahren Sie mehr auf Tokenbasierte Verbindung zu APNs herstellen

App-Gruppen

App-Gruppen-IDs sind global eindeutig. Wenn wir also Nutzer-Apps neu signieren, können wir nur die App-Gruppen-ID verwenden, die mit dem Test Lab-Entwicklerkonto verknüpft sind. Wenn Ihr Test sich auf bei App-Gruppen schlägt der Test fehl.

Spielschleifentest durchführen

Führen Sie den Befehl gcloud beta firebase test ios run aus und verwenden Sie Folgendes: 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 Testtypen xctest (Standardeinstellung) oder game-loop.

--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: --scenario-numbers=1-3,5 führt die Schleifen 1, 2, 3 und 5 aus.

--device-model

Das physische Gerät, auf dem Sie den Test durchführen möchten Hier erfährst du, welche Geräte verfügbar sind. die Sie verwenden können).

--timeout

Die maximale Dauer, für die der Test laufen soll. Sie können eine Ganzzahl eingeben, die Dauer in Sekunden oder eine Ganzzahl und eine Aufzählung zur Darstellung der Dauer als längere Zeiteinheit.

Beispiel:

  • --timeout=200 erzwingt, dass der Test bei bis zu 200 Ausführungen beendet wird Sekunden.
  • --timeout=1h erzwingt, dass der Test nach einer Dauer von bis zu einer Stunde beendet wird.

Mit dem folgenden Befehl wird beispielsweise ein Spielschleifentest ausgeführt, der Schleifen ausführt 1, 4, 6, 7 und 8 auf einem iPhone 8 Plus:

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 nachlesen.

Schritt 3 (optional): Zukünftige Tests automatisieren

gcloud-Befehle mit Test Lab in Skripts verwenden

Du kannst Shell-Scripts oder Batch-Dateien verwenden, um die Befehle zum Testen mobiler Apps zu automatisieren die Sie sonst über die gcloud-Befehlszeile ausführen würden. In diesem Beispiel-Bash Das Skript führt einen XCTest mit einer Zeitüberschreitung von zwei Minuten aus und meldet, erfolgreich abgeschlossen:

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 Exit-Codes, die Sie zum besseren Verständnis nutzen können. die Ergebnisse von Tests, die Sie mit Skripten oder Batch-Dateien ausführen.

Exit-Code Hinweise
0 Alle Testausführungen 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 Ein oder mehrere Testfälle (getestete Klassen oder Klassenmethoden) innerhalb eines Tests die Ausführung war nicht erfolgreich.
15 Firebase Test Lab konnte nicht feststellen, ob die Testmatrix bestanden oder ist aufgrund eines unerwarteten Fehlers fehlgeschlagen.
19 Die Testmatrix wurde vom Benutzer abgebrochen.
20 Beim Testen der Infrastruktur ist ein Fehler aufgetreten.

Schritt 4: Testergebnisse prüfen

Zu Beginn des Tests erhalten Sie einen Link zur Seite Testergebnisse. Tests können mehrere Minuten in Anspruch nehmen, je nachdem, wie viele der von Ihnen ausgewählten Konfigurationen und das für Ihr Tests durchführen. Nachdem die Tests ausgeführt wurden, können Sie die Testergebnisse überprüfen. Weitere Informationen finden Sie unter Firebase Test Lab Ergebnisse werden analysiert, um mehr über die die Interpretation der Testergebnisse.

Nächster Schritt

In der Google Cloud SDK-Dokumentation finden Sie Informationen zu Testoptionen, die allgemein verfügbar oder Beta.