Más Allá de lo Básico en Postman y sus alternativas

Probar APIs es una parte fundamental del desarrollo de software moderno. Ya sea que estés construyendo un backend, consumiendo servicios de terceros o depurando integraciones, una herramienta de prueba de APIs robusta es indispensable. Postman se ha convertido en el estándar de facto para muchos, pero ¿estamos utilizando todo su potencial? Y, ¿qué otras joyas hay en el mercado que podrían adaptarse mejor a tu flujo de trabajo? Descargate Postman en su página oficial. Recuerda visitar nuestro blog para saber de otras tecnologías y herramientas.

En este post, desvelaremos funciones poco conocidas de Postman que te harán un maestro en la prueba de APIs, y luego exploraremos alternativas poderosas que están ganando terreno.

Logo Postman en SofTim

Desbloqueando el Poder Oculto de Postman

Postman es un monstruo de funcionalidad, pero muchas de sus características más potentes suelen pasarse por alto en el uso diario. ¡Es hora de cambiar eso!

  • ¿Qué son?
    • Scripts de Pre-request: Se ejecutan antes de que se envíe la solicitud. Son ideales para:
      • Generar datos dinámicos (timestamps, UUIDs).
      • Cifrar datos sensibles.
      • Obtener tokens de autenticación (ej. OAuth 2.0) de forma programática.
      • Establecer variables de entorno o globales.
    • Scripts de Post-response (Tests): Se ejecutan después de recibir la respuesta de la API. Son fundamentales para:
      • Validar el código de estado HTTP.
      • Parsear y validar la estructura y el contenido del cuerpo de la respuesta (JSON, XML).
      • Extraer datos de la respuesta y almacenarlos en variables para solicitudes posteriores (encadenamiento de solicitudes).
      • Asegurar que los datos son del tipo correcto o cumplen con ciertas condiciones.
  • Beneficio: Automatización de flujos de prueba complejos, simulación de escenarios de usuario reales y validación rigurosa de APIs.
  • Ejemplos de uso:
Test Post-response para Validar Esquema y Datos: 
// Verifica que la respuesta HTTP sea 200 OK
pm.test("Status code is 200 OK", function () {
    pm.response.to.have.status(200);
});

// Parsear la respuesta JSON
const responseJson = pm.response.json();

// Verificar que exista la propiedad 'id' y sea un número
pm.test("Response has a numeric 'id'", function () {
    pm.expect(responseJson).to.have.property('id');
    pm.expect(typeof responseJson.id).to.eql('number');
});

// Verificar que la propiedad 'status' sea 'completed'
pm.test("Status is 'completed'", function () {
    pm.expect(responseJson.status).to.eql('completed');
});
Pre-request para Token JWT:
// Pide un nuevo token JWT a una API de autenticación y lo guarda
// en una variable de entorno para usar en solicitudes posteriores.
pm.sendRequest({
    url: 'https://api.ejemplo.com/auth/login',
    method: 'POST',
    header: 'Content-Type: application/json',
    body: {
        mode: 'raw',
        raw: JSON.stringify({ "username": "testuser", "password": "password123" })
    }
}, function (err, res) {
    if (err) { console.log(err); }
    else {
        const jsonResponse = res.json();
        pm.environment.set("jwt_token", jsonResponse.access_token);
    }
});
Postman en SofTim
  • ¿Qué son?
    • Colecciones: Agrupan solicitudes relacionadas, carpetas, variables y scripts.
    • Collection Runner: Permite ejecutar todas las solicitudes de una colección (o carpeta) en un orden definido, iterar sobre datos (desde archivos CSV/JSON), y ver un informe detallado de los resultados de los tests.
  • Ejemplo de uso:
    • Define un archivo data.csv:
    • username,password,expected_status user1,pass1,success user2,pass2,failed
    • Configura tu solicitud de login en Postman para usar {{username}} y {{password}}.
    • En tus tests, usa:
    • pm.test("Expected status is correct", function(){ pm.expect(responseJson.status).to.eql(pm.iterationData.get("expected_status")); });
    • Abre el Collection Runner, selecciona tu colección, carga el data.csv e itera.
  • Beneficio: Pruebas de regresión automatizadas, pruebas de carga básicas y simulación de diferentes escenarios de usuario con datos variados.
  • ¿Qué son? Permiten almacenar valores reutilizables (URLs base, tokens, IDs de prueba) que pueden cambiar entre entornos (desarrollo, staging, producción).
    • Globales: Disponibles en todo Postman.
    • Entorno: Asociadas a un entorno específico (puedes cambiar de entorno fácilmente).
    • Colección: Disponibles solo dentro de una colección específica.
  • Ejemplo de uso:
    • Crea un entorno «Desarrollo» con base_url = http://localhost:3000.
    • Crea un entorno «Producción» con base_url = https://api.miempresa.com.
    • Usa {{base_url}}/users en tus solicitudes.
  • Beneficio: Reutilización de solicitudes, facilidad de cambio de entorno, colaboración al compartir colecciones.
  • ¿Qué son? Servidores simulados que devuelven respuestas predefinidas cuando se les envía una solicitud.
  • Ejemplo de uso: Define una solicitud en Postman, añade una «respuesta de ejemplo» para ella. Luego, crea un Mock Server que «sirva» esa colección. Compartirá una URL que tu front-end puede usar para simular la API.
  • Beneficio: Permite que los equipos de front-end y back-end trabajen en paralelo, sin depender de la finalización del otro.
  • ¿Qué es? Ejecuta colecciones de Postman a intervalos regulares desde la nube para verificar la disponibilidad, el rendimiento y la corrección de tus APIs.
  • Beneficio: Alertas proactivas sobre problemas de API, monitoreo de rendimiento en tiempo real y aseguramiento de la salud del servicio.

