‹ Volver a Portafolio

Tabla de Contenidos

Introducción
Objetivos
Tecnologías utilizadas
Alcance
Suite de Pruebas
Arquitectura de las pruebas
Resultados y métricas
Repositorio Github
Conclusión
Lecciones Aprendidas

Descripción del proyecto

El proyecto DemoBlaze tiene como fin realizar la automatización de diferentes escenarios de prueba para garantizar el correcto funcionamiento de funcionalidades críticas del SUT tales como: realizar una compra, verificar la disponibilidad de todos los productos,verificar el login, navegar por todas las secciones de la pagina y verificar el formulario de contacto.

Para lograrlo, se utilizó el framework Selenium, que proporciona una interfaz de automatización de navegadores web. Se empleó el lenguaje de programación C# para desarrollar los scripts de prueba y se aplicó el patrón de diseño Page Object Model (POM) para mejorar la estructura y reutilización del código.

1. Introducción 🌐

El sitio demoblaze.com es un sitio de prácticas que simula una tienda de venta de productos de tecnología y funciones típicas de un sitio de comercio electrónico. Ofrece a los usuarios la posibilidad de explorar un catálogo de productos, registrarse como usuario, loguearse a la plataforma, contactarse con la empresa, 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.
  • C#: Lenguaje de programación utilizado para desarrollar las pruebas automatizadas.
  • NUnit: Framework de pruebas utilizado para la ejecución y gestión de los casos de prueba.
  • NuGet: Gestor de dependencias del proyecto.
  • SpecFlow: Herramienta de pruebas automatizadas y desarrollo de software basada en el concepto de Behavior Driven Development (BDD). BDD es una metodología de desarrollo de software que se centra en el comportamiento esperado del sistema desde la perspectiva del negocio.

3.2 Librerias 📓

  • Extent Report 4.1.0 : Librería para generar informes HTML interactivos que proporcionan una visión clara y detallada del resultado de las pruebas.
  • FluentAssertions: Biblioteca útil y potente para escribir aserciones en pruebas unitarias en entornos .NET, que ayuda a mejorar la claridad, expresividad y mantenibilidad del código de prueba.
  • DotNetSeleniumExtras.WaitHelpers 3.11.0: Biblioteca útil para facilitar el control de las esperas.
  • JUnitTestLogger: Dependencia necesaria para escribir y ejecutar pruebas unitarias además de permitir registrar las pruebas en un documento xml.

3.3 Herramientas 🛠️

  • IDE : Microsoft Visual Studio

4. Alcance 📍

En el proyecto se realizará la automatización de los siguientes escenarios de prueba :

☑️ESC001 - Realizar una compra
☑️ESC002 - Verificar la disponibilidad de todos los productos
☑️ESC003 - Iniciar sesión con credenciales validas
☑️ESC004 - Iniciar sesión con credenciales invalidas
☑️ESC005 - Navegar por todas las secciones de la pagina
☑️ESC006 - Verificar el formulario de contacto
☑️ESC007 - Verificar que los precios sean mayores a 0

5. Suite de Pruebas 🧪

5.1 Escenarios

