Firebase Test Lab to Developer Device Platform Command and Flag Translation

La Developer Device Platform (DDP) sostituisce la console Firebase Test Lab legacy e i flussi di lavoro dell'interfaccia a riga di comando di Test Lab con un'interfaccia a riga di comando di test unificata, ad alte prestazioni e sicura, incentrata suGoogle Cloud: gcloud beta device-run

Questa guida fornisce traduzioni e mappature dei flag dalla riga di comando da Test Lab (o Flank) a DDP. Utilizza queste indicazioni per eseguire manualmente la migrazione dei test. Consulta Esegui la migrazione da Firebase Test Lab a Developer Device Platform per strumenti di automazione, vantaggi, differenze principali e suggerimenti per la migrazione.

Migrazione dello sharding

DDP modernizza le configurazioni di sharding sostituendo in modo nativo sia lo sharding smart complesso basato su Cloud Storage di Flank sia lo sharding uniforme di Test Lab.

Sharding uniforme

  • Imposta --sharding-option=uniform.
  • Imposta --uniform-sharding-count={count} (1-20 per i prodotti fisici, 1-200 per i prodotti virtuali).

  • Firebase Test Lab legacy: --num-uniform-shards {N}

  • Interfaccia a riga di comando DDP: --sharding-option=uniform --uniform-sharding-count={N}

