Panoramica dell'esecuzione del dispositivo della piattaforma del dispositivo per sviluppatori

Ti diamo il benvenuto in Developer Device Platform Device Run, 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.

Se esegui la migrazione da Firebase Test Lab a Developer Device Platform, consulta la nostra guida alla migrazione, la traduzione di comandi e flag e la skill di migrazione per gli agenti di AI.

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-35 o --device iphonese3-18-4
  • Test: specifica l'APK o l'IPA di test utilizzando --test: --test /path/to/test.apk o --test /path/to/test.ipa

Le seguenti opzioni di configurazione sono comuni ai test Android e iOS.

Percorsi di input e output di Cloud Storage

  • Bucket Cloud Storage personalizzato: puoi specificare un bucket Cloud Storage personalizzato per input e output: --bucket-name=my-custom-bucket Se non specifichi un bucket Cloud Storage utilizzando il flag --bucket-name=, Google Cloud CLI utilizzerà un bucket predefinito denominato PROJECT_ID-devicerun.
  • File di input: quando specifichi un percorso locale con i flag --test, --additional-apps o --xctestrun-file, Google Cloud CLI lo copia automaticamente nel bucket Cloud Storage in gs://BUCKET_NAME/automation/inputs/DATE_TIME_FOUR_CHARS_SUFFIX/ ogni volta che esegui il comando, dove BUCKET_NAME è impostato per impostazione predefinita su PROJECT_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 un test iOS con la piattaforma del dispositivo per sviluppatori.