IdFeatureEscenario de pruebaSentencias GherkinResultado esperado
ESC001Realizar una compraRealizar compra de varios productosGiven que estoy en la página DemoBlaze
When agrego un Producto al carrito
And realizo la compra
Then debería visualizar un mensaje de confirmación
Ver un mensaje de confirmación de compra exitosa
ESC002Verificar la disponibilidad de todos los productosVerificar la disponibilidad de todos los productos listadosGiven que estoy en la página DemoBlaze
When visualizo todos los productos del sitio
Then deberian mostrarse todos los esperados
Confirmar que todos los productos están disponibles
ESC003Iniciar sesión con credenciales válidasVerificar el LoginGiven que estoy en la página DemoBlaze
When ingreso mis credenciales
And presiono el botón de iniciar sesión
Then debería ser redirigido a la página principal de DemoBlaze como usuario autenticado
Ser redirigido a la página principal de DemoBlaze como usuario autenticado
ESC004Iniciar sesión con credenciales inválidasVerificar el LoginGiven que estoy en la página DemoBlaze
When ingreso mis credenciales
And presiono el botón de iniciar sesión
Then deberia visualizar un alert con el mensaje Wrong password.
Ver un mensaje de error de credenciales
ESC005Navegar por todas las secciones de la páginaNavegar por todas las secciones disponibles en la páginaGiven que estoy en la página DemoBlaze
When navego por cada sección
Then debería acceder a cada seccion
Confirmar que se puede acceder a todas las secciones sin problemas
ESC006Verificar el formulario de contactoVerificar que el formulario de contacto está funcionando correctamenteGiven que estoy en la página DemoBlaze
When navego a la seccion Contact
And envio el formulario completo Then debería visualizar un alert con el mensaje
Ver un mensaje de confirmación de envío exitoso del formulario
ESC007Verificar que los precios sean mayores a 0Verificar que todos los productos tengan un precio >0Given que estoy en la página DemoBlaze
When visualizo todos los productos del sitio
Then Todos los precios de los productos deberian ser mayores a 0
No se espera ninguna respuesta del sistema.
ESC008Verificar el carro de comprasVerificar la suma y cantidad de productos del carro de compras.Given que estoy en la página DemoBlaze
When agrego un productoA
When agrego un productoB
Then El carrito debería mostrar la cantidad de productos agregados y el monto de ambos.
Se espera que se facture la cantidad de productos y la suma de ambos productos.

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 📂

DemoBlazeAutomation/
├── Dependencias/
├── Features/
│   ├── CarroDeCompras.feature
│   ├── IniciarSesion.feature
│   ├── NavegarPorTodasLasSecciones.feature
│   ├── RealizarUnaCompra.feature
│   ├── VerificarDisponibilidadDelCatalogo.feature
│   ├── VerificarFormularioDeContacto.feature
│   └── VerificarTodosLosPreciosMayorACero.feature
├── Hook/
│   ├── Hooks.cs
├── POM/
│   ├── Helper/
|   │   └── ProductHelper.cs
│   ├── Input/
|   │   ├── ProductMarketTest.cs
|   │   └── ProductWebElement.cs
│   ├── Models/
|   │   └── ProductModel.cs
│   ├── BasePage.cs
│   ├── CartPage.cs
│   ├── ContactPage.cs
│   ├── HomePage.cs
│   ├── LoginPage.cs
│   ├── ProductDetailPage.cs
│   └── SignUpPage.cs
├── Report/
│   └── index.html
├── StepDefinitions/
│   ├── BaseSteps.cs
│   └── DemoBlazeSteps.cs
└── Utilities/
    ├── ExtentReport.cs
    └── TakeScreenShot.cs

7. Capturas de pantalla y ejemplos 📸

Se adjuntan las evidencias del funcionamiento de los scripts realizados y una demostración de los informes generados.

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 los pasos fallidos (configurable) y de acuerdo a las directivas dadas, se elabora un informe con el resultado de la ejecución de cada paso.

Ver informe 📒✏️

8.2 Informe de NUnit

Desde la raíz del proyecto se puede ejecutar el siguiente comando para correr la suite y generar un informe XML

dotnet test --logger "junit;LogFilePath=D:\Documentos\Practicas_Testing\Selenenium_WebDriver\DemoBlazeAutomation\Report\resultsJunit.xml"

Ver informe 📒✏️

9. Repositorio Github 🌏💼

Link a repositorio: Git DemoBlaze Automation

10. 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 C#. 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 demoblaze.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 📚

  • SpecFlow Project
  • Gestor Nuget
  • NUnit Framework
  • Page Object Model
  • Programación en C#
  • Extent Report
  • Selenium Web Driver