Skip to content

esanchezlugo91-cmd/orangehrm-playwright

Repository files navigation

orangeHrmPlaywright Status License Playwright Node

Framework de automatización E2E (End-to-End) para la interfaz de usuario de OrangeHRM. Combina la potencia de Playwright con el enfoque BDD (Cucumber) para crear pruebas legibles, estables y fáciles de mantener en Node.js.

🛠️ Características Principales

  • Enfoque BDD (Cucumber): Escenarios escritos en Gherkin legibles tanto para perfiles técnicos como de negocio (QA, Devs, Product Owners).
  • Patrón Page Object Model (POM): Implementación de clases dedicadas para cada página y un PO Manager centralizado para evitar la redundancia de código.
  • Esperas automáticas: Uso de la sincronización nativa de Playwright (auto-waiting) para reducir la necesidad de sleeps manuales y evitar flujos inestables.
  • Manejo de capturas en fallos: Configuración de hooks para capturar automáticamente la pantalla en formato Base64 y guardarla localmente en caso de que un escenario falle.
  • Reportes HTML: Generación automática de reportes interactivos al finalizar cada ciclo de ejecución.

🚀 Comenzando

Estas instrucciones te permitirán obtener una copia del proyecto en funcionamiento en tu máquina local.


📋 Pre-requisitos

  1. Clonar el proyecto desde el repositorio.
  2. Tener instalado Node.js (versión 18 o superior recomendada).
  3. Instalar dependencias: Ejecuta el siguiente comando en la terminal:
    npm install
  4. Instalar los navegadores de Playwright:
    npx playwright install chromium

⚙ Ejecutando las pruebas

El proyecto incluye scripts en package.json y accesos directos .bat para facilitar la ejecución interactiva en Windows:

Vía Scripts npm:

  • npm run test: Ejecuta todos los escenarios de prueba en la consola.
  • npm run test:report: Ejecuta las pruebas y genera automáticamente el reporte visual HTML.
  • npm run test:tags -- --tags "@Login": Corre escenarios específicos filtrados por etiquetas (tags).

Vía Accesos Directos (Windows .bat):

  • Ejecutar con Cucumber.bat: Corre todas las pruebas E2E en consola.
  • Ejecutar con Cucumber - Reporte.bat: Corre las pruebas, genera el reporte y lo abre de forma automática en tu navegador web.
  • Ejecutar con Cucumber - Tags.bat: Ejecuta pruebas específicas pidiéndote en consola qué tag deseas correr (ej. @Login o @Buscar).

📂 Estructura del Proyecto

playwright/
├── features/            # Escenarios en lenguaje Gherkin y definiciones de pasos.
│   ├── steps/           # steps.js - Traducción y mapeo de Gherkin a JS.
│   ├── support/         # hooks.js - Inicialización de navegadores, contextos y capturas de fallos.
│   ├── Buscar_usuario.feature
│   └── Login_Orange_HRM.feature
├── pageObjects/         # Clases que abstraen y organizan la interfaz de usuario (POM).
│   ├── Admin_Page.js    # Selectores y métodos para el módulo administrativo.
│   ├── Login_Page.js    # Selectores y métodos para el formulario de login.
│   └── PO_Manger.js     # Administrador central que inicializa todas las páginas.
├── cucumber.js          # Configuración del ejecutor de Cucumber.js.
├── playwright.config.js # Configuración global y capacidades de Playwright.
├── package.json         # Dependencias, metadatos y scripts del proyecto.
├── .gitignore           # Definición de archivos excluidos del repositorio.
└── README.md            # ¡Estás aquí!

🔩 Pruebas de Interfaz E2E (Escenarios destacados)

  • Inicio de Sesión (Login): Flujos parametrizados que validan el comportamiento ante credenciales incorrectas (mostrando alertas de error) y accesos válidos (redirigiendo correctamente al Dashboard).
  • Búsqueda Dinámica de Usuarios: Automatización del flujo administrativo que ingresa al módulo 'Admin', realiza filtros de búsqueda por nombre de usuario, rol y estado de cuenta, y valida la coincidencia en la grilla de datos.
  • Captura de Pantalla en Errores: Integración transparente a nivel de hooks que realiza un screenshot automático al momento de ocurrir un fallo, permitiendo una rápida identificación del problema.

📜 Licencia

The MIT License (MIT).

About

Proyecto personal donde simulo pruebas End-to-End (E2E) sobre la interfaz de OrangeHRM. Diseñé el framework desde cero usando Playwright con NodeJS bajo el enfoque BDD (Cucumber) y el patrón Page Object Model (POM).

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages