17611538698
info@21cto.com

使用开源工具测试您的物联网平台

作者 万能的大雄 分类 物联网/边缘计算 10月31日

图片

导读:本文为大家介绍如何使用开源工具来测试物联网平台。

物联网 (IoT) 和边缘计算行业正在快速发展,节点的规模和业务逻辑的复杂性也随之而来。

物联网生态系统发展得越多,验证平台的可用性和可靠性就越加重要。如果您正在进行交付服务,通过测试 IoT 系统可以帮助自己发现性能瓶颈,帮助我们提前规划并具备可扩展性。

物联网是由使用不同协议的、有很多数量的传感设备组成,并与复杂的集成架构串联在一起。这需要一个设计有效且有意义的测试,也变得极具挑战性。

在本文中,我将演示如何使用EMQX测试 IoT 平台,以及介绍如何引入性能测试工具来验证和测试平台的相关质量指标。

EMQX

EMQX 是一个可扩展的消息传递 (MQTT) 代理,用于连接物联网设备。

可贵的是它还是开源的,但是由于它是一个代理型软件,所以必须有一个工作节点来管理全部的消息流量。我们可以购买它的业务源许可证(BSL)获得 10 个许可证,并可以使用官方 EMQX 云安装。

当然,我们也可以在自己的服务器上安装和运行 EMQX。

JMeter 简介

JMeter 是 Apache 基金会的开源项目。主要通过模拟并发负载来实现性能测试,是开源社区常用的性能测试工具。它主要有以下优点:

  • 内置支持多种协议,包括 TCP、HTTP、HTTPS 等。

  • 提供灵活的插件扩展机制,支持其他协议的第三方扩展。

  • 强大的用户社区支持。


安装 JMeter

JMeter 用 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的脚本编辑界面将呈现给您:

图片

第一个 JMeter 测试

下面介绍如何使用 JMeter 构建与运行一个简单的 HTTP 测试用例。

JMeter 使用单线程来模拟用户。线程组是指一个虚拟用户组,模拟对被测系统的访问。

要添加虚拟用户组(线程组),请右键单击测试计划>添加>线程(用户)>线程组

图片

线程属性中的线程数可用于配置虚拟用户组中的并发用户数。注意值越高,并发量越大。使用循环计数来配置每个虚拟用户执行多少测试。

图片

JMeter 包括几个示例测试。右键单击Thread Group > Add > Sampler > HTTP Request添加HTTP 请求(HTTP Request)进行测试。

图片

在示例测试脚本中,使用默认 HTTP 请求设置向网站发起 HTTP 请求。

图片

其中,结果侦听器不是性能测试所必需的,但它可以让我们查看测试结果。有助于在编写脚本的过程中进行调试。在这个示例脚本中,使用View Result Tree来帮助查看请求后的响应信息。

要添加结果侦听器,请右键单击线程组>添加>侦听器>查看结果树。

图片

这时候可以运行测试了。

保存测试脚本后,单击顶部工具栏中的开始按钮运行测试脚本。因为正在针对公共网站进行测试,所以请使用少量(低于 10)的线程和循环计数。如果您利用此功能向网站发送垃圾邮件,你将来可能会发现自己被人家屏蔽了!

图片

测试自己的物联网平台

现在,我们已经完成了一个简单的 HTTP 测试脚本。

您可以从这个案例中得出推论并尝试其他协议。在下一篇文章中,我将更详细地介绍 JMeter 的其他测试组件,您可以一起使用它们来构建复杂的测试场景。

现在,一起探索 JMeter 看看还可以测试什么。

作者:尹崇远

简介:EMQ Technologies XMeter 项目负责人,10 年以上测试工具经验。旨在为物联网协议和应用程序提供最好的负载测试服务。重度 Java 用户。

评论