2017-02-14 5 views
1

Я новичок в MQTT и тестирую, и я не уверен, как они должны работать вместе.Как написать тесты для клиента MQTT?

Я использую mqtt.js и хочу написать некоторые базовые тесты. Как мне их структурировать? В частности, мне нужно высмеивать брокера MQTT, или я могу сделать живое соединение? Должна ли быть такая связь с тестовой службой, такой как HiveMQ и т. Д., Или с брокером, который я настраиваю сам?

Моя установка:

Я строю приложение чата.

3 докерные контейнеры. 1 брокер (с использованием mosquitto, 2 клиентов.

Клиенты используют mqtt.js в рамках сценария, который загружает как часть веб-страницы, которая служит в качестве переднего плана для inputing и чтение сообщений в чате. Когда клиентский сценарий загружается, подключение производится к брокеру с темой сообщения по умолчанию.

Я был в состоянии успешно подключиться и убедитесь, что клиент может отправлять и получать сообщения, но писать приложение для надлежащего тестирования есть мои глазные яблоки скрещены.

Использование Mocha/Chai для тестирования

index.js => получает в комплекте с помощью WebPack в «bundle.js» и загружено HTML внутри тега сценария

// index .js 
// gets bundled by wepback and loaded within a script tag in browser 

const mqtt = require('mqtt') 
const client = mqtt.connect('mqtt://localhost:9001') 

client.on('connect', function() { 
    console.log(process.env.NAME + ' has connected') 
    client.publish('welcome', 'this is a message') 
}) 

ответ

1

Обычно вы не хотите, чтобы проверить другие услуги, они несут ответственность за их собственное тестирование. Вы хотите проверить только те единицы работы, которые выполняет ваш код.

Так что да, вы можете издеваться объектами брокера/ответа подключения к тесту:

Область, чтобы проверить, может быть ...

  1. обрабатывать ли сбой соединения правильно
  2. Правильно ли он справляется с успехом соединения?
  3. Правильно ли он обрабатывает полезную нагрузку сообщения (json?)
  4. Правильно ли он обрабатывает неправильно сформированную полезную нагрузку.

и т.д .....

Вы можете, однако, писать нагрузки/стресс-тесты для брокеров. Я использую paho python client для тестирования кластеризации и выполнения нагрузочных/стресс-тестов (с gatlin).