Ce guide explique comment exécuter un test d'instrumentation Android à l'aide de la
gcloud beta device-run CLI et comment trouver vos résultats dans la Google Cloud console. Il
suppose que vous disposez d'un Google Cloud compte et d'un projet.
Pour utiliser cette Google Cloud CLI, vous devez fournir votre Google Cloud ID de projet.
Avant de commencer
Ces étapes supposent que vous avez déjà créé un Google Cloud projet,
suivi les étapes de configuration du guide de démarrage rapide de la plate-forme pour appareils de développement
Quickstart et que vous vous êtes authentifié
auprès de gcloud dans le terminal.
De plus, vous devez disposer d'un test d'instrumentation Android prêt à être exécuté. Pour obtenir des conseils, consultez Créer des tests instrumentés pour obtenir des conseils.
Vous devez également avoir identifié les ID d'appareil sur lesquels vous souhaitez exécuter vos charges de travail. Pour obtenir des instructions, consultez le catalogue d'appareils.
Effectuer un test
Maintenant que vous connaissez les ID des appareils disponibles pour tester votre application, vous pouvez
spécifier des appareils à l'aide de la commande gcloud beta device-run sessions submit
instrumentation et de l'option --device pour exécuter des tests d'instrumentation.
Pour exécuter votre test, exécutez une commande semblable à la suivante, mais avec vos propres ID d'appareil et chemin de test :
gcloud beta device-run sessions submit instrumentation \
--device shiba-34 \
--apps /path/to/app.apk \
--test /path/to/test.apk
Le dossier de rapport de résultats du job se trouve dans un chemin Cloud Storage tel que
gs://<your_project_id>/automation/sessions/session-id/. Consultez la sortie du test pour obtenir le lien, qui ressemble à : https://console.cloud.google.com/storage/browser/your_project_id/automation/sessions/session-id/.
Configurer l'exécution du test
Maintenant que vous avez exécuté un test, explorez quelques options de configuration :
- Pour exécuter les mêmes tests sur plusieurs appareils, fournissez l'option
--deviceplusieurs fois, par exemple--device shiba-34 --device tokay-36. - Vous pouvez éventuellement spécifier un ou plusieurs APK à installer avant d'exécuter vos tests à l'aide de l'option
--apps=path1,path2,...,path_n. L'ordre dans lequel vous spécifiez ces applications correspond à l'ordre dans lequel elles sont installées. - Vous devez spécifier votre APK de test avec l'option
--test. - Lorsque vous spécifiez un chemin local avec les options
--appsou--test, la Google Cloud CLI le copie automatiquement dans votre bucket Cloud Storage sousgs://my-project-id/automation/inputs/date_time_four_chars_suffix/chaque fois que vous exécutez la commande. - Comme l'importation d'APK volumineux peut prendre du temps, vous pouvez référencer directement vos APK à l'aide de leurs chemins
gs://Cloud Storage pour gagner du temps d'importation.
Par défaut, la commande sessions submit instrumentation bloque les résultats de la session, ce qui signifie qu'elle attend la fin de l'exécution du test et génère des résultats semblables à :
Using the default Cloud Storage bucket [gs://<my-project-id>] for input and result files. Will create the bucket if it does not exist.
Uploading [app.apk].
Uploading [test.apk].
Initiated long-running operation [operation-number] to create session.
Creating session [session-id] in location [global].
Result files will be stored at [https://console.cloud.google.com/storage/browser/<my-project-id>/automation/sessions/session-id/].
Waiting for session [session-id] to complete....done.
Session [session-id] finished with result [FAILED].
JOB NAME EXECUTION NAME EXECUTION RESULT
job-000 all FAILED: 2 test cases failed, 5 passed
Pour exécuter la commande de manière asynchrone, incluez l'option --async. Cela permet à la commande de se fermer immédiatement après l'importation de fichiers dans Cloud Storage et l'impression de l'ID d'opération et de l'ID de session. Vous pouvez utiliser la commande d'attente des opérations et l'ID d'opération pour attendre l'exécution. Elle se bloque jusqu'à ce que le job soit terminé :
gcloud beta device-run operations wait your_operation_id
Utiliser le partitionnement
Pour inclure la plate-forme pour appareils de développement 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 pour appareils de développement exécute automatiquement chaque partition en parallèle à l'aide de plusieurs appareils et effectue l'ensemble des tests en moins de temps.
Options de partitionnement
Si vos jobs ne comportent qu'un petit nombre de scénarios de test ou si le temps d'exécution total de tous les scénarios de test n'est pas long, il n'est pas nécessaire d'utiliser le partitionnement. Si vous avez un grand nombre de scénarios de test ou si le temps d'exécution total de tous leurs scénarios de test est long, envisagez d'utiliser le partitionnement.
La plate-forme pour appareils de développement est compatible avec le partitionnement intelligent et uniforme. Lorsque vous décidez de partitionner vos tests, tenez compte des options suivantes :
Si tous les scénarios de test prennent un temps similaire, utilisez le partitionnement uniforme en divisant tous les scénarios de test en
npartitions.Lorsque le temps d'exécution des différents scénarios de test varie considérablement, utilisez le partitionnement intelligent. La plate-forme pour appareils de développement utilise l'historique du temps d'exécution des tests pour créer différentes partitions et tente de terminer toutes les partitions dans une durée similaire.
Partitionnement uniforme
Pour partitionner vos tests avec le partitionnement uniforme, incluez les options --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 \
--device tokay-36 \
--sharding-option=uniform \
--uniform-sharding-count=2
Vous devriez voir une sortie 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.
Les deux jobs s'affichent séparément dans la sortie finale de la commande une fois l'opération terminée :
JOB NAME EXECUTION NAME EXECUTION RESULT
job-000 execution-000 PASSED
job-001 execution-000 PASSED
Partitionnement intelligent
Pour partitionner vos tests avec le partitionnement intelligent, incluez les options --sharding-option=smart,
--smart-sharding-max-shard-count=, --smart-sharding-target-duration= (en
minutes ou 1h) 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 \
--device shiba-35 \
--device 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 une sortie finale 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 options de partitionnement intelligent utilisées 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 cette option n'est pas définie ou 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-max-shard-count: spécifie le nombre maximal de partitions à créer. Le nombre d'appareils spécifié dans l'option--devicedoit être inférieur ou égal à cette valeur.--smart-sharding-target-duration=SMART_SHARDING_TARGET_DURATION: spécifiez le temps d'exécution cible (par exemple, 2 m, 10 m, 1 h) par partition pour le partitionnement intelligent. La plage valide est comprise entre 2 m et 1 h. 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 Google Cloud bucket Storage spécifié par--bucket-namesous lesmart-sharding/répertoire. Si le fichier n'existe pas, il est créé automatiquement. Sinon, son contenu est mis à jour une fois la session terminée.
Explorer et gérer l'exécution de votre test
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 l'opération terminée :
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 Google Cloud console. Exemple :
Session [session-id] finished with result [FAILED].
Result files are stored at [https://console.cloud.google.com/storage/browser/your_project_id-devicerun/automation/sessions/session-id/].
JOB NAME EXECUTION NAME EXECUTION RESULT
job-000 all FAILED: 2 test cases failed, 5 passed
Exécutez la commande suivante pour afficher la liste de toutes vos sessions en cours d'exécution et terminées :
gcloud beta device-run sessions list
Recevez une sortie contenant la liste des sessions de votre projet, semblable à :
SESSION_ID START_TIME STATE
session-4825e153 2026-07-28T16:38:43.155Z DONE
session-813ca602 2026-07-28T22:40:32.415Z DONE
Pour annuler une session en cours d'exécution, exécutez cette commande avec votre ID de session :
gcloud beta device-run sessions cancel your_session_id
Étape suivante
Ensuite, recherchez et analysez les journaux.