Firebase Test Lab to Developer Device Platform Command and Flag Translation

La Plataforma de dispositivos para desarrolladores (DDP) reemplaza la consola heredada de Firebase Test Lab y los flujos de trabajo de la CLI de Test Lab con una CLI de prueba unificada, segura y de alto rendimiento basada enGoogle Cloud: gcloud beta device-run

En esta guía, se proporcionan traducciones de líneas de comandos y asignaciones de marcas de Test Lab (o Flank) a DDP. Usa esta guía para migrar tus pruebas de forma manual. Consulta Migra de Firebase Test Lab a Developer Device Platform para obtener información sobre las herramientas de automatización, los beneficios, las diferencias clave y las sugerencias de migración.

Migración de fragmentación

DDP moderniza las configuraciones de fragmentación reemplazando de forma nativa tanto la fragmentación inteligente compleja basada en Cloud Storage de Flank como la fragmentación uniforme de Test Lab.

Fragmentación uniforme

  • Establece --sharding-option=uniform.
  • Establece --uniform-sharding-count={count} (de 1 a 20 para dispositivos físicos y de 1 a 200 para dispositivos virtuales).

  • Firebase Test Lab heredado: --num-uniform-shards {N}

  • CLI de DDP: --sharding-option=uniform --uniform-sharding-count={N}

Fragmentación inteligente

  • Establece --sharding-option=smart.
  • Establece --smart-sharding-target-duration={duration} (p.ej., 2m, 10m, 1h; rango válido: de 2m a 1h).
  • Establece --smart-sharding-record-name={record_name} (apunta al registro de seguimiento de YAML dentro de --bucket-name en automation/smart-sharding/).
  • Establece --smart-sharding-max-shard-count={max_count} (límite máximo opcional: de 0 a 20 para tarjetas físicas y de 0 a 200 para tarjetas virtuales).

Usa metadatos históricos de sincronización de 30 días:

  • Legacy Flank:

    max-test-shards: 10
    shard-time: 120
    smart-flank-gcs-path: gs://my-bucket/smart-sharding/timing-record.yaml
    
  • CLI de 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
    

Configuración declarativa de YAML (--flags-file)

Para configuraciones complejas o equipos que prefieren mantener archivos con control de versiones en lugar de comandos largos de la terminal, gcloud proporciona un preprocesador de argumentos --flags-file universal (consulta $ gcloud topic flags-file):

gcloud beta device-run sessions submit instrumentation --flags-file=device-run-flags.yaml

A continuación, se muestra un ejemplo de marcas de diccionario y lista con varios valores:

# 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"

Ejemplos de traducción de comandos de extremo a extremo

Consulta estas traducciones estándar y complejas para ver ejemplos concretos.

Ejemplo: Ejecuta una prueba de instrumentación estándar

Firebase CLI heredada:

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

Traducción de la CLI de 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

Ejemplo: Migra una configuración de YAML compleja de flank

Configuración heredada de 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

Traducción de la CLI de 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

Recuperación de resultados y posterior a la ejecución

Dado que DDP no se inicia con una IU web gráfica (como la consola de Firebase heredada), los desarrolladores deben administrar, describir e inspeccionar los resultados directamente con la CLI o las APIs de 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

Referencia de asignación de marcas

Aquí se muestra la asignación de marcas para migrar la configuración de pruebas de Flank o gcloud firebase test android/ios run al nuevo comando gcloud beta device-run sessions submit instrumentation de DDP.

Parámetros y recursos principales

