Chrome para pruebas

Chrome para pruebas es una versión de Chrome que se enfoca específicamente en los casos de uso de pruebas y automatización de apps web. En este documento, 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 del navegador son un componente fundamental para crear una experiencia web de alta calidad, independientemente de si se realizan de forma manual o automática. Al mismo tiempo, configurar un entorno de pruebas del navegador adecuado es notoriamente difícil, tanto que se informa constantemente como un punto débil principal para los desarrolladores web.

Actualización automática: excelente para los usuarios, incómoda para los desarrolladores

Una de las funciones más notables de Chrome es su capacidad de actualizarse automáticamente. Los usuarios se complacen en saber que ejecutan una versión del navegador actualizada y segura, 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 las ejecuciones de prueba repetidas, pero esto puede no suceder si el ejecutable o el objeto 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 objeto binario del navegador desde 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 tu instalación normal de Chrome para las pruebas automatizadas. Esta es la falta de coincidencia 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 objeto binario de Chrome con una versión específica. Google no pone a disposición intencionalmente descargas de Chrome con versiones, ya que los usuarios no deberían preocuparse por los números de versión, sino que siempre 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 quieres 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, muchos desarrolladores descargan objetos binarios de Chromium (no de Chrome) en su lugar, aunque este enfoque tiene algunas fallas. En primer lugar, estos objetos binarios de Chromium no están disponibles de manera confiable en todas las plataformas. En segundo lugar, se compilan y publican por separado del proceso de lanzamiento de Chrome, lo que imposibilita asignar sus versiones a lanzamientos reales de Chrome orientados al usuario. En tercer lugar, Chromium es diferente de Chrome.

La solución: Chrome para pruebas

Diseñado para resolver estos problemas, Chrome for Testing es una variante dedicada de Chrome que se enfoca en el 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 está lo más cerca posible de Chrome normal sin afectar negativamente el caso de uso de pruebas.

El logotipo de Chrome for Testing, que es el logotipo normal de Chrome con la palabra "Test" en un rectángulo negro.

Para crear Chrome para pruebas, 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 en sincronización con el proceso de lanzamiento de Chrome en todos los canales (estable, beta, para desarrolladores y Canary).

La infraestructura de Chrome para pruebas desbloquea oportunidades interesantes más allá de Chrome. Por ejemplo, las dificultades mencionadas anteriormente para encontrar un objeto binario de Chrome y ChromeDriver coincidente se pueden eliminar por completo si se integra el proceso de lanzamiento de ChromeDriver en la infraestructura de Chrome para pruebas. Además de resolver este punto débil orientado al usuario, esto también alinea los lanzamientos de ChromeDriver con los de Chrome y elimina el proceso de lanzamiento manual de ChromeDriver.