Selamat datang di Device Run Platform Perangkat Developer, yang memungkinkan Anda menjalankan pengujian dan file yang dapat dieksekusi di perangkat Android fisik dan virtual serta perangkat iOS fisik di cloud. Halaman ini merangkum kapabilitas dan menjelaskan kesamaan antara menjalankan uji instrumentasi Android, file yang dapat dieksekusi Android, dan pengujian iOS. Lihat Device Run untuk Android dan Device Run untuk iOS guna mengetahui langkah-langkah khusus platform.
Jika Anda bermigrasi dari Firebase Test Lab ke Platform Perangkat Developer, lihat panduan migrasi, terjemahan perintah dan flag, serta keterampilan migrasi untuk agen AI.
Untuk menggunakan Google Cloud CLI ini, Anda harus memberikan Google Cloud project
ID. Untuk ringkasan perintah, lihat: gcloud beta
device-run
Kemampuan utama
Developer Device Platform Device Run adalah Google Cloud layanan yang memungkinkan Anda menjalankan suite pengujian otomatis di perangkat seluler fisik dan virtual. Dibuat untuk alur kerja Continuous Integration dan Continuous Delivery (CI/CD) modern, Device Run menawarkan kontrol command line melalui Google Cloud CLI (gcloud beta device-run), yang memungkinkan tim menjalankan, mengelola, dan menskalakan suite pengujian di hardware khusus dan lingkungan virtual.
1. Pengujian otomatis lintas platform
- Dukungan Android dan iOS: Device Run mendukung framework pengujian bawaan, termasuk uji instrumentasi Android (
.apk), file yang dapat dieksekusi Android (biner yang dikompilasi), dan iOS XCTests (.ipaatau.zip). - Penargetan perangkat yang fleksibel: Targetkan perangkat fisik atau perangkat virtual tertentu
yang tercantum dalam Katalog Perangkat menggunakan OS dan ID model (misalnya, model Pixel atau iPhone) melalui flag
--device. - Eksekusi paralel multiperangkat: Jalankan suite pengujian yang identik secara bersamaan di beberapa perangkat dengan menentukan ID perangkat yang dipisahkan koma atau menyediakan beberapa flag
--device.
2. Mode dan kontrol eksekusi yang fleksibel
- Pengiriman sinkron dan asinkron: Pengujian berjalan secara sinkron
secara default, menampilkan ringkasan setelah selesai. Menambahkan flag
--asyncakan segera menampilkan ID sesi untuk eksekusi non-pemblokiran, yang dapat dipantau nanti menggunakangcloud beta device-run sessions wait. - Batas waktu eksekusi kustom*: Konfigurasi batas durasi eksekusi dengan
--instrumentation-timeoutatau--xctest-timeout. - Percobaan ulang uji tidak stabil: Tetapkan upaya percobaan ulang maksimum untuk eksekusi uji tidak stabil
menggunakan flag
--flaky-test-attempts.
3. Pengelolaan dependensi dan versi software
- Lingkungan pengujian yang dapat dikonfigurasi*: Temukan, periksa, dan pilih versi lingkungan software tertentu — seperti AndroidX Test Orchestrator dan Apple Xcode — sebelum memulai pengujian.
- Penemuan versi: Gunakan
gcloud beta device-run software-versions listdandescribeperintah untuk melihat paket software aktif, versi OS yang didukung, dan spesifikasi runtime default.
4. Pengelolaan penyimpanan dan artefak
- Integrasi Cloud Storage: Input pengujian (APK, IPA, aplikasi pendukung) dan artefak output (log, laporan pengujian) disimpan di Cloud Storage.
- Fleksibilitas bucket: Otomatis ditetapkan secara default ke bucket project bernama
PROJECT_ID-devicerunatau dirutekan ke bucket kustom yang ditentukan melalui flag--bucket-name. Anda memiliki kontrol penuh atas bucket ini dan harus menghapus kontennya secara manual jika tidak lagi diperlukan atau mengonfigurasi pengelolaan siklus proses otomatis di bucket. Lihat Tentang penghapusan objek untuk mengetahui petunjuknya. - Jalur cloud langsung: Referensikan jalur
gs://yang ada secara langsung untuk file besar guna menghilangkan overhead upload.
5. Fitur pengujian Android lanjutan
- Android Test Orchestrator: Isolasi eksekusi pengujian dengan menjalankan setiap pengujian di
instance
Instrumentationnya sendiri untuk mencegah status aplikasi bersama dan mengisolasi error aplikasi. - Sharding Pengujian:
- Sharding Seragam: Membagi kasus pengujian secara merata di sejumlah
shard yang ditentukan (
--sharding-option=uniform). - Sharding Cerdas: Menggunakan data eksekusi pengujian historis untuk menyeimbangkan kasus pengujian secara dinamis di seluruh shard, menargetkan durasi eksekusi total tertentu (
--sharding-option=smart).
- Sharding Seragam: Membagi kasus pengujian secara merata di sejumlah
shard yang ditentukan (
6. Pengelolaan dan diagnostik sesi
- Kontrol sesi penuh: Cantumkan, jelaskan, filter, atau batalkan pengujian aktif atau historis
menggunakan
sessions list,sessions describe, dansessions cancel. - Validasi input awal: Melakukan validasi otomatis pada biner pengujian dan artefak konfigurasi yang dikirimkan, menampilkan detail error eksplisit dan penyebab utama (seperti ketidakcocokan paket target) saat terjadi error.
Setelan inti
Flag yang diperlukan
Perhatikan bahwa flag ini diperlukan:
- Perangkat: Tentukan perangkat menggunakan
--device:--device shiba-35atau--device iphonese3-18-4 - Pengujian atau file yang dapat dieksekusi: Tentukan paket pengujian menggunakan
--test(--test /path/to/test.apkatau--test /path/to/MyTests.zip) untuk pengujian, atau tentukan biner atau skrip yang dapat dieksekusi menggunakan--executable(--executable /path/to/my_executable) untuk pengujian yang dapat dieksekusi Android.
Opsi konfigurasi berikut umum digunakan di seluruh sesi Device Run.
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 flag
--test,--executable,--apps,--additional-apps,--other-files-to-push, atau--xctestrun-file, Google Cloud CLI akan otomatis menyalinnya ke bucket Cloud Storage Anda di bagiangs://BUCKET_NAME/automation/inputs/DATE_TIME_FOUR_CHARS_SUFFIX/setiap kali Anda menjalankan perintah, denganBUCKET_NAMEditetapkan secara default kePROJECT_ID-devicerun. - Jalur cloud: Karena mengupload file besar dapat memakan waktu, Anda dapat
langsung mereferensikannya 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]/.
Input validasi
Platform Perangkat Developer mencoba memvalidasi input Anda, termasuk artefak, dan menampilkan ERROR dan 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 menyerupai:
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 atau file yang dapat dieksekusi Android atau Jalankan pengujian iOS dengan Platform Perangkat Developer.