Parámetro heredado (Test Lab / Flank) Parámetro de DDP de destino Lógica de formato o conversión
--app --apps List. Si se proporcionan varios APKs o AABs de la aplicación, pásalos todos a --apps en el orden en que se instalarán en el dispositivo. La ruta de acceso puede ser local o estar en Cloud Storage (gs://...).
--test --test OBLIGATORIO String. Es la ruta de acceso al APK de prueba que contiene pruebas de instrumentación, ya sea local o en Cloud Storage.
--client-details --labels Diccionario de pares key=value para adjuntar a la sesión de prueba.

Configuración del dispositivo y segmentación

Parámetro heredado (Test Lab / Flank) Parámetro de DDP de destino Lógica de formato o conversión
--device model={M},version={V} --device={M}-{V} Cadena OBLIGATORIA que asigna el modelo y la versión del SO a una sola cadena de ID de --device. La marca --device de DDP acepta varios IDs de dispositivos separados por comas (p. ej., --device=shiba-34,tokay-36) o varias marcas --device, cada una de las cuales especifica un ID de dispositivo distinto (p. ej., --device=shiba-34 --device=tokay-36).
--device locale={L} --locale={L} String. Asigna la configuración regional del dispositivo a la marca --locale de nivel superior (language-region, p. ej., --locale=en-US) al que se debe cambiar el dispositivo antes de ejecutar la prueba.
--device orientation={O} --orientation={O} String. Asigna la orientación del dispositivo a la marca --orientation de nivel superior (portrait o landscape).
N/A --coordinates String. Simula las coordenadas de ubicación del GPS del dispositivo (p. ej., --coordinates=37.4220,-122.0841).

Control de ejecución y flakiness

Parámetro heredado (Test Lab / Flank) Parámetro de DDP de destino Lógica de formato o conversión
--num-flaky-test-attempts {R} --flaky-test-attempts {A} Número entero. Es la cantidad máxima de intentos de ejecución por fragmento de prueba. Convierte el recuento de reintentos R en el límite de intentos totales A: A = R + 1 (el valor predeterminado es 1).
N/A --flaky-test-parallel-retry Booleano. Indica si se deben volver a intentar las fallas de pruebas en paralelo (el valor predeterminado es false para la ejecución secuencial).
N/A --flaky-test-retry-level String. Define si se debe volver a intentar la operación a nivel de shard o de test individual (el valor predeterminado es shard).
--async --async Booleano. Mapas 1:1 De forma predeterminada, el comando se ejecuta de forma síncrona. Pasa este valor para volver a la terminal de inmediato. Sale inmediatamente después de subir el archivo y muestra los IDs de operación y sesión.

Ejecutor y destinos de pruebas

Parámetro heredado (Test Lab / Flank) Parámetro de DDP de destino Lógica de formato o conversión
--environment-variables --additional-test-options Diccionario de opciones que se pasan al ejecutor de pruebas de instrumentación. Aquí no se permiten los formatos admitidos en --test-targets.
--test-targets --test-targets Diccionario de destinos de prueba o filtros de destino para ejecutar. Cada destino debe estar completamente calificado con el nombre del paquete o de la clase que admite claves como package, notPackage, class, notClass, annotation, notAnnotation y size. No se admiten los formatos testfile ni notTestfile.
--use-orchestrator --orchestrator-version Indica si se debe usar Android Test Orchestrator. Toma auto (orquestador predeterminado) o una cadena de versión específica (p. ej., 1.6). Las versiones disponibles se pueden consultar con gcloud beta device-run software-versions list.
--test-runner-class --test-runner-class String. Es la clase del ejecutor de pruebas de instrumentación completamente calificada (p. ej., com.foo.MyRunner) que se usará. Si no se especifica, se determina una clase de ejecución predeterminada examinando el manifiesto de la aplicación.
--directories-to-pull --paths-to-pull List. Son los directorios que se descargarán del dispositivo después de la ejecución de la prueba.
--other-files --other-files-to-push Diccionario. Lista SOURCE=DEST separada por comas de archivos auxiliares que se deben enviar al dispositivo antes de la ejecución de la prueba.

Salida y almacenamiento

Parámetro heredado (Test Lab / Flank) Parámetro de DDP de destino Lógica de formato o conversión
--results-bucket --bucket-name String. Bucket de Cloud Storage en el que se suben los artefactos de prueba, incluidos los archivos de entrada locales, los archivos de salida de prueba y los registros de tiempo del sharding inteligente (el valor predeterminado es gs://[PROJECT_ID]-devicerun si no se especifica).
--results-dir Administración automática No compatible. Las rutas secundarias se organizan automáticamente en Cloud Storage en automation/sessions/{session_id}/.

Configuración de fragmentación

Parámetro heredado (Test Lab / Flank) Parámetro de DDP de destino Lógica de formato o conversión
--num-uniform-shards {N} --sharding-option=uniform --uniform-sharding-count={N} String y Integer La configuración de la marca combinada activa la estrategia de fragmentación uniforme y establece el recuento máximo de fragmentos (rango de recuento válido: de 1 a 20 físicos y de 1 a 200 virtuales).
Flanco --max-test-shards {N} --sharding-option=smart --smart-sharding-max-shard-count={N} String y Integer La configuración de marcas combinada activa la estrategia de fragmentación inteligente y establece el recuento máximo de fragmentos (rango de recuento válido: de 0 a 20 físicos y de 0 a 200 virtuales).
Flanco --shard-time {S} --sharding-option=smart --smart-sharding-target-duration={S} OBLIGATORIO String. Activa el sharding inteligente con el tiempo de ejecución objetivo (p. ej., 2m, 10m, 1h). El rango válido es de 2m a 1h.
Flanco --smart-flank-gcs-path --smart-sharding-record-name={name} --bucket-name={bucket} OBLIGATORIO String. Nombre del archivo YAML de registro de fragmentación (sin incluir la extensión del archivo) dentro de --bucket-name en smart-sharding/ en Cloud Storage.

Marcas específicas de Android

Usa esta tabla para asignar los parámetros heredados de gcloud firebase test android run a sus nuevos equivalentes de device-run:

Parámetro heredado (firebase android) Parámetro de DDP de destino Lógica de formato o conversión
--additional-apks --apps List. Combina valores de lista adicionales directamente en la lista principal --apps.
N/A --bugreport String. Recopila un bugreport completo del dispositivo (valores: always, on-failure).
N/A --dumpsys String. Recopila el estado del sistema con dumpsys (valores: always, on-failure).
--timeout --instrumentation-timeout Duración (p. ej., 10m, 20s, 1h). El rango válido es de 1m a 3h (el valor predeterminado es 5m).
--record-video --video String. Cuándo grabar un video de la pantalla del dispositivo durante la ejecución de la prueba.Los valores válidos son always o on-failure.

Marcas específicas para iOS

Usa esta tabla para asignar los parámetros heredados de gcloud firebase test ios run a sus nuevos equivalentes de device-run:

Parámetro heredado (firebase ios) Parámetro de DDP de destino Lógica de formato o conversión
--test --test Es la ruta de acceso al archivo ZIP de XCTest compilado.
--device model={M},version={V} --device={M}-{V} Es el ID del dispositivo de destino en formato de cadena.
--timeout --xctest-timeout Duración (p.ej., 5m). El intervalo es de 1m a 1h.
--xcode-version --xcode-version ID del catálogo o cadena de versión de Xcode que se usará (p. ej., xcode-16-4 o 16.4). Las versiones disponibles se pueden consultar con gcloud beta device-run software-versions list.
--results-bucket --bucket-name Es el bucket de GCS de destino personalizado.
--async --async Es síncrono de forma predeterminada, pero se puede pasar para salir de inmediato.
--other-files --other-files-to-push Diccionario en formato SOURCE=BUNDLE_ID:DEST.
--directories-to-pull --paths-to-pull Es una lista en formato BUNDLE_ID:DEVICE_PATH.
--additional-ipas --additional-apps Es una lista de archivos IPA auxiliares que se deben instalar antes de la prueba.
--xctestrun-file --xctestrun-file Ruta de acceso al archivo .xctestrun plist personalizado.
--num-flaky-test-attempts --flaky-test-attempts Es un recuento de números enteros de los intentos de reintento (p.ej., 3).
--client-details --labels Pares clave-valor (KEY=VALUE).

Comentarios y preguntas

Comunícate con nosotros para informar errores y solicitar funciones, o únete a nuestro foro de debate.