Migra de Firebase Test Lab a Developer Device Platform

Nos complace anunciar la versión preliminar de la interfaz de línea de comandos de gcloud beta device-run en la Plataforma de dispositivos para desarrolladores (DDP), una mejora de la CLI de gcloud firebase test.

La CLI de gcloud beta device-run simplifica y moderniza la ejecución de pruebas de automatización y de instrumentación integrado en el dispositivo, tanto físicas como virtuales. En la versión preliminar, se admiten Android Instrumentation y iOS XCTest. Consulta la Descripción general de Device Run para obtener instrucciones.

Descripción general y beneficios

Cambiar de Firebase Test Lab a Developer Device Platform (DDP) ofrece varias ventajas importantes, en particular en términos de ahorro de costos, velocidad de ejecución de pruebas, depuración avanzada y compatibilidad integrada con flujos de trabajo basados en IA.

Los desarrolladores que ejecutan pruebas para dispositivos móviles en la nube deben hacer malabares entre diferentes modelos de configuración (Firebase Test Lab) o mantener canalizaciones adicionales y capas de wrapper de herramientas (Flank).

La CLI de gcloud beta device-run en la Plataforma de dispositivos para desarrolladores combina estas capacidades directamente en la CLI principal de Google Cloud. Proporciona una interfaz de backend más sólida, declarativa y escalable que ejecuta pruebas de forma predecible y eficiente en dispositivos físicos y virtuales.

Estas son las funciones y capacidades clave que hacen que DDP sea una plataforma superior en comparación con Firebase Test Lab:

Fragmentación inteligente avanzada

Si bien Firebase Test Lab se basa en datos de tiempo de una sola ejecución para fragmentar las pruebas, la fragmentación inteligente de DDP es mucho más inteligente:

  • Datos históricos de 30 días: El DDP analiza hasta 30 días de historial de ejecución para distribuir las pruebas en fragmentos estables y optimizados.
  • Seguimiento de la duración específico para cada dispositivo: DDP hace un seguimiento de las ejecuciones de prueba por modelo de dispositivo específico en lugar de usar promedios de plataformas generalizados en todos los dispositivos.
  • Modelado de la sobrecarga de Orchestrator: DDP tiene en cuenta la sobrecarga de inicio de Android Test Orchestrator para cada instancia de prueba, lo que garantiza que los fragmentos no superen sus duraciones objetivo.

Reintentos detallados y rentables

En Test Lab, si falla un solo caso de prueba dentro de un fragmento, se debe volver a intentar todo el fragmento (que puede contener docenas de pruebas), lo que aumenta los tiempos de ejecución y los costos de facturación. El DDP introduce mecanismos de reintento altamente eficientes:

  • Reintentos segmentados a nivel de casos de prueba: Aísla y reintenta solo los casos de prueba específicos que fallan dentro de un shard.
  • Reintentos secuenciales de pruebas inestables: De forma predeterminada, ejecuta los reintentos de pruebas inestables de forma secuencial (en lugar de hacerlo de forma simultánea, como Test Lab). Combinar esto con los reintentos a nivel de caso de prueba reduce drásticamente las ejecuciones de prueba totales, lo que genera ahorros significativos en los costos de facturación de dispositivos.

Compatibilidad avanzada con pruebas de Android

La DDP aborda limitaciones de larga data en la API de pruebas de Test Lab:

  • Solo APK de prueba (sin apps simuladas): Históricamente, Test Lab requería una app simulada para ejecutar pruebas de instrumentación autónoma. DDP admite la ejecución de pruebas de instrumentación solo con un APK de prueba.
  • Tiempo de espera de fragmentos extendido: DDP aumenta el límite de ejecución máximo para un solo fragmento de prueba de instrumentación del límite de 45 minutos de Test Lab a 3 horas.
  • Varios Orchestrators: DDP admite varias versiones de Android Test Orchestrator.
  • Compatibilidad integrada con objetos binarios de C++: DDP admite la ejecución de objetos binarios de C++ de Android.

Interacciones enriquecidas con el dispositivo y depuración avanzada

DDP proporciona interacciones en el dispositivo más profundas y artefactos de depuración mucho más enriquecidos que los disponibles en Test Lab:

  • Ubicaciones simuladas: DDP admite la simulación de coordenadas GPS del dispositivo.
  • Compatibilidad con ApkSets: Los desarrolladores pueden instalar ApkSets (archivos .apks) directamente en los dispositivos remotos.
  • Depuración avanzada: DDP expone registros vitales del sistema e información de depuración, incluidos dumpsys y bugreport, directamente al desarrollador.

