JMeter中的JMS Point-to Point、JMS Publisher和JMS Subscriber分别用于发送JMS的PTP消息和PUB/SUB消息,可以选择使用JMeter来测试JMS。

  MOM(消息中间件)作为消息数据交换的平台,也是影响应用执行效率的潜在环节。在Java程序中,是通过JMS与MOM进行交互的。作为Java实现的性能测试工具JMeter也能使用JMS对应用的消息交换和相关的数据处理能力进行测试。在整个测试过程中,JMeter测试的重点是消息的产生者和消费者的能力,而不是MOM本身。JMeter虽然能使用JMS对MOM进行测试,但是它本身并没有提供JMS需要使用的包(实现类)。因此在使用JMeter测试JMS时需要使用到具体的MOM的相关jar包。以下结合流行的开源消息中间件ActiveMQ来演示如何使用JMeter来实现对JMS的测试。

1、安装并启动ActiveMQ服务

2、测试前的准备

  使用JMeter进行压力测试时,所有的JMeter依赖的包需要复制到%JMETER_HOME%/lib目录下。对于ActiveMQ来说,就是复制%ACTIVEMQ_HOME%/lib目录下jar包。JMeter在测试时使用了JNDI,为了提供JNDI提供者的信息,需要提供jndi.properties。同时需要将jndi.properties放到JMeter的%JMETER_HOME%/lib和%JMETER_HOME%/bin目录中,还需要将jndi.properties与%JMETER_HOME%/bin目录下的ApacheJMeter.jar打包在一起。对于ActiveMQ,jndi.properties的演示内容如下:

 1 #java.naming.factory.initial = org.activemq.jndi.ActiveMQInitialContextFactory2 java.naming.factory.initial = org.apache.activemq.jndi.ActiveMQInitialContextFactory3 java.naming.provider.url = tcp://localhost:616164 5 #指定connectionFactory的jndi名字,多个名字之间可以逗号分隔。6 #以下为例:7 #对于topic,使用(TopicConnectionFactory)context.lookup("connectionFactry")8 #对于queue,(QueueConnectionFactory)context.lookup("connectionFactory")9 connectionFactoryNames = connectionFactory
10
11 #注册queue,格式:
12 #queue.[jndiName] = [physicalName]
13 #使用时:(Queue)context.lookup("jndiName"),此处是MyQueue
14 queue.MyQueue = example.MyQueue
15
16 #注册topic,格式:
17 # topic.[jndiName] = [physicalName]
18 #使用时:(Topic)context.lookup("jndiName"),此处是MyTopic
19 topic.MyTopic = example.MyTopic

3、测试JMS的PTP模型

对于点对点模型,JMeter只提供了一种Sampler:JMS Point-to-Point。如图所示建立测试计划:

  QueueConnection Factory:连接工厂,输入jndi配置文件中配置的connectionFactory
  JNDI name Request queue:请求队列名,输入jndi配置文件中配置的MyQueue
  JNDI name Receive queue:接收队列名,输入jndi配置文件中配置的MyQueue
  Content:消息内容,比如输入:this is a test
  Initial Context Factory:输入org.apache.activemq.jndi.ActiveMQInitialContextFactory
  Provider URL:提供者URL,即安装的ActiveMQ的服务地址tcp://yourIP:61616
  运行调试时通过监视器元件查看是否发送成功,如下说明发送成功:

4、测试JMS的PUB/SUB模型

  在实际测试时,发布者和订阅者并不是需要同时(异步)出现的。比如有时我们可能想测试单位时间内消息发布者的消息产生量,此时就不需要消息发布者,只需要订阅者就可以了。本例为了说明这两种Sampler的使用,建立两个JMeter实例分别用于发送和接收消息。

1)首先新建如下订阅者的测试计划:

  勾选使用jndi配置文件,并分别输入jndi中配置的连接工厂和目的地名称,如上图所示,点击运行下的启动,使用消息消费者处于接收状态。

2)然后新建如下发布者的测试计划:

  勾选使用jndi配置文件,并分别输入jndi中配置的连接工厂和目的地名称以及要发送的消息内容,此处为:this is a pubish test,如上图所示,点击运行下的启动,以发送消息,查看监视器元件检查消息是否发送成功,如下说明发送成功:

  检查消息消费者是否接收到消息,如下说明接收成功:

  

  

  上面即完成了JMeter对JMS的基本测试演示。

转载于:https://www.cnblogs.com/yezhaohui/p/5026434.html

