‹ Volver a Portafolio

Tabla de Contenidos

Introducción
Objetivos
Tecnologías utilizadas
Alcance
Suite de pruebas
Tests
Automatización
Informes obtenidos
Ejecución en la nube
Repositorio
Conclusión
Lecciones Aprendidas

Descripción del proyecto

El proyecto tiene como objetivo principal demostrar habilidades suficientes para realizar y ejecutar pruebas de integración mediante el uso de la herramienta Postman y la validación de las respuestas obtenidas mediante la creación de test en lenguaje Javascript.
Por último se automatizó la colección y se creó un esquema de ejecución de pruebas calendarizada.
A continuación, se representa de forma esquemática los elementos que componen el sistema y el intercambio de solicitudes entre el cliente y el servidor.

1. Introducción 🌐

El sitio fakestoreapi.com es un servicio que proporciona una API de prueba con datos ficticios de una tienda en línea. La API incluye endpoints que devuelven información sobre productos, categorías, usuarios y ordenes de compra.
Para más información: Ver documentación

2. Objetivos 🎯

El proyecto tiene como objetivo asegurar la calidad de la API proporcionada por fakestoreapi.com.

Los objetivos fundamentales del proyecto son los siguientes:

  • Validación de Respuestas: Asegurar que las respuestas de la API fakestoreapi.com sean correctas en términos de estructura de datos, códigos de estado HTTP y cumplimiento de requisitos funcionales.
  • Implementar pruebas automatizadas: Utilizar la herramienta Postman para crear y ejecutar scripts de prueba automatizados, garantizando una ejecución eficiente y repetible de las pruebas.
  • Integración continua: Configurar la ejecución automatizada de pruebas dentro de un entorno de integración continua para garantizar una validación constante de la calidad del código.

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 👨‍💻

  • Javascript: Utilizado para la implementación de scripts de prueba y automatización en Postman.

3.2 Herramientas 🛠️

  • Postman : Plataforma de colaboración para el desarrollo de API, facilita la creación, prueba y documentación.
  • Newman : Herramienta de línea de comandos de Postman utilizada para ejecutar colecciones de Postman de forma automatizada y en entornos de integración continua, además de generar un reporte en HTML.

4. Alcance 📍

En el proyecto se realizará la validación de los siguientes casos de prueba:

☑️CP001 - Obtener todos los productos
☑️CP002 - Obtener detalles de un producto
☑️CP003 - Obtener todas las categorías
☑️CP004 - Obtener productos por categoría
☑️CP005 - Obtener todos los usuarios
☑️CP006 - Obtener información de un usuario
☑️CP007 - Obtener todas las ordenes
☑️CP008 - Crear una nueva orden
☑️CP009 - Crear un nuevo producto
☑️CP010 - Crear un nuevo usuario
☑️CP011 - Actualizar detalles de un producto
☑️CP012 - Eliminar un producto

5. Suite de Pruebas 🧪

NúmeroDescripciónMétodoEndpointParámetrosResultado Esperada
CP001Obtener todos los productos

GET

/products-Respuesta exitosa. Con la lista de productos
CP002Obtener detalles de un producto

GET

/products/{id}id: ID del productoRespuesta exitosa.con detalles del producto solicitado
CP003Obtener todas las categorías

GET

/products/categories-Respuesta exitosa con la lista de categorías
CP004Obtener productos por categoría

GET

/products/category/{category}category: Nombre de categoríaRespuesta exitosa con la lista de productos de la categoría
CP005Obtener todos los usuarios

GET

/users-Respuesta exitosa con el listado de todos los usuarios
CP006Obtener información de un usuario

GET

/users/{id}id: ID de usuarioRespuesta exitosa con detalles del usuario solicitado
CP007Obtener todas las órdenes

GET

/carts-Respuesta exitosa con la lista de órdenes
CP008Crear una nueva orden

POST

/cartsDatos de la nueva ordenRespuesta exitosa con detalles de la orden creada
CP009Crear un nuevo producto

POST

/productsDatos del nuevo productoRespuesta exitosa con detalles del producto creado
CP010Crear un nuevo usuario

POST

