Terjemahan Perintah dan Flag Platform Perangkat Developer Firebase Test Lab

Developer Device Platform (DDP) menggantikan konsol Firebase Test Lab lama dan alur kerja CLI Test Lab dengan CLI pengujian yang terpadu, berperforma tinggi, dan aman yang mengutamakanGoogle Cloud: gcloud beta device-run

Panduan ini memberikan terjemahan dan pemetaan flag command line dari Test Lab (atau Flank) ke DDP. Gunakan panduan ini untuk memigrasikan pengujian Anda secara manual. Lihat Bermigrasi dari Firebase Test Lab ke Developer Device Platform untuk mengetahui alat otomatisasi, manfaat, perbedaan utama, dan tips migrasi.

Migrasi sharding

DDP memodernisasi konfigurasi sharding dengan mengganti sharding cerdas berbasis Cloud Storage yang kompleks dari Flank dan sharding seragam Test Lab secara native.

Sharding Seragam

  • Setel --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

  • Setel --sharding-option=smart.
  • Tetapkan --smart-sharding-target-duration={duration} (misalnya, 2m, 10m, 1h; rentang yang 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):

Android

gcloud beta device-run sessions submit instrumentation --flags-file=device-run-flags.yaml

iOS

gcloud alpha device-run sessions submit xctest --flags-file=device-run-flags.yaml

Berikut adalah contoh yang menunjukkan tanda daftar dan kamus bernilai ganda:

Android

# 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"

iOS

# device-run-flags.yaml
--device:

    -   iphonese3-18-4
    -   iphone16pro-18-3
--test: MyTests.zip
--additional-apps:
    -   helper-app.ipa
--xcode-version: '16.4'
--xctest-timeout: 15m
--other-files-to-push:
  /local/path/test-config.json: com.example.app:/Documents/test-config.json
--paths-to-pull:
    -   com.example.app:/Documents/screenshots
--labels:
  env: staging
  team: mobile-qa

Contoh terjemahan perintah menyeluruh

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

Pasca-eksekusi dan pengambilan hasil

Karena DDP tidak diluncurkan dengan UI web grafis (seperti Firebase Console lama), developer harus mengelola, mendeskripsikan, 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 adalah pemetaan flag untuk memigrasikan konfigurasi pengujian dari Flank atau gcloud firebase test android/ios run ke perintah gcloud beta device-run sessions submit instrumentation dan gcloud alpha device-run sessions submit xctest DDP baru.

Parameter dan aset inti

Parameter Lama (Test Lab / Flank) Parameter DDP Target Logika Format / Konversi
--app --apps Daftar. Jika beberapa APK/AAB aplikasi disediakan, teruskan semuanya ke --apps dalam urutan yang akan diinstal di perangkat. Jalur dapat berupa lokal atau di Cloud Storage (gs://...).
--test --test WAJIB String. Jalur ke APK pengujian yang berisi uji instrumentasi, baik lokal maupun di Cloud Storage.
--client-details --labels Kamus pasangan key=value yang akan dilampirkan ke sesi pengujian.

Konfigurasi dan penargetan perangkat

Parameter Lama (Test Lab / Flank) Parameter DDP Target Logika Format / Konversi
--device model={M},version={V} --device={M}-{V} WAJIB 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 flag --device, yang masing-masing menentukan ID perangkat yang berbeda (misalnya, --device=shiba-34 --device=tokay-36).
--device locale={L} --locale={L} String. Memetakan lokalitas perangkat ke flag --locale level teratas (language-region, mis. --locale=en-US) untuk beralih perangkat sebelum menjalankan pengujian.
--device orientation={O} --orientation={O} String. Memetakan orientasi perangkat ke tanda --orientation tingkat teratas (portrait atau landscape).
T/A --coordinates String. Meniru koordinat lokasi GPS perangkat (misalnya, --coordinates=37.4220,-122.0841).

Kontrol eksekusi dan ketidakstabilan

Parameter Lama (Test Lab / Flank) Parameter DDP Target Logika Format / Konversi
--num-flaky-test-attempts {R} --flaky-test-attempts {A} Integer. Jumlah maksimum upaya eksekusi per shard pengujian. Mengonversi jumlah percobaan ulang R ke batas total percobaan A: A = R +1 (defaultnya adalah 1).
T/A --flaky-test-parallel-retry Boolean. Apakah akan mencoba ulang kegagalan pengujian secara paralel (defaultnya adalah 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 upload file dan mencetak ID operasi dan sesi.

Runner dan target pengujian

Parameter Lama (Test Lab / Flank) Parameter DDP Target Logika Format / Konversi
--environment-variables --additional-test-options Kamus opsi yang diteruskan ke runner uji Instrumentasi. Format yang didukung di --test-targets tidak diizinkan di sini.
--test-targets --test-targets Dictionary 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. Mengambil auto (orkestrator default) atau string versi tertentu (misalnya, 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 akan ditentukan dengan memeriksa manifes aplikasi.
--directories-to-pull --paths-to-pull Daftar. 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 pengujian dijalankan.

Output dan penyimpanan

Parameter Lama (Test Lab / Flank) Parameter DDP Target 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. Subjalur otomatis diatur di Cloud Storage di bagian automation/sessions/{session_id}/.

Konfigurasi sharding

Parameter Lama (Test Lab / Flank) Parameter DDP Target Logika Format / Konversi
--num-uniform-shards {N} --sharding-option=uniform --uniform-sharding-count={N} String dan Integer. Konfigurasi flag gabungan mengaktifkan strategi sharding seragam dan menetapkan jumlah shard maksimum (rentang jumlah yang valid: 1-20 fisik, 1-200 virtual).
Sisi --max-test-shards {N} --sharding-option=smart --smart-sharding-max-shard-count={N} String dan Integer. Konfigurasi flag gabungan mengaktifkan strategi sharding cerdas dan menetapkan jumlah shard maksimum (rentang jumlah yang valid: 0-20 fisik, 0-200 virtual).
Flank --shard-time {S} --sharding-option=smart --smart-sharding-target-duration={S} String WAJIB. Mengaktifkan sharding cerdas dengan target waktu eksekusi (mis. 2m, 10m, 1h). Rentang yang valid: 2m hingga 1h.
Sisi --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.

Flag 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) Parameter DDP Target Logika Format / Konversi
--additional-apks --apps Daftar. 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 adalah 5m).
--record-video --video String. Kapan merekam video layar perangkat selama uji coba.Nilai yang valid adalah always atau on-failure.

Flag 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) Parameter DDP Target Logika Format / Konversi
--test --test Jalur ke zip XCTest yang di-build.
--device model={M},version={V} --device={M}-{V} String ID perangkat target.
--device locale={L} --locale={L} String lokalitas target (language-region, mis. --locale=en-US).
--timeout --xctest-timeout Durasi (misalnya, 5m). Rentang: 1m hingga 1h.
--xcode-version --xcode-version ID katalog atau string versi Xcode yang akan digunakan (misalnya, 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 permintaan fitur atau bergabunglah dengan forum diskusi kami.