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, 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 manuale dei test. Consulta Migrazione da Firebase Test Lab alla piattaforma per dispositivi per sviluppatori 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 intelligente 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 le sedi fisiche, 1-200 per quelle virtuali).

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

  • CLI DDP: --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 le carte 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):

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

Ecco un esempio che mostra un elenco e flag di dizionario multivalore:

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

Esempi di traduzione di comandi end-to-end

Consulta queste traduzioni standard e complesse per esempi concreti.

Esempio: esegui un test di instrumentazione standard

Interfaccia a riga di comando di Firebase precedente:

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 della CLI 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 complessa del fianco

Configurazione di Flank legacy:

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 della CLI 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 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

Di seguito è riportata la mappatura dei flag per la migrazione delle configurazioni di test da Flank o gcloud firebase test android/ios run al nuovo comando DDP gcloud beta device-run sessions submit instrumentation.

Parametri e asset principali

Parametro legacy (Test Lab / Flank) Parametro DDP target Logica di formato / 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 Logica di formato / 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} Stringa. Mappa le impostazioni internazionali del dispositivo sul flag --locale di primo livello (language-region, ad es. --locale=en-US) a cui passare prima di eseguire il test.
--device orientation={O} --orientation={O} Stringa. 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 Logica di formato / conversione
--num-flaky-test-attempts {R} --flaky-test-attempts {A} Numero intero. Il numero massimo di tentativi di esecuzione per shard di test. Converti il conteggio dei tentativi R nel limite dei tentativi totali A: A = R + 1 (il valore predefinito è 1).
N/A --flaky-test-parallel-retry Booleano. Indica se ripetere i test non riusciti in parallelo (il valore predefinito è false per l'esecuzione sequenziale).
N/A --flaky-test-retry-level Stringa. Definisce se riprovare a livello di shard o di singolo test (il valore predefinito è shard).
--async --async Booleano. Maps 1:1. Il comando viene eseguito in modo sincrono per impostazione predefinita. Mostra questo documento 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 Logica di formato / 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 il nome 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 Indica 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 del 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 separato da virgole di SOURCE=DEST dei file ausiliari da trasferire al dispositivo prima dell'esecuzione del test.

Output e spazio di archiviazione

Parametro legacy (Test Lab / Flank) Parametro DDP target Logica di formato / conversione
--results-bucket --bucket-name Stringa. Bucket Cloud Storage in cui vengono caricati gli artefatti di test, inclusi i file di input locali, i file di output di test e i record di temporizzazione dello sharding intelligente (il valore predefinito è gs://[PROJECT_ID]-devicerun se non specificato).
--results-dir Gestito automaticamente Non supportato. I percorsi secondari vengono organizzati automaticamente in Cloud Storage in automation/sessions/{session_id}/.

Configurazione dello sharding

Parametro legacy (Test Lab / Flank) Parametro DDP target Logica di formato / conversione
--num-uniform-shards {N} --sharding-option=uniform --uniform-sharding-count={N} Stringa e Numero intero. La configurazione combinata dei flag attiva la strategia di partizionamento uniforme e imposta il conteggio massimo dei partizionamenti (intervallo di conteggio valido: 1-20 fisici, 1-200 virtuali).
Fianco --max-test-shards {N} --sharding-option=smart --smart-sharding-max-shard-count={N} Stringa e Numero intero. La configurazione combinata dei flag attiva la strategia di sharding intelligente e imposta il conteggio massimo degli shard (intervallo di conteggio valido: 0-20 fisici, 0-200 virtuali).
Fianco --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 Stringa. Nome del file YAML del record di sharding (esclusa l'estensione) 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 Logica di formato / conversione
--additional-apks --apps Elenco. Unisci i valori di elenchi aggiuntivi direttamente nell'elenco principale --apps.
N/A --bugreport Stringa. Raccogli un bugreport completo dal dispositivo (valori: always, on-failure).
N/A --dumpsys Stringa. 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 (il valore predefinito è 5m).
--record-video --video Stringa. 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 precedenti ai nuovi flag device-run equivalenti:

Parametro legacy (firebase ios) Parametro DDP target Logica di formato / conversione
--test --test Percorso del file zip XCTest creato.
--device model={M},version={V} --device={M}-{V} Stringa ID dispositivo di destinazione.
--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 interrogate utilizzando gcloud beta device-run software-versions list.
--results-bucket --bucket-name Bucket GCS di destinazione personalizzato.
--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 di assistenza 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 partecipare al nostro forum di discussione.