(Jmeter 四)JMeter JMS性能測試

引用http://www.cnblogs.com/qianyiliushang/p/4348584.html?utm_source=tuicool&utm_medium=referral

JMS參考http://blog.csdn.net/jiuqiyuliang/article/details/46701559

MOM 作爲消息數據交換的平臺,也是影響應用執行效率的潛在環節。在 Java 程序中,是通過 JMS 與 MOM 進行交互的。作爲 Java 實現的壓力測試工具,JMeter 也能使用 JMS對應用的消息交換和相關的數據處理能力進行測試。這一點應該不難理解,因爲在整個測試過程中,JMeter 測試的重點應該是消息的產生者和消費者的本身能力,而不是 MOM本身。

根據 JMS 規範,消息交換有2種方式:發佈/訂閱和點對點。JMeter針對這兩種情形,分別提供了不同的Sampler進行支持。

目的

使用Jmeter測試ActiveMQJMS消息

以下MOM我們使用ActiveMQ ,分別描述發佈/訂閱和點對點這兩種消息交換方式是如何使用 JMeter 進行測試。

1. 測試前的準備(兩種情況都適用)

  • JMeter 雖然能使用 JMS 對 MOM 進行測試,但是它本身並沒有提供JMS需要使用的包。下載解壓Activemq 將 activemq-all-5.13.3.jar複製至apache-jmeter-2.13\lib目錄下(http://activemq.apache.org/download.html)。運行時發現提示如下類衝突的錯誤,解決方法:用壓縮工具打開apche-all-*.jav....staticloggerbinder.class所在目前,將該類重命名。


  • JMeter 在測試時使用了 JNDI,爲了提供 JNDI 提供者的信息,需要提供 jndi.properties。同時需要將 jndi.properties 放到 JMeter 的 bin下的 ApacheJMeter.jar 打包在一起。執行如下操作,打開命令行窗口,並定位到 JMETER_HOME/bin 目錄,運行如下命令 jar uf ApacheJMeter.jar jndi.properties(直接修改ApacheJMeter_core.jar中的jemeter.properties文件,這種方式比較麻煩,涉及重新打包,直接在Jmeter GUI中配置JNDI的屬性也可以)

對於 ActiveMQ,jndi.properties 的示例內容如下:

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

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

#指定connectionFactory的jndi名字,多個名字之間可以逗號分隔。

#以下爲例:

#對於topic,使用(TopicConnectionFactory)context.lookup("connectionFactry")

#對於queue,(QueueConnectionFactory)context.lookup("connectionFactory")

connectionFactoryNames = connectionFactory

#註冊queue,格式:

#queue.[jndiName] = [physicalName]

#使用時:(Queue)context.lookup("jndiName"),此處是MyQueue

queue.MyQueue = example.MyQueue

#註冊topic,格式:

# topic.[jndiName] = [physicalName]

#使用時:(Topic)context.lookup("jndiName"),此處是MyTopic

topic.MyTopic = example.MyTopic


2、測試步驟

  • 啓動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"/>

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

  • 啓動Jmeter
  • 添加一個線程組
  • 添加Samper:選擇JMS POINT TO POINT
  • 配置Sampler

    • QueueConnection Factory:連接名
    • JNDI name Request queue:JNDI請求發送隊列名
    • JNDI name Recieve queue:JNDI接收隊列
    • TimeOut:超時時長
    • Expiration:過期時間
    • Communication style:Request only(只發送請求,如果選擇Request Response模式,會驗證收到消息的JMS Header中的JMSCorrelationID,以判斷是否是對請求消息的響應。需要設置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和端口,本地






發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章