三、添加activemq-all-5.2.0.jar包到Jmeter的lib库
将ACTIVE_HOME/activemq-all-5.2.0.jar文件复制到JMETER_HOME/lib目录中,jmeter在测试jms的时候会使用到activemq提供的jms的实现类,这些类并没有随jmeter一起分发,需要把这些类添加到jmeter的classpath中。
四、启动Jmeter测试JMS
添加线程组及JMS的sampler,有三种方式的JMS消息
1、Point-to-Point
填写参数如下:
QueueConnection Factory:connectionFactory
JNDI name Request queue:MyQueue
JNDI name Receive queue:MyQueue
Content:this is a test
Initial Context Factory:org.apache.activemq.jndi.ActiveMQInitialContextFactory
ProviderURL:tcp://yourIP:61616
2、Publisher
基本值同Point-to-Point,不同点在于Destination,填写JMS的topic目的地
若在ActiveMQ中Topics的名字为example.MyTopic
则jndi.properties文件中定义的topic如下:
topic.MyTopic = example.MyTopic
则Destination填写topic.后面的MyTopic
3、Subscriber
基本值同Publisher,不同在于可以根据需要填写Client ID,JMS Selector进行消息过滤
报错:Response message: javax.naming.NameNotFoundException:***
原因Destination中填写的错了,以为填写ActiveMQ中实际的Topic名
其实在jndi.properties文件中已经实例化了,topic.MyTopic = example.MyTopic,这里example.MyTopic是ActiveMQ中的Topic名
因此实际填写时是填写topic.后的MyTopic