1. 程式人生 > >【轉】JMeter學習(二十九)使用Jmeter創建ActiveMQ JMS POINT TO POINT請求,環境搭建、請求創建、插件安裝、監聽服務器資源等

【轉】JMeter學習(二十九)使用Jmeter創建ActiveMQ JMS POINT TO POINT請求,環境搭建、請求創建、插件安裝、監聽服務器資源等

分布式 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&amp;wireFormat.maxFrameSize=104857600"/>

      上面標記的這個數字為最大連接數,自己設置,如果太小的話會導致發送的請求都被拒絕

  • 啟動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請求,環境搭建、請求創建、插件安裝、監聽服務器資源等