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úmero | Descripción | Método | Endpoint | Parámetros | Resultado Esperada |
---|---|---|---|---|---|
CP001 | Obtener todos los productos | GET | /products | - | Respuesta exitosa. Con la lista de productos |
CP002 | Obtener detalles de un producto | GET | /products/{id} | id: ID del producto | Respuesta exitosa.con detalles del producto solicitado |
CP003 | Obtener todas las categorías | GET | /products/categories | - | Respuesta exitosa con la lista de categorías |
CP004 | Obtener productos por categoría | GET | /products/category/{category} | category: Nombre de categoría | Respuesta exitosa con la lista de productos de la categoría |
CP005 | Obtener todos los usuarios | GET | /users | - | Respuesta exitosa con el listado de todos los usuarios |
CP006 | Obtener información de un usuario | GET | /users/{id} | id: ID de usuario | Respuesta exitosa con detalles del usuario solicitado |
CP007 | Obtener todas las órdenes | GET | /carts | - | Respuesta exitosa con la lista de órdenes |
CP008 | Crear una nueva orden | POST | /carts | Datos de la nueva orden | Respuesta exitosa con detalles de la orden creada |
CP009 | Crear un nuevo producto | POST | /products | Datos del nuevo producto | Respuesta exitosa con detalles del producto creado |
CP010 | Crear un nuevo usuario | POST | /users | Datos del nuevo usuario | Respuesta exitosa con detalles del usuario creado |
CP011 | Actualizar detalles de un producto | PUT | /products/{id} | id: ID del producto | Respuesta exitosa con detalles actualizados del producto |
CP012 | Eliminar un producto | DELETE | /products/{id} | id: ID del producto | Respuesta exitosa confirmando la eliminación del producto |
6. Test / Validaciones 📗
Número | Descripción | Verificaciones |
---|---|---|
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 detalles de un usuario | |
CP007 | Obtener todas las órdenes | |
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 |
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.
10. Repositorio Postman 🌏💼
Link a la colección en Postman: Fake Store API Postman Collection
Link a repositorio git: Git FakeStore API
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