Migrar do Firebase Test Lab para a plataforma de dispositivos do desenvolvedor

Temos o prazer de anunciar a prévia da interface de linha de comando gcloud beta device-run na Developer Device Platform (DDP), uma melhoria na CLI gcloud firebase test.

A CLI gcloud beta device-run simplifica e moderniza a execução de testes de automação e instrumentação no dispositivo, tanto físico quanto virtual. Na versão de prévia, há suporte para instrumentação do Android e XCTest do iOS. Consulte a Visão geral da execução no dispositivo para instruções.

Informações gerais e benefícios

A mudança do Firebase Test Lab para a plataforma de dispositivos para desenvolvedores (DDP, na sigla em inglês) oferece várias vantagens importantes, principalmente em termos de economia de custos, velocidade de execução de testes, depuração avançada e suporte integrado para fluxos de trabalho baseados em IA.

Os desenvolvedores que executam testes em dispositivos móveis na nuvem precisam alternar entre diferentes modelos de configuração (Firebase Test Lab) ou manter pipelines e camadas de wrapper de ferramentas adicionais (Flank).

A CLI gcloud beta device-run na Developer Device Platform mescla essas capacidades diretamente na Google Cloud CLI principal. Ela oferece uma interface de back-end mais robusta, declarativa e escalonável que executa testes de maneira previsível e eficiente em dispositivos físicos e virtuais.

Os principais recursos e capacidades que tornam a DDP uma plataforma superior em comparação com o Firebase Test Lab incluem:

Fragmentação inteligente avançada

Enquanto o Firebase Test Lab depende de dados de tempo de execução única para fragmentar testes, o Smart Sharding do DDP é muito mais inteligente:

  • Dados históricos de 30 dias: a DDP analisa até 30 dias de histórico de execução para distribuir testes em fragmentos estáveis e otimizados.
  • Acompanhamento da duração específico do dispositivo: o DDP acompanha os tempos de execução dos testes por modelo de dispositivo específico, em vez de usar médias generalizadas de plataforma em todos os dispositivos.
  • Modelagem de sobrecarga do orquestrador: o DDP considera a sobrecarga de inicialização do Android Test Orchestrator para cada instância de teste, garantindo que os fragmentos não excedam as durações desejadas.

Repetições refinadas e econômicas

No Test Lab, se um único caso de teste em um fragmento falhar, todo o fragmento (potencialmente dezenas de testes) precisará ser repetido, o que aumenta os tempos de execução e os custos de faturamento. O DDP apresenta mecanismos de nova tentativa altamente eficientes:

  • Repetições segmentadas no nível do caso de teste: isola e repete apenas os casos de teste específicos com falha em um fragmento.
  • Novas tentativas sequenciais de testes instáveis: executa novas tentativas de testes instáveis sequencialmente por padrão (em vez de simultaneamente, como o Test Lab). A combinação disso com novas tentativas no nível do caso de teste reduz drasticamente o total de execuções de teste, resultando em uma economia significativa nos custos de faturamento do dispositivo.

Suporte avançado para testes do Android

O DDP resolve limitações antigas na API de teste do Test Lab:

  • Somente APK de teste (sem apps fictícios): historicamente, o Test Lab exigia um app fictício para executar testes de autoinstrumentação. O DDP permite executar testes de instrumentação com apenas um APK de teste.
  • Tempo limite estendido de fragmento: o DDP aumenta o limite máximo de execução de um único fragmento de teste de instrumentação do limite de 45 minutos do Test Lab para 3 horas.
  • Vários orquestradores: o DDP é compatível com várias versões do Android Test Orchestrator.
  • Suporte binário C++ integrado: o DDP permite executar binários C++ do Android.

Interações enriquecidas com dispositivos e depuração avançada

O DDP oferece interações mais profundas no dispositivo e artefatos de depuração muito mais avançados do que os disponíveis no Test Lab:

  • Localizações simuladas: a DDP permite simular coordenadas de GPS do dispositivo.
  • Suporte a ApkSets: os desenvolvedores podem instalar ApkSets (arquivos .apks) diretamente nos dispositivos remotos.
  • Depuração avançada: o DDP expõe registros vitais do sistema e informações de depuração, incluindo dumpsys e bugreport, diretamente ao desenvolvedor.

