Pruebas de brokers

Cómo probar MQTT con Postman

Usa la petición MQTT de Postman para conectarte a un broker, suscribirte a topics y publicar mensajes; conoce sus límites y cuándo conviene otra herramienta.

Actualizado · 7 min de lectura

Cómo probar MQTT con Postman

Sí, puedes probar MQTT con Postman: crea una petición nueva, elige MQTT, introduce la URL del broker, conéctate, añade topics a los que suscribirte y publica mensajes desde el compositor. Es una forma cómoda de tantear un broker si Postman ya es tu herramienta de APIs, pero es un cliente manual, no un ejecutor de pruebas MQTT automatizadas. Esta guía recorre el flujo de trabajo, los ajustes que más confunden y el punto en el que Postman deja de ser la herramienta adecuada.

Crear una petición MQTT

  1. En Postman, pulsa New (o el + junto a tus pestañas) y elige MQTT.
  2. En el campo URL, escribe la dirección del broker con esquema y puerto, por ejemplo mqtt://broker.connectmq.com:1883.
  3. Abre los ajustes de la petición y define un client ID si quieres uno predecible; si no, Postman genera uno.
  4. Si tu broker exige autenticación, añade usuario y contraseña (usa variables como {{mqtt_user}} y {{mqtt_pass}} de un environment en lugar de escribir secretos en la petición).
  5. Pulsa Connect. El panel de mensajes muestra el evento de conexión, o un error si el broker la rechazó.

La versión del protocolo (3.1, 3.1.1 o 5) se elige en los ajustes de la petición. Con MQTT 5 tienes además campos para las propiedades de conexión y las user properties de los mensajes publicados.

AjusteTCP planoTLS
Esquema de URLmqtt://mqtts://
Puerto en ConnectMQ18838883
Certificados—Una CA pública funciona sin más; añade un fichero de CA en los ajustes de certificados de Postman para CAs privadas

¿No sabes qué puerto usa tu broker? Los puertos MQTT explicados cubre 1883, 8883, 8083/8084 y las alternativas detrás de proxies.

Suscribirse a topics

Ve a la zona Topics de la petición, añade un filtro de topic y elige un QoS. Los wildcards funcionan como siempre: testmqtt/postman/# recibe todo lo que hay bajo ese prefijo y testmqtt/postman/+/status un nivel de dispositivos. Los mensajes entrantes aparecen en la lista con topic, hora y payload; los payloads JSON se pueden desplegar.

Usa un prefijo único mientras pruebas. En un endpoint compartido, suscribirte a # o a un nombre genérico como test/# te muestra el tráfico de otras personas y dificulta ver el tuyo. Si un filtro no coincide con lo esperado, pégalo en el topic matcher junto con el topic en el que publicas.

Publicar mensajes

El compositor de la parte inferior publica en un topic cada vez:

  • Topic: por ejemplo testmqtt/postman/device-1/telemetry
  • Payload: texto o JSON como {"temp": 21.5, "unit": "C"}
  • QoS: 0, 1 o 2
  • Retain: activado si los nuevos suscriptores deben recibir el último valor de inmediato

Los mensajes guardados son útiles para comprobaciones repetidas: ten un mensaje "encender", otro "apagar" y otro con "payload mal formado" en la misma petición y envíalos por turnos. Como la propia petición está suscrita, ves llegar tus propios mensajes, lo que confirma la ida y vuelta a través del broker.

Un híbrido útil: entra HTTP, sale MQTT

Postman brilla cuando tu sistema mezcla HTTP y MQTT. Abre dos pestañas:

  1. Una petición MQTT suscrita al topic en el que publica tu backend, p. ej. testmqtt/postman/orders/#.
  2. Una petición HTTP que llama a tu API: POST /orders, un webhook, un endpoint de comandos para dispositivos.

Envía la petición HTTP y observa la pestaña MQTT: verás si el backend publicó, en qué topic, con qué payload y con qué flag de retain. Es la comprobación manual más rápida para "la API devuelve 200 pero el dispositivo nunca reacciona".

Solucionar problemas de conexión MQTT en Postman

