物联网 (IoT) 和 边缘计算 行业正在快速发展,随之而来的是端点的规模和业务逻辑的复杂性。IoT 生态系统增长越多,验证平台的可用性和可靠性就变得越重要。如果您正在提供服务,那么测试您的 IoT 系统可以帮助您找到性能瓶颈,并帮助您提前规划可扩展性。
IoT 可以包含使用各种协议的不同设备的任意数量,并通过复杂的集成架构连接在一起。这使得为其设计有效且有意义的测试具有挑战性。在本文中,我将演示如何使用 EMQX 作为示例来测试 IoT 平台,展示如何引入性能测试工具来验证和测试平台相关的质量指标。
EMQX
EMQX 是一个可扩展的消息(MQTT)代理,用于连接 IoT 设备。它是开源的,但由于它是一个代理,您必须有一个工作节点来管理所有的消息流量。您可以接受其商业源许可证(BSL),并获得 10 个许可证来使用官方的 EMQX 云安装。或者,您可以在您自己的服务器上安装和运行 EMQX。
JMeter 简介
JMeter 是 Apache 基金会的开源软件。它主要通过模拟并发负载来实现性能测试,这是开源社区中常见的性能测试方法。它主要有以下优点:
- 内置支持多种协议,包括 TCP、HTTP、HTTPS 等。
- 提供灵活的插件扩展机制,并支持第三方扩展其他协议。
- 强大的社区支持。
安装 JMeter
JMeter 是用 Java 编写的,所以如果尚未安装 Java,则必须安装 Java。对于 Linux、macOS 和 Windows,您可以使用 Adoptium.net。在 Linux 上,您可以选择使用 SDKMan。
安装 Java 后,下载 JMeter,解压缩它,然后进入存档目录的 bin
子目录。根据您的操作系统,运行 jmeter
(Linux 和 macOS)或 jmeter.bat
(Windows)。
$ wget https://dlcdn.apache.org//jmeter/binaries/apache-jmeter-X.Y.tgz
$ tar xvf apache-jmeter*tgz
$ cd apache-jmeter-X.Y/bin
$ ./jmeter
JMeter 的脚本编辑界面将呈现给您

(Chongyuan Yin, CC BY-SA 4.0)
您的第一个 JMeter 测试
以下是如何使用 JMeter 构建和运行一个简单的 HTTP 测试用例。
-
JMeter 使用单个线程来模拟用户。线程组是指虚拟用户组,并模拟对被测系统的访问。
要添加虚拟用户组(线程组),右键单击 测试计划 > 添加 > 线程(用户) > 线程组。
(Chongyuan Yin, CC BY-SA 4.0)
线程数 在 线程属性 中可用于配置虚拟用户组中的并发用户数。值越高,并发量越大。 使用 循环次数 来配置每个虚拟用户执行的测试次数。
(Chongyuan Yin, CC BY-SA 4.0)
-
JMeter 包含几个示例测试。通过右键单击 线程组 > 添加 > 取样器 > HTTP 请求 来添加 HTTP 请求 测试。
(Chongyuan Yin, CC BY-SA 4.0)
在示例测试脚本中,使用默认的 HTTP 请求设置来发起对网站的 HTTP 请求。
(Chongyuan Yin, CC BY-SA 4.0)
-
结果监听器对于性能测试来说不是绝对必要的,但它可以让您看到测试结果。这有助于在编写脚本的过程中进行调试。 在这个示例脚本中,使用 查看结果树 来帮助查看请求的响应信息。
要添加结果监听器,右键单击 线程组 > 添加 > 监听器 > 查看结果树。
(Chongyuan Yin, CC BY-SA 4.0)
-
是时候运行测试了。 保存您的测试脚本后,单击顶部工具栏中的 开始 按钮以运行该脚本。 因为您正在针对公共网站进行测试,请使用少量(少于 10 个)的线程和循环计数。 如果您对该站点进行垃圾信息发送,您可能会在将来被阻止!
(Chongyuan Yin, CC BY-SA 4.0)
测试您的 IoT 平台
您已经完成了一个简单的 HTTP 测试脚本。您可以从此案例中得出推论并尝试其他协议。在下一篇文章中,我将更详细地介绍 JMeter 的其他测试组件,您可以将它们一起用于构建复杂的测试场景。 现在,探索 JMeter 看看您可以测试什么。
评论已关闭。