Oui, vous pouvez tester MQTT avec Postman : créez une nouvelle requête, choisissez MQTT, saisissez l'URL du broker, connectez-vous, ajoutez des topics à suivre et publiez des messages depuis le composeur. C'est pratique pour sonder un broker si Postman est déjà votre outil d'API — mais c'est un client manuel, pas un exécuteur de tests MQTT automatisés. Ce guide présente le déroulé, les réglages qui posent problème et le moment où Postman n'est plus le bon outil.
Créer une requête MQTT
- Dans Postman, cliquez sur New (ou sur le + à côté des onglets) et choisissez MQTT.
- Dans le champ URL, saisissez l'adresse du broker avec schéma et port, par exemple
mqtt://broker.connectmq.com:1883. - Ouvrez les réglages de la requête et définissez un client ID si vous voulez un identifiant prévisible ; sinon Postman en génère un.
- Si votre broker exige une authentification, ajoutez le nom d'utilisateur et le mot de passe (utilisez des variables comme
{{mqtt_user}}et{{mqtt_pass}}issues d'un environment plutôt que de saisir des secrets dans la requête). - Cliquez sur Connect. Le panneau des messages affiche l'événement de connexion, ou une erreur si le broker a refusé.
La version du protocole (3.1, 3.1.1 ou 5) se choisit dans les réglages de la requête. En MQTT 5, vous disposez aussi de champs pour les propriétés de connexion et les user properties des messages publiés.
| Réglage | TCP en clair | TLS |
|---|---|---|
| Schéma d'URL | mqtt:// | mqtts:// |
| Port sur ConnectMQ | 1883 | 8883 |
| Certificats | — | Une CA publique fonctionne directement ; pour une CA privée, ajoutez un fichier CA dans les réglages de certificats de Postman |
Vous ne savez pas quel port utilise votre broker ? Les ports MQTT expliqués couvre 1883, 8883, 8083/8084 et les alternatives derrière des proxys.
S'abonner à des topics
Passez dans la zone Topics de la requête, ajoutez un filtre de topic et choisissez un QoS. Les wildcards fonctionnent comme d'habitude — testmqtt/postman/# reçoit tout ce qui se trouve sous ce préfixe, testmqtt/postman/+/status un niveau d'appareils. Les messages entrants apparaissent dans la liste avec le topic, l'heure et le payload ; les payloads JSON peuvent être dépliés.
Utilisez un préfixe unique pendant vos tests. Sur un endpoint partagé, s'abonner à # ou à un nom générique comme test/# affiche le trafic des autres et noie le vôtre. Si un filtre ne correspond pas à ce que vous attendez, collez-le dans le topic matcher avec le topic sur lequel vous publiez.
Publier des messages
Le composeur en bas de la requête publie sur un topic à la fois :
- Topic : par exemple
testmqtt/postman/device-1/telemetry - Payload : texte ou JSON comme
{"temp": 21.5, "unit": "C"} - QoS : 0, 1 ou 2
- Retain : activé si les nouveaux abonnés doivent recevoir immédiatement la dernière valeur
Les messages enregistrés sont pratiques pour des vérifications répétées — gardez un message « allumer », un « éteindre » et un « payload malformé » dans la même requête et envoyez-les à tour de rôle. Comme la requête elle-même est abonnée, vous voyez arriver vos propres messages, ce qui confirme l'aller-retour via le broker.
Un hybride utile : HTTP en entrée, MQTT en sortie
Postman excelle quand votre système mélange HTTP et MQTT. Ouvrez deux onglets :
- Une requête MQTT abonnée au topic sur lequel publie votre backend, par exemple
testmqtt/postman/orders/#. - Une requête HTTP qui appelle votre API —
POST /orders, un webhook, un endpoint de commandes pour appareils.
Envoyez la requête HTTP et observez l'onglet MQTT : vous voyez si le backend a publié, sur quel topic, avec quel payload et quel flag retain. C'est la vérification manuelle la plus rapide pour « l'API renvoie 200 mais l'appareil ne réagit jamais ».
Dépannage des connexions MQTT dans Postman
| Symptôme | Cause probable | Correctif |
|---|---|---|
| La connexion tourne puis expire | Port bloqué par un pare-feu ou un proxy, ou port TLS avec mqtt:// | Utilisez mqtts:// avec 8883 ; testez l'accessibilité avec des vérifications de port |
| Connection refused: not authorized | Mauvais nom d'utilisateur ou mot de passe, ou le broker exige des identifiants | Vérifiez que les variables de l'environment sont bien appliquées à la requête |
| Connecté puis aussitôt déconnecté | Un autre client utilise le même client ID | Laissez Postman générer l'ID ou ajoutez un suffixe aléatoire |
| Erreur TLS / certificat | Le broker utilise une CA privée ou un certificat auto-signé | Ajoutez la CA dans les réglages de certificats de Postman au lieu de simplement désactiver la vérification |
| Abonné, mais aucun message | Faute de frappe dans le topic, casse différente ou ACL qui refuse l'abonnement | Comparez filtre et topic dans le topic matcher |
Les reason codes renvoyés par le broker (par exemple 0x87 Not authorized en MQTT 5) se consultent dans l'outil des reason codes MQTT.
Les limites à connaître
La prise en charge de MQTT dans Postman est conçue pour explorer, pas pour automatiser des tests. Au moment de la rédaction :
- Pas de scripts de test. Les requêtes HTTP peuvent exécuter des assertions
pm.test; les requêtes MQTT ne peuvent pas vérifier les messages entrants. - Ni Collection Runner ni Newman. Vous pouvez enregistrer des requêtes MQTT dans des collections, mais pas les exécuter en CI avec Newman.
- Une connexion par onglet. Simuler dix appareils signifie dix onglets — ou un autre outil.
- Orienté bureau. Les protocoles non HTTP dans la version navigateur de Postman peuvent nécessiter le Postman Desktop Agent.
Postman évolue vite : consultez sa documentation pour votre version. Si vous avez besoin de l'un de ces points aujourd'hui, choisissez un outil qui le fait nativement.
Alternatives pour tester MQTT
| Outil | Idéal pour |
|---|---|
| Client MQTT en ligne | Aucune installation, connexion via WebSockets sécurisés depuis n'importe quel navigateur |
| MQTTX | Client de bureau avec plusieurs connexions, scripts et propriétés MQTT 5 |
| MQTT Explorer | Parcourir tout l'arbre des topics et les messages retenus |
| mosquitto_pub / mosquitto_sub | Scripts shell et vérifications en CI |
| Un script de test (Python, Node, Go…) | Assertions automatisées dans votre suite de tests |
Pour une vérification compatible CI que Postman ne sait pas faire, deux commandes mosquitto suffisent :
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 s'arrête après un message et -W 10 échoue au bout de dix secondes : le script ne reste jamais bloqué. D'autres patterns figurent dans les exemples mosquitto_pub et mosquitto_sub, et les meilleurs outils client MQTT compare en détail les options graphiques.
Comparer avec le client MQTT du navigateur
La requête MQTT de Postman est un bon outil manuel quand votre équipe vit déjà dans Postman, notamment pour vérifier que des actions HTTP produisent les bons messages MQTT. Pour tout ce qui doit être reproductible — tests de régression, charge, nombreux appareils simulés — transférez ces vérifications dans des scripts ou un client MQTT dédié, et gardez Postman pour l'exploration.
Questions fréquentes
Postman prend-il en charge MQTT ?
Oui. Les versions récentes de Postman proposent un type de requête MQTT à côté de HTTP, WebSocket et gRPC. Il se connecte à un broker, s'abonne à des topics, publie des messages avec QoS et retain, et prend en charge MQTT 3.1, 3.1.1 et 5.
Peut-on automatiser des tests MQTT avec Postman ou Newman ?
Pas comme les requêtes HTTP. Au moment de la rédaction, les requêtes MQTT n'exécutent pas de scripts de test et ne peuvent pas être lancées par le Collection Runner ni par Newman. Pour des tests MQTT automatisés, utilisez un script avec une bibliothèque MQTT ou mosquitto_pub et mosquitto_sub en CI.
Pourquoi Postman n'arrive-t-il pas à se connecter à mon broker MQTT ?
Vérifiez d'abord le schéma et le port : mqtt:// avec le port 1883 pour du TCP en clair, mqtts:// avec le port 8883 pour TLS. Un port TLS avec mqtt://, un pare-feu qui bloque le port, de mauvais identifiants ou un client ID dupliqué sont les causes habituelles. Testez les mêmes réglages avec le client MQTT en ligne pour isoler Postman.


