Tests de brokers

Comment tester MQTT avec Postman

Utilisez la requête MQTT de Postman pour vous connecter à un broker, vous abonner à des topics et publier, et découvrez ses limites et les outils alternatifs.

Mis à jour · 7 min de lecture

Comment tester MQTT avec Postman

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

  1. Dans Postman, cliquez sur New (ou sur le + à côté des onglets) et choisissez MQTT.
  2. Dans le champ URL, saisissez l'adresse du broker avec schéma et port, par exemple mqtt://broker.connectmq.com:1883.
  3. 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.
  4. 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).
  5. 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églageTCP en clairTLS
Schéma d'URLmqtt://mqtts://
Port sur ConnectMQ18838883
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 :

  1. Une requête MQTT abonnée au topic sur lequel publie votre backend, par exemple testmqtt/postman/orders/#.
  2. 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ômeCause probableCorrectif
La connexion tourne puis expirePort 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 authorizedMauvais nom d'utilisateur ou mot de passe, ou le broker exige des identifiantsVé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 IDLaissez Postman générer l'ID ou ajoutez un suffixe aléatoire
Erreur TLS / certificatLe 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 messageFaute de frappe dans le topic, casse différente ou ACL qui refuse l'abonnementComparez 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

OutilIdéal pour
Client MQTT en ligneAucune installation, connexion via WebSockets sécurisés depuis n'importe quel navigateur
MQTTXClient de bureau avec plusieurs connexions, scripts et propriétés MQTT 5
MQTT ExplorerParcourir tout l'arbre des topics et les messages retenus
mosquitto_pub / mosquitto_subScripts 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 :

Aller-retour automatisé avec les clients 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 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.