Capítulo 1.5: Pruebas de API a través de Postman
Tiempo de estudio: 50 minutos
1. ¿Por qué probamos las API? Verificación previa al lanzamiento
Imagine: antes del lanzamiento de un cohete, los ingenieros realizan pruebas de encendido de sistemas. Si se omite una verificación, ¡la misión podría fallar!
Las pruebas de API son sus pruebas de control:
-
✅ Verificar la operatividad de los "nodos de acoplamiento"
-
🛡️ Detectar vulnerabilidades antes de su uso en combate
-
📊 Asegurarse de que los datos se transmitan sin distorsiones
💡 Analogía espacial: Postman es como una consola de pruebas del Centro de Control de Misiones (CCM) para simular todos los escenarios: "¿Qué pasa si se solicitan datos de un planeta inexistente? ¿Soportará el servidor 1000 solicitudes/seg?"
2. Postman: "Centro de Control de Vuelo" para API
Capacidades:
-
📡 Envío de cualquier solicitud HTTP (GET, POST, PUT, DELETE)
-
🔍 Análisis de respuestas (códigos de estado, encabezados, cuerpo JSON)
-
🧪 Escritura de pruebas automatizadas (JavaScript)
-
🌐 Trabajo con variables de entorno (pruebas vs producción)
3. Primer lanzamiento: Probando la API de planetas
Paso 1: Crear una solicitud
-
Abrir Postman → New → Request
-
Introducir URL:
https://api.spacexdata.com/v4/rockets
-
Seleccionar método: GET
Paso 2: Enviar la "señal"
Paso 3: Analizar la telemetría:
- Estado: 200 OK
- Cuerpo de la respuesta (JSON): lista de cohetes con parámetros
[
{
"name": "Falcon 1",
"type": "rocket",
"active": false,
"stages": 2,
"id": "5e9d0d95eda69955f709d1eb"
},
{
"name": "Falcon 9",
"type": "rocket",
"active": true,
"id": "5e9d0d95eda69973a809d1ec"
}
]
4. Esquema: Componentes de Postman
[Espacio de trabajo]
├── Pestaña "Params" (Parámetros de consulta)
├── Pestaña "Headers" (Encabezados)
├── Pestaña "Body" (Cuerpo de la solicitud para POST/PUT)
├── Pestaña "Tests" (Scripts para verificaciones)
└── Panel de respuesta (Estado, Tiempo, Tamaño, Cuerpo)
5. Creando un escenario complejo: Lanzamiento de una misión
Prueba: Añadir un nuevo planeta al catálogo
-
Método: POST
-
URL:
https://jsonplaceholder.typicode.com/posts
(ejemplo) -
En Encabezados:
- En Cuerpo (raw → JSON):
Verificación automática en Tests:
// Verificación de estado
pm.test("Post created successfully", () => {
pm.response.to.have.status(201);
});
// Verificación de estructura y datos de la respuesta
pm.test("Response contains the new post data", () => {
const response = pm.response.json();
pm.expect(response).to.have.property("id"); // Verificamos que el servidor asignó un ID
pm.expect(response.title).to.eql("New Exoplanet Found");
});
6. Variables de entorno: Tierra vs Marte
¿Cómo probar en diferentes servidores (de prueba/producción)?
- Crear entornos:
Local
→http://localhost:3000
-
Production
→https://api.nasa.gov
-
En las solicitudes, usar variables:
⚠️ ¡Importante! ¡Nunca pruebe
DELETE
en un servidor de producción!
7. Colecciones: Biblioteca de misiones espaciales
Agrupar solicitudes:
Ventajas:- 🚀 Ejecutar todas las pruebas con un solo botón
- 📤 Exportar/importar configuraciones
- 👨🚀 Trabajo colaborativo en equipo
8. Automatización: Verificaciones regulares de satélites
Configurar la monitorización de API a través de Postman:
-
Schedule → Cada 2 horas
-
Pruebas:
-
Notificaciones en Slack/email en caso de fallo
Cuestionario para consolidar
🚀 Resumen del capítulo: Postman es su "consola de control" universal para probar API. Con él, usted: - Verificará el funcionamiento de los "sistemas a bordo" antes del lanzamiento - Creará una biblioteca de escenarios de prueba - Automatizará la monitorización de servicios espaciales
📌 Ejercicio práctico:
- Instale Postman
- Cree una solicitud a la API de SpaceX:
GET https://api.spacexdata.com/v4/launches/latest
- Escriba una prueba que verifique que:
- El estado de la respuesta es
200
- El campo
name
contiene la palabra "Falcon"- El tiempo de respuesta es < 500 ms
¡Felicidades por completar el Capítulo 1!
Ha dominado los fundamentos del trabajo con API. ¡En los próximos capítulos construiremos nuestra propia "nave espacial" – una aplicación web que utiliza API espaciales!
🌌 Recursos adicionales: