Join us for Firebase Summit on November 10, 2021. Tune in to learn how Firebase can help you accelerate app development, release with confidence, and scale with ease. Register

Tester avec la CLI gcloud

Ce guide explique comment exécuter un test XCTest ou un test de boucle de jeu à l'aide de la CLI gcloud.

Étape 1: Configurer votre environnement Google SDK cloud locale

  1. Télécharger le SDK Google Cloud.
  2. Cela inclut l'outil CLI gcloud.

  3. Assurez - vous que votre installation est mise à jour et comprend la gcloud firebase commande:
          gcloud components update
  4. Connectez - vous à la CLI gcloud en utilisant votre compte Google:
          gcloud auth login
  5. Définissez votre projet Firebase dans gcloud, où PROJECT_ID est l'ID de votre projet Firebase:
         gcloud config set project PROJECT_ID

Étape 2: Lancez votre test

Exécuter un XCTest

  1. Téléchargez le fichier .zip de votre test en exécutant la commande suivante (si vous ne l' avez pas encore emballé votre application, consultez l' emballage de votre XCTest ):

    cd FOLDER_WITH_TEST_OUTPUT/Build/Products ; \
    zip -r MyTests.zip Debug-iphoneos YOUR_SCHEME_iphoneosDEPLOYMENT_TARGET-arm64.xctestrun
  2. Choisissez vos dimensions d'essai.

    Test Lab vous permet d'exécuter des tests sur une variété de versions d'iOS, d'appareils, d'orientations d'écran et de paramètres régionaux. Ces configurations sont appelées les dimensions de test du test. Pour voir les options pour chaque dimension (par exemple, pris en charge les versions Xcode pour la version iOS de l'appareil), de remplacement des models , versions ou locales pour la dimension dans la commande suivante:

    gcloud firebase test ios dimension list

    L' orientation de l' écran est un peu plus simple, comme ses seules options sont portrait et landscape .

    Parcourez la liste des dimensions de test et sélectionnez quelques combinaisons sur lesquelles vous souhaitez exécuter votre test. Visitez prix Plans pour voir le nombre maximum de combinaisons que vous pouvez exécuter par jour.

  3. Une fois que vous avez choisi un ensemble de dimensions de test, vous pouvez avoir de test de laboratoire exécuter vos tests en utilisant les firebase test ios run la commande. Pour chaque combinaison de dimensions de test que vous souhaitez tester sur, inclure un séparé --device drapeau:

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

    Il est possible que votre test échoue en raison d'une incompatibilité entre la version Xcode avec laquelle le test a été construit et la version Xcode par défaut utilisée par Test Lab. Pour spécifier une version Xcode pris en charge pour votre test, utilisez la --xcode-version drapeau:

    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

Tester les droits spéciaux

Pour les droits des tests qui nécessitent un ID explicite App, vous pouvez le faire en mettant les --test-special-entitlements drapeau. Test Lab re-signe l'application avec un nouvel identifiant d'ensemble pour prendre en charge les droits spéciaux. Assurez-vous donc qu'il n'y a pas de ressources dans votre fichier zip contenant des références directes à l'ID d'ensemble de l'application.

Notifications push

Pour autoriser les demandes de notification push, les utilisateurs peuvent créer des jetons web JSON en utilisant le privé clé de signature ainsi que l'ID de clé - C7FD9DJAA8 et l'ID d' équipe - 9CKCGNNUQN. Les jetons générés seraient valides pendant une heure et devraient être actualisés toutes les 60 minutes. En savoir plus sur l' établissement d' une connexion à base de jeton APNs.

Exécuter un test de boucle de jeu

Exécutez les gcloud beta firebase test ios run la commande et utiliser les indicateurs suivants pour configurer la course:

Drapeaux pour les tests de boucle de jeu
--type

Requis: Indique le type de test iOS que vous souhaitez exécuter. Vous pouvez saisir les types de test xctest (par défaut) ou game-loop .

--app

Requis: Chemin absolu (GCS ou système de fichiers) au fichier IPA de votre application. Ce drapeau n'est valide que lors de l'exécution de tests de boucle de jeu.

--scenario-numbers

Les boucles (alias scénarios) que vous souhaitez exécuter dans votre application. Vous pouvez saisir une boucle, une liste de boucles ou une plage de boucles. La boucle par défaut est 1.

Par exemple, --scenario-numbers=1-3,5 exécute des boucles 1, 2, 3 et 5.

--device-model

Le dispositif physique que vous voulez exécuter votre test sur (savoir quels appareils disponibles , vous pouvez utiliser).

--timeout

La durée maximale d'exécution de votre test. Vous pouvez saisir un nombre entier pour représenter la durée en secondes, ou un nombre entier et une énumération pour représenter la durée sous la forme d'une unité de temps plus longue.

Par exemple:

  • --timeout=200 forces de votre test de mettre fin quand il court jusqu'à 200 secondes.
  • --timeout=1h force votre test pour mettre fin quand il court jusqu'à une heure.

Par exemple, la commande suivante exécute un test Game Loop qui exécute les boucles 1, 4, 6, 7 et 8 sur un 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

Pour plus d' informations sur la CLI gcloud, consultez la documentation de référence .

Étape 4 (Facultatif): Automatiser futur vous teste la construction

Scripter des commandes gcloud avec Test Lab

Vous pouvez utiliser des scripts shell ou des fichiers batch pour automatiser les commandes de test d'applications mobiles que vous exécuteriez autrement à l'aide de la ligne de commande gcloud. Cet exemple de script bash exécute un XCTest avec un délai d'attente de deux minutes et signale si l'exécution du test s'est terminée avec succès :

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

Codes de sortie de script

Test Lab fournit plusieurs codes de sortie que vous pouvez utiliser pour mieux comprendre les résultats des tests que vous exécutez à l'aide de scripts ou de fichiers batch.

Code de sortie Remarques
0 Toutes les exécutions de test ont réussi.
1 Une panne générale s'est produite. Les causes possibles incluent : un nom de fichier qui n'existe pas ou une erreur HTTP/réseau.
2 Le test s'est terminé car des commandes ou des arguments inconnus ont été fournis.
dix Un ou plusieurs cas de test (classes testées ou méthodes de classe) au sein d'une exécution de test n'ont pas réussi.
15 Firebase Test Lab n'a pas pu déterminer si la matrice de test a réussi ou échoué, en raison d'une erreur inattendue.
19 La matrice de test a été annulée par l'utilisateur.
20 Une erreur d'infrastructure de test s'est produite.

Étape 5: enquête sur les résultats des tests

Lorsque le test démarre, vous recevez un lien vers la page des résultats de test. L'exécution des tests peut prendre plusieurs minutes, en fonction du nombre de configurations différentes que vous avez sélectionnées et de la durée d'expiration du test définie pour vos tests. Une fois vos tests exécutés, vous pouvez consulter les résultats des tests. Voir Analyse des résultats de laboratoire de test Firebase pour en savoir plus sur la façon d'interpréter vos résultats.

L'étape suivante

Lisez la documentation SDK Google Cloud pour explorer les options de tester qui sont généralement disponibles ou en bêta .