Las pruebas son importantes. Comprobar que funcione como se espera es un paso clave antes de publicar lo que compilaste a los usuarios, ya sea un sitio o una aplicación completos, o una función nueva. Sin embargo, muchas pruebas aún se realizan de forma manual, y a los colegas o ingenieros de pruebas se les pide verificar la función nueva e informar problemas.
Si bien esta prueba manual puede mostrar ciertas clases de problemas, puede pasar por alto muchos más. Las personas que realizan las pruebas pueden omitir casos extremos o no probar por completo un recorrido en particular por la app. Además, no tienen toda la información que tenías cuando escribes el código, no saben sobre los problemas específicos que incluiste en el código para evitar. Y, a medida que pase el tiempo y se agreguen funciones nuevas, ¿volverán y volverán a probar todas las cosas que antes funcionaban para asegurarse de que los cambios no las hayan dañado?
Es por eso que el equipo de Chrome cree en la importancia de las pruebas automatizadas. Si usas un paquete de pruebas que prueba las funciones de forma confiable y reiterada para detectar fallas, puedes estar seguro de que se probará cada pequeño detalle, ahora y después del desarrollo futuro. Tu conocimiento como desarrollador de una función se encapsula en una prueba.
Sin embargo, sabemos que las pruebas automatizadas pueden ser un desafío. Por eso, el equipo de Chrome te proporciona las siguientes herramientas y orientación para que tu experiencia sea lo más sencilla posible.
Titiritero
Puppeteer es una biblioteca de Node.js. Te permite automatizar Chrome, Chromium y Firefox con una API fácil de usar y de alto nivel.
Si bien originalmente esta API se basaba en el protocolo de Herramientas para desarrolladores de Chrome, el objetivo era que el nuevo protocolo WebDriver BiDi avanzado se convirtiera en la base de Puppeteer para finales de año. WebDriver BiDi, creada en conjunto por todos los principales proveedores de navegadores, simplifica muchos casos de uso de automatización y habilita muchos otros nuevos. Además, es compatible con varios navegadores.
Pero no hay necesidad de esperar. En la actualidad, la API de Puppeteer habilita muchos casos de uso de automatización, que solo mejorarán con WebDriver BiDi. Desde las pruebas hasta el rastreo visual y la automatización de procesos, hay mucho que puedes hacer con funciones como las interacciones con la página, la intercepción de solicitudes y las capturas de pantalla. Incluso puedes usarlo para probar tus modelos de IA web en la nube con WebGPU y WebGL.
Puppeteer también se utiliza en herramientas como WebdriverIO, un framework de prueba completo para navegadores, y la herramienta de análisis de Privacy Sandbox, lo 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, quizás hayas descubierto que no se muestra una ventana del navegador mientras se ejecutan las pruebas. De forma predeterminada, Puppeteer inicia Chrome en modo Headless. Esto significa que no hay una ventana real del navegador mientras se ejecuta la automatización.
Pero ¿sabías que el modo sin interfaz gráfica de Chrome no era solo Chrome sin ventana, sino que en realidad era una versión de Chrome que se mantiene por separado? Durante mucho tiempo, generó confusión y fue difícil hacer un seguimiento de los errores y problemas.
A partir de Chrome 112, presentamos un nuevo modo sin interfaz gráfica, que ahora está basado en la misma base de código que la versión normal de Chrome. Esto no solo reduce la confusión anterior, sino que también agrega funcionalidades que antes no eran posibles, como usar extensiones durante la automatización.
Puppeteer utiliza 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 anterior modo sin interfaz gráfica. Si tienes muchas limitaciones de recursos 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 una prueba, necesitas un control detallado sobre tu 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 los principales sistemas operativos y a la que se puede acceder desde un archivo con versión. Esto te permite ejecutar los flujos de trabajo de automatización en una versión específica de Chrome sin problemas.
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 Puppeteer.
Puppeteer, el modo sin interfaz gráfica de Chrome y Chrome for Testing, son solo una parte del trabajo que nuestro equipo realiza actualmente para facilitar la automatización de navegadores y la ejecución de pruebas. Además, herramientas relacionadas, como la grabadora de Herramientas para desarrolladores, te permiten 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 mencionan en esta publicación te ayudarán a mejorar tus pruebas automatizadas. Sin embargo, si recién comienzas, puede parecerte mucho que comprender y aprender. Por lo tanto, creamos un nuevo curso de 10 módulos: Aprende a probar en web.dev. En este curso detallado, se abordan los conceptos principales de las pruebas, dónde y cómo se ejecutan las pruebas, los tipos de pruebas y qué se debe probar. Es un gran punto de partida para tu recorrido de prueba. Una vez que tengas los aspectos esenciales, puedes pasar a nuestra colección de automatización de pruebas para obtener información detallada y sugerencias prácticas sobre preguntas de prueba más específicas.