[Imagen: Un diagrama o captura de pantalla que muestre el flujo de una solicitud en Postman con pre-request, envío, respuesta y tests.]

Insomnia en SofTim
  • Qué es: Un cliente de API de código abierto, multiplataforma, conocido por su interfaz limpia y centrada en el desarrollador. Pertenece a Kong.
  • Instalación:
    • Windows/macOS: Descarga el instalador desde su sitio web oficial.
    • Linux: Disponible como AppImage, Snap, o paquetes .deb/.rpm en su página de descargas.
  • Características Principales:
    • Interfaz de Usuario Intuitiva: Diseño muy limpio y fácil de usar, ideal para quienes buscan una experiencia sin distracciones.
    • Plugins: Extensible a través de un robusto sistema de plugins que permite añadir funcionalidades como generación de código, autenticación personalizada, etc.
    • Especificación OpenAPI/Swagger: Soporte de primera clase para importar y generar documentación a partir de especificaciones OpenAPI (Swagger).
    • Git Sync: Integración nativa con Git para versionar y colaborar en colecciones de API directamente desde la aplicación.
    • Diseño de API: Herramientas para diseñar APIs basadas en GraphQL, OpenAPI y otros formatos, además de probarlas.
    • Pruebas Automáticas: Similar a Postman, permite añadir pruebas a las solicitudes.
    • Entornos y Variables: Gestión sólida de variables de entorno y globales.
  • Cuándo usarlo: Si buscas una alternativa de código abierto con una interfaz limpia, excelente integración con Git/OpenAPI y un enfoque fuerte en el diseño de APIs además de las pruebas.
Hoppscotch en SofTim
  • Qué es: Un cliente de API web de código abierto, diseñado para ser ligero, rápido y centrado en la privacidad. No requiere instalación de software local si usas la versión web.
  • Instalación:
    • Web: Accede directamente desde tu navegador web.
    • Desktop App: Disponible como instalador para Windows, macOS, Linux (AppImage) si prefieres una aplicación local.
    • Extensión de Navegador: Existe una extensión para navegadores que puede interceptar y modificar solicitudes.
  • Características Principales:
    • Web-first / Ligero: Funciona directamente en el navegador, lo que lo hace accesible desde cualquier lugar sin instalaciones.
    • Código Abierto: Totalmente transparente y personalizable.
    • Soporte WebSocket y GraphQL: Excelente soporte para tipos de API modernos.
    • Realtime/SSE: Facilita las pruebas de eventos enviados por el servidor.
    • Temas y Personalización: Gran variedad de temas para adaptar la interfaz a tu gusto.
    • Generación de Código: Genera snippets de código para la solicitud en varios lenguajes.
    • Autenticación: Soporte para OAuth 2.0, Bearer Token, etc.
  • Cuándo usarlo: Si buscas una solución ultra-ligera, de código abierto, que funcione en el navegador y con un excelente soporte para APIs modernas como WebSockets y GraphQL.
Paw en SofTim
  • Qué es: Un cliente de API premium y exclusivo para macOS, conocido por su interfaz de usuario exquisita y su potente conjunto de características.
  • Instalación: Descarga desde su sitio web oficial (solo para macOS). Ofrece una prueba gratuita.
  • Características Principales:
    • Interfaz de Usuario Premium: Diseño pulido y muy pensado para la experiencia de usuario en macOS.
    • Generación de Código Avanzada: Posiblemente la mejor herramienta para generar snippets de código en una amplia variedad de lenguajes y librerías.
    • Extensiones (Plugins): Un sistema de extensiones robusto para añadir funcionalidades específicas.
    • Integración con Git: Permite versionar y colaborar en tus documentos de API.
    • Variables Dinámicas y Entornos: Gestión muy avanzada y flexible de variables.
    • Validación de Esquemas: Valida respuestas contra esquemas JSON/OpenAPI.
    • Cliente GraphQL Dedicado: Un cliente GraphQL muy completo.
  • Cuándo usarlo: Si eres un usuario de macOS y buscas una herramienta premium con una interfaz de usuario excepcional, funcionalidades avanzadas de generación de código y un flujo de trabajo muy pulido.
Thunder Client en SofTim
  • Qué es: Un cliente de API REST completamente integrado en Visual Studio Code.
  • Instalación: Se instala como cualquier otra extensión de VS Code desde el marketplace.
  • Características Principales:
    • Integración Nativa con VS Code: Trabaja directamente dentro de tu editor, sin cambiar de aplicación.
    • Ligero y Rápido: No añade mucha sobrecarga a VS Code.
    • Variables de Entorno y Colecciones: Soporte para organizar solicitudes y entornos.
    • Pruebas (Tests): Permite añadir scripts de prueba a las solicitudes.
    • Sincronización: Opcionalmente sincroniza tus colecciones con GitHub Gist.
    • Soporte GraphQL: Capacidad para probar endpoints GraphQL.
  • Cuándo usarlo: Si ya eres un usuario pesado de VS Code y prefieres no salir del editor para probar tus APIs, buscando una experiencia integrada y ligera.

Conclusión

Scroll al inicio