Migra de Firebase Test Lab a Developer Device Platform

Nos complace anunciar la versión preliminar de la gcloud beta device-run interfaz de línea de comandos en Developer Device Platform (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 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

El cambio de Firebase Test Lab a la plataforma de dispositivos para desarrolladores (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 Developer Device Platform combina estas capacidades directamente en la Google Cloud CLI principal. 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.

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

Smart Sharding avanzado

Si bien Firebase Test Lab se basa en datos de sincronización de una sola ejecución para fragmentar pruebas, Smart Sharding de DDP es mucho más inteligente:

  • Datos históricos de 30 días: DDP analiza hasta 30 días de historial de ejecución para distribuir pruebas en fragmentos estables y optimizados.
  • Seguimiento de la duración específica del dispositivo: DDP realiza un seguimiento de las ejecuciones de prueba por modelo de dispositivo específico en lugar de usar promedios generalizados de la plataforma 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 (potencialmente docenas de pruebas), lo que aumenta los tiempos de ejecución y los costos de facturación. DDP presenta mecanismos de reintento altamente eficientes:

  • Reintentos segmentados a nivel de caso de prueba: Aísla y vuelve a intentar solo los casos de prueba específicos que fallan dentro de un fragmento.
  • Reintentos secuenciales de pruebas inestables: Ejecuta reintentos para pruebas inestables de forma secuencial de forma predeterminada (en lugar de simultáneamente como Test Lab). Si se combina esto con los reintentos a nivel de caso de prueba, se reducen drásticamente las ejecuciones de prueba totales, lo que genera ahorros significativos en los costos de facturación de los dispositivos.

Compatibilidad avanzada con pruebas de Android

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

  • Solo APK de prueba (sin apps ficticias): Históricamente, Test Lab requería una app ficticia para ejecutar pruebas de auto-instrumentación. DDP admite la ejecución de pruebas de instrumentación solo con un APK de prueba.
  • Tiempo de espera extendido del fragmento: DDP aumenta el límite máximo de ejecución 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 binaria integrada con C++: DDP admite la ejecución de archivos binarios de C++ de Android.

Interacciones enriquecidas con dispositivos y depuración avanzada

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

  • Ubicaciones ficticias: 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 del sistema vitales y la 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 Catálogo de dispositivos 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 del dispositivo en tiempo real directamente a Device Run para que puedas elegir dispositivos de alta disponibilidad y evitar tiempos de espera largos, 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 dedicada: migrating-device-run.

Si usas agentes de codificación de IA, como Antigravity, Claude Code, 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 instrucción 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.md.txt

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 CLI centrada en recursos: gcloud beta device-run adopta un patrón de comandos <resource> <verb> moderno en tres grupos de recursos principales:
    • devices: Acceso directo a la CLI al inventario del catálogo de dispositivos y detalles completos del dispositivo, lo que reemplaza los comandos heredados fragmentados firebase test android/ios models/versions/locales.
    • software-versions: Acceso directo a la CLI a las versiones de software compatibles (como las versiones de Xcode y Android Test Orchestrator), lo que reemplaza el comando heredado firebase test ios xcode-versions list.
    • 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 prueba se estandarizan y se anidan en sessions submit como subcomandos limpios en lugar de usar marcas de tipo.
    • DDP: gcloud beta device-run sessions submit instrumentation (Android) o gcloud alpha 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ándar y complementarios se combinan en la lista de marcas --apps pluralizadas (p. ej., --apps=app.apk,helper.apk) en lugar de dividirse en --app y --additional-apks.
  • Argumentos de diccionario y lista estructurados: Se reemplazaron los archivos separados por comas o las listas de entornos por formatos de diccionario y lista de CLI estructurados: --other-files-to-push KEY=VALUE, --additional-test-options KEY=VALUE, --paths-to-pull y --test-targets.
  • Controles unificados de fragmentación y reintento: Compatibilidad perfecta con Uniform Sharding y Smart Sharding, 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 la finalización.
  • Configuración declarativa de 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 gcloud's --flags-file=device-run-flags.yaml.

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