在本节中,我们将学习如何编写一个简单的测试计划来测试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测试计划的更多相关文章

  1. Jmeter创建一个点对点的 JMS 测试计划

    创建一个点对点的 JMS 测试计划 确保所需的jar文件位于JMeter lib目录中. 如果没有,关闭JMeter,复制jar文件并重新启动JMeter. 参见详细教程 在本节中,将学习如何创建测试 ...

  2. Jmeter 同一个测试计划下的多个线程组 执行顺序 希望调整为顺序执行

    用Jmeter做自动化测试,一个测试计划中添加多个线程组, 每个线程组的功能测试,希望是一个线程组执行完毕后,接着执行下一个线程组下的请求 Jmeter默认多个线程组之间是并行关系 需要在测试计划下勾 ...

  3. jmeter—建立测试计划

    一个测试计划描述了一系列 Jmeter 运行时要执行的步骤.一个完整的测试计划包含 一个或者多个线程组,逻 辑控制,取样发生控制,监听器,定时器,断言和配置元件. 一. 建立测试计划 在这一部分,你将 ...

  4. Jmeter之测试计划

    一.打开jmeter时会有一个测试计划默认显示,界面如下: 二.测试计划各个配置项说明 1.名称:即整个测试计划的名称,已实际项目命名为好: 2.注释:即添加一些备注信息,以便后期回顾时查看: 3.用 ...

  5. Jmeter学习——测试计划元件【转】

    1. Test Plan (测试计划) 用来描述一个性能测试,包含与本次性能测试所有相关的功能.也就说本次性能测试的所有内容是于基于一个计划的. 下面看一下一个计划下面都有哪些主要的功能模块(右键单击 ...

  6. JMeter FTP测试计划

    为了演示测试目的,我们将使用公共可用的FTP位置,可以使用它来测试文件的下载. 您可以使用市场上现有的任何可用的演示FTP位置.我们使用URL下的FTP位置: https://dlptest.com/ ...

  7. JMeter Web测试计划

    在本节中,将学习如何创建测试网页的基本测试计划. 出于演示测试目的,我们将测试URL - https://www.yiibai.com/ 的网页性能. 创建JMeter测试计划 进入到JMeter安装 ...

  8. JMeter数据库测试计划

    在系统上安装数据库服务器之后. 按着这些次序: 创建名为testdb的数据库. 创建表 - tb_user. 将记录插入到tb_user表中. 下图显示了创建的数据库及其记录. 注意:您需要将相应的J ...

  9. JMeter Http测试计划

    一.新建Http测试计划 二.添加线程组 设定5个线程,循环2次 三.添加Http请求 以百度为例: 四.添加监听:察看结果树 五.执行测试 5个用户,循环2次,共发了10个请求.

随机推荐

  1. time 与 data time

    >>> import datetime>>> datetime.datetime.now()datetime.datetime(2018, 5, 30, 15, 3 ...

  2. Nginx 缓存代理

    访问ArcGIS官网的地图瓦片太慢.想到可用NIGIX代理. Nginx是Linux下http代理软件,Windows下也有. 以下为配置方法,注意红色部分. 1.需要在本地proxy_cache_p ...

  3. Light OJ 1272 Maximum Subset Sum 高斯消元 最大XOR值

    版权声明:本文为博主原创文章.未经博主同意不得转载. https://blog.csdn.net/u011686226/article/details/32337735 题目来源:problem=12 ...

  4. android 数据存储----android短信发送器之文件的读写(手机+SD卡)

    本文实践知识点有有三: 1.布局文件,android布局有相对布局,线性布局,绝对布局,表格布局,标签布局等.各个布局能够嵌套的.本文的布局文件就是线性布局的嵌套 <LinearLayout x ...

  5. FastReport模板设计和调用

    FastReport是功能齐全的报表控件,使开发者可以快速并高效地为·NET/VCL/COM/ActiveX应用程序添加报表支持.最近一个项目就涉及到了FastReport报表的应用.这里简单记录下( ...

  6. es6新增语法之`${}`

    这是es6中新增的字符串方法 可以配合反单引号完成拼接字符串的功能 1.反单引号怎么打出来?将输入法调整为英文输入法,单击键盘上数字键1左边的按键. 2.用法step1: 定义需要拼接进去的字符串变量 ...

  7. 神经网络入门——7or 感知器

    OR 感知器 OR 感知器与 AND 感知器很类似,在下图中,OR 感知器与 AND 感知器有相同的分割线,只是 OR 感知器分割线下移了一段距离.对权重或者偏置做怎样的设置可以实现这个效果?用下面的 ...

  8. js中的数据类型及常用属性和方法

    JavaScript 字符串 字符串(或文本字符串)是一串字符(比如 "Bill Gates").字符串被引号包围.您可使用单引号或双引号您可以在字符串内使用引号,只要这些引号与包 ...

  9. python深浅copy和赋值

    Python直接赋值,浅copy和深copy的比较 基于引用和对象(python引用和对象分离) 总结: 直接赋值:a = b -->a,b两个引用指向相同的对象 浅copy:a为b的copy ...

  10. 自动为DEV GridView控件添加SizeChanged事件

    实现gdv设置的抽象对象,不用每个gdv控件都添加sizechanged事件,只需执行gdc绑定sql函数,在其中会自动添加SizeChanged事件. //2016.5.13 by sngk //根 ...