Tester avec la Google Cloud CLI

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

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

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

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

Étape 2: Exécutez le test

Exécuter un XCTest

  1. Importez 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 les dimensions de votre test.

    Test Lab vous permet d'exécuter des tests sur différents appareils, versions d'iOS et écrans les orientations et les paramètres régionaux. Ces configurations sont appelées dimensions de test. Afficher les options pour chaque dimension (par exemple, versions Xcode compatibles avec la version iOS de l'appareil), remplacez models, versions ou locales pour dimension dans la commande suivante:

    gcloud firebase test ios dimension list

    L'orientation de l'écran est un peu plus simple, car les seules options disponibles sont portrait et landscape

    Parcourez la liste des dimensions de test et sélectionnez quelques combinaisons à tester. exécuter votre test. Consultez la page Forfaits pour découvrir les le nombre maximal 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 commande firebase test ios run. Pour chaque combinaison de dimensions de test que vous souhaitez tester, incluez un indicateur --device distinct:

    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 et pour lequel le test a été créé et la version Xcode par défaut utilisée par Test Lab. Pour spécifier une version Xcode compatible pour votre test, utilisez l'indicateur --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

    Pour vous aider à identifier et à localiser vos matrices de test dans le Firebase, vous avez la possibilité d'étiqueter votre matrice de test à l'aide de la méthode --client-details matrixLabel="<label>" dans l'exemple suivant:

    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"

Tester les droits d'accès spéciaux

Pour tester les droits d'accès qui nécessitent un ID d'application explicite, procédez comme suit : en définissant l'indicateur --test-special-entitlements. Test Lab signe à nouveau l'application avec un nouvel identifiant de bundle pour prendre en charge les droits d'accès spéciaux. Assurez-vous donc qu'aucune ressource de votre fichier ZIP ne contient de références directes à l'identifiant de bundle de l'application.

Droits d'accès compatibles :
  1. Notifications push apns-environment
  2. VPN personnel com.apple.developer.networking.vpn.api
Notifications push

Pour autoriser les demandes de notification push, les utilisateurs peuvent créer des fichiers JSON Web à l'aide de la clé privée clé de signature avec l'ID de clé C7FD9DJAA8 et l'ID d'équipe 9CKCGNNUQN. Les jetons générés seraient valides heure et doivent être actualisés toutes les 60 minutes. Lire la suite sur Établissement d'une connexion au service APNs basée sur des jetons.

Groupes d'applications

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

Exécuter un test de boucle de jeu

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

Indicateurs pour les tests de boucle de jeu
--type

Obligatoire: spécifie 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

Obligatoire : chemin d'accès absolu (GCS ou système de fichiers) au fichier IPA de votre application. Cet indicateur n'est valide que lors de l'exécution de tests de boucle de jeu.

--scenario-numbers

Les boucles (ou 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 valeur par défaut de la boucle est de 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 le test (Découvrez les appareils disponibles que vous pouvez utiliser).

--timeout

Durée maximale du test. Vous pouvez saisir un nombre entier pour la durée en secondes, ou un nombre entier et une énumération pour représenter la durée en tant qu'unité de temps plus longue.

Exemple :

  • --timeout=200 force la fin de votre test lorsqu'il s'exécute pendant 200 secondes.
  • --timeout=1h force l'arrêt de votre test lorsqu'il s'exécute pendant une heure.

Par exemple, la commande suivante exécute un test de boucle de jeu qui exécute des 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 en savoir plus sur la gcloud CLI, consultez la documentation de référence.

Étape 3 (facultative): Automatiser les futurs tests que vous créez

Créer des scripts pour les 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 bash exécute un XCTest avec un délai d'inactivité de deux minutes et indique si le test est exécuté 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 des scripts

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

Exit code Remarques
0 Toutes les exécutions de test ont réussi.
1 Une erreur générale s'est produite. Les causes possibles sont les suivantes : 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.
10 Un ou plusieurs scénarios de test (classes ou méthodes de classe testées) dans un test l'exécution a échoué.
15 Firebase Test Lab n'a pas pu déterminer si la matrice de test a réussi ou 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 4: Examinez les résultats du test

Lorsque le test commence, vous recevez un lien vers la page Résultats du test. Les tests peuvent son exécution prend un certain nombre de minutes, en fonction du nombre que vous avez sélectionnées et le délai avant expiration du test défini pour votre tests. Une fois vos tests exécutés, vous pouvez en examiner les résultats. Voir Analyser les résultats de Firebase Test Lab pour en savoir plus comment interpréter les résultats de vos tests.

Étape suivante

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