Esegui la migrazione da Firebase Test Lab a Developer Device Platform

Siamo felici di annunciare l'anteprima dell'interfaccia a riga di comando gcloud beta device-run nella Developer Device Platform (DDP), un miglioramento della CLI gcloud firebase test.

La CLI gcloud beta device-run semplifica e modernizza l'esecuzione di test di automazione e strumentazione sul dispositivo, sia fisico che virtuale. Nella release di anteprima sono supportati Android Instrumentation e iOS XCTest. Consulta la panoramica dell'esecuzione del dispositivo per le istruzioni.

Panoramica e vantaggi

Il passaggio da Firebase Test Lab alla Developer Device Platform (DDP) offre diversi vantaggi principali, in particolare in termini di risparmio sui costi, velocità di esecuzione dei test, debug avanzato e supporto integrato per i flussi di lavoro basati sull'AI.

Gli sviluppatori che eseguono test mobile nel cloud devono destreggiarsi tra diversi modelli di configurazione (Firebase Test Lab) o gestire pipeline e livelli wrapper di strumenti aggiuntivi (Flank).

La CLI gcloud beta device-run nella Developer Device Platform unisce queste funzionalità direttamente nella Google Cloud CLI principale. Fornisce un'interfaccia backend più solida, dichiarativa e scalabile che esegue i test in modo prevedibile ed efficiente su dispositivi fisici e virtuali.

Le funzionalità e le capacità principali che rendono DDP una piattaforma superiore rispetto a Firebase Test Lab includono:

Advanced Smart Sharding

Mentre Firebase Test Lab si basa sui dati di temporizzazione di una singola esecuzione per suddividere i test, lo Smart Sharding di DDP è molto più intelligente:

  • Dati storici di 30 giorni: DDP analizza fino a 30 giorni di cronologia di esecuzione per distribuire i test in shard stabili e ottimizzati.
  • Monitoraggio della durata specifico per dispositivo: DDP monitora i tempi di esecuzione dei test per modello di dispositivo specifico anziché utilizzare medie generalizzate della piattaforma su tutti i dispositivi.
  • Modellazione dell'overhead di Orchestrator: DDP tiene conto dell'overhead di avvio di Android Test Orchestrator per ogni istanza di test, assicurando che gli shard non superino le durate target.

Ritentativi granulari ed economici

In Test Lab, se un singolo scenario di test all'interno di uno shard non va a buon fine, è necessario riprovare l'intero shard (potenzialmente decine di test), il che aumenta sia i tempi di esecuzione sia i costi di fatturazione. DDP introduce meccanismi di ripetizione molto efficienti:

  • Ritentativi mirati a livello di scenario di test: isola e ritenta solo gli scenari di test specifici non riusciti all'interno di uno shard.
  • Ritentativi sequenziali dei test instabili: esegue i tentativi per i test instabili in sequenza per impostazione predefinita (anziché contemporaneamente come Test Lab). La combinazione di questa funzionalità con i nuovi tentativi a livello di scenario di test riduce drasticamente il numero totale di esecuzioni dei test, con conseguente risparmio significativo sui costi di fatturazione dei dispositivi.

Supporto avanzato per i test Android

DDP risolve le limitazioni di lunga data dell'API di test Test Lab:

  • Solo APK di test (nessuna app fittizia): in passato Test Lab richiedeva un'app fittizia per eseguire test di autostrumentazione. DDP supporta l'esecuzione di test di strumentazione solo con un APK di test.
  • Timeout esteso dello shard: DDP aumenta il limite di esecuzione massimo per uno shard di test di strumentazione singolo da 45 minuti a 3 ore.
  • Più orchestrator: DDP supporta più versioni di Android Test Orchestrator.
  • Supporto binario C++ integrato: DDP supporta l'esecuzione di binari C++ per Android.

Interazioni con i dispositivi arricchite e debug avanzato

DDP fornisce interazioni sul dispositivo più approfondite e artefatti di debug molto più ricchi rispetto a quelli disponibili in Test Lab:

  • Posizioni simulate: DDP supporta la simulazione delle coordinate GPS del dispositivo.
  • Supporto di ApkSet: gli sviluppatori possono installare ApkSet (file .apks) direttamente sui dispositivi remoti.
  • Debug avanzato: DDP espone log di sistema e informazioni di debug essenziali, inclusi dumpsys e bugreport, direttamente allo sviluppatore.

Catalogo dei dispositivi altamente scalabile

