qileilove

          blog已經轉移至github,大家請訪問 http://qaseven.github.io/

          使用Jmeter測試JMS

           前言:使用Jmeter測試ActiveMQ的JMS消息,網上有一篇,但是圖片看不了,具體參數填什么也不清楚,因此決定總結這篇

            所使用的Jmeter版本2.8,activemq版本5.6

            一、創建jndi.properties文件

            由于 jmeter 是通過 jndi 來獲得 jms 中相關對象的,如 ConnectionFactory 和 Destination,所以在 jmeter 的 classpath 中需要添加一個 jndi.properties 屬性文件,用于配置jndi

            創建jndi.properties文件,包含如下內容

          java.naming.factory.initial = org.apache.activemq.jndi.ActiveMQInitialContextFactory
          java.naming.provider.url = tcp://yourIP: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 = ActiveMQ.Advisory.Consumer.Topic.cacheupdate

            保存并把這個文件復制到 JMETER_HOME/bin(JMETER_HOME為 jmeter 的安裝目錄)目錄中。

            二、把jndi.properties放到jmeter的啟動jar包中

            由于bin目錄并不在jmeter的classpath中,所以需要執行一些額外的工作來把jndi.properties添加到jmeter的classpath中,把jndi.properties打包到jmeter的啟動jar包中。jmeter的啟動jar包為JMETER_HOME/bin/ApacheJMeter.jar,所以需要把jndi.properties 打包到這個 jar 文件中。直接將文件拖入jar包中即可。

            或者執行如下操作,打開命令行窗口,并定位到 JMETER_HOME/bin 目錄,運行如下命令 jar uf ApacheJMeter.jar jndi.properties

           三、添加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


          posted on 2013-08-27 10:30 順其自然EVO 閱讀(582) 評論(0)  編輯  收藏 所屬分類: 性能測試web 前端性能測試

          <2013年8月>
          28293031123
          45678910
          11121314151617
          18192021222324
          25262728293031
          1234567

          導航

          統計

          常用鏈接

          留言簿(55)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 怀化市| 上林县| 咸丰县| 鄂托克旗| 西青区| 侯马市| 湛江市| 洱源县| 朝阳县| 潮安县| 丽江市| 城市| 呼和浩特市| 深州市| 太谷县| 齐河县| 邵东县| 高唐县| 铁力市| 诸暨市| 彩票| 太白县| 玉溪市| 布拖县| 信阳市| 抚松县| 吐鲁番市| 陆川县| 东光县| 嘉鱼县| 原平市| 达尔| 新乡县| 高清| 曲阜市| 新晃| 乌审旗| 安乡县| 贵州省| 扶风县| 阿合奇县|