Chrome for Testing: descargas confiables para automatización de navegadores

Hoy nos complace anunciar Chrome para pruebas, una nueva versión de Chrome que se enfoca específicamente en los casos de uso de automatización y pruebas de apps web. En este artículo, se explica por qué el equipo de Chrome consideró que era necesario y se muestran ejemplos concretos en los que Chrome para pruebas podría beneficiarte como desarrollador.

Fondo

Las pruebas de navegadores son un componente fundamental para crear una experiencia web de alta calidad, ya sea que se realicen de forma manual o automática. Al mismo tiempo, configurar un entorno de pruebas de navegador adecuado es notoriamente difícil, tanto que se informa constantemente como uno de los principales problemas de los desarrolladores web. Hoy anunciamos un cambio que esperamos que alivie parte de este problema.

Actualización automática: excelente para los usuarios, pero dolorosa para los desarrolladores

Una de las funciones más destacadas de Chrome es su capacidad de actualizarse automáticamente. A los usuarios les complace saber que ejecutan una versión del navegador segura y actualizada que incluye funciones modernas de la plataforma web, funciones del navegador y correcciones de errores en todo momento.

Sin embargo, como desarrollador que ejecuta un conjunto de pruebas de extremo a extremo, es posible que tengas una perspectiva completamente diferente:

  • Deseas obtener resultados coherentes y reproducibles en las ejecuciones de prueba repetidas, pero esto puede no suceder si el ejecutable o el archivo binario del navegador decide actualizarse entre dos ejecuciones.
  • Quieres fijar una versión específica del navegador y registrar ese número de versión en tu repositorio de código fuente para poder extraer confirmaciones y ramas antiguas, y volver a ejecutar las pruebas en el archivo binario del navegador desde ese punto en el tiempo.

Nada de esto es posible con un archivo binario del navegador que se actualiza automáticamente. Por lo tanto, es posible que no quieras usar tu instalación habitual de Chrome para las pruebas automatizadas. Esta es la discrepancia fundamental entre lo que es bueno para los usuarios habituales del navegador y lo que es bueno para los desarrolladores que realizan pruebas automatizadas.

Objetos binarios del navegador con versiones

Además de la actualización automática, es posible que también te haya resultado difícil encontrar un archivo binario de Chrome con una versión específica. Google no ofrece descargas de Chrome con versiones específicas de forma intencional, ya que los usuarios no deberían preocuparse por los números de versión, sino que deberían actualizarse a la versión más reciente lo antes posible. Esto es excelente para los usuarios, pero incómodo para los desarrolladores que necesitan reproducir un informe de errores en una versión anterior de Chrome.

Un ejemplo más específico de este problema es cuando deseas usar ChromeDriver para la automatización del navegador. No solo debes descargar un objeto binario de Chrome de alguna manera, sino que también necesitas un objeto binario de ChromeDriver con la versión correspondiente para garantizar que los dos objetos binarios sean compatibles.

Como no hay una buena manera de resolver estos problemas, sabemos que muchos desarrolladores descargan binarios de Chromium (no de Chrome), aunque este enfoque tiene algunas fallas. En primer lugar, estos archivos binarios de Chromium no están disponibles de forma confiable en todas las plataformas. En segundo lugar, se compilan y publican por separado del proceso de lanzamiento de Chrome, lo que imposibilita correlacionar sus versiones con los lanzamientos de Chrome reales orientados al usuario. En tercer lugar, Chromium es diferente de Chrome.

La solución: Chrome for Testing

Diseñado para resolver estos problemas, Chrome para pruebas es una versión de Chrome dedicada al caso de uso de pruebas, sin actualización automática, integrada en el proceso de lanzamiento de Chrome y disponible para cada lanzamiento de Chrome. Un objeto binario con versiones que se acerca lo más posible a Chrome normal sin afectar de forma negativa el caso de uso de pruebas.

Para crear Chrome para pruebas, implementamos cambios en las bases de código de Chromium y Chrome, y configuramos la infraestructura para compilar y subir estos objetos binarios a un bucket disponible públicamente en sincronía con el proceso de lanzamiento de Chrome en todos los canales (estable, beta, para desarrolladores y Canary).

La infraestructura de Chrome para pruebas ofrece oportunidades interesantes más allá de Chrome. Por ejemplo, las dificultades que mencionamos anteriormente para encontrar un objeto binario de Chrome y ChromeDriver que coincidan se pueden eliminar por completo integrando el proceso de lanzamiento de ChromeDriver en la infraestructura de Chrome for Testing. Además de resolver este punto débil para los usuarios, esto también alinea los lanzamientos de ChromeDriver con los de Chrome y elimina el proceso manual de lanzamiento de ChromeDriver.

¿Cómo puedo obtener los archivos binarios de Chrome for Testing?

La forma más sencilla de descargar los archivos binarios de Chrome para pruebas para tu plataforma es usar nuestra utilidad de línea de comandos @puppeteer/browsers, disponible a través de npm. Estos son algunos ejemplos:

# Download the latest available Chrome for Testing binary corresponding to the Stable channel.
npx @puppeteer/browsers install chrome@stable

# Download a specific Chrome for Testing version.
npx @puppeteer/browsers install chrome@116.0.5793.0

# Download the latest available ChromeDriver version corresponding to the Canary channel.
npx @puppeteer/browsers install chromedriver@canary

# Download a specific ChromeDriver version.
npx @puppeteer/browsers install chromedriver@116.0.5793.0

Si prefieres compilar tus propios scripts automatizados para descargar estos archivos binarios, tenemos todo lo que necesitas. Ofrecemos extremos de la API de JSON con las versiones disponibles más recientes por canal de lanzamiento de Chrome (estable, beta, para desarrolladores y Canary). Para obtener una descripción general rápida del estado más reciente, consulta el panel de disponibilidad de Chrome for Testing.