Sharding intelligente

  • Imposta --sharding-option=smart.
  • Imposta --smart-sharding-target-duration={duration} (ad es. 2m, 10m, 1h; intervallo valido: da 2m a 1h).
  • Imposta --smart-sharding-record-name={record_name} (punta al record di monitoraggio YAML all'interno di --bucket-name in automation/smart-sharding/).
  • Imposta --smart-sharding-max-shard-count={max_count} (limite massimo facoltativo: 0-20 per i prodotti fisici, 0-200 per quelli virtuali).

Utilizzando i metadati storici relativi alle tempistiche degli ultimi 30 giorni:

  • Legacy Flank:

    max-test-shards: 10
    shard-time: 120
    smart-flank-gcs-path: gs://my-bucket/smart-sharding/timing-record.yaml
    
  • Interfaccia a riga di comando 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
    

Configurazione YAML dichiarativa (--flags-file)

Per configurazioni complesse o team che preferiscono gestire file con controllo della versione anziché lunghi comandi del terminale, gcloud fornisce un preprocessore di argomenti --flags-file universale (vedi $ 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

Ecco un esempio che mostra un elenco con più valori e flag di dizionario:

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

Esempi di traduzione di comandi end-to-end

Per esempi concreti, consulta queste traduzioni standard e complesse.

Esempio: esegui un test di instrumentazione standard

Interfaccia a riga di comando di Firebase legacy:

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

Traduzione dell'interfaccia a riga di comando DDP:

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

Esempio: esegui la migrazione di una configurazione YAML Flank complessa

Configurazione Flank precedente:

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

Traduzione dell'interfaccia a riga di comando DDP:

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

Post-esecuzione e recupero dei risultati

Poiché DDP non viene avviato con un'interfaccia utente web grafica (come la console Firebase precedente), gli sviluppatori devono gestire, descrivere e ispezionare i risultati direttamente utilizzando l'interfaccia a riga di comando o le API REST programmatiche:

# 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

Riferimento per la mappatura dei flag

Ecco la mappatura dei flag per la migrazione delle configurazioni di test da Flank o gcloud firebase test android/ios run ai nuovi comandi gcloud beta device-run sessions submit instrumentation e gcloud alpha device-run sessions submit xctest di DDP.

Parametri e asset principali

Parametro legacy (Test Lab/Flank) Parametro DDP target Formato/Logica di conversione
Fianco --project --project Flag globale standard Google Cloud (--project=PROJECT_ID) o configurazione Google Cloud CLI attiva.
--client-details --labels Dizionario di coppie key=value da allegare alla sessione di test.
--other-files --other-files-to-push Dizionario. File ausiliari da inviare al dispositivo prima dell'esecuzione del test. Inverte l'ordine precedente DEST=SOURCE in SOURCE=DEST (SOURCE=DEVICE_PATH su Android; SOURCE=BUNDLE_ID:DEVICE_PATH su iOS).

Configurazione dispositivo e targeting

Parametro legacy (Test Lab/Flank) Parametro DDP target Formato/Logica di conversione
--device model={M},version={V} --device={M}-{V} OBBLIGATORIO Stringa che mappa il modello e la versione del sistema operativo a una singola stringa ID --device. Il flag --device di DDP accetta più ID dispositivo separati da virgole (ad es. --device=shiba-34,tokay-36 o --device=iphone16pro-18-3) o più flag --device, ognuno dei quali specifica un ID dispositivo distinto (ad es. --device=shiba-34 --device=tokay-36).

Controllo dell'esecuzione e instabilità

Parametro legacy (Test Lab/Flank) Parametro DDP target Formato/Logica di conversione
--async --async Boolean. Maps 1:1. Il comando viene eseguito in modo sincrono per impostazione predefinita. Passa questo valore per tornare immediatamente al terminale. Esce immediatamente dopo il caricamento del file e stampa gli ID operazione e sessione.
--num-flaky-test-attempts {R} --flaky-test-attempts {A} Numero intero. Il numero massimo di tentativi di esecuzione per shard di test. Converti il numero di nuovi tentativi R nel limite di tentativi totali A: A = R + 1 (il valore predefinito è 1).

Output e archiviazione

Parametro legacy (Test Lab/Flank) Parametro DDP target Formato/Logica di conversione
--results-bucket --bucket-name Stringa. Il bucket Cloud Storage in cui vengono caricati gli artefatti di test, inclusi i file di input locali, i file di output dei test e i record di temporizzazione dello sharding smart (il valore predefinito è gs://[PROJECT_ID]-devicerun se non specificato).
--results-dir Gestita automaticamente Non supportato. I percorsi secondari vengono organizzati automaticamente in Cloud Storage in automation/sessions/{session_id}/.
--directories-to-pull --paths-to-pull Elenco. File o directory da scaricare dal dispositivo dopo l'esecuzione del test (DEVICE_PATH su Android; BUNDLE_ID:DEVICE_PATH su iOS).

Configurazione dello sharding

Parametro legacy (Test Lab/Flank) Parametro DDP target Formato/Logica di conversione
--num-uniform-shards {N} --sharding-option=uniform --uniform-sharding-count={N} String e Integer. La configurazione combinata dei flag attiva la strategia di sharding uniforme e imposta il numero massimo di shard (intervallo di conteggio valido: 1-20 fisici, 1-200 virtuali).
Fianco --max-test-shards {N} --sharding-option=smart --smart-sharding-max-shard-count={N} String e Integer. La configurazione combinata dei flag attiva la strategia di sharding smart e imposta il numero massimo di shard (intervallo di conteggio valido: 0-20 fisici, 0-200 virtuali).
Fianco --shard-time {S} --sharding-option=smart --smart-sharding-target-duration={S} OBBLIGATORIO String. Attiva lo sharding intelligente con il tempo di esecuzione target (ad es. 2m, 10m, 1h). Intervallo valido: da 2m a 1h.
Fianco --smart-flank-gcs-path --smart-sharding-record-name={name} --bucket-name={bucket} OBBLIGATORIO String. Nome del file YAML del record di sharding (esclusa l'estensione del file) all'interno di --bucket-name in smart-sharding/ in Cloud Storage.

Flag specifici per Android

Utilizza questa tabella per mappare i flag Android gcloud firebase test android run e Flank legacy ai nuovi equivalenti gcloud beta device-run sessions submit instrumentation:

Tipo di test Gruppo di caratteristiche Parametro legacy (firebase android/Flank) Parametro DDP target Formato/Logica di conversione
Android comune Parametri e asset principali --app --apps Elenco. Se vengono forniti più APK/AAB dell'applicazione, passali tutti a --apps nell'ordine in cui devono essere installati sul dispositivo. Il percorso può essere locale o in Cloud Storage (gs://...).
Android comune Parametri e asset principali --additional-apks --apps Elenco. Unisci i valori di un elenco aggiuntivo direttamente nell'elenco --apps principale.
Android comune Parametri e asset principali --obb-files --other-files-to-push Dizionario in formato SOURCE=DEST. Invia i file OBB direttamente al percorso del dispositivo di destinazione (/sdcard/Android/obb/{package_name}/).
Android comune Configurazione dispositivo e targeting --device locale={L} --locale={L} Stringa. Mappa le impostazioni internazionali del dispositivo al flag --locale di primo livello (language-region, ad es. --locale=en-US) a cui passare il dispositivo prima di eseguire il test.
Android comune Configurazione dispositivo e targeting --device orientation={O} --orientation={O} Stringa. Mappa l'orientamento del dispositivo al flag --orientation di primo livello (portrait o landscape).
Android comune Configurazione dispositivo e targeting N/A --coordinates Stringa. Simula le coordinate della posizione GPS del dispositivo (ad es. --coordinates=37.4220,-122.0841).
Android comune Controllo dell'esecuzione e instabilità --grant-permissions Impostazione predefinita automatizzata Automated. Le autorizzazioni di runtime vengono concesse automaticamente per impostazione predefinita (equivalente a --grant-permissions=all).
Android comune Output e archiviazione N/A --dumpsys Stringa. Raccogli lo stato del sistema utilizzando dumpsys (valori: always, on-failure).
Android comune Output e archiviazione N/A --bugreport Stringa. Raccogli un bugreport completo dal dispositivo (valori: always, on-failure).
Android comune Output e archiviazione --record-video --video Stringa. Quando registrare un video dello schermo del dispositivo durante l'esecuzione del test. I valori validi sono always o on-failure.
Strumentazione Android Parametri e asset principali --type=instrumentation sessions submit instrumentation La struttura del sottocomando determina il tipo di test anziché un flag --type.
Strumentazione Android Parametri e asset principali --test --test OBBLIGATORIO String. Percorso dell'APK di test contenente i test di instrumentazione, locale o in Cloud Storage.
Strumentazione Android Controllo dell'esecuzione e instabilità --timeout --instrumentation-timeout Durata (ad es. 10m, 20s, 1h). Intervallo valido: da 1m a 3h (valore predefinito: 5m).
Strumentazione Android Controllo dell'esecuzione e instabilità N/A --flaky-test-parallel-retry Boolean. Indica se riprovare i test non riusciti in parallelo (il valore predefinito è false per l'esecuzione sequenziale).
Strumentazione Android Controllo dell'esecuzione e instabilità N/A --flaky-test-retry-level Stringa. Definisce se riprovare a livello di shard o di singolo test (il valore predefinito è shard).
Strumentazione Android Test runner e target --test-runner-class --test-runner-class Stringa. La classe di esecuzione dei test di instrumentazione completa (ad es. com.foo.MyRunner) da utilizzare. Se non specificata, viene determinata una classe runner predefinita esaminando il manifest dell'applicazione.
Strumentazione Android Test runner e target --test-targets --test-targets Dizionario di target di test o filtri di target da eseguire. Ogni target deve essere completamente qualificato con il nome del pacchetto o della classe che supporta chiavi come package, notPackage, class, notClass, annotation, notAnnotation e size. I formati testfile o notTestfile non sono supportati.
Strumentazione Android Test runner e target --use-orchestrator --orchestrator-version Se utilizzare Android Test Orchestrator. Accetta auto (orchestratore predefinito) o una stringa di versione specifica (ad es. 1.6). Le versioni disponibili possono essere interrogate utilizzando gcloud beta device-run software-versions list.
Strumentazione Android Test runner e target --environment-variables --additional-test-options Dizionario delle opzioni passate all'esecutore di test di instrumentazione. I formati supportati in --test-targets non sono consentiti qui.

Flag specifici per iOS

Utilizza questa tabella per mappare i flag iOS gcloud firebase test ios run e Flank legacy ai nuovi equivalenti gcloud alpha device-run sessions submit xctest:

Tipo di test Gruppo di caratteristiche Parametro legacy (firebase ios/Flank) Parametro DDP target Formato/Logica di conversione
iOS comuni Parametri e asset principali --additional-ipas --additional-apps Elenco di file helper .ipa da installare sul dispositivo prima dell'esecuzione del test.
Solo XCTest per iOS Parametri e asset principali --type=xctest sessions submit xctest La struttura del sottocomando determina il tipo di test anziché un flag --type (utilizza gcloud alpha).
Solo XCTest per iOS Parametri e asset principali --test --test OBBLIGATORIO String. Percorso del file ZIP contenente l'app per iOS e i file XCTest, locale o in Cloud Storage.
Solo XCTest per iOS Controllo dell'esecuzione e instabilità --timeout --xctest-timeout Durata (ad es. 5m, 15m, 1h). Intervallo valido: da 1m a 1h (valore predefinito: 5m).
Solo XCTest per iOS Output e archiviazione --record-video --video Quando registrare un video: always o on-failure. Viene registrato un video per ogni scenario di test della UI (iOS 17 o versioni successive).
Solo XCTest per iOS Test runner e target --xctestrun-file --xctestrun-file Stringa. Percorso di un file .xctestrun personalizzato, locale o in Cloud Storage.
Solo XCTest per iOS Test runner e target --xcode-version --xcode-version Stringa. ID catalogo o stringa di versione di Xcode da utilizzare (ad es. xcode-16-4 o 16.4). Le versioni disponibili possono essere interrogate utilizzando gcloud beta device-run software-versions list.

Feedback e domande

Contattaci per segnalare bug e richieste di funzionalità o partecipa al nostro forum di discussione.