Introducción

En el desarrollo web moderno, la calidad del software es clave para ofrecer una buena experiencia a los usuarios. Evaluar el rendimiento, accesibilidad, errores y seguridad de una aplicación web es una tarea fundamental que puede ser tediosa si se hace manualmente.

En este blog, exploraremos cómo automatizar una auditoría web utilizando Playwright, IA (axe-core) y PDFKit, generando informes detallados con gráficos para una representación visual clara de los resultados.

El objetivo es la automatización de auditorías web con Playwright e IA para mejorar el rendimiento y la accesibilidad de aplicaciones.

Planteamiento del problema

Las aplicaciones web pueden presentar fallos en:

  • Accesibilidad (incompatibilidad con lectores de pantalla, WCAG incumplidas, etc.)
  • Rendimiento (tiempos de carga elevados, problemas en el DOM, etc.)
  • Errores en consola (JavaScript, CORS, etc.)
  • Seguridad (cabeceras HTTP incorrectas, errores en APIs externas)
  • Solicitudes fallidas (errores 404, 500, entre otros)

Realizar auditorías manuales de estos aspectos es una tarea repetitiva y propensa a errores humanos.

Solución planteada

Para resolver este problema, desarrollamos un sistema de auditoría automática que:

  1. Ejecuta Playwright para analizar una página web y recopilar datos clave.
  2. Utiliza axe-core para realizar un análisis de accesibilidad basado en IA.
  3. Captura errores en consola y solicitudes fallidas.
  4. Monitorea cabeceras HTTP y seguridad.
  5. Valida APIs y dependencias externas.
  6. Mide la experiencia de usuario (flujo de registro e inicio de sesión).
  7. Genera un informe en PDF con gráficos y detalles relevantes.

Desarrollo paso a paso

1. Instalación de dependencias

Ejecutamos el siguiente comando en la terminal:

npm install playwright axe-core pdfkit chartjs-node-canvas

2. Implementación del script de auditoría

El archivo audit.js realiza las siguientes acciones:

  • Captura el título de la página web.
  • Realiza pruebas de accesibilidad con axe-core.
  • Registra errores en consola y solicitudes fallidas.
  • Analiza cabeceras HTTP y seguridad.
  • Valida APIs externas.
  • Monitorea el tiempo de carga y eventos clave.
  • Simula un flujo de usuario (registro e inicio de sesión) y mide su rendimiento.
  • Registra cada paso de Playwright con su tiempo de ejecución.
  • Genera un informe en PDF con toda la información recopilada.

He aquí una muestra visual de una parte del archivo audit.js

3. Ejecución del script

Para ejecutar el script de auditoría:

node audit.js

Esto generará un informe detallado en audit-report.pdf.

Resultados y Beneficios

Este sistema de auditoría permite:

  • Automatizar las pruebas de accesibilidad, rendimiento y errores.
  • Reducir tiempo y costos en la detección de problemas.
  • Generar informes visuales con datos clave para mejorar la aplicación web.

Problemas encontrados y soluciones

  • Timeout en la carga de la web: Se ajustaron los timeouts de Playwright.
  • Errores en la generación de PDF: Se optimizó el flujo de datos para evitar bloqueos.
  • Falsos positivos en accesibilidad: Se ajustó el análisis de axe-core para mejorar la precisión.

Conclusiones y mejoras futuras

Este sistema proporciona una solución escalable para auditorías automáticas de aplicaciones web. En futuras versiones, se podría:

  • Agregar integración con CI/CD para pruebas automáticas en despliegues.
  • Implementar una API REST para centralizar los resultados.
  • Mejorar la visualización de datos con dashboards interactivos.

Código y Recursos

Repositorio en GitHub: https://github.com/MariaAdel-22/PlaywrightAuditoryReports

Autor: Maria Adela España Moya

Curso: Desarrollo Web Full Stack, MultiCloud y Multiplataforma
Centro: Tajamar
Año académico: 2021-2022 Código / Recursos utilizados / Otros datos de interés: Enlace a LinkedIn

Leave a Comment

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.