Tabla de Contenidos
Introducción
Objetivos
Tecnologías utilizadas
Alcance
Suite de Pruebas
Arquitectura de las pruebas
Prueba de Humo
Prueba de Regresión
Prueba Mobile
Resultados y métricas
Jenkins
Repositorio Github
Conclusión
Lecciones Aprendidas
Descripción del proyecto
La segunda parte del proyecto Saucedemo , tiene como fin realizar la automatización de los casos de prueba para cubrir ciertas funcionalidades del SUT tales como: el ordenamiento de los productos según un criterio establecido, el proceso de compra, la gestión del carrito y la verificación de la integridad de los datos.
Para lograrlo, se utilizó el framework Selenium, que proporciona una interfaz de automatización de navegadores web. Se empleó el lenguaje de programación Java para desarrollar los scripts de prueba y se aplicaron técnicas de Page Object Model (POM) para mejorar la estructura y reutilización del código.
1. Introducción 🌐
El sitio saucedemo.com es un sitio de prácticas que simula una tienda de venta de ropa y accesorios en línea. Ofrece a los usuarios la posibilidad de explorar un catálogo de productos, ordenarlos según el criterio establecido, agregar artículos al carrito de compras, realizar pagos y completar los datos de la compra.
2. Objetivos 🎯
- Automatizar pruebas de funcionalidad para mejorar la eficiencia y precisión de las pruebas.
- Reducir el tiempo y los recursos requeridos para realizar pruebas manuales.
- Detectar errores y problemas en el sitio web de manera temprana.
3. Tecnologías utilizadas 💻
Para la construcción del proyecto se emplearon las siguientes tecnologías , librerías , técnicas y herramientas de desarrollo:
3.1 Tecnologías 👨💻
- Selenium Web Driver: Framework de automatización de pruebas para interactuar con los elementos de la interfaz de usuario.
- Java: Lenguaje de programación utilizado para desarrollar las pruebas automatizadas.
- TestNG: Framework de pruebas utilizado para la ejecución y gestión de los casos de prueba.
- Maven: Gestor de dependencias utilizado para la gestión del proyecto.
- Extent Report: Librería para generar informes HTML interactivos que proporcionan una visión clara y detallada del resultado de las pruebas.
- Jenkins: Es una plataforma que se utiliza para automatizar el proceso de construcción, prueba y despliegue de aplicaciones.
3.2 Herramientas 🛠️
- IDE : Eclipse
4. Alcance 📍
En el proyecto se realizará la automatización de los siguientes casos de prueba :
☑️CP001 - Iniciar sesión con credenciales válidas
☑️CP002 - Iniciar sesión con password inválido
☑️CP003 - Iniciar sesión con usuario inválido
☑️CP004 - Iniciar sesión con campos vacíos
☑️CP005 - Realizar una compra con productos en el carrito
5. Suite de Pruebas 🧪
5.1 Pruebas de Smoke
ID | Tipo de caso | Descripción del TC | Precondiciones | Datos | Resultado esperado | Resultado obtenido | Evidencia |
---|---|---|---|---|---|---|---|
CP001 | Positivo | Iniciar sesión con credenciales válidas | El sitio web saucedemo.com está en línea | user: standard_user pass: secret_sauce | Página de inicio cargada correctamente | ✅Pasó | ver |
CP005 | Positivo | Realizar una compra con productos en el carrito | Usuario autenticado | user: standard_user pass: secret_sauce | Redirigir a la página de inicio | ✅Pasó | ver |
5.2 Pruebas de Regresión
ID | Tipo de caso | Descripción del TC | Precondiciones | Datos | Resultado esperado | Resultado obtenido | Evidencia |
---|---|---|---|---|---|---|---|
CP001 | Positivo | Iniciar sesión con credenciales válidas | El sitio web saucedemo.com está en línea | user: standard_user pass: secret_sauce | Página de inicio cargada correctamente | ✅Pasó | ver |
CP002 | Negativo | Iniciar sesión con password inválido | El sitio web saucedemo.com está en línea | user: standard_user pass: pass_incorrecta | Mostrar mensaje de error | ✅Pasó | ver |
CP003 | Negativo | Iniciar sesión con usuario inválido | El sitio web saucedemo.com está en línea | user: user_incorrectopass: secret_sauce | Mostrar mensaje de error | ✅Pasó | ver |
CP004 | Negativo | Iniciar sesión con campos vacíos | El sitio web saucedemo.com está en línea | Mostrar mensaje de error | ✅Pasó | ver | |
CP005 | Positivo | Realizar una compra con productos en el carrito | Usuario autenticado | user: standard_user pass: secret_sauce | Redirigir a la página de inicio | ✅Pasó | ver |
Mostrar Casos de Prueba 📎 📒
CP001 - Iniciar sesión con credenciales válidas
ID | Tipo de caso | Número de Paso | Descripción del Paso | Precondiciones | Datos | Resultado Esperado | Resultado Obtenido - Status | Evidencia |
---|---|---|---|---|---|---|---|---|
CP001 | Positivo | 1 | Ingresar a saucedemo.com | El sitio web saucedemo.com está en línea | user: standard_user pass: secret_sauce | Página de inicio cargada correctamente | ✅Pasó | - |
2 | Ingresar nombre de usuario y contraseña | Usuario registrado en saucedemo.com | user: standard_user pass: secret_sauce | Usuario completa los campos obligatorios | ✅Pasó | - | ||
3 | Hacer clic en “Iniciar Sesión” | El formulario de inicio de sesión está en la vista | - | Redirigir a la página de inicio | ✅Pasó | ver |
CP002 - Iniciar sesión con password inválido
ID del CP | Tipo de caso | Número de Paso | Descripción del Paso | Precondiciones | Datos | Resultado Esperado | Resultado Obtenido - Status | Evidencia |
---|---|---|---|---|---|---|---|---|
CP002 | Negativo | 1 | Ingresar a saucedemo.com | El sitio web saucedemo.com está en línea | - | Página de inicio cargada correctamente | ✅Pasó | - |
2 | Ingresar nombre de usuario y contraseña | Usuario registrado en saucedemo.com | user: standard_user pass: pass_incorrecta | Usuario completa los campos obligatorios | ✅Pasó | |||
3 | Hacer clic en “Iniciar Sesión” | El formulario de inicio de sesión está en la vista | - | Mostrar mensaje de error | ✅Pasó | ver |
CP003 - Iniciar sesión con usuario inválido
ID del CP | Tipo de caso | Número de Paso | Descripción del Paso | Precondiciones | Datos | Resultado Esperado | Resultado Obtenido - Status | Evidencia |
---|---|---|---|---|---|---|---|---|
CP003 | Negativo | 1 | Ingresar a saucedemo.com | El sitio web saucedemo.com está en línea | - | Página de inicio cargada correctamente | ✅Pasó | - |
2 | Ingresar nombre de usuario y contraseña | Usuario registrado en saucedemo.com | user: user_incorrectopass: secret_sauce | Usuario completa los campos obligatorios | ✅Pasó | - | ||
3 | Hacer clic en “Iniciar Sesión” | El formulario de inicio de sesión está en la vista | - | Mostrar mensaje de error | ✅Pasó | ver |
CP004 - Iniciar sesión con campos vacíos
ID del CP | Tipo de caso | Número de Paso | Descripción del Paso | Precondiciones | Datos | Resultado Esperado | Resultado Obtenido - Status | Evidencia |
---|---|---|---|---|---|---|---|---|
CP004 | Negativo | 1 | Ingresar a saucedemo.com | El sitio web saucedemo.com está en línea | - | Página de inicio cargada correctamente | ✅Pasó | - |
2 | Ingresar nombre de usuario y contraseña | Usuario registrado en saucedemo.com | user:” ” pass: “ | Usuario no completa los campos de acceso | ✅Pasó | - | ||
3 | Hacer clic en “Iniciar Sesión” | El formulario de inicio de sesión está en la vista | - | Mostrar mensaje de error | ✅Pasó | ver |
CP005 - Realizar una compra con productos en el carrito
ID del CP | Tipo de caso | Número de Paso | Descripción del Paso | Precondiciones | Datos | Resultado Esperado | Resultado Obtenido - Status | Evidencia |
---|---|---|---|---|---|---|---|---|
CP005 | Positivo | 1 | Ingresar a saucedemo.com y iniciar sesión | Usuario autenticado | user: standard_user pass: secret_sauce | Redirigir a la página de inicio | ✅Pasó | - |
2 | Navegar y agregar productos al carrito | Página de inicio cargada correctamente | Productos disponibles en el sitio | Productos agregados al carrito | ✅Pasó | - | ||
3 | Hacer click en el icono del carrito que está ubicado en la esquina superior derecha | Página de inicio cargada correctamente | Productos disponibles en el sitio | Pagina de control de compras. | ✅Pasó | - | ||
4 | Hacer click en el botón checkout | Carrito de compras contiene productos | - | Mostrar una lista con los productos a comprar | ✅Pasó | - | ||
5 | Completar los campos obligatorios y hacer click en botón “continue” | Paso anterior. | Nombre,Apellido y código postal | Redirigir a la página de información de pago | ✅Pasó | - | ||
6 | Hacer click en el botón “Finish” | Paso anterior. | - | Mostrar un mensaje de confirmación de compra | ✅Pasó | ver |
6. Arquitectura de las pruebas 🏠
El proyecto sigue el patrón Page Object Model (POM) para una mejor organización y mantenibilidad. Los elementos de la interfaz de usuario se encuentran separados en clases individuales, lo que permite un fácil mantenimiento y reutilización del código.
6.1 Estructura del proyecto 📂
Saucedemo_TestAutomationFramework/
├── src/
│ ├── main/java
│ ├── main/resources
│ ├── main/test/java
│ │ ├── pages
│ │ │ ├── BasePage.java
│ │ │ ├── CartPage.java
│ │ │ ├── CheckOutCompletePage.java
│ │ │ ├── CheckOutStepOnePage.java
│ │ │ ├── CheckOutStepTwoPage.java
│ │ │ ├── LoginPage.java
│ │ │ ├── ProductPage.java
│ │ ├── tests/
│ │ │ ├── SauceDemoTest.java
│ │ ├── utilities/
│ │ │ ├── ConfigFile.java
│ │ │ ├── DatosExcel.java
│ │ │ ├── DriverManager.java
│ │ │ ├── ReportManager.java
│ │ │ ├── ScreenCapture.java
│ │ │ ├── LoginPage.java
│ │ │ ├── ProductPage.java
│ ├── main/test/resources
│ │ ├── images/
│ │ │ ├── screencapture.png
│ │ ├── reports/
│ │ │ ├── Spark.html
└── pom.xml
└── regression.xml
└── smokeTest.xml
└── mobileEmulation.xml
└── README.md
7. Capturas de pantalla y ejemplos 📸
Se adjuntan las evidencias del funcionamiento de los scripts realizados y una demostración de los informes generados, se ejecutan los siguientes comandos desde maven.
7.1 Prueba de Smoke 💓
Se ejecutan los casos de prueba para validar el inicio de sesión y la compra de un producto en el navegador Chrome.
maven test -P Smoke
7.2 Prueba de Regresión ↩️
Se ejecutan todos los casos de prueba en los navegadores Chrome, Firefox y Edge.
maven test -P Regression
7.3 Mobile Testing 📱
Se ejecutan todos los casos de prueba, con el navegador Chrome en un entorno que simula un dispositivo móvil.
maven test -P Mobile
8. Resultados y métricas 📊
Se adjuntan los reportes de las pruebas realizadas:
8.1 Informe de Report Extent
El script realiza capturas de pantalla para determinados pasos y de acuerdo a las directivas dadas, se elabora un informe con el resultado de la ejecución de cada paso.
Ver informe Smoke 📒✏️
Ver informe Regression 📒✏️
Ver informe Mobile 📒✏️
8.2 Informe de TestNG
Informe que genera de forma automática la librería testng
9. Jenkins ☁️
Se programó la ejecución de las pruebas para que ocurra el primer día de cada mes a las 13hs.
Luego de cada prueba se generan los informes de testng y extent report y se notifica via mail a los interesados sobre los resultados de las pruebas.
9.1 Cronograma de ejecución 🗓️
9.2 Comandos de construcción 🛠️
9.3 Ejecución de Test Smoke 🔥
Se ejecuta el test de smoke mediante la interfaz de jenkins, se demuestra el envío del resultado de las pruebas mediante correo electrónico.
10. Repositorio Github 🌏💼
Link a repositorio: Git Saucedemo Automation
11. Conclusión 📢
El proyecto demostró habilidades en el diseño de casos de prueba, la implementación de scripts de automatización, el uso de Selenium Web Driver y el conocimiento de programación en Java. Además, se prestaron especial atención a los aspectos de mantenibilidad y extensibilidad del código, lo que facilita futuras actualizaciones y mejoras del proyecto.
La automatización de las pruebas en el sitio saucedemo.com resultó en una mayor eficiencia, ya que se redujo el tiempo necesario para realizar pruebas manuales repetitivas. Además, proporcionó una mayor confiabilidad en la detección de errores y problemas funcionales, lo que a su vez mejoró la calidad del sitio web.
12. Lecciones Aprendidas 📚
- Maven Project
- Page Object Model
- TestNG : CrossBrowsing,
- TestNG : Data Provider
- TestNG : Test Report
- Mobile emulation
- Extent Report
- Jenkins