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
- En Postman, pulsa New (o el + junto a tus pestañas) y elige MQTT.
- En el campo URL, escribe la dirección del broker con esquema y puerto, por ejemplo
mqtt://broker.connectmq.com:1883. - Abre los ajustes de la petición y define un client ID si quieres uno predecible; si no, Postman genera uno.
- 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). - 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.
| Ajuste | TCP plano | TLS |
|---|---|---|
| Esquema de URL | mqtt:// | mqtts:// |
| Puerto en ConnectMQ | 1883 | 8883 |
| 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:
- Una petición MQTT suscrita al topic en el que publica tu backend, p. ej.
testmqtt/postman/orders/#. - 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íntoma | Causa probable | Solución |
|---|---|---|
| La conexión gira y acaba en timeout | Puerto 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 authorized | Usuario o contraseña erróneos, o el broker exige credenciales | Comprueba que las variables del environment se aplican realmente a la petición |
| Conecta y se desconecta enseguida | Otro cliente usa el mismo client ID | Deja que Postman genere el ID o añade un sufijo aleatorio |
| Error de TLS / certificado | El broker usa una CA privada o un certificado autofirmado | Añade la CA en los ajustes de certificados de Postman; no te limites a desactivar la verificación |
| Suscrito, pero sin mensajes | Errata en el topic, mayúsculas/minúsculas o una ACL que deniega la suscripción | Compara 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
| Herramienta | Ideal para |
|---|---|
| Cliente MQTT online | Sin instalación, se conecta por WebSockets seguros desde cualquier navegador |
| MQTTX | Cliente de escritorio con varias conexiones, scripting y propiedades de MQTT 5 |
| MQTT Explorer | Recorrer todo el árbol de topics y los mensajes retenidos |
| mosquitto_pub / mosquitto_sub | Scripts 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:
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.


