Evet, Postman ile MQTT test edebilirsiniz: yeni bir istek oluşturun, MQTT'yi seçin, broker URL'sini girin, bağlanın, abone olunacak topic'leri ekleyin ve composer'dan mesaj publish edin. Postman zaten API aracınızsa bir broker'ı yoklamanın pratik bir yoludur — ama bu manuel bir client'tır, otomatik bir MQTT test çalıştırıcısı değildir. Bu rehber iş akışını, en çok kafa karıştıran ayarları ve Postman'in doğru araç olmaktan çıktığı noktayı anlatıyor.
MQTT isteği oluşturmak
- Postman'de New'a (veya sekmelerin yanındaki +'ya) tıklayın ve MQTT'yi seçin.
- URL alanına broker adresini şema ve portla birlikte girin, örneğin
mqtt://broker.connectmq.com:1883. - İstek ayarlarını açın ve öngörülebilir bir client ID istiyorsanız tanımlayın; aksi halde Postman bir tane üretir.
- Broker'ınız kimlik doğrulama istiyorsa kullanıcı adı ve parolayı ekleyin (isteğe secret yazmak yerine bir environment'tan
{{mqtt_user}}ve{{mqtt_pass}}gibi değişkenler kullanın). - Connect'e tıklayın. Mesaj paneli bağlantı olayını ya da broker reddettiyse bir hatayı gösterir.
Protokol sürümü (3.1, 3.1.1 veya 5) istek ayarlarından seçilir. MQTT 5 ile ayrıca bağlantı özellikleri ve publish edilen mesajlardaki user property'ler için alanlar gelir.
| Ayar | Düz TCP | TLS |
|---|---|---|
| URL şeması | mqtt:// | mqtts:// |
| ConnectMQ'da port | 1883 | 8883 |
| Sertifikalar | — | Genel bir CA doğrudan çalışır; özel CA'lar için Postman'in sertifika ayarlarına bir CA dosyası ekleyin |
Broker'ınızın hangi portu kullandığından emin değil misiniz? MQTT portları yazısı 1883, 8883, 8083/8084 ve proxy arkasındaki alternatifleri anlatıyor.
Topic'lere abone olmak
İsteğin Topics bölümüne geçin, bir topic filtresi ekleyin ve bir QoS seçin. Wildcard'lar her zamanki gibi çalışır — testmqtt/postman/# bu önek altındaki her şeyi, testmqtt/postman/+/status ise bir cihaz seviyesini alır. Gelen mesajlar topic, zaman ve payload ile listede görünür; JSON payload'lar genişletilebilir.
Test ederken benzersiz bir önek kullanın. Paylaşılan bir endpoint'te # veya test/# gibi genel bir isme abone olmak size başkalarının trafiğini gösterir ve kendi trafiğinizi görmeyi zorlaştırır. Bir filtre beklediğiniz gibi eşleşmiyorsa onu publish ettiğiniz topic ile birlikte topic matcher aracına yapıştırın.
Mesaj publish etmek
İsteğin altındaki composer her seferinde bir topic'e publish eder:
- Topic: örneğin
testmqtt/postman/device-1/telemetry - Payload: metin veya
{"temp": 21.5, "unit": "C"}gibi bir JSON - QoS: 0, 1 veya 2
- Retain: yeni aboneler son değeri hemen almalıysa açık
Kaydedilmiş mesajlar tekrarlanan kontroller için kullanışlıdır — aynı istekte bir "aç", bir "kapat" ve bir "bozuk payload" mesajı tutun ve sırayla gönderin. İstek kendisi de abone olduğu için kendi mesajlarınızın geldiğini görürsünüz; bu da broker üzerinden gidiş-dönüşü doğrular.
Kullanışlı bir hibrit: HTTP girer, MQTT çıkar
Postman, sisteminiz HTTP ve MQTT'yi bir arada kullandığında parlar. İki sekme açın:
- Backend'inizin publish ettiği topic'e abone olan bir MQTT isteği, örneğin
testmqtt/postman/orders/#. - API'nizi çağıran bir HTTP isteği —
POST /orders, bir webhook, bir cihaz komut endpoint'i.
HTTP isteğini gönderin ve MQTT sekmesini izleyin: backend'in publish edip etmediğini, hangi topic'e, hangi payload ve retain bayrağıyla yaptığını görürsünüz. "API 200 döndürüyor ama cihaz hiç tepki vermiyor" durumu için en hızlı manuel kontrol budur.
Postman MQTT bağlantı sorunlarını gidermek
| Belirti | Olası neden | Çözüm |
|---|---|---|
| Bağlantı döner, sonra timeout olur | Port bir firewall veya proxy tarafından engelleniyor ya da mqtt:// ile TLS portu kullanılıyor | 8883 ile mqtts:// kullanın; erişilebilirliği port kontrolleri ile test edin |
| Connection refused: not authorized | Yanlış kullanıcı adı/parola ya da broker kimlik bilgisi istiyor | Environment değişkenlerinin isteğe gerçekten uygulandığını kontrol edin |
| Bağlanıyor, hemen ardından kopuyor | Başka bir client aynı client ID'yi kullanıyor | ID'yi Postman'in üretmesine izin verin veya rastgele bir sonek ekleyin |
| TLS / sertifika hatası | Broker özel bir CA veya self-signed sertifika kullanıyor | Doğrulamayı kapatmak yerine CA'yı Postman'in sertifika ayarlarına ekleyin |
| Abone olundu ama mesaj yok | Topic'te yazım hatası, büyük/küçük harf farkı veya aboneliği reddeden bir ACL | Filtreyi ve topic'i topic matcher ile karşılaştırın |
Broker'dan gelen reason code'lara (örneğin MQTT 5'te 0x87 Not authorized) MQTT reason code aracından bakabilirsiniz.
Bilmeniz gereken sınırlamalar
Postman'in MQTT desteği test otomasyonu için değil, keşif için tasarlanmıştır. Bu yazı yazılırken:
- Test script'i yok. HTTP istekleri
pm.testdoğrulamaları çalıştırabilir; MQTT istekleri gelen mesajları doğrulayamaz. - Collection Runner veya Newman yok. MQTT isteklerini koleksiyonlara kaydedebilirsiniz ama Newman ile CI'da çalıştıramazsınız.
- Sekme başına bir bağlantı. On cihaz simüle etmek on sekme demektir — ya da başka bir araç.
- Masaüstü odaklı. Postman'in tarayıcı sürümünde HTTP dışı protokoller Postman Desktop Agent gerektirebilir.
Postman hızla gelişiyor; kendi sürümünüz için dokümantasyonu kontrol edin. Bunlardan birine bugün ihtiyacınız varsa bunu yerel olarak yapan bir araç seçin.
MQTT testi için alternatifler
| Araç | En uygun olduğu iş |
|---|---|
| Online MQTT client | Kurulum gerektirmez, herhangi bir tarayıcıdan güvenli WebSocket ile bağlanır |
| MQTTX | Çoklu bağlantı, script desteği ve MQTT 5 özellikleri olan masaüstü client |
| MQTT Explorer | Tüm topic ağacında ve retained mesajlarda gezinmek |
| mosquitto_pub / mosquitto_sub | Shell script'leri ve CI kontrolleri |
| Bir test script'i (Python, Node, Go…) | Test suite'inizde otomatik doğrulamalar |
Postman'in yapamadığı CI uyumlu bir kontrol için iki mosquitto komutu yeterlidir:
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 bir mesajdan sonra çıkar, -W 10 ise on saniye sonra başarısız olur; böylece script asla takılı kalmaz. Daha fazla kalıp mosquitto_pub ve mosquitto_sub örnekleri yazısında; en iyi MQTT client araçları ise arayüzlü seçenekleri ayrıntılı karşılaştırıyor.
Tarayıcıdaki MQTT client ile karşılaştırın
Ekibiniz zaten Postman'de çalışıyorsa Postman'in MQTT isteği iyi bir manuel araçtır; özellikle HTTP işlemlerinin doğru MQTT mesajlarını ürettiğini kontrol etmek için. Tekrarlanabilir olması gereken her şeyi — regresyon testleri, yük, çok sayıda simüle cihaz — script'lere veya özel bir MQTT client'ına taşıyın ve Postman'i keşif için saklayın.
Sıkça sorulan sorular
Postman MQTT'yi destekliyor mu?
Evet. Postman'in güncel sürümlerinde HTTP, WebSocket ve gRPC'nin yanında bir MQTT istek türü bulunur. Bir broker'a bağlanabilir, topic'lere abone olabilir, QoS ve retain ile mesaj publish edebilir; MQTT 3.1, 3.1.1 ve 5'i destekler.
MQTT testlerini Postman veya Newman ile otomatikleştirebilir miyim?
HTTP isteklerini otomatikleştirdiğiniz şekilde değil. Bu yazı yazılırken MQTT istekleri test script'i çalıştırmıyor ve Collection Runner ya da Newman ile çalıştırılamıyor. Otomatik MQTT testleri için bir MQTT kütüphanesi kullanan bir script veya CI'da mosquitto_pub ve mosquitto_sub kullanın.
Postman neden MQTT broker'ıma bağlanamıyor?
Önce şemayı ve portu kontrol edin: düz TCP için 1883 portuyla mqtt://, TLS için 8883 portuyla mqtts://. mqtt:// ile bir TLS portu, portu engelleyen bir firewall, yanlış kimlik bilgileri veya yinelenen bir client ID olağan nedenlerdir. Postman'i devre dışı bırakmak için aynı ayarları online MQTT client ile test edin.


