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: 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 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.yamlInterfaccia 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.