Ce guide explique comment exécuter un test d'instrumentation Android à l'aide de la CLI gcloud beta device-run et comment trouver vos résultats dans la console Google Cloud . Il suppose que vous disposez d'un compte Google Cloud et d'un projet.
Pour utiliser cette Google Cloud CLI, vous devrez fournir l'ID de votre projet Google Cloud . Pour obtenir un récapitulatif des commandes, consultez gcloud beta device-run.
Avant de commencer
Ces étapes supposent que vous avez déjà :
- Vous avez créé un projet Google Cloud .
- Configurez la plate-forme Developer Device Platform en suivant le guide de démarrage rapide.
- Authentification avec
gclouddans le terminal. - Consultez la présentation de Device Run pour obtenir des informations générales.
- Vous avez créé un test instrumenté pour Android.
Étape 1 : Choisir des appareils
À l'aide de la CLI device-run, les tests Android peuvent être exécutés sur les appareils physiques et virtuels disponibles. Pour afficher la liste complète des appareils disponibles, consultez le catalogue interactif des appareils ou exécutez la commande suivante :
gcloud beta device-run devices list
Exemple de résultat :
ID MAKE NAME MODEL FORM OS_VERSION CAPACITY AVAILABILITY PRODUCTS
tegu-35 Google Pixel 9a tegu PHYSICAL 35 MEDIUM LOW Automation, Streaming
tokay-34 Google Pixel 9 tokay PHYSICAL 34 HIGH HIGH Automation, Streaming
Consultez le catalogue d'appareils pour découvrir comment filtrer cette liste. Pour cibler un appareil spécifique pour l'exécution de vos tests, utilisez son ID correspondant (par exemple, tegu-35) dans la commande d'envoi.
Étape 2 : Exécuter votre test d'instrumentation
Notez que ces options sont obligatoires pour les tests Android :
- Appareil : spécifiez un appareil à l'aide de
--device:--device shiba-35 - Test : spécifiez l'APK de test à l'aide de
--test:--test /path/to/test.apk
Pour exécuter votre test, émettez une commande semblable à la suivante, mais avec vos propres ID d'appareil et chemin d'accès au test :
gcloud beta device-run sessions submit instrumentation \
--device shiba-34 \
--apps /path/to/app.apk \
--test /path/to/test.apk
Le dossier du rapport de résultats du job se trouve dans un chemin d'accès Cloud Storage tel que gs://BUCKET_NAME/automation/sessions/SESSION_ID/. Consultez le résultat du test pour le lien, qui ressemble à ceci : https://console.cloud.google.com/storage/browser/BUCKET_NAME/automation/sessions/SESSION_ID/.
Étape 3 : Configurer l'exécution du test
Maintenant que vous avez exécuté un test, explorez certaines options de configuration :
- Plusieurs appareils : pour exécuter les mêmes tests sur plusieurs appareils, fournissez l'indicateur
--deviceavec plusieurs ID d'appareil séparés par des virgules, comme--device shiba-34,tokay-36, ou avec plusieurs indicateurs--device, chacun spécifiant un ID d'appareil distinct (par exemple,--device shiba-34 --device tokay-36). - Applications supplémentaires : vous pouvez éventuellement spécifier un ou plusieurs APK à installer avant d'exécuter vos tests à l'aide de l'indicateur
--apps=path1,path2,...,path_n. L'ordre que vous spécifiez correspond à l'ordre dans lequel ces applications sont installées. - Délai d'expiration du test : limitez la durée d'exécution :
--instrumentation-timeout=10m(la plage de valeurs autorisée est comprise entre1met1h, et la valeur par défaut est5m). - Bucket Cloud Storage personnalisé : si vous ne spécifiez pas de bucket Cloud Storage à l'aide du flag
--bucket-name=, la Google Cloud CLI utilisera un bucket par défaut nomméPROJECT_ID-devicerun. - Nouvelles tentatives pour les tests instables : définissez le nombre maximal de tentatives pour relancer les tests instables :
--flaky-test-attempts=3(la valeur par défaut est de 1 tentative).
Étape 4 : Utiliser le sharding
Pour inclure la plate-forme Developer Device dans un workflow d'intégration et de livraison continues (CI/CD), vous devez envisager de partitionner vos tests. Le partitionnement des tests divise un ensemble de tests en sous-groupes (partitions) qui s'exécutent séparément de manière isolée. La plate-forme Developer Device exécute automatiquement chaque shard en parallèle à l'aide de plusieurs appareils et termine l'ensemble des tests en moins de temps.
Étape 4.1. Choisir une option de partitionnement
Si vos jobs ne comportent qu'un petit nombre de cas de test ou si la durée d'exécution totale de tous les cas de test n'est pas longue, il n'est pas nécessaire d'utiliser le partitionnement. Si vous avez un grand nombre de scénarios de test ou si la durée d'exécution totale de tous vos scénarios de test est longue, envisagez d'utiliser le partitionnement.
La plate-forme Developer Device est compatible avec le partitionnement intelligent et uniforme. Lorsque vous décidez comment partitionner vos tests, tenez compte des options suivantes :
Si tous les cas de test prennent un temps similaire, utilisez le partitionnement uniforme en divisant tous les cas de test en
npartitions.Utilisez le partitionnement intelligent lorsque le temps d'exécution de différents cas de test varie considérablement. La plate-forme Developer Device utilise l'historique du temps d'exécution des tests pour créer différents shards et tente de terminer tous les shards dans une durée similaire.
Segmentation uniforme
Pour partitionner vos tests avec un partitionnement uniforme, incluez les indicateurs --sharding-option=uniform et --uniform-sharding-count= dans la commande sessions submit instrumentation comme suit :
gcloud beta device-run sessions submit instrumentation \
--test path/to/test.apk \
--device shiba-34,tokay-36 \
--sharding-option=uniform \
--uniform-sharding-count=2
Vous devriez obtenir un résultat indiquant Job status: 2 running. Le service crée deux jobs, un pour chaque appareil. Étant donné que les entrées des deux jobs sont identiques, le service centralise la validation et ne l'effectue qu'une seule fois.
Une fois la commande terminée, les deux jobs s'affichent séparément dans le résultat final :
JOB NAME EXECUTION NAME EXECUTION RESULT
job-000 execution-000 PASSED
job-001 execution-000 PASSED
Partitionnement intelligent
Pour fragmenter vos tests avec le smart sharding, incluez les indicateurs --sharding-option=smart, --smart-sharding-max-shard-count=, --smart-sharding-target-duration= (en minutes ou en heures) et --smart-sharding-record-name= dans la commande sessions
submit instrumentation comme suit :
gcloud beta device-run sessions submit instrumentation \
--test path/to/test.apk \
--device shiba-34,shiba-35,tokay-36 \
--sharding-option=smart \
--smart-sharding-max-shard-count=3 \
--smart-sharding-target-duration=5m \
--smart-sharding-record-name=test.yaml
Vous devriez voir un résultat final indiquant que trois jobs ont été exécutés :
Session [session-3cd0564a] finished with result [ERROR].
JOB NAME EXECUTION NAME EXECUTION RESULT
job-000 execution-000 PASSED
job-001 execution-000 PASSED
job-002 execution-000 PASSED
Voici un récapitulatif des indicateurs de sharding intelligent utilisés ici :
--smart-sharding-max-shard-count=SMART_SHARDING_MAX_SHARD_COUNT: spécifiez le nombre maximal de partitions à créer pour le partitionnement intelligent. Si elle n'est pas définie ou si elle est définie sur 0, les limites maximales définies par le système sont utilisées. La plage valide est comprise entre 0 et 20 pour les appareils physiques, et entre 0 et 200 pour les appareils virtuels.--smart-sharding-target-duration=SMART_SHARDING_TARGET_DURATION: spécifiez le temps d'exécution cible (par exemple, 2m, 10m, 1h) par shard pour le sharding intelligent. La plage de valeurs autorisée est comprise entre 2 minutes et 1 heure. Obligatoire lorsque--sharding-option=smart.--smart-sharding-record-name=SMART_SHARDING_RECORD_NAME: spécifiez le nom du fichier d'enregistrement du partitionnement intelligent, sans l'extension de fichier. Obligatoire lorsque --sharding-option=smart. Ce fichier YAML se trouve dans le bucket Storage Google Cloudspécifié par--bucket-namedans le répertoiresmart-sharding/. Si le fichier n'existe pas, il sera créé automatiquement. Sinon, son contenu sera mis à jour à la fin de la session.
Étape 5 : Explorer et gérer votre série de tests
Pour les modes asynchrone et synchrone de la commande sessions submit instrumentation, vous pouvez utiliser la commande sessions describe pour interroger l'état du job pendant l'exécution ou obtenir le résultat une fois qu'il est terminé :
gcloud beta device-run sessions describe SESSION_ID
La sortie récapitule les résultats des tests et fournit des liens vers les résultats dans la console Google Cloud . Exemple :
Session SESSION_ID finished with result [FAILED].
Result files are stored at [https://console.cloud.google.com/storage/browser/BUCKET_NAME/automation/sessions/SESSION_ID/].
JOB NAME EXECUTION NAME EXECUTION RESULT
job-000 all FAILED: 2 test cases failed, 5 passed
Utilisez la commande suivante pour lister toutes vos sessions en cours et terminées :
gcloud beta device-run sessions list
Vous recevrez un résultat contenant la liste des sessions de votre projet, qui ressemblera à ceci :
SESSION_ID START_TIME STATE
session-4825e153 2026-07-28T16:38:43.155Z DONE
session-813ca602 2026-07-28T22:40:32.415Z DONE
session-67cd0570 2026-07-16T08:25:55.474Z DONE
session-17cc299c 2026-07-14T14:31:33.649Z DONE
session-911d0763 2026-07-09T00:39:02.051Z DONE
session-4e943fea 2026-07-15T23:08:32.252Z DONE
session-0132e458 2026-08-20T18:33:19.751Z DONE
session-1077f07b 2026-07-28T22:35:43.848Z DONE
session-71b054c6 2026-07-15T01:15:41.643Z DONE
session-4f8b2e45 2026-08-06T23:11:56.161Z DONE
La commande sessions list est compatible avec toutes les options standards des indicateurs Google Cloud CLI. Exemple :
gcloud beta device-run sessions list --limit 5
Les résultats ressemblent à ce qui suit :
SESSION_ID START_TIME STATE
session-4825e153 2026-07-28T16:38:43.155Z DONE
session-813ca602 2026-07-28T22:40:32.415Z DONE
93ec2df2-d5bf-4c36-b7f7-c2a4fb0dc3ce 2026-07-03T05:10:58.015Z DONE
session-67cd0570 2026-07-16T08:25:55.474Z DONE
session-17cc299c 2026-07-14T14:31:33.649Z DONE
Pour trouver toutes les sessions en cours d'exécution, exécutez la commande suivante :
gcloud beta device-run sessions list --filter RUNNING
Si vous avez des sessions en cours d'exécution, vous verrez des résultats semblables à ceux-ci :
SESSION_ID START_TIME STATE
session-d7ff8b81 RUNNING
Sinon, vous recevrez Listed 0 items..
Pour annuler une session en cours d'exécution, exécutez cette commande avec votre ID de session :
gcloud beta device-run sessions cancel SESSION_ID
La commande répond immédiatement, car la session est uniquement marquée comme devant être annulée. L'annulation s'effectue de manière asynchrone dans le backend.
Si la session est déjà terminée, seul l'état actuel est imprimé. Demander l'annulation d'une session terminée n'est pas une erreur.
Étapes suivantes
Ensuite, recherchez et analysez les journaux.