Herramientas de Chrome para realizar pruebas automatizadas y sin inconvenientes

Las pruebas son importantes. Es un paso clave antes de entregar lo que creaste a los usuarios, ya sea un sitio o una aplicación completos, o una función nueva, para verificar que funcione como se espera. Sin embargo, muchas pruebas aún se realizan de forma manual, y se les pide a los colegas o ingenieros de pruebas que revisen la nueva función y que informen los problemas.

Si bien estas pruebas manuales pueden mostrar ciertas clases de problemas, pueden pasar por alto muchos más. Es posible que las personas que realizan las pruebas omitan casos extremos o no prueben un recorrido en particular a través de la app. Tampoco tienen toda la información que tenías cuando escribiste el código, ni conocen los problemas específicos que incluiste en el código para evitarlos. Además, a medida que pasa el tiempo y se agregan funciones nuevas, ¿volverán a probar todo lo que funcionaba antes para asegurarse de que los cambios no lo hayan afectado?

Por eso, el equipo de Chrome cree en la importancia de las pruebas automatizadas. Cuando usas un conjunto de pruebas que verifica de forma confiable y reiterada si tu función tiene fallas, puedes asegurarte de que se pruebe cada pequeño detalle, ahora y después del desarrollo futuro. Tus conocimientos como desarrollador de una función se encapsulan en una prueba.

Sin embargo, sabemos que las pruebas automatizadas pueden ser desafiantes. Por eso, el equipo de Chrome proporciona las siguientes herramientas y orientación para que el proceso sea lo más sencillo posible.

Titiritero

Puppeteer es una biblioteca de Node.js. Te permite automatizar Chrome, Chromium y Firefox con una API de alto nivel fácil de usar.

Si bien esta API se basó originalmente en el protocolo de las herramientas para desarrolladores de Chrome, el objetivo es que el nuevo protocolo BiDi avanzado de WebDriver sea la base de Puppeteer a fines de año. WebDriver BiDi, cocreado por todos los proveedores de navegadores principales, simplifica muchos casos de uso de automatización y habilita muchos nuevos, y es compatible con varios navegadores.

Pero no es necesario que esperes. La API de Puppeteer ya habilita muchos casos de uso de automatización, que solo mejorarán con WebDriver BiDi. Desde pruebas, rastreo visual y automatización de procesos, hay mucho que puedes hacer con funciones como interacciones de página, interceptación de solicitudes y capturas de pantalla. Incluso puedes usarlo para probar tus modelos de IA web en la nube con WebGPU y WebGL.

Puppeteer también se usa en herramientas como WebdriverIO, un framework de pruebas de navegadores completo, y la herramienta de análisis de Privacy Sandbox, que te permite comprender mejor el uso de cookies y datos del usuario en tu sitio.

Chrome sin interfaz gráfica

Si alguna vez automatizaste Chrome con Puppeteer, es posible que hayas descubierto que no se muestra ninguna ventana del navegador mientras se ejecutan las pruebas. De forma predeterminada, Puppeteer inicia Chrome en el modo sin interfaz gráfica. Esto significa que no hay una ventana del navegador real mientras se ejecuta la automatización.

Sin embargo, ¿sabías que el modo sin interfaz gráfica de Chrome no era solo Chrome sin una ventana, sino que en realidad era una versión de Chrome que se mantenía por separado? Durante mucho tiempo, esto generó confusión y dificultad para hacer un seguimiento de los errores y los problemas.

A partir de Chrome 112, presentamos un nuevo modo sin interfaz gráfica, que ahora se basa en la misma base de código que Chrome normal. Esto no solo reduce la confusión anterior, sino que también brinda funciones que antes no eran posibles, como usar extensiones durante la automatización.

Puppeteer usa este nuevo modo sin interfaz gráfica de forma predeterminada desde la versión 22. Si usas Chrome sin interfaz gráfica a través de otras soluciones de automatización, puedes forzar el nuevo modo sin interfaz gráfica con el interruptor de línea de comandos --headless=new.

Si bien el nuevo modo sin interfaz gráfica de Chrome es más potente, no es tan ligero como el modo sin interfaz gráfica anterior. Si tienes muchos recursos limitados o no necesitas todas las funciones de Chrome, puedes usar el modo sin interfaz gráfica anterior como chrome-headless-shell.

Chrome for Testing

Cuando realizas pruebas, necesitas un control detallado sobre el entorno de pruebas: el sistema operativo, el navegador y la versión del navegador. Con la actualización automática de Chrome, esto puede ser difícil.

Por eso, creamos Chrome for Testing, una versión de Chrome sin actualización automática, que se lanzó junto con todas las versiones de Chrome para todos los sistemas operativos principales y a la que se puede acceder desde un archivo con control de versiones. Esto te permite ejecutar tus flujos de trabajo de automatización en una versión específica de Chrome sin tener que hacer muchos cambios.

Puedes acceder a los objetos binarios de Chrome for Testing desde el panel de disponibilidad de Chrome for Testing, la API de JSON o con la utilidad de línea de comandos de Puppeteer.


Puppeteer, el modo sin interfaz gráfica actualizado de Chrome y Chrome para pruebas son solo parte del trabajo que nuestro equipo realiza actualmente para que la automatización del navegador y la ejecución de pruebas sean lo más fluidas posible. Además, las herramientas relacionadas, como el Grabador de herramientas para desarrolladores, te ayudan a crear pruebas: graba un flujo de usuarios en Chrome y vuelve a reproducirlo en Puppeteer.

Aprende a realizar pruebas en web.dev

Las herramientas que se describen en esta publicación te ayudarán a mejorar tus pruebas automatizadas. Sin embargo, si recién estás comenzando, puede parecer mucho para comprender y aprender. Por lo tanto, creamos un nuevo curso de 10 módulos: Learn Testing on web.dev. En este curso detallado, se abordan los conceptos básicos de las pruebas, dónde y cómo se ejecutan, los tipos de pruebas y qué se debe probar. Es un excelente punto de partida para tu recorrido de pruebas. Una vez que tengas los conceptos básicos, no dudes en pasar a nuestra colección de automatización de pruebas con análisis detallados y sugerencias prácticas sobre preguntas de prueba más específicas.