Automatización y pruebas con Chrome

Las pruebas automatizadas del navegador son esenciales para crear aplicaciones web sólidas y de alta calidad. Ya sea que ejecutes conjuntos de pruebas de integración continua (CI) de extremo a extremo, realices pruebas de regresión en todas las versiones del navegador o automatices las interacciones del navegador, Chrome proporciona un conjunto de herramientas y modos de ejecución dedicados diseñados para desarrolladores y para ingenieros de automatización de pruebas.

En esta descripción general, se presentan los productos principales del ecosistema de automatización y pruebas de Chrome: Chrome for Testing, ChromeDriver, Puppeteer y el modo sin interfaz gráfica de Chrome, y se explica cómo puedes usarlos en conjunto para obtener flujos de trabajo de pruebas confiables y reproducibles.


Chrome for Testing

Chrome for Testing es una versión de Chrome dedicada a los casos de uso de pruebas y automatización de apps web.

Cuando ejecutas conjuntos de pruebas de extremo a extremo o canalizaciones de integración continua (CI), a menudo necesitas resultados coherentes y reproducibles en ejecuciones de pruebas repetidas. En lugar de depender de las instalaciones estándar del navegador, Chrome for Testing te permite descargar y fijar versiones específicas de Chrome para tus entornos de prueba.

Características clave

  • Descargas versionadas a pedido: Accede a objetos binarios de Chrome específicos y versionados para que siempre realices pruebas con la versión exacta que elijas.
  • Objetos binarios vinculados en todos los canales: Para cada versión de Chrome en todos los canales (Estable, Beta, Para desarrolladores y Canary), Chrome for Testing proporciona objetos binarios de Chrome coincidentes vinculados con los objetos binarios de ChromeDriver correspondientes, así como el shell anterior de Chrome sin interfaz gráfica (chrome-headless-shell) para quienes aún lo usan en pruebas automatizadas.
  • Automatización de descargas sencilla: Los objetos binarios se pueden descargar fácilmente con la utilidad de línea de comandos de @puppeteer/browsers o se pueden consultar a través del panel de disponibilidad.

Más información


ChromeDriver

ChromeDriver es un servidor independiente de código abierto que implementa el estándar W3C WebDriver y el protocolo bidireccional WebDriver BiDi. Actúa como puente entre los frameworks de pruebas basados en WebDriver (como Selenium, WebDriverIO y Nightwatch) y el navegador Chrome.

Características clave

  • Compatibilidad con W3C WebDriver y WebDriver BiDi: Admite comandos de automatización de WebDriver clásicos y comunicación bidireccional en tiempo real a través de WebDriver BiDi para la detección rápida de eventos, la supervisión de la red y la intercepción de registros.
  • Lanzamiento conjunto con Chrome for Testing: Las versiones de ChromeDriver se integran directamente en la infraestructura de Chrome for Testing. Para cada versión de Chrome for Testing, se lanza una versión de ChromeDriver coincidente de forma simultánea, lo que elimina los problemas de incompatibilidad de versiones.

Más información


Titiritero

Puppeteer es una biblioteca de JavaScript desarrollada por Google que proporciona una API de alto nivel para controlar Chrome a través del protocolo de herramientas para desarrolladores de Chrome (CDP) o WebDriver BiDi.

Características clave

  • Automatización sin configuración: Puppeteer descarga automáticamente un objeto binario de Chrome for Testing compatible de forma predeterminada, lo que permite la automatización del navegador lista para usar.
  • Control total sobre Chrome: Captura capturas de pantalla, genera archivos PDF, automatiza el envío de formularios, intercepta solicitudes de red y ejecuta pruebas de IU en modo con interfaz gráfica o sin interfaz gráfica con facilidad.

Más información


Modo sin interfaz gráfica de Chrome

El modo sin interfaz gráfica de Chrome te permite ejecutar Chrome en un entorno desatendido sin ninguna interfaz de usuario visible. Si pasas la marca --headless en la línea de comandos, Chrome se ejecuta de forma limpia en entornos de servidores, contenedores y canalizaciones de CI/CD.

Características clave

  • Motor de navegador unificado: El modo sin interfaz gráfica moderno (--headless) comparte la misma implementación del navegador que Chrome con interfaz gráfica.
  • Funciones de automatización y depuración enriquecidas: Admite la captura de capturas de pantalla, la generación de archivos PDF, la depuración remota y la configuración de pantallas virtuales.

Más información


Ejemplo: Uso de estos productos en conjunto

En un flujo de trabajo típico de pruebas automatizadas o integración continua (CI), estos productos funcionan en conjunto para proporcionar un entorno de pruebas reproducible y desatendido:

  1. Objeto binario del navegador (Chrome for Testing): Usa un objeto binario específico y fijado por versión de Chrome for Testing para que los resultados de las pruebas sean deterministas en todas las ejecuciones.
  2. Modo de ejecución (modo sin interfaz gráfica de Chrome): Ejecuta ese objeto binario en modo sin interfaz gráfica (--headless) para que las pruebas se ejecuten de forma limpia en servidores, contenedores o canalizaciones de CI sin una pantalla gráfica.
  3. Controlador de automatización (Puppeteer o ChromeDriver): Controla el navegador con una biblioteca de automatización como Puppeteer o cualquier otro framework de pruebas conectado a través de WebDriver BiDi.

Puppeteer conecta estas partes automáticamente. Cuando se instala, descarga un objeto binario de Chrome for Testing compatible y lo inicia en modo sin interfaz gráfica de forma predeterminada.

Cuando usas frameworks de W3C WebDriver (como Selenium o WebdriverIO), puedes descargar automáticamente un par coincidente de objetos binarios de Chrome for Testing y ChromeDriver y pasar la marca --headless para ejecutar sin IU.


Orientación sobre canales de versiones y empresas