Catálogo de dispositivos altamente escalable

DDP reemplaza el catálogo de entornos rígido y pesado de Test Lab por una API de Device Catalog completamente rediseñada:

  • Filtrado del servidor: Acelera las consultas y disminuye la latencia de la carga útil, ya que permite a los desarrolladores filtrar dispositivos en el servidor.
  • Datos de disponibilidad en tiempo real: DDP proporciona información de disponibilidad de dispositivos en tiempo real directamente a Device Run para que puedas elegir dispositivos con alta disponibilidad y evitar largos tiempos de espera, una función que Test Lab no tiene.

Elige tu ruta de migración

Automatiza tu migración con IA

Para que esta transición sea fluida, desarrollamos una habilidad de agente de traducción específica: migrating-device-run.

Si usas agentes de programación con IA, como Antigravity, Claude Code o Codex, puedes traducir fácilmente tus secuencias de comandos de prueba personalizadas. Solo tienes que copiar la URL del esquema de la habilidad de migración y pegarla en tu espacio de trabajo del asistente de IA, como se describe aquí.

Plantilla de instrucciones de migración

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

Migra manualmente

Sigue nuestras traducciones de comandos y marcas para migrar manualmente de Firebase Test Lab a DDP. Mientras te preparas para migrar, ten en cuenta las siguientes diferencias estructurales:

  • Arquitectura de la CLI centrada en los recursos: gcloud beta device-run adopta un patrón de comandos <resource> <verb> moderno en tres grupos de recursos principales:
    • devices: Acceso directo desde la CLI al inventario del catálogo de dispositivos y detalles completos de los dispositivos, lo que reemplaza los comandos heredados fragmentados de firebase test android/ios models/versions/locales.
    • software-versions: Acceso directo a la CLI para versiones de software compatibles (como las versiones de Xcode y Android Test Orchestrator), que reemplaza a firebase test ios xcode-versions list heredado.
    • sessions: Administración del ciclo de vida de la sesión de extremo a extremo directamente en la terminal, incluidos sessions submit instrumentation, sessions submit xctest, sessions wait, sessions describe [--full], sessions list y sessions cancel.
  • Estructura de subcomandos: Los tipos de pruebas están estandarizados y anidados en sessions submit como subcomandos limpios en lugar de usar marcas de 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)
  • Apps pluralizadas y combinadas: Los APKs estándares y complementarios se combinan en la lista de marcas --apps pluralizada (p. ej., --apps=app.apk,helper.apk) en lugar de dividirse en --app y --additional-apks.
  • Argumentos estructurados de diccionario y lista: Se reemplazaron los archivos separados por comas o las listas de variables de entorno por formatos estructurados de diccionario y lista de la CLI: --other-files-to-push KEY=VALUE, --additional-test-options KEY=VALUE, --paths-to-pull y --test-targets.
  • Controles unificados de fragmentación y reintentos: Compatibilidad perfecta con la fragmentación uniforme y la fragmentación inteligente, junto con reintentos paralelos (--flaky-test-parallel-retry, --flaky-test-retry-level) y diagnósticos de tiempo de ejecución (--dumpsys, --bugreport, --video).
  • Ejecución asíncrona: gcloud beta device-run admite la ejecución asíncrona, lo que te permite ejecutar pruebas sin esperar a que se completen. Usa gcloud beta device-run sessions wait <SESSION_ID> para esperar a que se complete.
  • Configuración declarativa en YAML (--flags-file): Los equipos que migran desde Flank y prefieren archivos YAML con control de versiones en lugar de cadenas de secuencia de comandos de shell pueden usar la compatibilidad universal de --flags-file=device-run-flags.yaml de gcloud.

¿Qué sigue?

  1. Usa nuestra Guía de inicio rápido para configurar la Plataforma de dispositivos para desarrolladores.
  2. Explora nuestro catálogo de dispositivos para encontrar todos los dispositivos disponibles.
  3. Obtén información sobre Device Run para comenzar a ejecutar pruebas.
  4. Visita nuestras traducciones de comandos y marcas para ver una asignación de las marcas de Test Lab y Flank a DDP.