Selenium Web Automation — SauceDemo
Automation project for the SauceDemo web app, focused on covering the main functionalities of the platform.
Scope
- User authentication
- Product inventory
- Shopping cart
- Checkout process
- Side menu and navigation
Technologies & Tools
- Selenium WebDriver
- JUnit 5
- Java
- Allure Reports
- Page Object Model
Documentation & Test Tracking
In addition to automated reports (JUnit + Allure), I maintain manual documentation of the test cases covered to ensure traceability and functional coverage.
ID | Nombre del Caso de Prueba | Módulo / Funcionalidad | Precondiciones | Pasos | Datos | Resultado Esperado | Automatizado |
---|---|---|---|---|---|---|---|
TC001 | Login exitoso con usuario válido | Login | Navegador en https://saucedemo.com/ | 1. Ingresar usuario 2. Ingresar password 3. Clic en Login | standard_user / secret_sauce | Redirección a página de inventario | ✔️ Sí |
TC002 | Login con credenciales inválidas | Login | Navegador en https://saucedemo.com/ | 1. Ingresar usuario incorrecto 2. Ingresar password incorrecta 3. Clic en Login | usuario_x / secret_sauce | Mostrar mensaje de error de autenticación | ✔️ Sí |
TC003 | Login con usuario bloqueado | Login | Navegador en https://saucedemo.com/ | 1. Ingresar usuario bloqueado 2. Ingresar password 3. Clic en Login | locked_out_user / secret_sauce | Mostrar mensaje: usuario bloqueado | ✔️ Sí |
TC004 | Login con usuario vacío | Login | Navegador en https://saucedemo.com/ | 1. Dejar usuario vacío 2. Ingresar password 3. Clic en Login | standard_user / "" | Mostrar mensaje de campo obligatorio | ✔️ Sí |
TC005 | Login con password vacía | Login | Navegador en https://saucedemo.com/ | 1. Introducir usuario 2. Dejar contraseña vacía 3. Clic en Login | / secret_sauce | Mostrar mensaje de campo obligatorio | ✔️ Sí |
TC006 | Validar nombre, descripción y precio | Inventario | Usuario autenticado | 1. Acceder al inventario 2. Revisar nombre, descripción y precio por item | - | Todos los datos deben mostrarse correctamente | ✔️ Sí |
TC007.1 | Ordenamiento de productos A-Z | Inventario | Usuario autenticado | 1. Abrir menú de ordenamiento 2. Seleccionar A-Z | - | Lista ordenada alfabéticamente ascendente | ✔️ Sí |
TC007.2 | Ordenamiento de productos Z-A | Inventario | Usuario autenticado | 1. Abrir menú de ordenamiento 2. Seleccionar Z-A | - | Lista ordenada alfabéticamente descendente | ✔️ Sí |
TC008.1 | Ordenamiento de productos precio ascendente | Inventario | Usuario autenticado | 1. Abrir menú de ordenamiento 2. Seleccionar precio ascendente | - | Lista ordenada por precio ascendente | ✔️ Sí |
TC008.2 | Ordenamiento de productos precio descendente | Inventario | Usuario autenticado | 1. Abrir menú de ordenamiento 2. Seleccionar precio descendente | - | Lista ordenada por precio descendente | ✔️ Sí |
Fragment from the manually maintained test case documentation.
Challenges & Solutions
The main challenge was defining the test structure and organizing the Page Object Model to ensure maintainability.
I analyzed the use cases and structured the Page Objects to maximize reuse and clarity.
Key Features
- Automatic screenshot capture on failures (Allure)
- Page Object Model for clean and reusable code
- Flexible configuration via external files
- Manual and automatic documentation for full traceability
Allure Report Example

Screenshot of an Allure report showing test execution results.
Result
Stable and maintainable test suite covering the most critical flows of the web application.
Lessons & Future Improvements
- Deeper mastery of the Page Object Model
- Cross-browser testing and continuous integration in the future