【轉】JMeter學習(二十九)使用Jmeter創建ActiveMQ JMS POINT TO POINT請求,環境搭建、請求創建、插件安裝、監聽服務器資源等
阿新 • • 發佈:2017-07-25
分布式 jndi 根目錄 point 啟動 lib .cn 轉載 p2p
最近要做公司消息中間件的性能測試,第一個想到的工具就是Jmeter了,網上簡單搜了一下,基本上都是WEB測試的居多,只好自己研究官方文檔了。
其中涉及Jmeter基本的術語或者概念,請自行參考官方文檔或者google,這裏主要講JMS PTP請求是如何建立的。
準備工作:
- 安裝JDK,推薦使用1.7以上版本,並設置JAVA_HOME
- 下載Jmeter及相關插件:Jmeter下載地址點我,插件下載地址點我,ActiveMQ下載地址點我
- Jmeter下載編譯好的包解壓就行了,為方便起見,解壓目錄我這裏統稱為JMETER_HOME,當然也可以下載源碼(需要自己編譯源碼)安裝
- 解壓ActiveMQ
- JMeterPlugins-Standard-1.2.1.zip
- JMeterPlugins-Extras-1.2.1.zip
- ServerAgent-2.2.1.zip
- 插件安裝:
- 分別解壓前兩個插件,將解壓後文件夾中lib\ext目錄下的JmeterPlugins-Standard.jar和JmeterPlugins-Extras.jar拷貝到剛JMETER_HOME\lib\ext目錄下
- 解壓ServerAgent-2.2.1.zip
- 針對JMS類型的Sampler,需要額外的jar包(我這裏用的是apache ActiveMQ,將下載的AMQ apache-activemq-5.11.1根目錄下的activemq-all-5.11.1.jar拷貝到JMETER_HOME\lib目錄下)
- 啟動ActiveMQ:打開dos窗口,進入ActiveMQ解壓目錄下的bin目錄,輸入命令:activemq.bat start
- Tips:在啟動ActiveMQ前,修改conf目錄下的activemq.xml中的配置
<transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=65535&wireFormat.maxFrameSize=104857600"/>
上面標記的這個數字為最大連接數,自己設置,如果太小的話會導致發送的請求都被拒絕
- Tips:在啟動ActiveMQ前,修改conf目錄下的activemq.xml中的配置
- 啟動ServerAgent:進入剛才解壓的目錄,以管理員身份運行startAgent.bat
哈哈,有木有覺得很麻煩,有點不耐煩了呢?至此,所有的準備工作已經就緒,下面開始使用Jmeter。
創建JMS P2P請求:
- 啟動Jmeter:進入JMETER_HOME\bin目錄,以管理員身份運行Jmeter.bat,此時會啟動兩個窗口,一個是dos窗口(請勿關閉此窗口),另一個是Jmeter的GUI界面
- 添加一個線程組
- 添加Samper:選擇JMS POINT TO POINT
- 配置Sampler,這一塊才是重點,因為要用到JNDI,之前網上看了些文章,都是直接修改ApacheJMeter_core.jar中的jemeter.properties文件,這種方式比較麻煩,涉及重新打包,這裏我就直接在Jmeter GUI中配置JNDI的屬性,具體見下圖:
-
- QueueConnection Factory:連接名
- JNDI name Request queue:JNDI請求發送隊列名
- JNDI name Recieve queue:JNDI接收隊列
- TimeOut:超時時長
- Expiration:過期時間
- Communication style:Request only(只發送請求,如果選擇Request Response模式,需要設置CorrelationId,並且需要服務端調用getReplyTo()方法來監聽請求,這個一直沒調通,回頭再研究看看能不能通過自己寫代碼實現)
- Content:發送消息內容,這裏調用Jmeter的函數助手發送512個字符
- Initial Context Factory:org.apache.activemq.jndi.ActiveMQInitialContextFactory(這個在之前從AMQ中拷貝到Jmeter\lib中的jar包裏,Jmeter會自動掃描到)
- JNDI Properties,queue.Test.Request和queue.Test.Reply,這裏定義前面用到的兩個變量
- Provider URL:tcp://localhost:61616,這個是消息服務器的ip和端口,我這裏用的本地的
- 下面就是添加監聽器了,添加一個聚合報告,[email protected] - PerfMon Metrics Collector監聽器,其它的監聽器及配置元件根據自己的實際需要來添加,這裏貼一個PerfMon Metrics Collector配置
- 現在,一個JMS PTP的采樣器已經配置完成,去設置一個線程開始跑起來吧,下面是一次運行後的結果
聚合報告:
服務器資源占用情況:
總結:
以上只是工具及插件的簡單使用,性能測試的重點不在這裏,後面會講分布式測試來解決客戶端的瓶頸(網上也有教程,不過基本都是官方文檔的翻譯,有點不好理解),後續會接著分析各種性能報告指標及場景設計,敬請期待,歡迎閱讀轉載此文,如對文中所述有疑問,請留言提出或者聯系我:[email protected]
轉自:http://www.cnblogs.com/qianyiliushang/p/4348584.html
【轉】JMeter學習(二十九)使用Jmeter創建ActiveMQ JMS POINT TO POINT請求,環境搭建、請求創建、插件安裝、監聽服務器資源等