Catálogo de dispositivos altamente escalonável

O DDP substitui o catálogo de ambiente rígido e pesado do Test Lab por uma API Device Catalog completamente reprojetada:

  • Filtragem do lado do servidor: acelera as consultas e diminui a latência de payload, permitindo que os desenvolvedores filtrem dispositivos do lado do servidor.
  • Dados de disponibilidade em tempo real: o DDP fornece informações de disponibilidade de dispositivos em tempo real diretamente para o Device Run. Assim, você pode escolher dispositivos altamente disponíveis e evitar longos tempos de espera, um recurso que o Test Lab não tem.

Escolher seu caminho de migração

Automatize sua migração com a IA

Para facilitar essa transição, desenvolvemos uma habilidade dedicada de agente de tradução: migrating-device-run.

Se você estiver usando agentes de programação de IA, como Antigravity, Claude Code e Codex, poderá traduzir seus scripts de teste personalizados com facilidade. Basta copiar o URL do esquema da habilidade de migração e colar no espaço de trabalho do assistente de IA, conforme descrito aqui.

Modelo de comando de migração

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.)

Migrar anualmente

Siga nossas traduções de comandos e flags para migrar manualmente do Firebase Test Lab para o DDP. Ao se preparar para migrar, lembre-se das seguintes diferenças estruturais:

  • Arquitetura de CLI centrada em recursos: o gcloud beta device-run adota um padrão de comando <resource> <verb> moderno em três grupos principais de recursos:
    • devices: acesso direto da CLI ao inventário do catálogo de dispositivos e detalhes abrangentes do dispositivo, substituindo comandos firebase test android/ios models/versions/locales legados fragmentados.
    • software-versions: acesso direto da CLI a versões de software compatíveis (como Xcode e Android Test Orchestrator), substituindo o firebase test ios xcode-versions list legado.
    • sessions: gerenciamento do ciclo de vida da sessão de ponta a ponta diretamente no terminal, incluindo sessions submit instrumentation, sessions submit xctest, sessions wait, sessions describe [--full], sessions list e sessions cancel.
  • Estrutura de subcomando: os tipos de teste são padronizados e aninhados em sessions submit como subcomandos limpos, em vez de usar flags de tipo.
    • DDP: gcloud beta device-run sessions submit instrumentation (Android) ou gcloud beta device-run sessions submit xctest (iOS)
    • Test Lab: gcloud firebase test android run --type=instrumentation (Android) ou gcloud firebase test ios run --type=xctest (iOS)
  • Apps pluralizados e mesclados: os APKs padrão e suplementares são mesclados na lista de flags pluralizadas --apps (por exemplo, --apps=app.apk,helper.apk) em vez de dividir em --app e --additional-apks.
  • Argumentos estruturados de dicionário e lista: substituíram arquivos separados por vírgulas ou listas de ambiente por formatos estruturados de dicionário e lista da CLI: --other-files-to-push KEY=VALUE, --additional-test-options KEY=VALUE, --paths-to-pull e --test-targets.
  • Controles unificados de fragmentação e novas tentativas: suporte integrado para fragmentação uniforme e fragmentação inteligente, além de novas tentativas paralelas (--flaky-test-parallel-retry, --flaky-test-retry-level) e diagnósticos de tempo de execução (--dumpsys, --bugreport, --video).
  • Execução assíncrona: o gcloud beta device-run oferece suporte à execução assíncrona, permitindo que você execute testes sem esperar que eles sejam concluídos. Use gcloud beta device-run sessions wait <SESSION_ID> para aguardar a conclusão.
  • Configuração declarativa do YAML (--flags-file): equipes que migram do Flank e preferem arquivos YAML com controle de versão em vez de strings de script de shell podem usar a compatibilidade universal do --flags-file=device-run-flags.yaml do gcloud.

A seguir

  1. Use nosso Guia de início rápido para configurar a plataforma de dispositivos para desenvolvedores.
  2. Confira nosso catálogo de dispositivos para encontrar todos os aparelhos disponíveis.
  3. Saiba mais sobre Device Run para começar a executar testes.
  4. Acesse nossas traduções de comandos e flags para ver um mapeamento das flags do Test Lab e do Flank para o DDP.