Broker testleri

Postman ile MQTT Nasıl Test Edilir

Postman'in MQTT isteğiyle bir broker'a bağlanın, topic'lere abone olun ve mesaj publish edin; sınırlamalarını ve ne zaman başka bir araç gerektiğini öğrenin.

Güncellendi · 7 dk okuma

Postman ile MQTT Nasıl Test Edilir

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

  1. Postman'de New'a (veya sekmelerin yanındaki +'ya) tıklayın ve MQTT'yi seçin.
  2. URL alanına broker adresini şema ve portla birlikte girin, örneğin mqtt://broker.connectmq.com:1883.
  3. İstek ayarlarını açın ve öngörülebilir bir client ID istiyorsanız tanımlayın; aksi halde Postman bir tane üretir.
  4. 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).
  5. 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.

AyarDüz TCPTLS
URL şemasımqtt://mqtts://
ConnectMQ'da port18838883
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:

  1. Backend'inizin publish ettiği topic'e abone olan bir MQTT isteği, örneğin testmqtt/postman/orders/#.
  2. 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

BelirtiOlası nedenÇözüm
Bağlantı döner, sonra timeout olurPort bir firewall veya proxy tarafından engelleniyor ya da mqtt:// ile TLS portu kullanılıyor8883 ile mqtts:// kullanın; erişilebilirliği port kontrolleri ile test edin
Connection refused: not authorizedYanlış kullanıcı adı/parola ya da broker kimlik bilgisi istiyorEnvironment değişkenlerinin isteğe gerçekten uygulandığını kontrol edin
Bağlanıyor, hemen ardından kopuyorBaşka bir client aynı client ID'yi kullanıyorID'yi Postman'in üretmesine izin verin veya rastgele bir sonek ekleyin
TLS / sertifika hatasıBroker özel bir CA veya self-signed sertifika kullanıyorDoğrulamayı kapatmak yerine CA'yı Postman'in sertifika ayarlarına ekleyin
Abone olundu ama mesaj yokTopic'te yazım hatası, büyük/küçük harf farkı veya aboneliği reddeden bir ACLFiltreyi 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.test doğ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 clientKurulum 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 ExplorerTüm topic ağacında ve retained mesajlarda gezinmek
mosquitto_pub / mosquitto_subShell 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:

mosquitto client'larıyla otomatik gidiş-dönüş
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.