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-35atau--device iphonese3-18-4 - Uji: Tentukan APK atau IPA pengujian menggunakan
--test:--test /path/to/test.apkatau--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-bucketJika Anda tidak menentukan bucket Cloud Storage menggunakan flag--bucket-name=, Google Cloud CLI akan menggunakan bucket default bernamaPROJECT_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 digs://BUCKET_NAME/automation/inputs/DATE_TIME_FOUR_CHARS_SUFFIX/setiap kali Anda menjalankan perintah, denganBUCKET_NAMEsecara default adalahPROJECT_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.