JMeter JMS测试计划

Posted pingxin

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JMeter JMS测试计划相关的知识,希望对你有一定的参考价值。

在本节中,我们将学习如何编写一个简单的测试计划来测试Java Messaging Service(JMS)。

出于测试目的,我们使用Apache ActiveMQ。有各种JMS服务器,如:glassfish3,IBM WebSphere MQ(以前称为MQSeries),Tibco等。

在继续本节之前,请按照以下简单步骤在系统上安装Apache ActiveMQ。

  • 从以下链接下载最新版本的Apache ActiveMQ:
    http://activemq.apache.org/download.html
  • 将存档解压缩到一个方便的目录中。 在例子中,下载目录是“D:/apache-activemq-5.15.3”
  • 从命令控制台运行以下命令以启动ActiveMQ服务器:activemq start

可以通过访问地址的管理界面来验证ActiveMQ服务器是否已启动 - http:// localhost:8161/admin/

此地址会将您重定向到其身份验证页面,其中需要用户名和密码。 输入用户名和密码为:admin
技术分享图片

下图显示了ActiveMQ服务器的默认界面。
技术分享图片

现在,将activemq-all-5.15.3.jar文件从ActiveMQ解压缩目录复制到C:\JMeter\apache-jmeter-4.0\lib文件夹。

我们知道JMS支持两种类型的消息传递 -

  • 点对点消息传递
  • 主题消息或发布/订阅消息

因此,在接下来的章节,我们首先编写一个JMeter测试计划来测试JMS点对点消息传递解决方案。

 

创建JMeter测试计划

  • 进入到JMeter/bin文件夹,双击jmeter.bat文件以启动JMeter界面。
  • 单击“Test Plan”节点。
  • 将此测试计划节点重命名为JMSpoint_to_point
  • 选择JMSpoint_to_point节点,然后右键单击所选项。
  • 鼠标悬停在“add”选项上,然后将显示元素列表。
  • 选择“Threads (Users) > Thread Group”
  • 将此线程组元素重命名为JMS User
  • 将循环计数( loop count )更改为2。
  • 其余的默认属性保持不变。

技术分享图片

添加JMS点对点采样器

  • 选择JMS用户元素(线程组),然后右键单击所选项。
  • 鼠标悬停在“Add”选项上,然后将显示元素列表。
  • 选择Sampler> JMS Point-to-point

在JMS Point-to-point sampler元素中设置以下字段:

  • QueueuConnectionFactory - ConnectionFactory(活动MQ中连接工厂的缺省JNDI条目)
  • JNDI名称请求队列 - Q.REQ(JMeter的JNDI名称,用于建立连接工厂和队列之间的连接)
  • JNDI名称接收队列 - Q.REQ(同样的JNDI名称也用于响应)
  • 通信方式 - request_reply
  • 使用请求消息ID - 已选中
  • 使用响应消息ID - 已选中
  • 时间(毫秒) - 2000(如果没有及时恢复,则JMeter收到消息时会使用超时,然后该项被标记为错误)
  • 内容 - 点对点测试
  • InitialContextFactory - org.apache.activemq.jndi.ActiveMQInitialContextFactory(Active MQ的标准InitialContextFactory)
  • JNDI属性 - 名称:queue.Q.REQ,值:example.A
  • 提供者URL - tcp://localhost:61616(攻击ActiveMQ的地址和端口)
    技术分享图片

技术分享图片

添加监听器

  • 选择JMS user 元素。
  • 鼠标悬停在“Add”选项上,然后将显示元素列表。
  • 选择Listener -> View Results Tree选项。

技术分享图片

保存并执行测试计划

  • 单击File > Save Test Plan as
  • 将整个测试计划保存为JMS Point-to-Point.jmx
    技术分享图片
  • 单击Run > Start以执行测试计划。

验证输出

可以在侦听器中看到以下输出。
技术分享图片

技术分享图片

技术分享图片

