如何为 MQTT 客户端编写测试?
How do I write tests for an MQTT client?
我是 MQTT 和测试的新手,不确定这两者应该如何协同工作。
我正在使用 mqtt.js 并想编写一些基本测试。我应该如何构建它们?更具体地说,我需要模拟 MQTT 代理,还是可以建立实时连接?该连接应该连接到 HiveMQ 等测试服务,还是连接到我自己设置的代理?
我的设置:
我正在构建一个聊天应用程序。
3 docker 个容器。 1 个经纪人(使用 mosquitto,2 个客户。
客户在作为网页的一部分加载的脚本中使用 mqtt.js
,该网页用作在聊天中输入和阅读消息的前端。加载客户端脚本时,将使用默认消息主题与代理建立连接。
我已经能够成功连接并验证客户端可以发送和接收消息,但是编写应用程序以进行适当的测试让我的眼球交叉了。
使用 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')
})
通常您不想测试其他服务,他们负责自己的测试。您只想测试代码执行的工作单元。
所以是的,您可能想要模拟 broker/connection 响应对象来测试:
要验证的区域可以是...
- 是否正确处理连接失败
- 是否正确处理连接成功
- 它是否正确解析消息负载(json?)
- 它是否正确处理格式错误的负载。
等等.......
但是,您可以为代理编写 load/stress 测试。我使用 paho python 客户端来测试集群,并执行 load/stress 测试(使用 gatlin)。
我是 MQTT 和测试的新手,不确定这两者应该如何协同工作。
我正在使用 mqtt.js 并想编写一些基本测试。我应该如何构建它们?更具体地说,我需要模拟 MQTT 代理,还是可以建立实时连接?该连接应该连接到 HiveMQ 等测试服务,还是连接到我自己设置的代理?
我的设置:
我正在构建一个聊天应用程序。
3 docker 个容器。 1 个经纪人(使用 mosquitto,2 个客户。
客户在作为网页的一部分加载的脚本中使用 mqtt.js
,该网页用作在聊天中输入和阅读消息的前端。加载客户端脚本时,将使用默认消息主题与代理建立连接。
我已经能够成功连接并验证客户端可以发送和接收消息,但是编写应用程序以进行适当的测试让我的眼球交叉了。
使用 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')
})
通常您不想测试其他服务,他们负责自己的测试。您只想测试代码执行的工作单元。
所以是的,您可能想要模拟 broker/connection 响应对象来测试:
要验证的区域可以是...
- 是否正确处理连接失败
- 是否正确处理连接成功
- 它是否正确解析消息负载(json?)
- 它是否正确处理格式错误的负载。
等等.......
但是,您可以为代理编写 load/stress 测试。我使用 paho python 客户端来测试集群,并执行 load/stress 测试(使用 gatlin)。