มีคำถามเกี่ยวกับการทดสอบ performance ของ MQTT messaging
ซึ่งส่วนใหญ่จะใช้ทำงานร่วมกับพวกอุปกรณ์ IoT ต่าง ๆ
ว่าต้องทำอย่างไรได้บ้าง ?
ก่อนอื่นต้องเข้าใจก่อนว่า MQTT protocol คืออะไร ?
MQTT ย่อมาจาก Message Queue Telemetry Transport
มันเกิดมาสำหรับโลกของ IoT
มีขนาดของ message ที่เล็ก ตัวมันเองก็เช่นกัน
แน่นอนว่า เป็น open protocol
ความสามารถหลัก ๆ ประกอบไปด้วย
- เป็น Application level protocol ซึ่งทำงานบน TCP/IP ด้วย port 1883 (default port) หรือ SSL ใช้ port 8883
- เป็น Asynchronous protocol
- มีรูปแบบการทำงานแบบ publisher/subscriber
- ขนาดของ message มีขนาดเล็ก ซึ่งประกอบไปด้วย 3 ส่วนคือ fixed header, ข้อมูล header และ body
- สามารถทำงานได้บน network ที่ไม่เสถียร
คำตอบคือ ทำได้หลายวิธี หนึ่งในนั้นคือ การทดสอบด้วย JMeter
แต่ต้องติดตั้ง plugin เพิ่มเติมชื่อว่า MQTT JMeter Plugin
โดยทำการ copy ไฟล์ mqtt-xmeter-1.0.1-jar-with-dependencies.jar
ไปไว้ที่ %JMETER_HOME%/lib/ext
จากนั้นทำการ start JMeter ขึ้นมา
MQTT จะอยู่ใน Sampler ของ JMeter
ประกอบไปด้วย
- MQTT connect สำหรับการเชื่อมต่อไปยัง MQTT server
- MQTT Pub/Sub Sampler สำหรับการ subscribe และ publish ไปยัง topic ใน MQTT server
แสดงดังรูป
การใช้งานนั้น ก็ตามที่เราต้องการเลยว่า จะทดสอบอะไร
ถ้าเป็นเรื่องของ connection ก็ใช้งาน MQTT Connect ได้เลย
โดยสามารถกำหนดค่า parameter ต่าง ๆ ได้
เพื่อดูผลการทำงานว่า มี idle client เท่าไร มี waiting เท่าไร
หรือจะทดสอบการ publish ข้อมูลไปยัง topic ก็ได้
จากนั้นดูผลการทำงานด้วยการเพิ่ม Listerner เช่น view Result Tree มาดูก็ได้ดังนี้
น่าจะเป็นอีกแนวทางหนึ่งในการทดสอบ
ขอให้สนุกกับการทดสอบ performance ครับ