首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >如何通过LoadRunner测试MQTT协议、实现加密流量测试

如何通过LoadRunner测试MQTT协议、实现加密流量测试

原创
作者头像
软件实验室建设交流
发布2026-03-25 15:42:22
发布2026-03-25 15:42:22
620
举报
文章被收录于专栏:软件测试技术软件测试技术

LoadRunner是性能测试领域最为常见的一款性能测试工具,拥有最广泛的协议支持,本文分享的是,如何通过LoadRunner对MQTT协议进行负载测试,评估系统在大规模设备连接和数据传输下的性能,以及如何实现对加密流量的测试。

MQTT(Message Queuing Telemetry Transport,消息队列遥测传输协议),是一种基于发布/订阅(publish/subscribe)模式的“轻量级”通讯协议,该协议构建于TCP/IP协议上。作为一种低开销、低带宽占用的即时通讯协议,MQTT协议在物联网、小型设备、移动应用等方面有较广泛的应用。​

性能测试工具LoadRunner 支持针对MQTT协议进行负载测试,可以帮助评估评估系统在大规模设备连接和数据传输下的性能。与此同时,LoadRunner 可以通过 SSL/TLS 协议对 MQTT 消息进行加密,模拟真实的物联网安全通信。测试人员可以评估加密过程对性能的影响,例如延迟、带宽占用等。

一、通过LoadRunner测试MQTT协议

1、虚拟用户脚本编写:

使用 LoadRunner 的 VUGen 工具编写MQTT 协议的虚拟用户脚本。每个虚拟用户代表一个设备,进行连接、订阅、发布消息等操作。通过 MQTT 的 publish/subscribe 模型,可以模拟设备之间的通信行为。

可以使用 MQTT 脚本向导为脚本生成属性,也可以使用定义的MQTT 函数手动对其进行脚本编写。

脚本的客户端变量在“额外文件”> globals.h 文件中进行声明,可以从解决方案资源管理器访问该文件。

具体操作步骤:

第一步:

选择“新建脚本和解决方案”>“MQTT 协议”创建新脚本。在编辑器中打开包含了所有可用MQTT 函数的即用脚本。“脚本向导”会在单独的对话框中自动打开。

通过 MQTT 脚本向导,可以定义设置,然后在 MQTT 脚本中将其作为代码生成。

新建 MQTT 脚本时,将自动显示脚本向导 (默认设置)。也可以通过单击 VuGen 工具栏上的“设计脚本”来打开它。(在编辑器中打开 MQTT 脚本时,可使用“设计脚本”按钮。)

注: 如果要创建多协议脚本,则可以将 MQTT 步骤集成到录制的 Web - HTTP/HTML 脚本中。

第二步:配置运行时设置。

在解决方案资源管理器中,双击“运行时设置”。在“<测试名称>:运行时设置”视图中,根据需要配置运行时设置。要查看各个运行时设置的描述,将光标悬停在运行时设置字段名称上即可。

2、发布/订阅模式模拟:

在脚本中,通过订阅特定的主题(Topic)和发布消息,模拟设备之间的消息交换。LoadRunner 可以用来测试不同设备在不同负载下的性能表现,帮助企业评估系统在高并发下的处理能力。

3、MQTT 监控指标

1)可用于 MQTT 统计信息的监控器

MQTT 消息速率

监控在负载测试场景运行期间的任意给定时间每秒发布 (“发布速率”) 或接收 (“接收速率”) 的消息数。

MQTT 吞吐量

监控在负载测试场景运行的任意给定时间 Vuser 从 MQTT 代理接收 (“收到吞吐量”)或向其发布 (“发布吞吐量”) 的数据量 (字节)。

MQTT 活动连接

监控在负载测试场景运行期间的任意给定时间的活动 MQTT 代理连接数 (“活动连接”)。

MQTT 动态消息

监控在负载测试场景运行的任意给定时间 MQTT 代理上的动态消息数 (“动态消息”)。动态消息是指可能正在传输的 QoS 1 或 2 消息,其中包括当前正在通过握手传输的消息和正在重试的消息。

MQTT $SYS 主题

监控在负载测试场景运行期间的 MQTT 代理计算机系统资源使用情况。此信息可以帮助找出服务器性能瓶颈。

2)MQTT 统计信息度量

度量

描述

发布速率

场景运行持续时间内每秒发布的消息数。

收到速率

场景运行持续时间内每秒收到的消息数。

活动连接

场景运行持续时间内到 MQTT 代理的活动连接数。

发布吞吐量

