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. 如何查看一个jar文件是用什么版本jdk编译的?
  2. Delphi的彩蛋 (好像Delphi5~Delphi7都可以)
  3. Linux教程:内核怎样管理你的内存
  4. deepin中zz_如何解决R中的FizzBu​​zz问题
  5. c语言位运算负数的实例_0基础学习C语言第三章:位运算
  6. Python_面向对象_zipfile和tarfile
  7. 资料汇总--java开发程序员必备技能
  8. [转]详细易懂的Linux makefile教程(7)
  9. Y Combinator 创业课 2018 @北京
  10. 计算机基础知识 笔试,计算机基础知识笔试题
  11. 基于浏览器的开源“管理+开发”工具,Pivotal MySQL*Web正式上线!
  12. PHP 常用算法集锦
  13. 计算机485通讯原理,用RS-485设计的多机通信接口电路
  14. office 2010 安装
  15. 永中office linux卸载,永中集成Office在Ubuntu下的安装和卸载方法
  16. 如何把map的value转为list_如何在Java中将Map转换为List?
  17. 青柠开车Spring Cloud(七) —— 断路器 Hystrix
  18. 石子合并问题(no circle)
  19. 区块链技术在旅游业中的应用探索
  20. 突发!又一MCU大厂暂停接单!

热门文章

  1. 巨型帧linux检测,linux – KVM来宾和主机之间的巨型帧?
  2. MIUI 13:带来全新小部件,新增三大隐私保护功能等
  3. 谷歌网络代理工具_谷歌更新了Dialogflow AI引擎,帮助客户创建更好的虚拟代理...
  4. exec族函数、system函数、popen函数、PATH
  5. java%4d_java积累
  6. enkey java_近期的Java项目(前端)
  7. Java 按位运算符(,|,^,,)
  8. python爬虫安装错误与解决方式
  9. 静态创意和动态创意_我在22岁时学到的关于创意指导的知识
  10. qt 设计师缩放_重新设计缩放体验