Terjemahan Perintah dan Flag Platform Perangkat Developer Firebase Test Lab

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: 2m hingga 1h).
  • Tetapkan --smart-sharding-record-name={record_name} (menunjuk ke rekaman pelacakan YAML di dalam --bucket-name di bagian automation/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.yaml
    
  • CLI 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.