MQTT performance test

Привіт друзі! Знов пропав на деякий час. Цього разу проти своєї волі протестував на собі корону 🦠 – такий собі досвід, не рекомендую, носіть маски 🦹‍♀️, будьте здорові!

Нещодавно прийшов до мене запит провести тестування навантаження одного сервісу. Розпитав трохи деталі і виявилось, що сервіс використовує протокол mqtt. Оскільки особисто я перший раз про такий почув, пішов одразу читати, що воно таке і як його можна тестувати.

На щастя, варіанти є! Знайшов плагін для JMeter і клієнт на python, на той випадок, якщо з JMeter щось не запрацює і доведеться реалізовувати підтримку mqtt в locust.

Для зручної роботи з сервером (щоб перевіряти, що повідомлення приходять), я рекомендую скачати MQTT-Explorer. Для тестування там навіть кілька тестових серверів є.

Щодо процесу тестування – все досить просто і описано в документації до плагіну – додаєте семплери для коннекту, відправлення/отримання повідомлення та дисконекту, вказуєте налаштування і вперед! Я лишень хвилювався за версію протоколу – пишуть, що плагін працює з mqtt 3.1.1, а сервер підтримував 5, але помилок з цим я не отримав (на щастя)

Оскільки це не http, то як повідомлення відправлено – семплер вважає успішною операцією.

Лише 1 момент мене збентежив і я ще хочу з ним розібратись. Пишуть, що mqtt сервер Mosquitto може тримати 1000 одночасно відкритих з’єднань. Але скільки б користувачів я не створював в Jmeter, при навантаженні більше 300 повідомлень/сек нові з’єднання не створюються. Щоб перевірити, це баг серверу чи клієнту, хочу зробити розподілений (distributed) тест, та ще руки не дійшли.

А ви колись мали справу з mqtt?

Позначки:,
25 Березня 2021
Автор: 
Oleksii Ostapov

Залишити коментар

Залишити вiдгук