‹ Volver a Portafolio

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

IDTipo de casoDescripción del TCPrecondicionesDatosResultado esperadoResultado obtenidoEvidencia
CP001

Positivo

Iniciar sesión con credenciales válidasEl sitio web saucedemo.com está en líneauser: standard_user pass: secret_saucePágina de inicio cargada correctamente✅Pasóver
CP005

Positivo

Realizar una compra con productos en el carritoUsuario autenticadouser: standard_user pass: secret_sauceRedirigir a la página de inicio✅Pasóver

5.2 Pruebas de Regresión

IDTipo de casoDescripción del TCPrecondicionesDatosResultado esperadoResultado obtenidoEvidencia
CP001

Positivo

Iniciar sesión con credenciales válidasEl sitio web saucedemo.com está en líneauser: standard_user pass: secret_saucePágina de inicio cargada correctamente✅Pasóver
CP002

Negativo

Iniciar sesión con password inválidoEl sitio web saucedemo.com está en líneauser: standard_user pass: pass_incorrectaMostrar mensaje de error✅Pasóver
CP003

Negativo

Iniciar sesión con usuario inválidoEl sitio web saucedemo.com está en líneauser: user_incorrectopass: secret_sauceMostrar mensaje de error✅Pasóver
CP004

Negativo

Iniciar sesión con campos vacíosEl sitio web saucedemo.com está en líneaMostrar mensaje de error✅Pasóver
CP005

Positivo

Realizar una compra con productos en el carritoUsuario autenticadouser: standard_user pass: secret_sauceRedirigir a la página de inicio✅Pasóver
Mostrar Casos de Prueba 📎 📒

CP001 - Iniciar sesión con credenciales válidas

IDTipo de casoNúmero de PasoDescripción del PasoPrecondicionesDatosResultado EsperadoResultado Obtenido - StatusEvidencia
CP001

Positivo

1Ingresar a saucedemo.comEl sitio web saucedemo.com está en líneauser: standard_user pass: secret_saucePágina de inicio cargada correctamente✅Pasó-
2Ingresar nombre de usuario y contraseñaUsuario registrado en saucedemo.comuser: standard_user pass: secret_sauceUsuario completa los campos obligatorios✅Pasó-
3Hacer 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 CPTipo de casoNúmero de PasoDescripción del PasoPrecondicionesDatosResultado EsperadoResultado Obtenido - StatusEvidencia
CP002

Negativo

1Ingresar a saucedemo.comEl sitio web saucedemo.com está en línea-Página de inicio cargada correctamente✅Pasó-
2Ingresar nombre de usuario y contraseñaUsuario registrado en saucedemo.comuser: standard_user pass: pass_incorrectaUsuario completa los campos obligatorios✅Pasó
3Hacer 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 CPTipo de casoNúmero de PasoDescripción del PasoPrecondicionesDatosResultado EsperadoResultado Obtenido - StatusEvidencia
CP003

Negativo

1Ingresar a saucedemo.comEl sitio web saucedemo.com está en línea-Página de inicio cargada correctamente✅Pasó-
2Ingresar nombre de usuario y contraseñaUsuario registrado en saucedemo.comuser: user_incorrectopass: secret_sauceUsuario completa los campos obligatorios✅Pasó-
3Hacer 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 CPTipo de casoNúmero de PasoDescripción del PasoPrecondicionesDatosResultado EsperadoResultado Obtenido - StatusEvidencia
CP004

Negativo

1Ingresar a saucedemo.comEl sitio web saucedemo.com está en línea-Página de inicio cargada correctamente✅Pasó-
2Ingresar nombre de usuario y contraseñaUsuario registrado en saucedemo.comuser:” ” pass: ”Usuario no completa los campos de acceso✅Pasó-
3Hacer 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 CPTipo de casoNúmero de PasoDescripción del PasoPrecondicionesDatosResultado EsperadoResultado Obtenido - StatusEvidencia
CP005

Positivo

1Ingresar a saucedemo.com y iniciar sesiónUsuario autenticadouser: standard_user pass: secret_sauceRedirigir a la página de inicio✅Pasó-
2Navegar y agregar productos al carritoPágina de inicio cargada correctamenteProductos disponibles en el sitioProductos agregados al carrito✅Pasó-
3Hacer click en el icono del carrito que está ubicado en la esquina superior derechaPágina de inicio cargada correctamenteProductos disponibles en el sitioPagina de control de compras.✅Pasó-
4Hacer click en el botón checkoutCarrito de compras contiene productos-Mostrar una lista con los productos a comprar✅Pasó-
5Completar los campos obligatorios y hacer click en botón “continue”Paso anterior.Nombre,Apellido y código postalRedirigir a la página de información de pago✅Pasó-
6Hacer 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

Ver informe Regression 📒✏️

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