A Plataforma de dispositivos para desenvolvedores (DDP) substitui o console legado do Firebase Test Lab
e os fluxos de trabalho da CLI do Test Lab por uma CLI de teste unificada, de alta performance e segura
Google Cloud-first: gcloud beta device-run
Este guia fornece traduções de linha de comando e mapeamentos de flags do Test Lab (ou Flank) para o DDP. Use estas orientações para migrar seus testes manualmente. Consulte Migrar do Firebase Test Lab para a plataforma de dispositivos do desenvolvedor para conhecer ferramentas de automação, benefícios, principais diferenças e dicas de migração.
Migração de fragmentação
O DDP moderniza as configurações de fragmentação substituindo nativamente a fragmentação inteligente complexa do Flank baseada no Cloud Storage e a fragmentação uniforme do Test Lab.
Fragmentação uniforme
- Defina
--sharding-option=uniform. Defina
--uniform-sharding-count={count}(1 a 20 para físico, 1 a 200 para virtual).Firebase Test Lab legado:
--num-uniform-shards {N}CLI do DDP:
--sharding-option=uniform --uniform-sharding-count={N}
Fragmentação inteligente
- Defina
--sharding-option=smart. - Defina
--smart-sharding-target-duration={duration}(por exemplo,2m,10m,1h; intervalo válido:2ma1h). - Defina
--smart-sharding-record-name={record_name}(aponta para o registro de rastreamento YAML em--bucket-nameemautomation/smart-sharding/). - Defina
--smart-sharding-max-shard-count={max_count}(limite máximo opcional: 0 a 20 para dispositivos físicos e 0 a 200 para virtuais).
Usando metadados históricos de tempo de 30 dias:
Flank legado:
max-test-shards: 10 shard-time: 120 smart-flank-gcs-path: gs://my-bucket/smart-sharding/timing-record.yamlCLI do 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
Configuração declarativa do YAML (--flags-file)
Para configurações complexas ou equipes que preferem manter arquivos
com controle de versões em vez de comandos longos do terminal, o gcloud oferece um pré-processador de argumentos
--flags-file universal (consulte $ gcloud topic flags-file):
gcloud beta device-run sessions submit instrumentation --flags-file=device-run-flags.yaml
Confira um exemplo que demonstra uma lista de vários valores e flags de dicionário:
# 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"
Exemplos de tradução de comandos de ponta a ponta
Confira exemplos concretos dessas traduções padrão e complexas.
Exemplo: executar um teste de instrumentação padrão
CLI legada do Firebase:
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
Tradução da CLI do 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
Exemplo: migrar uma configuração YAML de flanco complexa
Configuração legada do Flank:
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
Tradução da CLI do 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
Pós-execução e recuperação de resultados
Como o DDP não é iniciado com uma UI gráfica da Web (como o console do Firebase legado), os desenvolvedores precisam gerenciar, descrever e inspecionar os resultados diretamente usando a CLI ou as APIs REST programáticas:
# 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
Referência de mapeamento de flags
Confira o mapeamento de flags para migrar configurações de teste do Flank ou gcloud
firebase test android/ios run para o novo comando gcloud beta device-run sessions
submit instrumentation do DDP.
Parâmetros e recursos principais
| Parâmetro legado (Test Lab / Flank) | Parâmetro de DDP de destino | Formato / lógica de conversão |
|---|---|---|
--app |
--apps |
Lista. Se vários APKs/AABs de aplicativos forem fornecidos, transmita todos eles para --apps na ordem em que serão instalados no dispositivo. O caminho pode ser local ou no Cloud Storage (gs://...). |
--test |
--test |
OBRIGATÓRIO String. Caminho para o APK de teste que contém testes de instrumentação, seja local ou no Cloud Storage. |
--client-details |
--labels |
Dicionário de key=value pares a serem anexados à sessão de teste. |
Configurador do dispositivo e segmentação
| Parâmetro legado (Test Lab / Flank) | Parâmetro de DDP de destino | Formato / lógica de conversão |
|---|---|---|
--device model={M},version={V} |
--device={M}-{V} |
String OBRIGATÓRIA que mapeia o modelo e a versão do SO para uma única string de ID --device. A flag --device da DDP aceita vários IDs de dispositivo separados por vírgulas (por exemplo, --device=shiba-34,tokay-36) ou várias flags --device, cada uma especificando um ID de dispositivo diferente (por exemplo, --device=shiba-34 --device=tokay-36). |
--device locale={L} |
--locale={L} |
String. Mapeia a localidade do dispositivo para a flag --locale de nível superior (language-region, por exemplo, --locale=en-US) para mudar o dispositivo antes de executar o teste. |
--device orientation={O} |
--orientation={O} |
String. Mapeia a orientação do dispositivo para a flag --orientation de nível superior (portrait ou landscape). |
| N/A | --coordinates |
String. Simula coordenadas de localização do GPS do dispositivo (por exemplo, --coordinates=37.4220,-122.0841). |
Controle de execução e instabilidade
| Parâmetro legado (Test Lab / Flank) | Parâmetro de DDP de destino | Formato / lógica de conversão |
|---|---|---|
--num-flaky-test-attempts {R} |
--flaky-test-attempts {A} |
Número inteiro. O número máximo de tentativas de execução por fragmento de teste. Converta a contagem de novas tentativas R no limite total de tentativas A: A = R +1 (o padrão é 1). |
| N/A | --flaky-test-parallel-retry |
Boolean. Se as falhas de teste devem ser repetidas em paralelo (o padrão é false para execução sequencial). |
| N/A | --flaky-test-retry-level |
String. Define se a nova tentativa será feita no nível shard ou test individual (o padrão é shard). |
--async |
--async |
Boolean. Maps 1:1. Por padrão, o comando é executado de forma síncrona. Transmita isso para voltar ao terminal imediatamente. Sai imediatamente após o upload do arquivo e imprime os IDs da operação e da sessão. |
Test runner e destinos
| Parâmetro legado (Test Lab / Flank) | Parâmetro de DDP de destino | Formato / lógica de conversão |
|---|---|---|
--environment-variables |
--additional-test-options |
Dicionário de opções transmitidas ao executor de testes de instrumentação. Não é permitido usar formatos compatíveis com --test-targets. |
--test-targets |
--test-targets |
Dicionário de destinos de teste ou filtros de destino a serem executados. Cada destino precisa estar totalmente qualificado com o nome do pacote ou da classe, compatível com chaves como package, notPackage, class, notClass, annotation, notAnnotation e size. Os formatos testfile ou notTestfile não são aceitos. |
--use-orchestrator |
--orchestrator-version |
Se o Android Test Orchestrator será usado. Usa auto (orquestrador padrão) ou uma string de versão específica (por exemplo, 1.6). As versões disponíveis podem ser consultadas usando gcloud beta device-run software-versions list. |
--test-runner-class |
--test-runner-class |
String. A classe totalmente qualificada do executor de testes de instrumentação (por exemplo, com.foo.MyRunner) a ser usado. Se não for especificado, uma classe executora padrão será determinada por meio de exame no manifesto do aplicativo. |
--directories-to-pull |
--paths-to-pull |
Lista. Diretórios para fazer o download do dispositivo após a execução do teste. |
--other-files |
--other-files-to-push |
Dictionary. Lista SOURCE=DEST separada por vírgulas de arquivos auxiliares para enviar ao dispositivo antes da execução do teste. |
Saída e armazenamento
| Parâmetro legado (Test Lab / Flank) | Parâmetro de DDP de destino | Formato / lógica de conversão |
|---|---|---|
--results-bucket |
--bucket-name |
String. Bucket do Cloud Storage em que os artefatos de teste, incluindo arquivos de entrada locais, arquivos de saída de teste e registros de tempo de fragmentação inteligente, são enviados por upload (o padrão é gs://[PROJECT_ID]-devicerun se não for especificado). |
--results-dir |
Gerenciada automaticamente | Não compatível. Os subcaminhos são organizados automaticamente no Cloud Storage em automation/sessions/{session_id}/. |
Configuração de fragmentação
| Parâmetro legado (Test Lab / Flank) | Parâmetro de DDP de destino | Formato / lógica de conversão |
|---|---|---|
--num-uniform-shards {N} |
--sharding-option=uniform --uniform-sharding-count={N} |
String e Integer. A configuração combinada de flags ativa a estratégia de fragmentação uniforme e define a contagem máxima de fragmentos (intervalo de contagem válido: 1 a 20 físicos, 1 a 200 virtuais). |
Flanco --max-test-shards {N} |
--sharding-option=smart --smart-sharding-max-shard-count={N} |
String e Integer. A configuração combinada de flags ativa a estratégia de fragmentação inteligente e define a contagem máxima de fragmentos (intervalo de contagem válido: 0 a 20 físicos, 0 a 200 virtuais). |
Flanco --shard-time {S} |
--sharding-option=smart --smart-sharding-target-duration={S} |
OBRIGATÓRIO String. Ativa o sharding inteligente com o tempo de execução desejado (por exemplo, 2m, 10m, 1h). Intervalo válido: 2m a 1h. |
Flanco --smart-flank-gcs-path |
--smart-sharding-record-name={name} --bucket-name={bucket} |
OBRIGATÓRIO String. Nome do YAML de registro de fragmentação (excluindo a extensão do arquivo) em --bucket-name em smart-sharding/ no Cloud Storage. |
Flags específicas do Android
Use esta tabela para mapear flags legadas de gcloud firebase test android run para os novos equivalentes de device-run:
Parâmetro legado (firebase android) |
Parâmetro de DDP de destino | Formato / lógica de conversão |
|---|---|---|
--additional-apks |
--apps |
Lista. Mescle outros valores de lista diretamente na lista principal --apps. |
| N/A | --bugreport |
String. Colete um bugreport completo do dispositivo (valores: always, on-failure). |
| N/A | --dumpsys |
String. Colete o estado do sistema usando dumpsys (valores: always, on-failure). |
--timeout |
--instrumentation-timeout |
Duração (por exemplo, 10m, 20s, 1h). Intervalo válido: 1m a 3h (padrão: 5m). |
--record-video |
--video |
String. Quando gravar um vídeo da tela do dispositivo durante o teste.Os valores válidos são always ou on-failure. |
Flags específicas do iOS
Use esta tabela para mapear flags legadas de gcloud firebase test ios run para os novos equivalentes de device-run:
Parâmetro legado (firebase ios) |
Parâmetro de DDP de destino | Formato / lógica de conversão |
|---|---|---|
--test |
--test |
Caminho para o ZIP do XCTest criado. |
--device model={M},version={V} |
--device={M}-{V} |
String de ID do dispositivo de destino. |
--timeout |
--xctest-timeout |
Duração (por exemplo, 5m). Intervalo: de 1m a 1h. |
--xcode-version |
--xcode-version |
ID do catálogo ou string de versão do Xcode a ser usada (por exemplo, xcode-16-4 ou 16.4). As versões disponíveis podem ser consultadas usando gcloud beta device-run software-versions list. |
--results-bucket |
--bucket-name |
Bucket do GCS de destino personalizado. |
--async |
--async |
Síncrono por padrão, transmita para sair imediatamente. |
--other-files |
--other-files-to-push |
Dicionário no formato SOURCE=BUNDLE_ID:DEST. |
--directories-to-pull |
--paths-to-pull |
Lista no formato BUNDLE_ID:DEVICE_PATH. |
--additional-ipas |
--additional-apps |
Lista de IPAs auxiliares a serem instaladas antes do teste. |
--xctestrun-file |
--xctestrun-file |
Caminho para a lista de propriedades .xctestrun personalizada. |
--num-flaky-test-attempts |
--flaky-test-attempts |
Contagem de números inteiros de novas tentativas (por exemplo, 3). |
--client-details |
--labels |
Pares de chave-valor (KEY=VALUE). |
Feedback e dúvidas
Entre em contato para informar bugs e solicitar recursos ou participe do nosso fórum de discussão.