Ti diamo il benvenuto in Esecuzione di test su dispositivi della piattaforma Developer Device, che ti consente di eseguire test su dispositivi Android fisici e virtuali e su dispositivi iOS fisici nel cloud. Questa pagina descrive i punti in comune tra l'esecuzione di test Android e iOS. Consulta Device Run per Android e Device Run per iOS per i passaggi specifici per la piattaforma.
Per utilizzare questa Google Cloud CLI, devi fornire l'ID del tuo Google Cloud progetto. Per un riepilogo dei comandi, consulta: gcloud beta
device-run
Tieni presente che questi flag sono obbligatori:
- Dispositivo: specifica un dispositivo utilizzando
--device:--device shiba-35o--device iphonese3-18-4 - Test: specifica l'APK o l'IPA di test utilizzando
--test:--test /path/to/test.apko--test /path/to/test.ipa
Le seguenti opzioni di configurazione sono comuni ai test Android e iOS.
Percorsi Cloud Storage di input e output
- Bucket Cloud Storage personalizzato: puoi specificare un bucket Cloud Storage personalizzato per input e output:
--bucket-name=my-custom-bucketSe non specifichi un bucket Cloud Storage utilizzando il flag--bucket-name=, Google Cloud CLI utilizzerà un bucket predefinito denominatoPROJECT_ID-devicerun. - File di input: quando specifichi un percorso locale con i flag
--test,--additional-appso--xctestrun-file, Google Cloud CLI lo copia automaticamente nel bucket Cloud Storage ings://BUCKET_NAME/automation/inputs/DATE_TIME_FOUR_CHARS_SUFFIX/ogni volta che esegui il comando, doveBUCKET_NAMEè impostato per impostazione predefinita suPROJECT_ID-devicerun. - Percorsi Cloud: poiché il caricamento di file di grandi dimensioni può richiedere molto tempo, puoi
farvi riferimento direttamente utilizzando i percorsi
gs://di Cloud Storage per risparmiare tempo di caricamento. - File dei risultati: gli artefatti di output vengono caricati nel bucket Cloud Storage in
gs://BUCKET_NAME/automation/sessions/session-[SESSION_ID]/.
Esecuzioni sincrone e asincrone
Per impostazione predefinita, il comando di invio è bloccante (sincrono). Attenderà il completamento del test e stamperà una tabella riepilogativa dei risultati.
Per inviare la sessione e tornare immediatamente dopo aver caricato i file in Cloud Storage, aggiungi il flag --async:
Android
gcloud beta device-run sessions submit instrumentation \
--device shiba-35 \
--test ./ANDROID_TESTS.apk \
--async
iOS
gcloud beta device-run sessions submit xctest \
--device iphonese3-18-4 \
--test ./IOS_TESTS.zip \
--async
Restituisce immediatamente un ID sessione. Puoi quindi attendere che venga eseguito utilizzando il comando
sessions wait:
gcloud beta device-run sessions wait SESSION_ID
Il comando verrà bloccato fino al completamento del job.
Più dispositivi
Per eseguire gli stessi test su più dispositivi, fornisci il flag --device con
più ID dispositivo separati da virgole o con più flag --device, ognuno
che specifica un ID dispositivo distinto.
Android
gcloud beta device-run sessions submit instrumentation \
--device shiba-34,tokay-36 \
--test ./ANDROID_TESTS.apk
Oppure:
gcloud beta device-run sessions submit instrumentation \
--device shiba-34 \
--device tokay-36 \
--test ./ANDROID_TESTS.apk
iOS
gcloud beta device-run sessions submit xctest \
--device iphonese3-18-4,iphonese3-26-3 \
--test ./IOS_TESTS.zip
Oppure:
gcloud beta device-run sessions submit xctest \
--device iphonese3-18-4 \
--device iphonese3-26-3 \
--test ./IOS_TESTS.zip
Timeout test
Limita la durata dell'esecuzione del test:
Android
gcloud beta device-run sessions submit instrumentation \
--device shiba-35 \
--test ./ANDROID_TESTS.apk \
--instrumentation-timeout=10m
iOS
gcloud beta device-run sessions submit xctest \
--device iphonese3-18-4 \
--test ./IOS_TESTS.zip \
--xctest-timeout=10m
L'intervallo valido è compreso tra 1m e 1h e il valore predefinito è 5m.
Versioni software
Scopri e utilizza i pacchetti software e le versioni disponibili di AndroidX Test Orchestrator e Apple Xcode e ispeziona i relativi cicli di vita, le versioni supportate e i metadati prima di configurare le esecuzioni dei test.
Innanzitutto, elenca tutti i pacchetti software disponibili e le relative versioni:
gcloud beta device-run software-versions list
Ricezione di un output simile a:
ID NAME SOFTWARE_TYPE VERSION STATE IS_DEFAULT
androidx-test-orchestrator-1-4-1 AndroidX Test Orchestrator 1.4.1 ANDROIDX_TEST_ORCHESTRATOR 1.4.1 ACTIVE True
androidx-test-orchestrator-1-6-1 AndroidX Test Orchestrator 1.6.1 ANDROIDX_TEST_ORCHESTRATOR 1.6.1 ACTIVE
xcode-16-4 Xcode 16.4 XCODE 16.4 ACTIVE
xcode-26-2 Xcode 26.2 XCODE 26.2 ACTIVE True
Quindi, descrivi un pacchetto specifico utilizzando il relativo ID risorsa esatto dall'elenco:
Android
gcloud beta device-run software-versions describe androidx-test-orchestrator-1-4-1
iOS
gcloud beta device-run software-versions describe xcode-16-4
Ricezione di un output simile a:
Android
id: androidx-test-orchestrator-1-4-1
isDefault: true
lifecycle:
state: ACTIVE
name: AndroidX Test Orchestrator 1.4.1
softwareType: ANDROIDX_TEST_ORCHESTRATOR
version: 1.4.1
iOS
id: xcode-16-4
lifecycle:
state: ACTIVE
name: Xcode 16.4
softwareType: XCODE
supportedIosVersions:
- '15.0'
- '15.1'
- '15.2'
- '15.4'
- '15.7'
- '16.0'
- '16.1'
- '16.2'
- '16.3'
- '16.5'
- '16.6'
- '18.0'
- '18.3'
- '18.4'
version: '16.4'
Ora che sai quali versioni del software sono disponibili, puoi utilizzarle nei test con i flag --orchestrator-version o --xcode-version, come segue:
Android
gcloud beta device-run sessions submit instrumentation \
--device shiba-35 \
--test ./ANDROID_TESTS.apk \
--orchestrator-version=1.4.1
Per saperne di più, consulta Attivare Orchestrator.
iOS
gcloud beta device-run sessions submit xctest \
--device iphonese3-18-4 \
--test ./IOS_TESTS.zip \
--xcode-version=16.4
Per saperne di più, consulta Device Run per iOS.
Convalida dell'input
Developer Device Platform tenta di convalidare gli input, inclusi gli artefatti, e restituisce un ERROR anziché PASSED o FAILED quando rileva un input errato:
Session [session-94b57778] finished with result [ERROR].
JOB NAME EXECUTION NAME EXECUTION RESULT
job-000 execution-000 ERROR
Ora aggiungi --full al comando sessions describe per visualizzare ulteriori dettagli sulla sessione:
gcloud beta device-run sessions describe --full session-94b57778
che produce un output simile al seguente:
name: projects/user-test1/locations/global/sessions/session-94b57778
sessionConfig:
displayName: instrumentation-session
jobConfigs:
- action:
androidInstrumentationTest:
testInstallable:
files:
- gcsInputFile:
path: gs://user-test1-devicerun/automation/inputs/2026-09-16_18:55.17372947_EECF/my-test.apk
allocationConfig:
deviceConfigs:
- actions:
- androidLogcat: {}
requirement:
deviceId: mediumphone-arm-34
displayName: job-000
outputDirectoryConfig:
gcsOutputDirectory:
path: gs://user-test1-devicerun/automation/sessions
sessionReport:
endTime: '2026-09-16T18:55:49.721Z'
id: ed681f23-669b-4464-8a93-b28456e58136
jobReports:
- displayName: job-000
endTime: '2026-09-16T18:55:45.839Z'
executionReports:
- displayName: execution-000
endTime: '2026-09-16T18:55:46.694Z'
id: ce370173-af94-4dd7-acc6-0863e4d2e9ec
result:
cause:
summary:
message: The instrumentation target package does not match any of the
installable packages.
reason: INSTRUMENTATION_TARGET_MISMATCH
type: CUSTOMER
resultType: ERROR
startTime: '1970-01-01T00:00:00Z'
status:
statusType: PENDING
id: 953b5106-3c20-40f0-aceb-18af89cd1b83
result:
cause:
summary:
message: The instrumentation target package does not match any of the installable
packages.
reason: INSTRUMENTATION_TARGET_MISMATCH
type: CUSTOMER
resultType: ERROR
startTime: '2026-09-16T18:55:31.651Z'
status:
statusType: DONE
result:
resultType: ERROR
startTime: '2026-09-16T18:55:24.442Z'
status:
statusType: DONE
Passaggi successivi
Esegui un test Android o esegui un test iOS con la piattaforma del dispositivo per sviluppatori.