
Привіт друзі! Знов пропав на деякий час. Цього разу проти своєї волі протестував на собі корону 🦠 – такий собі досвід, не рекомендую, носіть маски 🦹♀️, будьте здорові!
Нещодавно прийшов до мене запит провести тестування навантаження одного сервісу. Розпитав трохи деталі і виявилось, що сервіс використовує протокол mqtt. Оскільки особисто я перший раз про такий почув, пішов одразу читати, що воно таке і як його можна тестувати.
На щастя, варіанти є! Знайшов плагін для JMeter і клієнт на python, на той випадок, якщо з JMeter щось не запрацює і доведеться реалізовувати підтримку mqtt в locust.
Для зручної роботи з сервером (щоб перевіряти, що повідомлення приходять), я рекомендую скачати MQTT-Explorer. Для тестування там навіть кілька тестових серверів є.
Щодо процесу тестування – все досить просто і описано в документації до плагіну – додаєте семплери для коннекту, відправлення/отримання повідомлення та дисконекту, вказуєте налаштування і вперед! Я лишень хвилювався за версію протоколу – пишуть, що плагін працює з mqtt 3.1.1, а сервер підтримував 5, але помилок з цим я не отримав (на щастя)
Оскільки це не http, то як повідомлення відправлено – семплер вважає успішною операцією.
Лише 1 момент мене збентежив і я ще хочу з ним розібратись. Пишуть, що mqtt сервер Mosquitto може тримати 1000 одночасно відкритих з’єднань. Але скільки б користувачів я не створював в Jmeter, при навантаженні більше 300 повідомлень/сек нові з’єднання не створюються. Щоб перевірити, це баг серверу чи клієнту, хочу зробити розподілений (distributed) тест, та ще руки не дійшли.
А ви колись мали справу з mqtt?