Curso de Postman: Pruebas y Automatización de APIs de Extremo a Extremo

Índice General

  1. Conceptos Fundamentales de Interfaces de Programación (APIs)
  2. Modelos de Arquitectura: REST, SOAP y GraphQL
  3. Autenticación Web mediante JSON Web Tokens (JWT)
  4. Automatización de Aserciones en Postman (Tests Panel)
  5. Ejecución en Consola y CI/CD utilizando Newman

1. Conceptos Fundamentales de Interfaces de Programación (APIs)

Una API (Application Programming Interface) es un conjunto de reglas, convenciones y protocolos que permiten que diferentes componentes de software se comuniquen e intercambien datos de manera estructurada sin intervención de una interfaz gráfica de usuario (GUI). Actúa como una capa de abstracción de sistemas complejos.

Analogía Mecánica: El volante y los pedales de un automóvil representan la interfaz de control. Te permiten conducir e interactuar con el vehículo de forma segura sin necesidad de comprender la mecánica interna o la inyección electrónica del motor que ocurre debajo.

2. Modelos de Arquitectura: REST, SOAP y GraphQL

3. Autenticación Web mediante JSON Web Tokens (JWT)

Para acceder de forma segura a endpoints privados, los sistemas modernos implementan tokens criptográficos estructurados. El formato más extendido en la industria es JWT (JSON Web Token). Tras un login exitoso, el servidor web despacha un token compacto cifrado que almacena los permisos de sesión del usuario. El cliente debe adjuntar este token en la cabecera de cada petición HTTP subsiguiente para validar su identidad.

4. Automatización de Aserciones en Postman (Tests Panel)

Postman incorpora un entorno de ejecución basado en JavaScript (dentro de la pestaña Tests) para automatizar validaciones sobre las respuestas JSON devueltas por los servidores:

A. Validación de Código de Estado Exitoso (HTTP 200)

pm.test("Validar que el código de estado sea HTTP 200 OK", function () {
    pm.response.to.have.status(200);
});

B. Validación y Tipado Estructural de Datos del Perfil de Usuario

pm.test("Verificar la integridad y consistencia de los datos del usuario logueado", function () {
    const responseJson = pm.response.json();
    
    // Comparar variables dinámicas contra variables de entorno
    pm.expect(responseJson.authentication.umail).to.equal(pm.environment.get("nuevoEmail"));
    
    // Validar tipos de datos nativos
    pm.expect(responseJson.authentication.bid).to.be.a("number");
    
    // Validar condiciones lógicas numéricas
    pm.expect(responseJson.authentication.bid).to.be.greaterThan(0);
});

5. Ejecución en Consola y CI/CD utilizando Newman

Newman es la interfaz de línea de comandos (CLI) nativa para Postman. Permite ejecutar colecciones de pruebas completas de forma automatizada directamente desde la consola del sistema operativo o integradas dentro de pipelines de CI/CD (Jenkins, GitHub Actions), eliminando la necesidad de abrir la aplicación de Postman en entornos gráficos.

A. Preparación del Ecosistema de Consola

# Instalar Newman de forma global en el sistema
npm install -g newman

# Verificar el éxito de la instalación consultando su versión
newman -v

# Instalar el generador de reportes visuales en formato HTML
npm install -g newman-reporter-html

B. Estructura de Directorios Profesional de un Proyecto

api-testing-framework/
 ├─ postman/
 │   └─ coleccion_pruebas_reqres.json
 ├─ environment/
 │   └─ staging_environment.json
 └─ newman/
     ├─ html_reports/
     │   └─ report_ejecucion.html
     └─ README.md

C. Comando Definitivo de Inyección de Pruebas con Reporte

Para disparar las peticiones pasando variables de entorno y anulando URLs dinámicas en caliente, se ejecuta:

newman run ./postman/coleccion_pruebas_reqres.json \
-e ./environment/staging_environment.json \
--env-var "UrlBase=https://dummyjson.com" \
--reporters html \
--reporter-html-export ./newman/html_reports/report_ejecucion.html

D. Resumen Ejecutivo de Salida Esperada en Consola

============================================================
✔ Requests ejecutadas: 19 | Exitosas: 19 | Fallidas: 0
✔ Aserciones totales:  75 | Exitosas: 75 | Fallidas: 0
------------------------------------------------------------
Resultado Final: ✔ Ejecución limpia y exitosa sin regresiones técnicas.
============================================================