You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用JMeter对Azure Service Bus JMS监听进行性能测试?

解决JMeter测试Azure Service Bus JMS消费者的配置问题

一、处理ClassNotFoundException错误

你遇到的ClassNotFoundException: org.apache.qpid.jms.jndi.JmsInitialContextFactory,核心原因是JMeter的lib目录缺少Qpid JMS客户端依赖包。你的Spring项目通过spring-cloud-azure-starter-servicebus-jms间接引入了该依赖,但JMeter不会自动加载项目依赖,需手动补充:

  1. 从本地Maven仓库找到qpid-jms-client对应的jar包(与spring-cloud-azure-starter-servicebus-jms 5.6.0兼容的版本为2.10.x系列),或直接下载对应版本的qpid-jms-client.jar
  2. 将jar包复制到JMeter安装目录的/lib文件夹中
  3. 重启JMeter,该错误即可解决

二、JMeter JMS点对点采样器(队列场景)配置

因为你使用的是Azure Service Bus队列(点对点模式),选择JMS点对点采样器,按以下参数配置:

1. 初始上下文设置

  • 初始上下文工厂:org.apache.qpid.jms.jndi.JmsInitialContextFactory(注意类名是JmsInitialContextFactory,不要遗漏前缀)
  • 上下文参数(点击"添加"按钮添加键值对):
    • 键:connectionfactory.SBCF,值:Azure Service Bus的AMQP格式连接字符串,示例:
      amqps://<你的命名空间>.servicebus.windows.net?jms.username=<共享访问策略名称>&jms.password=<共享访问策略密钥>
      
      (可从Azure门户获取Service Bus连接字符串,提取命名空间、策略名、密钥替换占位符)
    • 键:queue.MY_QUEUE,值:你的目标队列名称(如log-collection-queue)

2. 采样器核心配置

  • 连接工厂:SBCF(需与上下文参数中connectionfactory.后的后缀一致)
  • 目标:MY_QUEUE(需与上下文参数中queue.后的后缀一致)
  • 超时:根据业务场景设置,比如30000毫秒(30秒)
  • 消息选择器:如需过滤特定消息,填写JMS选择器表达式,否则留空

三、性能测试流程

  1. 添加线程组,设置并发用户数、循环次数等测试参数
  2. 在线程组下添加JMS点对点采样器,按上述配置填写参数
  3. 添加监听器(如查看结果树、聚合报告),用于查看请求响应和性能指标

注意事项

  • 确保JMeter使用的Java版本与Spring应用一致,避免版本兼容性问题
  • Azure Service Bus的共享访问策略需具备**监听(Listen)**权限,否则无法拉取队列消息
  • 若测试Service Bus主题(发布订阅模式),选择JMS订阅者采样器,配置逻辑类似,需额外指定主题名称和订阅名称

内容的提问来源于stack exchange,提问作者Cdac15655482

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.06 03:11:15