/usersDatos del nuevo usuarioRespuesta exitosa con detalles del usuario creado
CP011Actualizar detalles de un producto

PUT

/products/{id}id: ID del productoRespuesta exitosa con detalles actualizados del producto
CP012Eliminar un producto

DELETE

/products/{id}id: ID del productoRespuesta exitosa confirmando la eliminación del producto

6. Test / Validaciones 📗

NúmeroDescripciónVerificaciones
CP001Obtener todos los productos
  • Cantidad de productos
  • Campo título no vacio
  • Campo descripción no vacío
  • Todos los productos tienen una imagen
  • Todos los productos con precio >0
  • CP002Obtener detalles de un producto
  • Verificar que el id del producto buscado sea igual al obtenido
  • CP003Obtener todas las categorías
  • Cantidad de categorias
  • Contiene la categoria electronica
  • Contiene la categoria joyeria
  • Contiene la categoria ropa de hombre
  • Contiene la categoria ropa de mujer
  • CP004Obtener productos por categoría
  • Todos los productos pertenecen a la categoria buscada
  • CP005Obtener todos los usuarios
  • Cantidad de usuarios
  • Todos los usuarios tienen un nombre valido
  • Todos los usuarios tienen un email valido
  • Todos los usuarios tienen una dirección cargada
  • Todos los usuarios pertenecen a una ciudad
  • CP006Obtener detalles de un usuario
  • Verificar que el id del usuario buscado sea igual al obtenido
  • CP007Obtener todas las órdenes
  • La cantidad de ordenes debe ser > 0
  • Cada producto de una orden debe tener al menos 1 unidad solicitada
  • Cada orden debe tener al menos 1 producto
  • CP008Crear una nueva orden
  • Verificar que el id de la orden creada sea igual al obtenido
  • CP009Crear un nuevo producto
  • Verificar el titulo del producto creado sea igual al obtenido
  • CP010Crear un nuevo usuario
  • Verificar status code
  • CP011Actualizar detalles de un producto
  • Verificar que el id del producto actualizado sea igual al obtenido
  • Verificar el titulo del producto
  • CP012Eliminar un producto
  • Verificar que el id del producto borrado sea igual al obtenido
  • La página fakestoreAPI no admite la inserción/eliminación de contenido en su base de datos, por lo tanto para los casos de los request POST y DELETE no habrá ningún impacto en sus registros y el response obtenido será siempre el mismo identificador .

    7. Automatización de Pruebas

    Demostración de la collección automatizada:

    8. Resultados y métricas 📊

    Se adjuntan los reportes de las pruebas realizadas:

    8.1 Newman

    Ver informe Suite Completa 📒✏️

    8.2 Jenkins

    9. Postman Cloud

    Se implementa un esquema de ejecución semanal, mediante el complemento Postman Cloud, que permite crear automatizaciones en la nube.

    EsquemaCalendarizado

    10. Repositorio Postman 🌏💼

    Acceso a la colección: Fake Store API Postman Colection

    11. Conclusión 📢

    Este proyecto ha demostrado la capacidad para diseñar y ejecutar pruebas de API utilizando Postman además de validar las siguientes competencias:

    • Automatización de pruebas con Postman y JavaScript: La capacidad para diseñar y ejecutar pruebas automatizadas, utilizando Postman y scripts en JavaScript, demuestra un enfoque técnico sólido y adaptabilidad a las necesidades específicas del proyecto.
    • Validación dinámica de respuestas: La implementación de scripts en JavaScript para validar respuestas, especialmente cuando la estructura de datos puede cambiar, refleja las competencias necesarias para abordar desafíos dinámicos en el testing de APIs.
    • Gestión eficiente de datos y ambientes: La utilización efectiva de variables y ambientes en Postman revela la capacidad para gestionar datos de prueba de manera organizada y adaptarse a diferentes contextos de ejecución.

    Mejoras a Futuro

    • Ajustar las pruebas a medida que la API evoluciona y considerar la expansión de las pruebas para abordar aspectos como la seguridad y el rendimiento.

    12. Lecciones Aprendidas 📚

    • Postman
    • Javascript
    • Testing Web Services
    • API Rest
    • Generación de reportes HTML
    • Newman