Ringkasan Eksekusi Perangkat Developer Device Platform

Selamat datang di Developer Device Platform Device Run, yang memungkinkan Anda menjalankan pengujian di perangkat Android fisik dan virtual serta perangkat iOS fisik di cloud. Halaman ini menjelaskan kesamaan antara menjalankan pengujian Android dan iOS. Lihat Jalankan Perangkat untuk Android dan Jalankan Perangkat untuk iOS untuk mengetahui langkah-langkah khusus platform.

Untuk menggunakan Google Cloud CLI ini, Anda harus memberikan ID Google Cloud project Anda. Untuk ringkasan perintah, lihat: gcloud beta device-run

Perhatikan bahwa flag ini diperlukan:

  • Perangkat: Tentukan perangkat menggunakan --device: --device shiba-35 atau --device iphonese3-18-4
  • Uji: Tentukan APK atau IPA pengujian menggunakan --test: --test /path/to/test.apk atau --test /path/to/test.ipa

Opsi konfigurasi berikut umum untuk pengujian Android dan iOS.

Jalur Cloud Storage input dan output

  • Bucket Cloud Storage kustom: Anda dapat menentukan bucket Cloud Storage kustom untuk input dan output: --bucket-name=my-custom-bucket Jika Anda tidak menentukan bucket Cloud Storage menggunakan flag --bucket-name=, Google Cloud CLI akan menggunakan bucket default bernama PROJECT_ID-devicerun.
  • File input: Saat Anda menentukan jalur lokal dengan tanda --test, --additional-apps, atau --xctestrun-file, Google Cloud CLI akan otomatis menyalinnya ke bucket Cloud Storage Anda di gs://BUCKET_NAME/automation/inputs/DATE_TIME_FOUR_CHARS_SUFFIX/ setiap kali Anda menjalankan perintah, dengan BUCKET_NAME secara default adalah PROJECT_ID-devicerun.
  • Jalur cloud: Karena mengupload file besar dapat memakan waktu, Anda dapat merujuknya secara langsung menggunakan jalur gs:// Cloud Storage untuk menghemat waktu upload.
  • File hasil: Artefak output diupload ke bucket Cloud Storage Anda di bagian gs://BUCKET_NAME/automation/sessions/session-[SESSION_ID]/.

Eksekusi sinkron dan asinkron

Secara default, perintah pengiriman adalah pemblokiran (sinkron). Perintah ini akan menunggu pengujian selesai dan mencetak tabel ringkasan hasilnya.

Untuk mengirimkan sesi dan segera kembali setelah mengupload file ke Cloud Storage, tambahkan tanda --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

Tindakan ini akan segera menampilkan ID sesi. Kemudian, Anda dapat menunggunya menggunakan perintah sessions wait:

gcloud beta device-run sessions wait SESSION_ID

Perintah akan diblokir hingga tugas selesai.

Beberapa perangkat

Untuk menjalankan pengujian yang sama di beberapa perangkat, berikan tanda --device dengan beberapa ID perangkat yang dipisahkan dengan koma atau dengan beberapa tanda --device, yang masing-masing menentukan ID perangkat yang berbeda.

Android

gcloud beta device-run sessions submit instrumentation \
  --device shiba-34,tokay-36 \
  --test ./ANDROID_TESTS.apk

Atau:

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

Atau:

gcloud beta device-run sessions submit xctest \
  --device iphonese3-18-4 \
  --device iphonese3-26-3 \
  --test ./IOS_TESTS.zip

Waktu tunggu uji

Batasi durasi eksekusi pengujian Anda:

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

Rentang yang valid adalah 1m hingga 1h dan defaultnya adalah 5m.

Versi software

Temukan dan gunakan paket software dan versi AndroidX Test Orchestrator dan Apple Xcode yang tersedia, serta periksa siklus proses, versi yang didukung, dan metadata-nya sebelum mengonfigurasi proses pengujian.

Pertama, buat daftar semua paket software yang tersedia dan versinya:

gcloud beta device-run software-versions list

Menerima output yang menyerupai:

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

Kemudian, jelaskan paket tertentu menggunakan ID resource persisnya dari daftar:

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

Menerima output yang menyerupai:

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'

Setelah mengetahui versi software yang tersedia, Anda dapat menggunakannya dalam proses pengujian dengan flag --orchestrator-version atau --xcode-version, seperti berikut:

Android

gcloud beta device-run sessions submit instrumentation \
  --device shiba-35 \
  --test ./ANDROID_TESTS.apk \
  --orchestrator-version=1.4.1

Lihat Mengaktifkan Orchestrator untuk mengetahui informasi selengkapnya.

iOS

gcloud beta device-run sessions submit xctest \
  --device iphonese3-18-4 \
  --test ./IOS_TESTS.zip \
  --xcode-version=16.4

Lihat Device Run for iOS untuk mengetahui informasi selengkapnya.

Input validasi

Platform Perangkat Developer mencoba memvalidasi input Anda, termasuk artefak, dan menampilkan ERROR, bukan PASSED atau FAILED saat menemukan input yang salah:

Session [session-94b57778] finished with result [ERROR].
JOB NAME  EXECUTION NAME  EXECUTION RESULT
job-000   execution-000   ERROR

Sekarang, tambahkan --full ke perintah sessions describe untuk melihat detail selengkapnya tentang sesi:

gcloud beta device-run sessions describe --full session-94b57778

Yang menghasilkan output yang mirip dengan:

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

Langkah berikutnya

Jalankan pengujian Android atau Jalankan pengujian iOS dengan Platform Perangkat Developer.