Catch up on everything announced at Firebase Summit, and learn how Firebase can help you accelerate app development and run your app with confidence. Learn More

Tester avec la CLI gcloud

Restez organisé à l'aide des collections Enregistrez et classez les contenus selon vos préférences.

Ce guide décrit comment exécuter un test XCTest ou Game Loop à l'aide de la CLI gcloud.

Étape 1 : Configurez votre environnement local du SDK Google Cloud

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

  3. Assurez-vous que votre installation est à jour et inclut la commande gcloud firebase :
          gcloud components update
  4. Connectez-vous à l'interface de ligne de commande gcloud à l'aide de 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

Etape 2 : Exécutez votre test

Exécuter un XCTest

  1. Téléchargez le fichier .zip de votre test en exécutant la commande suivante (si vous n'avez pas encore empaqueté votre application, consultez Empaqueter 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 de test.

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

    gcloud firebase test ios dimension list

    L'orientation de l'écran est un peu plus simple, car 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 les plans tarifaires 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 demander à Test Lab d'exécuter vos tests à l'aide de la firebase test ios run . Pour chaque combinaison de dimensions de test que vous souhaitez tester, incluez un indicateur --device séparé :

    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 prise en charge pour votre test, utilisez l' --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=11.3

Tester les droits spéciaux

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

Notifications push

Pour autoriser les demandes de notification push, les utilisateurs peuvent créer des jetons Web JSON en utilisant la clé de signature privée avec 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 basée sur des jetons aux APN.

Groupes d'applications

Les ID de groupe d'applications sont universellement uniques. Cela signifie que lorsque nous signons à nouveau des applications utilisateur, nous ne pouvons utiliser que l'ID de groupe d'applications associé au compte de développeur Test Lab. Si votre test repose sur des groupes d'applications, votre test échouera.

Exécutez un test de boucle de jeu

Exécutez la gcloud beta firebase test ios run et utilisez les options suivantes pour configurer l'exécution :

Drapeaux pour les tests de boucle de jeu
--type

Obligatoire : spécifie le type de test iOS que vous souhaitez exécuter. Vous pouvez entrer les types de test xctest (par défaut) ou game-loop .

--app

Obligatoire : chemin absolu (GCS ou système de fichiers) vers le fichier IPA de votre application. Cet indicateur n'est valide que lors de l'exécution de tests Game Loop.

--scenario-numbers

Les boucles (c'est-à-dire les scénarios) que vous souhaitez exécuter dans votre application. Vous pouvez entrer une boucle, une liste ou des boucles ou une plage de boucles. La boucle par défaut est 1.

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

--device-model

L'appareil physique sur lequel vous souhaitez exécuter votre test (découvrez les appareils disponibles que vous pouvez utiliser).

--timeout

La durée maximale d'exécution de votre test. Vous pouvez entrer 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 force votre test à se terminer lorsqu'il s'exécute jusqu'à 200 secondes.
  • --timeout=1h force votre test à se terminer lorsqu'il s'exécute 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 l'interface de ligne de commande gcloud, consultez la documentation de référence .

Étape 4 (facultative) : Automatisez les futurs tests que vous créez

Scripter des commandes gcloud avec Test Lab

Vous pouvez utiliser des scripts shell ou des fichiers de commandes 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 indique 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 a été interrompu car des commandes ou des arguments inconnus ont été fournis.
dix Un ou plusieurs cas de test (classes ou méthodes de classe testées) dans une exécution de test ont échoué.
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êter sur les résultats des tests

Lorsque le test démarre, vous recevez un lien vers la page Résultats du test . L'exécution des tests peut prendre un certain nombre de minutes, selon le nombre de configurations différentes que vous avez sélectionnées et 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. Consultez Analyser les résultats du laboratoire de test Firebase pour en savoir plus sur l'interprétation des résultats de vos tests.

L'étape suivante

Lisez la documentation du SDK Google Cloud pour découvrir les options de test généralement disponibles ou en version bêta .