馬渡江頭苜蓿香赴肚,片云片雨渡瀟湘
--《明朝那些事兒》
轉(zhuǎn)自:https://www.cnblogs.com/DeryKong/p/14847577.html
一锈颗、下載安裝ActiveMQ
ActiveMQ下載:https://activemq.apache.org/
解壓:tar -zxvf apache-activemq-5.16.2-bin.tar.gz
切換到activemq的bin目錄:cd apache-activemq-5.16.2/bin
啟動MQ:./activemq start
檢查MQ是否正常啟動:ps -ef|grep activemq|grep -v grep
[圖片上傳失敗...(image-a6af85-1649989530880)]
瀏覽器打開:http://localhost:8161 admin/admin 登錄查看
[圖片上傳失敗...(image-bb348f-1649989530880)]
JMS腳本開發(fā)
jms(java message service):java消息服務(wù)器應(yīng)用程序接口已亥,是一個Java平臺面向消息中間件的api,用于在兩個應(yīng)用程序之間疲牵,或分布式系統(tǒng)中發(fā)送信息承二,進行異步通信
Connection Factory:創(chuàng)建一個連接,向消息服務(wù)器發(fā)送消息以及從消息服務(wù)器接收信息均是通過此連接進行
Connection:是客戶端與消息服務(wù)器的活動連接
Session:是用于生產(chǎn)和使用消息的單線程上下文
MessageProduce:指定的物理目標發(fā)送消息
MessageConsumer:客戶端是使用Message Consumer對象從指定的目錄目標接收信息
二纲爸、jmeter開發(fā)jms腳本的步驟
1亥鸠、創(chuàng)建 jndi.properties文件
java.naming.factory.initial=org.apache.activemq.jndi.ActiveMQInitialContextFactory
java.naming.provider.url=tcp://localhost:61616
指定 connectionFactory 的 jndi名字,多個名字之間可以逗號隔開
connectionFactoryNames=connectionFactory
注冊queue识啦,格式:
queue.[jndiName]=[physicalName]
使用時:(Queue)context.lookup("jndiName")负蚊,此處是MyQueuePerPertest自定義命名
queue.MyQueuePerPertest=MyQueuePerPertest
注冊 topic,格式:
topic.[jndiName]=[physicalName]
使用時:(Topic)context.lookup("jndiName")颓哮,此處是MyTopicPerPertest自定義命名
queue.MyTopicPerPertest=MyTopicPerPertest
2盖桥、把這個文件夾加入到ApacheJMeter.jar這里
保存并把這個文件復(fù)制到 JMETER_HOME/bin (JMETER_HOME為 jmeter 的安裝目錄)目錄中。
由于 bin 目錄并不在 jmeter 的 classpath 中题翻,所以需要執(zhí)行一些額外的工作來把 jndi.properties 添加到 jmeter 的classpath 中。
這兒使用一種最簡單的辦法:把 jndi.properties 打包到 jmeter 的啟動 jar 包中腰鬼。 jmeter 的啟動 jar 包為 JMETER_HOME/bin/ApacheJMeter.jar嵌赠,所以需要把 jndi.properties 添加到這個 jar 文件中。執(zhí)行如下操作熄赡,打開命令行窗口姜挺,并定位到 JMETER_HOME/bin 目錄,運行如下命令 jar uf ApacheJMeter.jar jndi.properties 就可以彼硫,
命令行:jar uf ApacheJMeter.jar jndi.properties
3炊豪、拷貝Active所需用到的包文件到j(luò)Meter的lib下面
jmeter 在測試 jms 的時候會使用到 activemq 提供的 jms 的實現(xiàn)類,這些類并沒有隨 jmeter 一起分發(fā)拧篮,所以需要把這些類添加到 jmeter 的 classpath 中词渤。只要把 ACTIVE_HOME/activemq-all-5.2.0.jar 文件復(fù)制到 JMETER_HOME/lib 目錄中即可。
重啟JMeter串绩,添加取樣器列表可以看到有JMS的選擇
[圖片上傳失敗...(image-a56c32-1649989530880)]
[圖片上傳失敗...(image-dd036a-1649989530880)]
[圖片上傳失敗...(image-51a726-1649989530880)]
[圖片上傳失敗...(image-b7e5e4-1649989530880)]
這里缺虐,發(fā)送MQ的腳本就完成了
三種方式:
1、jms to jms
測試JMS的PUB/SUB模式
步驟:
jms的訂閱(消費)
[圖片上傳失敗...(image-c5f720-1649989530880)]
在這里添加響應(yīng)的信息礁凡,進行請求高氮,會一直等待狀態(tài)
jms的發(fā)送者:
[圖片上傳失敗...(image-7725a7-1649989530880)]
[圖片上傳失敗...(image-b000b3-1649989530880)]
請求消息,再來看訂閱者顷牌,就會看到消息接收
[圖片上傳失敗...(image-3f61f1-1649989530880)]