JMeter之JMS接口测试相关推荐

  1. 使用Jmeter进行http接口测试

    使用Jmeter进行http接口测试 前言: 本文主要针对http接口进行测试,使用Jmeter工具实现. Jmter工具设计之初是用于做性能测试的,它在实现对各种接口的调用方面已经做的比较成熟,因此 ...

  2. jmeter可以做接口测试和压力测试(较全)

    jmeter是apache公司基于java开发的一款开源压力测试工具,体积小,功能全,使用方便,是一个比较轻量级的测试工具,使用起来非常简单.因为jmeter是java开发的,所以运行的时候必须先要安 ...

  3. 利用jmeter模拟手机接口测试

    利用jmeter模拟手机接口测试 (由于批量上传图片不方便,可以到博主网站查阅原版博客: https://blog.zhenglin.work/jmeter/use_jmeter_test_app.h ...

  4. Jmeter TCP socket接口测试(一)

    1.tcp取样器相关知识: 使用JMeter对套接字进行测试,有以下的选项可以做控制: TCPClient classname: 缺省的org.apache.jmeter.protocol.tcp.s ...

  5. Jmeter进行http接口测试,这一篇就搞定

    jmeter-http接口测试脚本 jmeter进行http接口测试的主要步骤 (1.添加线程组 2.添加http请求 3.在http请求中写入接口的URL,路径,请求方式,参数 4.添加查看结果树 ...

  6. Jmeter做单接口测试-超详细步骤讲解

    测试项目:本章节将以此测试项目为大家讲解怎么使用jmeter做一个接口测试 CSDN - 专业开发者社区CSDN是全球知名中文IT技术交流平台,创建于1999年,包含原创博客.精品问答.职业培训.技术 ...

  7. 1.3 使用jmeter进行http接口测试

    来源: http://www.cnblogs.com/alisapan/p/6150309.html 此篇纯是搬运记载..   一.测试需求描述 1. 本次测试的接口为http服务端接口 2. 接口的 ...

  8. jmeter测试java接口测试_简单易学的测试攻略:JMeter测试Java请求示例

    JMeter是Apache组织的开放源代码项目,它是功能和性能测试的工具,100%的用java实现,大家可以到官网下载源代码和查看相关文档. 关于使用JMeter进行JDBC数据库测试.HTTP请求接 ...

  9. 聊一聊Jmeter与多接口测试

    背景 前面两篇聊过了 JMeter 的 简单使用 和 参数化,主要都还是单接口的. 很多时候,一个业务要走完,它会依赖多个接口,而且这些接口会有依赖性. 好比说,我想查询一个订单信息,那么大前提肯定是 ...

最新文章

  1. 皮一皮:直男只想说一句,表白?是表特别白吗?
  2. 深入浅出Javascript闭包
  3. 用python语言编斐波那契数列_用python函数写斐波那契数列
  4. 2018第九届蓝桥杯省赛真题 C语言B组 第一题
  5. 大剑无锋之HashMap全考点
  6. 分布式自增ID算法---雪花算法(SnowFlake)Java实现
  7. 使用实例工厂方法实例化_一些工厂实例
  8. 前端学习(1172):模板字符串
  9. vim的几个常用操作
  10. python请输入星期几的第一个_python如何获取星期几
  11. 如何修改手游版本服务器,原神怎么只下一次客户端 b服官服渠道服手机自由切换方法...
  12. oracle Parallel模式-Parallel用法(/*+PARALLEL(n)*/)
  13. 【CSS3】Advanced1:Rounded Corners
  14. 7-3 计算平均成绩
  15. uni-app 自定义table-demo 左右列固定冻结
  16. vue按照字母表排序
  17. shader 雪 顶点位移_游戏雪天效果·积雪的厚度
  18. Horizon8基础环境准备02——ADDNSDHCP
  19. 谷歌seo新站如何快速排名?如何提高Google自然排名
  20. linux如何运行.bin文件

热门文章

  1. U盘拷贝文件很慢?稍微改变一下使用方式,传输速度就快了6倍
  2. 后端技术:mybatis插件原理详解
  3. 数据结构基础:线性表学习笔记
  4. 盘点阿里程序员常用的 15 款开发者工具
  5. 语言高精度算法阶乘_JavaScript中的算法(附10道面试常见算法题解决方法和思路)...
  6. 两条曲线所围成的面积_三个视频搞定:求曲边梯形面积的思想、微积分基本定理及其几何意义、微积分理论的可视化解读、...
  7. 一个串口接2个设备_重庆市有2个大观镇,一个乡村旅游发达,一个特产柚子
  8. 计算机c盘隐藏了怎么办,win7怎么隐藏c盘 win7c盘被隐藏了怎么解除
  9. c++ pat 乙级 ---1004 成绩排名
  10. Java网络编程2---Socket-TCP编程