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

Hoy nos complace anunciar Chrome for Testing, una nueva variante de Chrome que se orienta específicamente a casos de uso de automatización y pruebas de apps web. En este artículo, se explica por qué el equipo de Chrome considera que esto era necesario y se presentan ejemplos concretos de los que Chrome for Testing podría beneficiarte como desarrollador.

Información general

Las pruebas del navegador son un componente vital para crear una experiencia web de alta calidad, independientemente de si se realiza de forma manual o automática. Al mismo tiempo, configurar un entorno de prueba adecuado para el navegador es muy difícil, tanto que se informa constantemente como uno de los principales problemas de los desarrolladores web. Hoy anunciamos un cambio que esperamos aliviar parte de este problema.

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

Una de las funciones más notables de Chrome es su capacidad de actualización automática. A los usuarios les complace saber que están ejecutando una versión actualizada y segura del navegador, 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:

  • Quieres resultados coherentes y reproducibles en ejecuciones de pruebas repetidas, pero es posible que esto no ocurra si el ejecutable o el objeto binario del navegador decide actualizarse entre dos ejecuciones.
  • Quieres fijar una versión específica del navegador y verificar el número de versión en el repositorio de código fuente, de modo que puedas revisar confirmaciones y ramas antiguas, y volver a ejecutar las pruebas en el objeto binario del navegador a partir de ese momento.

Nada de esto es posible con un objeto binario del navegador que se actualiza automáticamente. Como resultado, es posible que no quieras usar la instalación habitual de Chrome para pruebas automatizadas. Esta es la diferencia fundamental entre lo que es bueno para los usuarios normales de navegadores y lo que es bueno para los desarrolladores que realizan pruebas automatizadas.

Objetos binarios del navegador con versiones

Aparte de las actualizaciones automáticas, es posible que también te haya resultado difícil encontrar un objeto binario de Chrome con una versión específica. Google intencionalmente no permite que las descargas de Chrome con versiones estén disponibles, ya que a los usuarios no deberían preocuparse por los números de versión: siempre deben 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 quieres usar ChromeDriver para automatizar el navegador. De alguna manera, no solo tienes que descargar un objeto binario de Chrome, sino que también necesitas un objeto binario de ChromeDriver con la versión correspondiente para asegurarte de que los dos objetos binarios sean compatibles.

Debido a que no hay una buena manera de resolver estos problemas, sabemos que muchos desarrolladores descargan objetos binarios de Chromium (no Chrome), aunque este enfoque tiene algunas fallas. En primer lugar, estos objetos binarios de Chromium no están disponibles de forma confiable en todas las plataformas. En segundo lugar, se crean y publican por separado del proceso de lanzamiento de Chrome, lo que hace imposible relacionar sus versiones a versiones reales de Chrome para los usuarios. En tercer lugar, Chromium es diferente de Chrome.

La solución: Chrome for Testing

Diseñada para resolver estos problemas, Chrome for Testing es una versión exclusiva de Chrome que se orienta al caso de uso de prueba, sin actualización automática, está integrada en el proceso de lanzamiento de Chrome y está disponible para todas las versiones de Chrome. Un objeto binario con versión que sea lo más parecido posible a la versión normal de Chrome sin afectar negativamente el caso de uso de prueba.

Para crear Chrome for Testing, realizamos 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, junto con el proceso de lanzamiento de Chrome en todos los canales (estable, beta, para desarrolladores y Canary).

La infraestructura de Chrome for Testing ofrece oportunidades interesantes más allá de Chrome. Por ejemplo, las dificultades que mencionamos anteriormente en torno a la búsqueda de un objeto binario de Chrome y ChromeDriver que coincidan se pueden eliminar por completo mediante la integración del proceso de lanzamiento de ChromeDriver en la infraestructura de Chrome for Testing. Además de solucionar este punto débil para los usuarios, esto también alinea las versiones de ChromeDriver con las de Chrome y elimina el proceso de lanzamiento manual de ChromeDriver.

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

La forma más fácil de descargar objetos binarios de Chrome for Testing 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 propias secuencias de comandos automatizadas para descargar estos objetos binarios, tenemos lo que necesitas. Ofrecemos extremos de la API de JSON con las versiones más recientes disponibles por canal de versiones 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.