--- title: Guía de Pruebas Automatizadas con Playwright --- # Guía de Pruebas Automatizadas con Playwright **Manual Explicativo Detallado** --- ## Introducción Las pruebas automatizadas son un proceso fundamental dentro del desarrollo de software moderno, ya que permiten verificar que una aplicación funcione correctamente sin necesidad de realizar validaciones manuales repetitivas. Estas pruebas simulan el comportamiento real de un usuario y confirman que cada funcionalidad del sistema responde de la manera esperada. Playwright es una herramienta profesional de automatización desarrollada para probar aplicaciones web modernas. Permite ejecutar pruebas en diferentes navegadores, validar resultados automáticamente, detectar errores en interfaces y asegurar la calidad del software antes de su entrega o publicación. El propósito de esta guía es explicar detalladamente el funcionamiento de Playwright desde cero, mostrando distintas formas de utilizarlo, contemplando: - Diseño de pruebas con código - Diseño de pruebas con la herramienta de grabación integrada (Codegen) - Ejecución de pruebas con comandos desde Visual Studio Code De esta manera, cualquier persona puede comprender cómo implementar pruebas automatizadas correctamente. --- ## Requisitos previos y entorno necesario Antes de instalar y utilizar Playwright, es indispensable contar con ciertos componentes base en el sistema, ya que Playwright depende directamente de ellos para su correcto funcionamiento. ### Node.js (obligatorio) Playwright funciona sobre el entorno de ejecución Node.js. Su instalación es indispensable, ya que permite: - Ejecutar comandos `npx` - Instalar Playwright y sus dependencias - Ejecutar y administrar las pruebas automatizadas Sin Node.js, Playwright no puede instalarse ni ejecutarse. ### Python (recomendado en el entorno) En sistemas Windows es común contar con Python instalado. Aunque Playwright web se basa en Node.js, disponer de Python ayuda a evitar problemas de compatibilidad y errores durante la instalación o ejecución de herramientas auxiliares del sistema. En la práctica, contar con Python instalado contribuye a un entorno más estable. ### Visual Studio Code Visual Studio Code se utiliza como: - Editor principal del proyecto - Terminal integrada para ejecutar comandos - Herramienta de visualización y depuración Todo el flujo de trabajo descrito en esta guía se realiza desde la terminal integrada de VS Code. --- ## 1. ¿Qué es Playwright? Playwright es un framework de automatización que permite controlar navegadores web de forma programada para simular acciones reales de un usuario. Entre sus principales capacidades se encuentran: - Abrir páginas web automáticamente - Interactuar con botones, formularios y menús - Simular escritura en campos - Validar contenido visible - Verificar navegación - Ejecutar múltiples pruebas simultáneamente - Generar reportes automáticos Playwright trabaja con múltiples motores de navegador, lo que permite verificar que una aplicación funcione correctamente en distintos entornos. --- ## 2. Instalación de Playwright La instalación de Playwright se realiza una sola vez por proyecto y depende de que los requisitos previos estén correctamente configurados. ### Pasos de instalación 1. Abrir Visual Studio Code 2. Abrir la terminal dentro del proyecto 3. Ejecutar: ```bash npx init playwright@latest ``` 4. Seguir el asistente de instalación 5. Verificar la instalación ejecutando: ```bash npx playwright test ``` Si la instalación fue correcta, Playwright ejecutará pruebas de ejemplo y mostrará los resultados en la terminal. Ver ayuda general de Playwright ```bash npx playwright --help ``` Esto permite conocer todos los comandos disponibles desde la terminal. ### 2.1 Configuración del entorno (.env) En proyectos reales de automatización no es recomendable escribir directamente en el código datos sensibles como usuarios, contraseñas o direcciones URL. Para solucionar esto, se utilizan variables de entorno, las cuales permiten centralizar la configuración del sistema y reutilizarla en distintos entornos. Las variables de entorno se almacenan en un archivo .env, el cual no debe compartirse en repositorios públicos. ### Instalación de dependencia necesaria Para habilitar el uso de variables de entorno, se debe instalar el siguiente paquete: ```bash npm install dotenv ``` ### Beneficios del uso de variables de entorno - Permiten cambiar de entorno sin modificar los tests. - Protegen información sensible. - Facilitan la ejecución en entornos de QA, desarrollo y producción. - Mejoran la mantenibilidad del proyecto. --- ## 3. Diseño de pruebas usando código Este método es el más elaborado y completo, ya que permite controlar completamente el comportamiento de las pruebas. Los testers escriben scripts donde especifican paso a paso qué acciones debe realizar el navegador. ### ¿Cómo funciona? Cada prueba es un archivo dentro de la carpeta: ```bash tests/ ``` Dentro del archivo se define: - Nombre de prueba - Acciones - Validaciones ### Ejemplo explicado paso a paso ```bash const { test, expect } = require('@playwright/test'); test('Login correcto', async ({ page }) => { await page.goto('http://localhost:5500/Login.html'); await page.fill('#email', 'admin@test.com'); await page.fill('#password', '123'); await page.click('button[type=submit]'); await expect(page).toHaveURL(/Home.html/); }); ``` ### Explicación línea por línea - test() define un caso de prueba - page.goto() abre la página - fill() escribe en inputs - click() presiona botones - expect() valida resultado esperado Si una validación falla, la prueba se detiene y se marca como error. Se recomienda usar este método en sistemas que no tienen una interfaz visual, por ejemplo, APIs. --- ## 4. Diseño de pruebas utilizando Codegen Playwright incluye una función llamada codegen que permite grabar pruebas automáticamente mientras el usuario navega en el sistema. Este modo es ideal para personas que no tienen mucha experiencia en desarrollo o para crear pruebas rápidamente. Se recomienda usar este método cuando: - El tester no tiene experiencia de desarrollo - Se necesita crear pruebas rápidamente ### Funcionamiento Al ejecutar el comando: - Se abre un navegador controlado por Playwright - Se muestra una ventana con el registro de acciones - Cada clic, escritura y navegación es capturada automáticamente Playwright identifica los elementos, sus selectores y genera el flujo completo de la prueba. ### Cómo iniciar grabación Ejecutar en terminal: ```bash npx playwright codegen http://localhost:5500 ``` Se abrirá una ventana de navegador especial que grabará todas las acciones. ### Opciones avanzadas del comando codegen Grabar y generar prueba directamente en un archivo: ```bash npx playwright codegen --output tests/login.spec.js http://localhost:5500 ``` Grabar en modo móvil: ```bash npx playwright codegen --device="Pixel 5" http://localhost:5500 ``` Grabar usando un navegador específico: ```bash npx playwright codegen --browser=firefox http://localhost:5500 ``` ### Qué debe hacer el usuario Simplemente usar el sistema normalmente: - Escribir Datos - Dar clic - Navegar - Abrir módulos Playwright registrará automáticamente cada acción realizada. ### Resultado Mientras el usuario interactúa, Playwright genera el código correspondiente. Esto permite: - Aprender estructura de tests - Ahorrar tiempo - Crear pruebas base ### Uso del código generado El código generado: - Se copia y guarda en un archivo dentro de la carpeta tests/ - Puede ejecutarse directamente sin modificaciones - Sirve como base reutilizable ### Ventajas del modo grabador - No requiere programación - Fácil de usar - Ideal para aprendizaje - Genera código automáticamente - Reduce errores humanos ### Limitaciones - No genera validaciones complejas - El código puede necesitar limpieza - No es ideal para pruebas grandes --- ## 5. Validaciones esenciales en pruebas Una prueba automatizada no solo debe ejecutar acciones, también debe confirmar resultados. Sin validaciones, una prueba solo sería una simulación de navegación. Validaciones recomendadas: #### Validar texto visible Permite confirmar mensajes, títulos o estados. Ejemplo: verificar que aparezca “Bienvenido”. #### Validar existencia de elemento Permite confirmar que un componente existe. Ejemplo: botón Guardar visible. #### Validar URL Confirma que el sistema redirige correctamente. #### Validar valores de campos Permite verificar datos precargados o editados. ### 5.1 Uso de selectores estables con data-testid Uno de los problemas más comunes en las pruebas automatizadas es la inestabilidad de los selectores. Cuando se utilizan selectores basados en texto, clases o estructuras HTML, cualquier cambio visual puede romper las pruebas. Para evitar esto, se recomienda el uso de atributos exclusivos para pruebas, comúnmente llamados data-testid. #### ¿Por qué usar data-testid? - Los selectores no dependen del diseño visual - No se rompen al cambiar estilos o textos - Son claros y fáciles de mantener - Son el estándar en proyectos profesionales Este tipo de selectores permite que las pruebas sean más confiables y estables a largo plazo. --- ## 6. Organización profesional de casos de prueba Nombrar correctamente los tests facilita su mantenimiento y comprensión. Formato requerido: MODULO-ID-DESCRIPCION Ejemplo: LOGIN-01-LoginCorrecto LOGIN-02-LoginIncorrecto REPORTES-01-VerDetalle USUARIOS-01-Registro --- ## 7. Agrupación de pruebas (Suites) Las pruebas pueden organizarse en grupos para ejecutarse juntas. Tipos comunes: #### Smoke tests Validan funciones críticas: - Login - Carga inicial - Navegación #### Pruebas por módulo Permiten validar secciones específicas: - Administración - Reportes - Usuarios - Configuración --- ## 8. Ejecución de pruebas Para ejecutar todas las pruebas: ```bash npx playwright test ``` Para ver reporte visual: ```bash npx playwright show-report ``` El reporte muestra: - Pruebas exitosas - Pruebas fallidas - Errores detallados - Capturas - Tiempos #### Ejecución avanzada desde la terminal Ejecutar un solo archivo de prueba: ```bash npx playwright test tests/example.spec.js ``` Ejecutar pruebas en modo visual (con navegador visible): ```bash npx playwright test --headed ``` Ejecutar pruebas en modo debug paso a paso: ```bash npx playwright test --debug ``` Ejecutar solo pruebas que fallaron previamente: ```bash npx playwright test --last-failed ``` --- ## 9. Emulación de dispositivos Playwright permite simular dispositivos móviles sin configuraciones adicionales. Ejemplo: ```bash npx playwright codegen --device="iPhone 13" http://url.com ``` Esto permite validar diseño responsivo y flujos móviles. --- ## 10. Errores comunes y soluciones Problema: falla por carga lenta Solución: esperar elementos visibles Problema: selectores se rompen Solución: usar ID o data-testid Problema: pruebas dependientes Solución: hacerlas independientes Problema: API lenta Solución: esperar contenido renderizado Problema: error de permisos al ejecutar npx (Windows) Mensaje común: ejecución de scripts deshabilitada. Solución (ejecutar PowerShell como administrador): ```bash Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy RemoteSigned ``` Problema: Playwright no abre navegador Solución: reinstalar navegadores ```bash npx playwright install --force ``` --- ## 11. Buenas prácticas profesionales - Crear pruebas pequeñas. - Validar siempre resultados. - Usar nombres claros. - No repetir lógica. - Mantener tests independientes. - Priorizar selectores estables. - Ejecutar pruebas localmente antes de subir cambios. - Usar --debug cuando una prueba falla. - Validar reportes después de cada ejecución. - Mantener consistencia en comandos de ejecución. - Documentar comandos usados en el proyecto. ---