jmeter接口测试Linux,JMeter之JMS接口测试

JMeter是Apache开发的一款小巧易用的开源性能测试工具,由Java语言开发。JMeter不仅免费开源而且功能强大、易于扩展,如果有一定Java开发基础的话还可以在JMeter上做扩展开发新的插件等,几乎能满足各种性能测试需求。JMeter中使用Sampler元件(取样器)来模拟各种的类型的请求数据格式,类似于LR中的协议(比LR中的协议概念更广),如:http、ftp、soap、tcp等等。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.ActiveMQInitialContextFactory

2 java.naming.factory.initial =org.apache.activemq.jndi.ActiveMQInitialContextFactory

3 java.naming.provider.url = tcp://localhost:61616

4

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。如图所示建立测试计划:

f4548bdbabf895d023d25080e3f6cb32.png

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

运行调试时通过监视器元件查看是否发送成功,如下说明发送成功:

73e690330f9674aedca8bdeb322c8b6d.png

4、测试JMS的PUB/SUB模型

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

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

88d093ad12bf2f35a0a0d71431c539f6.png

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

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

1cfb302f4d0966d10968ac03cc7769e4.png

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

3377c5f3196651268bd5dc4d0f253946.png

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

800a0461a3afb337c431cbf757b9916d.png

上面已完成了JMeter对JMS的基本测试演示,实际测试时可能需要根据实际的场景选择合适的取样器,添加其他测试元件来建立和增强测试计划,根据真实测试的中间件拷贝依赖包以及配置jndi以完成JMS应用的性能测试。

0b1331709591d260c1c78e86d0c51c18.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值