DDP sostituisce il catalogo di ambienti rigidi e pesanti di Test Lab con un'API Device Catalog completamente riprogettata:

  • Filtro lato server: velocizza le query e riduce la latenza del payload consentendo agli sviluppatori di filtrare i dispositivi lato server.
  • Dati di disponibilità in tempo reale: DDP fornisce informazioni sulla disponibilità dei dispositivi in tempo reale direttamente a Device Run, in modo che tu possa scegliere dispositivi ad alta disponibilità ed evitare tempi di attesa lunghi, una funzionalità completamente assente in Test Lab.

Scegli il percorso di migrazione

Automatizza la migrazione con l'AI

Per rendere questa transizione più semplice, abbiamo sviluppato un'abilità di agente di traduzione dedicata: migrating-device-run.

Se utilizzi agenti di programmazione basati sull'AI, come Antigravity, Claude Code, Codex, puoi tradurre facilmente i tuoi script di test personalizzati. Basta copiare l'URL dello schema della skill di migrazione e incollarlo nello spazio di lavoro dell'assistente AI come descritto qui.

Template di prompt per la migrazione

You are an expert migration assistant. I want to migrate my test command and
configuration to the new `gcloud beta device-run` command format.

Use this migration guideline as your ruleset:
https://docs.cloud.google.com/developer-device-platform/device-run/migrate/migration-skill

Translate the following command and configuration to the new `gcloud beta
device-run` CLI: (Insert your raw Firebase Test / Flank YAML or bash script
here.)

Eseguire la migrazione manualmente

Segui le nostre traduzioni di comandi e flag per eseguire la migrazione manualmente da Firebase Test Lab a DDP. Mentre ti prepari alla migrazione, tieni presente le seguenti differenze strutturali:

  • Architettura CLI incentrata sulle risorse: gcloud beta device-run adotta un pattern di comando <resource> <verb> moderno in tre gruppi di risorse principali:
    • devices: accesso diretto alla CLI all'inventario del catalogo dei dispositivi e dettagli completi sui dispositivi, in sostituzione dei comandi firebase test android/ios models/versions/locales legacy frammentati.
    • software-versions: accesso diretto alla CLI alle versioni software supportate (come Xcode e Android Test Orchestrator), in sostituzione di firebase test ios xcode-versions list legacy.
    • sessions: gestione del ciclo di vita della sessione end-to-end direttamente nel terminale, inclusi sessions submit instrumentation, sessions submit xctest, sessions wait, sessions describe [--full], sessions list e sessions cancel.
  • Struttura dei sottocomandi: i tipi di test sono standardizzati e nidificati in sessions submit come sottocomandi puliti anziché utilizzare flag di tipo.
    • DDP: gcloud beta device-run sessions submit instrumentation (Android) o gcloud beta device-run sessions submit xctest (iOS)
    • Test Lab: gcloud firebase test android run --type=instrumentation (Android) o gcloud firebase test ios run --type=xctest (iOS)
  • App pluralizzate e unite: gli APK standard e supplementari vengono uniti nell'elenco di flag --apps pluralizzati (ad es. --apps=app.apk,helper.apk) anziché essere suddiviso in --app e --additional-apks.
  • Argomenti di dizionari e elenchi strutturati: sono stati sostituiti i file separati da virgole o gli elenchi di variabili di ambiente con i formati di dizionari ed elenchi strutturati della CLI: --other-files-to-push KEY=VALUE, --additional-test-options KEY=VALUE, --paths-to-pull e --test-targets.
  • Controlli unificati di sharding e nuovi tentativi: supporto continuo per lo sharding uniforme e lo sharding intelligente, insieme a nuovi tentativi paralleli (--flaky-test-parallel-retry, --flaky-test-retry-level) e diagnostica di runtime (--dumpsys, --bugreport, --video).
  • Esecuzione asincrona: gcloud beta device-run supporta l'esecuzione asincrona, consentendoti di eseguire i test senza attendere il completamento. Utilizza gcloud beta device-run sessions wait <SESSION_ID> per attendere il completamento.
  • Configurazione YAML dichiarativa (--flags-file): i team che eseguono la migrazione da Flank e che preferiscono i file YAML con controllo delle versioni alle stringhe di script shell possono utilizzare il supporto universale --flags-file=device-run-flags.yaml di gcloud.

Passaggi successivi

  1. Utilizza la nostra guida rapida per configurare la piattaforma per dispositivi per sviluppatori.
  2. Esplora il nostro catalogo dei dispositivi per trovare tutti i dispositivi disponibili.
  3. Scopri di più su Device Run per iniziare a eseguire i test.
  4. Visita la nostra pagina sulle traduzioni di comandi e flag per visualizzare una mappatura dei flag di Test Lab e Flank a DDP.