SíntomaCausa probableSolución
La conexión gira y acaba en timeoutPuerto bloqueado por un firewall o proxy, o puerto TLS con mqtt://Usa mqtts:// con 8883; comprueba la accesibilidad con pruebas de puerto
Connection refused: not authorizedUsuario o contraseña erróneos, o el broker exige credencialesComprueba que las variables del environment se aplican realmente a la petición
Conecta y se desconecta enseguidaOtro cliente usa el mismo client IDDeja que Postman genere el ID o añade un sufijo aleatorio
Error de TLS / certificadoEl broker usa una CA privada o un certificado autofirmadoAñade la CA en los ajustes de certificados de Postman; no te limites a desactivar la verificación
Suscrito, pero sin mensajesErrata en el topic, mayúsculas/minúsculas o una ACL que deniega la suscripciónCompara filtro y topic en el topic matcher

Los reason codes del broker (por ejemplo 0x87 Not authorized en MQTT 5) se pueden consultar en la herramienta de reason codes MQTT.

Límites que conviene conocer

El soporte MQTT de Postman está pensado para explorar, no para automatizar pruebas. Al momento de escribir esto:

  • Sin scripts de test. Las peticiones HTTP pueden ejecutar aserciones pm.test; las peticiones MQTT no pueden verificar los mensajes entrantes.
  • Sin Collection Runner ni Newman. Puedes guardar peticiones MQTT en colecciones, pero no ejecutarlas en CI con Newman.
  • Una conexión por pestaña. Simular diez dispositivos significa diez pestañas, u otra herramienta.
  • Orientado a escritorio. Los protocolos no HTTP en la versión de navegador de Postman pueden requerir el Postman Desktop Agent.

Postman evoluciona rápido, así que consulta su documentación para tu versión. Si hoy necesitas algo de lo anterior, elige una herramienta que lo haga de forma nativa.

Alternativas para probar MQTT

HerramientaIdeal para
Cliente MQTT onlineSin instalación, se conecta por WebSockets seguros desde cualquier navegador
MQTTXCliente de escritorio con varias conexiones, scripting y propiedades de MQTT 5
MQTT ExplorerRecorrer todo el árbol de topics y los mensajes retenidos
mosquitto_pub / mosquitto_subScripts de shell y comprobaciones en CI
Un script de test (Python, Node, Go…)Aserciones automatizadas en tu suite de pruebas

Para una comprobación apta para CI que Postman no puede hacer, bastan dos comandos de mosquitto:

Ida y vuelta automatizada con los clientes de mosquitto
TOPIC="testmqtt/postman/ci-$RANDOM"
mosquitto_sub -h broker.connectmq.com -p 1883 -t "$TOPIC" -C 1 -W 10 > out.txt &
sleep 1
mosquitto_pub -h broker.connectmq.com -p 1883 -t "$TOPIC" -m '{"ok":true}' -q 1
wait
grep -q '"ok":true' out.txt && echo "PASS" || { echo "FAIL"; exit 1; }

-C 1 termina tras un mensaje y -W 10 falla a los diez segundos, así que el script nunca se queda colgado. Encontrarás más patrones en ejemplos de mosquitto_pub y mosquitto_sub, y las mejores herramientas cliente MQTT compara a fondo las opciones con interfaz gráfica.

Compara con el cliente MQTT del navegador

La petición MQTT de Postman es una buena herramienta manual cuando tu equipo ya vive en Postman, sobre todo para comprobar que las acciones HTTP producen los mensajes MQTT correctos. Para todo lo repetible —pruebas de regresión, carga, muchos dispositivos simulados— lleva esas mismas comprobaciones a scripts o a un cliente MQTT dedicado, y deja Postman para explorar.

Preguntas frecuentes

¿Postman soporta MQTT?

Sí. Las versiones recientes de Postman tienen un tipo de petición MQTT junto a HTTP, WebSocket y gRPC. Puede conectarse a un broker, suscribirse a topics, publicar mensajes con QoS y retain, y soporta MQTT 3.1, 3.1.1 y 5.

¿Puedo automatizar pruebas MQTT con Postman o Newman?

No como automatizas las peticiones HTTP. Al momento de escribir esto, las peticiones MQTT no ejecutan scripts de test y no pueden lanzarse con el Collection Runner ni con Newman. Para pruebas MQTT automatizadas, usa un script con una librería MQTT o mosquitto_pub y mosquitto_sub en CI.

¿Por qué Postman no se conecta a mi broker MQTT?

Revisa primero el esquema y el puerto: mqtt:// con el puerto 1883 para TCP plano, mqtts:// con el 8883 para TLS. Un puerto TLS con mqtt://, un firewall que bloquea el puerto, credenciales erróneas o un client ID duplicado son las causas habituales. Prueba la misma configuración con el cliente MQTT online para descartar Postman.