场景运行持续时间内发布消息的平均数据流量 (每秒字节数)。

收到吞吐量

场景运行持续时间内接收消息的平均数据流量 (每秒字节数)。

动态消息

场景运行持续时间内当前的动态消息数。

发布的平均持续时间

场景运行持续时间内发布消息的平均时间 (秒)。

连接的平均持续时间

场景运行持续时间内代理连接的平均持续时间 (秒)。

连接统计信息

成功代理连接数和失败代理连接数。

3)MQTT 代理的自定义系统度量

度量

描述

客户端/活动

当前连接的客户端数。(已弃用)

客户端/已过期

已过期和已通过 persistent_client_expiration 选项移除的断开连接的永久性客户端数。

客户端数/不活动

已在代理注册、但当前断开连接的永久性客户端 (已启用新会话) 的总数。(已弃用)

负载/字节数/...

不同时间间隔 (1/5/15 分钟) 内由代理接收/发送的字节数的移动平均值。返回的值表示根据 1/5/15 分钟平均得出的 1 分钟内接收/发送的字节数。

负载数/连接/...

不同时间间隔 (1/5/15 分钟) 内由代理接收的连接包数的移动平均值。返回的值表示根据 1/5/15 分钟平均得出的 1 分钟内接收的连接数。

负载数/消息数/...

不同时间间隔 (1/5/15 分钟) 内由代理接收/发送的所有类型的 MQTT 消息数的移动平均值。返回的值表示根据 1/5/15 分钟平均得出的 1 分钟内接收/发送的消息数。

负载数/发布/发送...

不同时间间隔 (1/5/15 分钟) 内由代理发送的发布消息数的移动平均值。返回的值表示根据 1/5/15 分钟平均得出的 1 分钟内发送的发布消息数。

负载/套接字数/...

不同时间间隔 (1/5/15 分钟) 内打开的到代理的套接字连接数的移动平均值。返回的值表示根据 1/5/15 分钟平均得出的 1 分钟内的套接字连接数。

消息数/存储

当前保留在消息存储中的消息数。其中包括为持久性客户端保留的消息和排队的消息。

发布/字节数/...

代理启动以来在发布消息中接收/发送的字节总数。

二、LoadRunner加密流量测试

在使用LoadRunner进行性能测试时,如果被测系统使用了加密流量要求通过 SSL/TLS 加密通道进行通信,LoadRunner通过支持SSL/TLS 协议对流量进行加密测试,可以帮助测试人员评估加密通信对系统性能的影响。

LoadRunner 支持在性能测试中配置 SSL/TLS 协议,以模拟加密流量。要启用 SSL/TLS 测试,测试人员需要进行以下配置:

1)启用SSL协议:在 VuGen 中,选择使用 HTTPS协议或其他支持 SSL/TLS 加密的协议(如 MQTT over TLS)。测试人员可以配置虚拟用户脚本,通过加密的通信通道进行数据交换。

2)设置SSL证书:测试人员需要配置有效的SSL 证书,确保模拟的通信能够通过加密通道进行。LoadRunner 支持自定义证书或使用现有证书进行加密流量测试。

1)设置 CA 和 TLS 证书

2)确定系统中哪台计算机是用于客户端服务器通信的服务器。

3)在用作服务器的计算机上激活客户端身份验证。

4)在 Controller 中配置身份验证设置。

5)在客户端计算机上激活服务器身份验证(可选)。

在进行加密流量测试时,LoadRunner 还可以结合其他安全性测试,确保系统的安全性和性能。加密流量的测试不仅仅是验证通信的安全性,还需要评估加密和解密操作对系统性能的影响。

在LoadRunner中,测试完成后,可以查看加密流量对响应时间、吞吐量、CPU 使用率等性能指标的影响。如果启用了 SSL/TLS 加密,可能会看到响应时间和带宽使用的增加,因为加密过程需要额外的计算资源。测试人员可以评估 SSL/TLS 加密所带来的性能开销,帮助优化加密设置和资源分配。

也可以模拟 SSL/TLS 协议的攻击(如中间人攻击、证书伪造等),确保系统能够抵御可能的安全威胁。通过 LoadRunner 的安全性和性能测试,企业可以在保持高安全性要求的同时,确保系统能够处理高并发和加密流量。如需产品7天试用,可私信我获取。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、通过LoadRunner测试MQTT协议
    • 1、虚拟用户脚本编写:
    • 2、发布/订阅模式模拟:
    • 3、MQTT 监控指标
  • 二、LoadRunner加密流量测试
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档