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 della CLI Test Lab con una CLI di test unificata, sicura e ad alte prestazioni Google Cloud: gcloud beta device-run

Questa guida fornisce traduzioni e mappature dei flag della riga di comando da Test Lab (o Flank) a DDP. Utilizza queste indicazioni per eseguire la migrazione dei test manualmente. 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} (da 1 a 20 per le sedi fisiche, da 1 a 200 per quelle virtuali).

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

  • DDP CLI: --sharding-option=uniform --uniform-sharding-count={N}

Smart Sharding

  • 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 le carte fisiche, 0-200 per quelle virtuali).

Utilizzo dei metadati di temporizzazione storici di 30 giorni:

  • Legacy Flank:

    max-test-shards: 10
    shard-time: 120
    smart-flank-gcs-path: gs://my-bucket/smart-sharding/timing-record.yaml
    
  • DDP CLI:

    --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 preprocessor 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

DDP CLI translation:

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

DDP CLI translation:

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 una UI web grafica (come la console Firebase legacy), 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
--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://...).
--test --test OBBLIGATORIO Stringa. Percorso dell'APK di test contenente i test di instrumentazione, locale o in Cloud Storage.
--client-details --labels Dizionario di coppie key=value da allegare alla sessione di test.

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 più flag --device, ognuno dei quali specifica un ID dispositivo distinto (ad es. --device=shiba-34 --device=tokay-36).
--device locale={L} --locale={L} String. Mappa le impostazioni internazionali del dispositivo con il flag --locale di primo livello (language-region, ad es. --locale=en-US) a cui passare il dispositivo prima di eseguire il test.
--device orientation={O} --orientation={O} String. Mappa l'orientamento del dispositivo al flag --orientation di primo livello (portrait o landscape).
N/A --coordinates Stringa. Simula le coordinate della posizione GPS del dispositivo (ad es. --coordinates=37.4220,-122.0841).

Controllo dell'esecuzione e instabilità

Parametro legacy (Test Lab / Flank) Parametro DDP target Formato / Logica di conversione
--num-flaky-test-attempts {R} --flaky-test-attempts {A} Numero intero. Il numero massimo di tentativi di esecuzione per ogni shard di test. Converti il numero di nuovi tentativi R nel limite di tentativi totali A: A = R +1 (il valore predefinito è 1).
N/A --flaky-test-parallel-retry Boolean. Indica se riprovare i test non riusciti in parallelo (il valore predefinito è false per l'esecuzione sequenziale).
N/A --flaky-test-retry-level String. Definisce se riprovare a livello di shard o di singolo test (il valore predefinito è shard).
--async --async Boolean. Maps 1:1. Il comando viene eseguito in modo sincrono per impostazione predefinita. Passa questo valore per tornare immediatamente al terminale. Termina immediatamente dopo il caricamento del file e stampa gli ID operazione e sessione.

Test runner e target

Parametro legacy (Test Lab / Flank) Parametro DDP target Formato / Logica di conversione
--environment-variables --additional-test-options Dizionario di opzioni trasmesse al runner di test di instrumentazione. I formati supportati in --test-targets non sono consentiti qui.
--test-targets --test-targets Dizionario dei target di test o dei filtri dei 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.
--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.
--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.
--directories-to-pull --paths-to-pull Elenco. Directory da scaricare dal dispositivo dopo l'esecuzione del test.
--other-files --other-files-to-push Dizionario. Elenco SOURCE=DEST separato da virgole di file ausiliari da inviare al dispositivo prima dell'esecuzione del test.

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 Gestito automaticamente Non supportato. I sottopercorsi vengono organizzati automaticamente in Cloud Storage in automation/sessions/{session_id}/.

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).
Lato --shard-time {S} --sharding-option=smart --smart-sharding-target-duration={S} OBBLIGATORIO Stringa. 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 gcloud firebase test android run precedenti ai nuovi flag device-run equivalenti:

Parametro legacy (firebase android) Parametro DDP target Formato / Logica di conversione
--additional-apks --apps Elenco. Unisci i valori di un elenco aggiuntivo direttamente nell'elenco --apps principale.
N/A --bugreport String. Raccogli un bugreport completo dal dispositivo (valori: always, on-failure).
N/A --dumpsys String. Raccogli lo stato del sistema utilizzando dumpsys (valori: always, on-failure).
--timeout --instrumentation-timeout Durata (ad es. 10m, 20s, 1h). Intervallo valido: da 1m a 3h (valore predefinito: 5m).
--record-video --video String. Quando registrare il video dello schermo del dispositivo durante l'esecuzione del test.I valori validi sono always o on-failure.

Flag specifici per iOS

Utilizza questa tabella per mappare i flag gcloud firebase test ios run legacy ai nuovi equivalenti device-run:

Parametro legacy (firebase ios) Parametro DDP target Formato / Logica di conversione
--test --test Percorso del file zip XCTest creato.
--device model={M},version={V} --device={M}-{V} Stringa ID dispositivo di destinazione.
--device locale={L} --locale={L} Stringa delle impostazioni internazionali di destinazione (language-region, ad es. --locale=en-US).
--timeout --xctest-timeout Durata (ad es. 5m). Intervallo: da 1m a 1h.
--xcode-version --xcode-version Stringa ID o versione del catalogo di Xcode da utilizzare (ad es. xcode-16-4 o 16.4). Le versioni disponibili possono essere richieste utilizzando gcloud beta device-run software-versions list.
--results-bucket --bucket-name Bucket GCS di destinazione personalizzata.
--async --async Sincrono per impostazione predefinita, passa per uscire immediatamente.
--other-files --other-files-to-push Dizionario in formato SOURCE=BUNDLE_ID:DEST.
--directories-to-pull --paths-to-pull Elenco in formato BUNDLE_ID:DEVICE_PATH.
--additional-ipas --additional-apps Elenco di IPA helper da installare prima del test.
--xctestrun-file --xctestrun-file Percorso del file plist .xctestrun personalizzato.
--num-flaky-test-attempts --flaky-test-attempts Numero intero di tentativi (ad es. 3).
--client-details --labels Coppie chiave-valore (KEY=VALUE).

Feedback e domande

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