Developer Device Platform (DDP) menggantikan alur kerja konsol Firebase Test Lab dan CLI Test Lab lama dengan CLI pengujianGoogle Cloudyang terpadu, berperforma tinggi, dan aman: gcloud beta device-run
Panduan ini memberikan terjemahan dan pemetaan command line untuk flag dari Test Lab (atau Flank) ke DDP. Gunakan panduan ini untuk memigrasikan pengujian Anda secara manual. Lihat artikel Bermigrasi dari Firebase Test Lab ke Platform Perangkat Developer untuk mengetahui alat otomatisasi, manfaat, perbedaan utama, dan tips migrasi.
Migrasi sharding
DDP memodernisasi konfigurasi sharding dengan mengganti secara native sharding pintar berbasis Cloud Storage yang kompleks milik Flank dan sharding seragam Test Lab.
Sharding Seragam
- Tetapkan
--sharding-option=uniform. Tetapkan
--uniform-sharding-count={count}(1-20 untuk fisik, 1-200 untuk virtual).Firebase Test Lab Lama:
--num-uniform-shards {N}DDP CLI:
--sharding-option=uniform --uniform-sharding-count={N}
Smart Sharding
- Tetapkan
--sharding-option=smart. - Tetapkan
--smart-sharding-target-duration={duration}(misalnya,2m,10m,1h; rentang valid:2mhingga1h). - Tetapkan
--smart-sharding-record-name={record_name}(menunjuk ke rekaman pelacakan YAML di dalam--bucket-namedi bagianautomation/smart-sharding/). - Tetapkan
--smart-sharding-max-shard-count={max_count}(batas maksimum opsional: 0-20 untuk fisik, 0-200 untuk virtual).
Menggunakan metadata waktu 30 hari historis:
Flank Lama:
max-test-shards: 10 shard-time: 120 smart-flank-gcs-path: gs://my-bucket/smart-sharding/timing-record.yamlCLI DDP:
--sharding-option=smart \ --smart-sharding-max-shard-count=10 \ --smart-sharding-target-duration=2m \ --smart-sharding-record-name=timing-record \ --bucket-name=my-bucket
Konfigurasi YAML deklaratif (--flags-file)
Untuk konfigurasi yang kompleks atau tim yang lebih suka mempertahankan file
yang dikontrol versinya daripada perintah terminal yang panjang, gcloud menyediakan
praprosesor argumen --flags-file universal (lihat $ gcloud topic flags-file):
gcloud beta device-run sessions submit instrumentation --flags-file=device-run-flags.yaml
Berikut adalah contoh yang menunjukkan tanda daftar dan kamus bernilai ganda:
# device-run-flags.yaml
--device:
- mediumphone-arm-32
- shiba-36
--apps:
- app-debug.apk
- test-helper.apk
--test: app-debug-androidTest.apk
--bucket-name: my-bucket
--sharding-option: smart
--smart-sharding-target-duration: 2m
--smart-sharding-record-name: timing-record
--paths-to-pull:
- /sdcard/screenshots
- /sdcard/coverage.ec
--additional-test-options:
coverage: "true"
clearPackageData: "true"
Contoh terjemahan perintah end-to-end
Lihat terjemahan standar dan kompleks ini untuk mengetahui contoh konkretnya.
Contoh: Menjalankan uji Instrumentasi standar
Firebase CLI lama:
gcloud firebase test android run \
--app=app-debug.apk \
--test=app-debug-androidTest.apk \
--device model=shiba,version=36 \
--timeout=5m \
--num-flaky-test-attempts=2 \
--directories-to-pull=/sdcard/screenshots \
--environment-variables key=value
Terjemahan DDP CLI:
gcloud beta device-run sessions submit instrumentation \
--device=shiba-36 \
--apps=app-debug.apk \
--test=app-debug-androidTest.apk \
--instrumentation-timeout=5m \
--flaky-test-attempts=3 \
--paths-to-pull=/sdcard/screenshots \
--additional-test-options key=value
Contoh: Memigrasikan konfigurasi YAML flank yang kompleks
Konfigurasi Flank lama:
app: app-debug.apk
test: app-debug-androidTest.apk
device:
- model: shiba
version: 36
shard-time: 120
smart-flank-gcs-path: gs://my-bucket/smart-sharding/timing-record.yaml
Terjemahan DDP CLI:
gcloud beta device-run sessions submit instrumentation \
--device=shiba-36 \
--apps=app-debug.apk \
--test=app-debug-androidTest.apk \
--bucket-name=my-bucket \
--sharding-option=smart \
--smart-sharding-target-duration=2m \
--smart-sharding-record-name=timing-record
Pascaeksekusi dan pengambilan hasil
Karena DDP tidak diluncurkan dengan UI web grafis (seperti Konsol Firebase lama), developer harus mengelola, menjelaskan, dan memeriksa hasil secara langsung menggunakan CLI atau REST API terprogram:
# 1. List active and completed test sessions
gcloud beta device-run sessions list
# 2. Get a summary and direct Cloud Storage bucket link of a session's results
gcloud beta device-run sessions describe session-number
# 3. Get detailed metadata and print full results
gcloud beta device-run sessions describe session-number --full
# 4. Cancel a running session (replaces console cancellation)
gcloud beta device-run sessions cancel session-number
Referensi pemetaan bendera
Berikut pemetaan tanda untuk memigrasikan konfigurasi pengujian dari Flank atau gcloud
firebase test android/ios run ke perintah DDP gcloud beta device-run sessions
submit instrumentation baru.
Parameter dan aset inti
| Parameter Lama (Test Lab / Flank) | Menargetkan Parameter DDP | Logika Format / Konversi |
|---|---|---|
--app |
--apps |
List. Jika beberapa APK/AAB aplikasi disediakan, teruskan semuanya ke --apps dalam urutan yang akan diinstal di perangkat. Jalur dapat berupa jalur lokal atau di Cloud Storage (gs://...). |
--test |
--test |
WAJIB String. Jalur ke APK pengujian yang berisi pengujian Instrumentasi, baik lokal maupun di Cloud Storage. |
--client-details |
--labels |
Dictionary pasangan key=value yang akan dilampirkan ke sesi pengujian. |
Konfigurasi dan penargetan perangkat
| Parameter Lama (Test Lab / Flank) | Menargetkan Parameter DDP | Logika Format / Konversi |
|---|---|---|
--device model={M},version={V} |
--device={M}-{V} |
WAJIB DIISI String yang memetakan model dan versi OS ke satu string ID --device. Flag --device DDP menerima beberapa ID perangkat yang dipisahkan dengan koma (mis. --device=shiba-34,tokay-36) atau beberapa tanda --device, yang masing-masing menentukan ID perangkat yang berbeda (mis. --device=shiba-34 --device=tokay-36). |
--device locale={L} |
--locale={L} |
String. Memetakan lokalitas perangkat ke tanda --locale tingkat teratas (language-region, misalnya. --locale=en-US) untuk mengalihkan perangkat ke sebelum menjalankan pengujian. |
--device orientation={O} |
--orientation={O} |
String. Memetakan orientasi perangkat ke tanda --orientation tingkat teratas (portrait atau landscape). |
| T/A | --coordinates |
String. Mengejek koordinat lokasi GPS perangkat (mis. --coordinates=37.4220,-122.0841). |
Kontrol eksekusi dan ketidakstabilan
| Parameter Lama (Test Lab / Flank) | Menargetkan Parameter DDP | Logika Format / Konversi |
|---|---|---|
--num-flaky-test-attempts {R} |
--flaky-test-attempts {A} |
Bilangan Bulat. Jumlah maksimum upaya eksekusi per shard pengujian. Mengonversi jumlah percobaan ulang R ke batas total upaya A: A = R +1 (defaultnya adalah 1). |
| T/A | --flaky-test-parallel-retry |
Boolean. Apakah akan mencoba ulang kegagalan pengujian secara paralel (defaultnya false untuk eksekusi berurutan). |
| T/A | --flaky-test-retry-level |
String. Menentukan apakah akan mencoba lagi di tingkat shard atau test individual (defaultnya adalah shard). |
--async |
--async |
Boolean. Maps 1:1. Perintah dijalankan secara sinkron secara default. Teruskan ini untuk segera kembali ke terminal. Keluar segera setelah operasi dan ID sesi pencetakan dan upload file. |
Runner dan target pengujian
| Parameter Lama (Test Lab / Flank) | Menargetkan Parameter DDP | Logika Format / Konversi |
|---|---|---|
--environment-variables |
--additional-test-options |
Dictionary opsi yang diteruskan ke pelaksana uji instrumentasi. Format yang didukung di --test-targets tidak diizinkan di sini. |
--test-targets |
--test-targets |
Kamus target pengujian atau filter target yang akan dijalankan. Setiap target harus sepenuhnya memenuhi syarat dengan nama paket atau nama class yang mendukung kunci seperti package, notPackage, class, notClass, annotation, notAnnotation, dan size. Format testfile atau notTestfile tidak didukung. |
--use-orchestrator |
--orchestrator-version |
Apakah akan menggunakan Android Test Orchestrator. Menggunakan auto (pengelola default) atau string versi tertentu (mis. 1.6). Versi yang tersedia dapat dikueri menggunakan gcloud beta device-run software-versions list. |
--test-runner-class |
--test-runner-class |
String. Class runner uji instrumentasi yang sepenuhnya memenuhi syarat (mis. com.foo.MyRunner) yang akan digunakan. Jika tidak ditentukan, class peluncur default ditentukan dengan memeriksa manifes aplikasi. |
--directories-to-pull |
--paths-to-pull |
List. Direktori yang akan didownload dari perangkat setelah pengujian dijalankan. |
--other-files |
--other-files-to-push |
Kamus. Daftar file tambahan SOURCE=DEST yang dipisahkan koma untuk dikirim ke perangkat sebelum menjalankan pengujian. |
Output dan penyimpanan
| Parameter Lama (Test Lab / Flank) | Menargetkan Parameter DDP | Logika Format / Konversi |
|---|---|---|
--results-bucket |
--bucket-name |
String. Bucket Cloud Storage tempat artefak pengujian, termasuk file input lokal, file output pengujian, dan catatan waktu smart sharding diupload (secara default adalah gs://[PROJECT_ID]-devicerun jika tidak ditentukan). |
--results-dir |
Dikelola secara otomatis | Tidak didukung. Sub-jalur otomatis diatur di Cloud Storage di automation/sessions/{session_id}/. |
Konfigurasi sharding
| Parameter Lama (Test Lab / Flank) | Menargetkan Parameter DDP | Logika Format / Konversi |
|---|---|---|
--num-uniform-shards {N} |
--sharding-option=uniform --uniform-sharding-count={N} |
String dan Integer. Konfigurasi tanda gabungan mengaktifkan strategi sharding seragam dan menetapkan jumlah shard maksimum (rentang jumlah yang valid: 1-20 fisik, 1-200 virtual). |
Samping --max-test-shards {N} |
--sharding-option=smart --smart-sharding-max-shard-count={N} |
String dan Integer. Konfigurasi tanda gabungan mengaktifkan strategi sharding cerdas dan menetapkan jumlah shard maksimum (rentang jumlah yang valid: 0-20 fisik, 0-200 virtual). |
Samping --shard-time {S} |
--sharding-option=smart --smart-sharding-target-duration={S} |
WAJIB String. Mengaktifkan smart sharding dengan waktu eksekusi target (mis. 2m, 10m, 1h). Rentang yang valid: 2m hingga 1h. |
Samping --smart-flank-gcs-path |
--smart-sharding-record-name={name} --bucket-name={bucket} |
WAJIB String. Nama YAML rekaman sharding (tidak termasuk ekstensi file) di dalam --bucket-name di bagian smart-sharding/ di Cloud Storage. |
Tanda khusus Android
Gunakan tabel ini untuk memetakan tanda gcloud firebase test android run lama ke tanda device-run baru yang setara:
Parameter Lama (firebase android) |
Menargetkan Parameter DDP | Logika Format / Konversi |
|---|---|---|
--additional-apks |
--apps |
List. Gabungkan nilai daftar tambahan langsung ke daftar --apps utama. |
| T/A | --bugreport |
String. Kumpulkan bugreport lengkap dari perangkat (nilai: always, on-failure). |
| T/A | --dumpsys |
String. Kumpulkan status sistem menggunakan dumpsys (nilai: always, on-failure). |
--timeout |
--instrumentation-timeout |
Durasi (mis. 10m, 20s, 1h). Rentang yang valid: 1m hingga 3h (defaultnya 5m). |
--record-video |
--video |
String. Kapan merekam video layar perangkat selama uji coba.Nilai yang valid adalah always atau on-failure. |
Tanda khusus iOS
Gunakan tabel ini untuk memetakan tanda gcloud firebase test ios run lama ke tanda device-run baru yang setara:
Parameter Lama (firebase ios) |
Menargetkan Parameter DDP | Logika Format / Konversi |
|---|---|---|
--test |
--test |
Jalur ke zip XCTest yang dibuat. |
--device model={M},version={V} |
--device={M}-{V} |
String ID perangkat target. |
--timeout |
--xctest-timeout |
Durasi (misalnya, 5m). Rentang: 1m hingga 1h. |
--xcode-version |
--xcode-version |
ID katalog atau string versi Xcode yang akan digunakan (mis. xcode-16-4 atau 16.4). Versi yang tersedia dapat dikueri menggunakan gcloud beta device-run software-versions list. |
--results-bucket |
--bucket-name |
Bucket GCS tujuan kustom. |
--async |
--async |
Sinkron secara default, teruskan untuk segera keluar. |
--other-files |
--other-files-to-push |
Kamus dalam format SOURCE=BUNDLE_ID:DEST. |
--directories-to-pull |
--paths-to-pull |
Daftar dalam format BUNDLE_ID:DEVICE_PATH. |
--additional-ipas |
--additional-apps |
Daftar IPA helper yang akan diinstal sebelum pengujian. |
--xctestrun-file |
--xctestrun-file |
Jalur ke plist .xctestrun kustom. |
--num-flaky-test-attempts |
--flaky-test-attempts |
Jumlah bilangan bulat upaya percobaan ulang (misalnya, 3). |
--client-details |
--labels |
Pasangan nilai kunci (KEY=VALUE). |
Masukan dan pertanyaan
Hubungi kami untuk melaporkan bug dan mengajukan permintaan fitur atau bergabung dengan forum diskusi kami.