Questa guida descrive come eseguire un test di strumentazione Android utilizzando l'interfaccia a riga di comando
gcloud beta device-run e trovare i risultati nella Google Cloud console. Si
presuppone che tu abbia un Google Cloud account e un progetto.
Per utilizzare questa Google Cloud CLI, dovrai fornire l'ID Google Cloud progetto. Consulta gcloud beta device-run per un
riepilogo dei comandi.
Prima di iniziare
Questi passaggi presuppongono che tu abbia già creato un Google Cloud progetto,
completato i passaggi di configurazione nella piattaforma per dispositivi degli sviluppatori
Guida rapida e autenticato
con gcloud nel terminale.
Inoltre, dovrai avere un test di strumentazione Android pronto per l'esecuzione. Per indicazioni, consulta Creare test strumentati per guidance.
Inoltre, dovresti aver identificato gli ID dispositivo su cui vuoi eseguire i carichi di lavoro. Per istruzioni, consulta il catalogo dei dispositivi.
Esegui un test
Ora che conosci gli ID dei dispositivi disponibili per testare la tua app, puoi
specificare i dispositivi utilizzando il comando gcloud beta device-run sessions submit
instrumentation e il flag --device per eseguire i test di strumentazione.
Per eseguire il test, esegui un comando simile al seguente, ma con i tuoi ID dispositivo e il percorso di test:
gcloud beta device-run sessions submit instrumentation \
--device shiba-34 \
--apps /path/to/app.apk \
--test /path/to/test.apk
La cartella del report dei risultati del job è disponibile in un percorso di Cloud Storage, ad esempio
gs://<your_project_id>/automation/sessions/session-id/. Consulta l'output del test per il link, simile a: https://console.cloud.google.com/storage/browser/your_project_id/automation/sessions/session-id/.
Configura l'esecuzione del test
Ora che hai eseguito un test, esplora alcune opzioni di configurazione:
- Per eseguire gli stessi test su più dispositivi, fornisci il flag
--devicecon più ID dispositivo separati da virgole, ad esempio--device shiba-34,tokay-36, o con più flag--device, ognuno che specifica un ID dispositivo distinto (ad es.--device shiba-34 --device tokay-36). - Facoltativamente, puoi specificare uno o più APK da installare prima di eseguire i test utilizzando il flag
--apps=path1,path2,...,path_n. L'ordine specificato è l'ordine in cui vengono installate queste app. - Devi specificare l'APK di test con il flag
--test. - Quando specifichi un percorso locale con i flag
--appso--test, Google Cloud CLI CLI lo copia automaticamente nel bucket Cloud Storage ings://my-project-id/automation/inputs/date_time_four_chars_suffix/ogni volta che esegui il comando. - Poiché il caricamento di APK di grandi dimensioni può richiedere molto tempo, puoi fare riferimento direttamente agli APK utilizzando i percorsi
gs://di Cloud Storage per risparmiare tempo di caricamento.
Per impostazione predefinita, il comando sessions submit instrumentation blocca i risultati della sessione, il che significa che attenderà il completamento dell'esecuzione del test e genererà risultati simili a:
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
Per eseguire il comando in modo asincrono, includi il flag --async. In questo modo, il comando può uscire immediatamente dopo aver caricato i file in Cloud Storage e stampato l'ID operazione e l'ID sessione. Puoi utilizzare il comando operations wait e l'ID operazione per attendere l'esecuzione. Si bloccherà fino al completamento del job:
gcloud beta device-run operations wait your_operation_id
Utilizza lo sharding
Per includere la piattaforma per dispositivi degli sviluppatori in un flusso di lavoro di integrazione continua e distribuzione continua (CI/CD), ti consigliamo di utilizzare lo sharding dei test. Lo sharding dei test divide un insieme di test in sottogruppi (shard) che vengono eseguiti separatamente in modo isolato. La piattaforma per dispositivi degli sviluppatori esegue automaticamente ogni shard in parallelo utilizzando più dispositivi e completa l'intero insieme di test in meno tempo.
Opzioni di sharding
Se i job hanno solo un numero ridotto di test case o il tempo di esecuzione totale di tutti i test case non è lungo, non è necessario utilizzare lo sharding. Se hai un numero elevato di test case o il tempo di esecuzione totale di tutti i test case è lungo, valuta la possibilità di utilizzare lo sharding.
La piattaforma per dispositivi degli sviluppatori supporta sia lo sharding intelligente che quello uniforme. Quando decidi come eseguire lo sharding dei test, considera le seguenti opzioni:
Se tutti i test case richiedono un tempo simile, utilizza lo sharding uniforme dividendo tutti i test case in
nshard.Quando il tempo di esecuzione di diversi test case varia notevolmente, utilizza lo sharding intelligente. La piattaforma per dispositivi degli sviluppatori utilizza il tempo di esecuzione dei test storici per creare shard diversi e tenta di completare tutti gli shard in una durata simile.
Sharding uniforme
Per eseguire lo sharding dei test con lo sharding uniforme, includi i flag --sharding-option=uniform e --uniform-sharding-count= nel comando sessions submit instrumentation come segue:
gcloud beta device-run sessions submit instrumentation \
--test path/to/test.apk \
--device shiba-34,tokay-36 \
--sharding-option=uniform \
--uniform-sharding-count=2
Dovresti visualizzare un output che indica Job status: 2 running. Il servizio crea due job, uno per ogni dispositivo. Poiché gli input di entrambi i job sono identici, il servizio centralizza la convalida, eseguendola una sola volta.
Al termine, nell'output finale del comando verranno visualizzati i due job elencati separatamente:
JOB NAME EXECUTION NAME EXECUTION RESULT
job-000 execution-000 PASSED
job-001 execution-000 PASSED
Sharding intelligente
Per eseguire lo sharding dei test con lo sharding intelligente, includi i flag --sharding-option=smart,
--smart-sharding-max-shard-count=, --smart-sharding-target-duration= (in
minuti o 1h) e --smart-sharding-record-name= nel comando sessions
submit instrumentation come segue:
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
Dovresti visualizzare un output finale che indica l'esecuzione di tre job:
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
Ecco un riepilogo dei flag di sharding intelligente utilizzati qui:
--smart-sharding-max-shard-count=SMART_SHARDING_MAX_SHARD_COUNT- Specifica il numero massimo di shard da creare per lo sharding intelligente. Se non viene impostato o viene impostato su 0, vengono utilizzati i limiti massimi definiti dal sistema. L'intervallo valido è compreso tra 0 e 20 per i dispositivi fisici e tra 0 e 200 per i dispositivi virtuali.--smart-sharding-target-duration=SMART_SHARDING_TARGET_DURATION- Specifica il tempo di esecuzione target (ad es. 2m, 10m, 1h) per shard per lo sharding intelligente. L'intervallo valido è compreso tra 2m e 1h. Obbligatorio quando--sharding-option=smart.--smart-sharding-record-name=SMART_SHARDING_RECORD_NAME- Specifica il nome del file di record di sharding intelligente, escludendo l'estensione del file. Obbligatorio quando --sharding-option=smart. Questo file YAML si trova nel Google Cloud bucket Storage specificato da--bucket-namenellasmart-sharding/directory. Se il file non esiste, verrà creato automaticamente; in caso contrario, i contenuti verranno aggiornati al termine della sessione.
Esplora e gestisci l'esecuzione del test
Per la modalità asincrona e sincrona del comando sessions submit instrumentation, puoi utilizzare il comando sessions describe per eseguire una query sullo stato del job durante l'esecuzione o ottenere il risultato al termine:
gcloud beta device-run sessions describe <session_id>
L'output riepiloga i risultati dei test e fornisce i link ai risultati nella Google Cloud console. Ad esempio:
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
Utilizza il seguente comando per elencare tutte le sessioni in esecuzione e completate:
gcloud beta device-run sessions list
Ricevi un output contenente l'elenco delle sessioni nel tuo progetto, simile a:
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
Il comando di elenco sessions supporta tutte le opzioni dei flag gcloud standard. Ad esempio:
gcloud beta device-run sessions list --limit 5
Che genera risultati simili a:
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
In alternativa, per trovare tutte le sessioni in esecuzione, esegui:
gcloud beta device-run sessions list --filter RUNNING
Supponendo che tu abbia sessioni in esecuzione, vedrai risultati simili a:
SESSION_ID START_TIME STATE
session-d7ff8b81 RUNNING
In caso contrario, riceverai Listed 0 items.
Per annullare una sessione in esecuzione, esegui questo comando con l'ID sessione:
gcloud beta device-run sessions cancel your_session_id
Il comando restituisce immediatamente un risultato, poiché la sessione viene contrassegnata solo per l'annullamento. L'annullamento avviene in modo asincrono nel backend.
Se la sessione è già terminata, viene stampato solo lo stato attuale. La richiesta di annullamento per una sessione terminata non è un errore.
Passaggi successivi
Il passaggio successivo consiste nel trovare e analizzare i log.