Skip to content

CmorenoRuizz/saucedemo-e2e-framework

Repository files navigation

SauceDemo Automation Framework

Este repositorio contiene un framework de automatización End-to-End (E2E) para SauceDemo, construido con WebdriverIO v9 y ES Modules, siguiendo una arquitectura robusta inspirada en los estándares de grado empresarial para proyectos de gran escala.

Arquitectura y Estándares

El proyecto está diseñado bajo un modelo estructurado, enfocado en la mantenibilidad y escalabilidad:

  • Page Object Model (POM) Avanzado:

    • src/pageobjects/: Contiene la lógica de interacción de las páginas usando convención PascalCase (ej. LoginPage.js).
    • Todas las páginas heredan de una clase base Page.js, que centraliza operaciones comunes como la navegación (loadPage) y el escaneo de errores de UI (checkError).
    • Componentes reutilizables, como HeaderComponent.js, se aíslan en su propia subcarpeta.
  • Separación de Selectores (Paths):

    • src/paths/: Archivos en formato kebab-case que almacenan únicamente los localizadores de la UI (ej. login.paths.js). Esto desacopla la definición del DOM de la lógica de negocio, facilitando el mantenimiento si la UI cambia.
  • Data-Driven Testing (Manejo de Datos):

    • Los datos duros no se mezclan con el código de las pruebas.
    • Se utilizan modelos en src/models/ (ej. User.js, CheckoutInfo.js) para tipar y validar las estructuras de datos.
    • Los datos de prueba se inyectan desde archivos estáticos en resources/ (simulando una carga de datos externa o un Excel).

Instalación y Ejecución

  1. Instalar dependencias:

    npm install
  2. Ejecutar los tests E2E:

    npm test

    O ejecutar una suite específica:

    npm run test:login

    Nota: Por defecto, los tests se ejecutarán en Chrome. Si el entorno es CI (Integración Continua), Chrome se ejecutará en modo headless de forma automática.

Reportes (Allure)

El framework está integrado con Allure Reporter para generar reportes HTML detallados. En caso de que un test falle, se tomará automáticamente una captura de pantalla que se adjuntará al reporte y se guardará físicamente en la carpeta errorShots/.

Para generar y visualizar el reporte tras una ejecución:

npm run report

Integración Continua (CI/CD)

El proyecto incluye un workflow de GitHub Actions (.github/workflows/e2e.yml) preconfigurado. En cada evento push o pull_request hacia la rama principal, se inicializa un entorno virtual Ubuntu, instala las dependencias y ejecuta los tests empleando Chrome en modo headless, almacenando el reporte de Allure resultante como un artefacto descargable.

About

No description or website provided.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors