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: da2ma1h). - Imposta
--smart-sharding-record-name={record_name}(punta al record di monitoraggio YAML all'interno di--bucket-nameinautomation/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.yamlDDP 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.