可以在ActiveMQ管理控制台中看到队列中的消息状态选项。

技术分享图片

 

 

 

 

现在编写一个JMeter测试计划来测试JMS提供程序。 对于此测试,我们必须创建一个订阅者和一个发布者。

创建JMeter测试计划

  • 进入到JMeter/bin文件夹,双击jmeter.bat文件以启动JMeter界面。
  • 单击“Test Plan”节点。
  • 将此测试计划节点重命名为JMS_topic_test
  • 选择JMS_topic_test 节点,然后右键单击所选项。
  • 鼠标悬停在“Add”选项上,然后将显示元素列表。
  • 选择”Threads (Users) > Thread Group”
  • 将此Thread Group元素重命名为JMS pub-sub user
  • 将循环计数(loop count)更改为2
  • 其余的默认属性保持不变。

技术分享图片

添加JMS订阅服务器和发布服务器

  • 选择JMS pub-sub user元素(线程组),然后右键单击所选项。
  • 鼠标悬停在“Add”选项上,然后将显示元素列表。
  • 选择Sampler -> JMS Publisher

技术分享图片

在JMS Publisher sampler元素中设置以下字段:

  • 名称 - Sample Publisher
  • jndi.properties文件 - 未选中(JMeter使用“JNDI初始上下文工厂”和“提供者URL”字段来创建连接)
  • 初始上下文工厂 - org.apache.activemq.jndi.Active MQ初始上下文工厂
  • 提供者URL - tcp://localhost:61616
  • 连接工厂 - 连接工厂
  • 目的地 - 动态主题/我的静态主题1
  • 要聚合的样本数 - 2(要聚合的样本数)
  • 消息来源 - Textarea
  • 消息类型 - 文本(用于文本或对象消息的消息)
  • 剩余的属性保持不变。

技术分享图片

现在将添加一个订阅者。

  • 选择JMS pub-sub user元素(线程组),然后右键单击所选项。
  • 鼠标悬停在“Add”选项上,然后将显示元素列表。
  • 选择Sampler -> JMS Subscriber
    技术分享图片

在JMS Subscriber sampler元素中设置以下字段:

  • 名称 - Sample Subscriber
  • jndi.properties文件 - 未选中(JMeter使用“JNDI初始上下文工厂”和“提供者URL”字段来创建连接)
  • 初始上下文工厂 - org.apache.activemq.jndi.Active MQ初始上下文工厂
  • 提供者URL - tcp://localhost:61616
  • 连接工厂 - 连接工厂
  • 目的地 - 动态主题/我的静态主题1
  • 要聚合的样本数 - 2(要聚合的样本数)
  • 存储响应 - 打勾(采样器应读取响应。如果不是,则仅返回响应长度。)
  • 超时 - 2000
  • 剩余的属性保持不变。
    技术分享图片

添加监听器

  • 选择JMS pub-sub user元素。
  • 鼠标悬停在“Add”选项上,然后将显示元素列表。
  • 选择Listener> View Results Tree选项。
    技术分享图片

保存并执行测试计划

  • 单击File > Save Test Plan as
  • 将整个测试计划保存为JMS_topic_test.jmx 。
    技术分享图片
  • 单击Run > Start以执行测试计划。

验证输出

发布者输出:

技术分享图片

技术分享图片

订阅者输出:

技术分享图片

技术分享图片

可以在ActiveMQ管理控制台的主题选项中查看消息状态。

技术分享图片

 











以上是关于JMeter JMS测试计划的主要内容,如果未能解决你的问题,请参考以下文章

jmeter 建立一个JMS主题测试计划

jmeter 建立一个JMS点对点测试计划

JMeter4.0学习JMeter对JMS性能测试脚本开发

Jmeter 动态 JMS 队列名称值不会从 CSV 数据配置中更新

JMeter:逻辑控制器_模块控制器(Module Controller)

无法将特定步骤保存为测试片段