準(zhǔn)備工作
針對(duì)JMS類型的Sampler,需要額外的jar包(這里用的是apache ActiveMQ,將下載的AMQ?apache-activemq-5.5.0根目錄下的activemq-all-5.5.0.jar拷貝到JMETER_HOME\lib目錄下)
啟動(dòng)ActiveMQ:打開dos窗口,進(jìn)入ActiveMQ解壓目錄下的bin\win32目錄,輸入命令:activemq.bat start
Tips:在啟動(dòng)ActiveMQ前,修改conf目錄下的activemq.xml中的配置
65535&wireFormat.maxFrameSize=104857600">
上面標(biāo)記的這個(gè)數(shù)字為最大連接數(shù),自己設(shè)置簇抵,如果太小的話會(huì)導(dǎo)致發(fā)送的請(qǐng)求都被拒絕
啟動(dòng)ServerAgent:進(jìn)入剛才解壓的目錄,以管理員身份運(yùn)行startAgent.bat
創(chuàng)建JMS測(cè)試計(jì)劃
啟動(dòng)Jmeter:進(jìn)入JMETER_HOME\bin目錄射众,以管理員身份運(yùn)行Jmeter.bat碟摆,此時(shí)會(huì)啟動(dòng)兩個(gè)窗口,一個(gè)是dos窗口(請(qǐng)勿關(guān)閉此窗口)叨橱,另一個(gè)是Jmeter的GUI界面
添加一個(gè)線程組
添加Samper:選擇JMS POINT TO POINT
配置Sampler典蜕,這一塊才是重點(diǎn),因?yàn)橐玫絁NDI罗洗,之前網(wǎng)上看了些文章愉舔,都是直接修改ApacheJMeter_core.jar中的
jemeter.properties文件,這種方式比較麻煩伙菜,涉及重新打包轩缤,這里我就直接在Jmeter GUI中配置JNDI的屬性,具體見(jiàn)下圖:
QueueConnection Factory:連接名
JNDI name Request queue:JNDI請(qǐng)求發(fā)送隊(duì)列名
JNDI name Recieve queue:JNDI接收隊(duì)列
TimeOut:超時(shí)時(shí)長(zhǎng)
Expiration:過(guò)期時(shí)間
Communication style:Request only(只發(fā)送請(qǐng)求,如果選擇Request
Response模式火的,需要設(shè)置CorrelationId壶愤,并且需要服務(wù)端調(diào)用getReplyTo()方法來(lái)監(jiān)聽請(qǐng)求,這個(gè)一直沒(méi)調(diào)通馏鹤,回頭再研究看
看能不能通過(guò)自己寫代碼實(shí)現(xiàn))
Content:發(fā)送消息內(nèi)容征椒,這里調(diào)用Jmeter的函數(shù)助手發(fā)送512個(gè)字符
Initial Context Factory:org.apache.activemq.jndi.ActiveMQInitialContextFactory(這個(gè)在之前從AMQ中拷貝到Jmeter\lib中的jar包里,Jmeter會(huì)自動(dòng)掃描到)
JNDI Properties湃累,queue.Test.Request和queue.Test.Reply勃救,這里定義前面用到的兩個(gè)變量
Provider URL:tcp://localhost:61616,這個(gè)是消息服務(wù)器的ip和端口治力,我這里用的本地的
下面就是添加監(jiān)聽器了蒙秒,添加一個(gè)聚合報(bào)告,然后再添加一個(gè)jp@gc - PerfMon Metrics Collector監(jiān)聽器宵统,其它的監(jiān)聽器及配置元件根據(jù)自己的實(shí)際需要來(lái)添加晕讲,這里貼一個(gè)PerfMon Metrics Collector配置
現(xiàn)在,一個(gè)JMS PTP的采樣器已經(jīng)配置完成榜田,去設(shè)置一個(gè)線程開始跑起來(lái)吧益兄,下面是一次運(yùn)行后的結(jié)果
聚合報(bào)告:
服務(wù)器資源占用情況:
小結(jié):針對(duì)此壓力測(cè)試锻梳,只是參照此運(yùn)行成功箭券,對(duì)此中間件并不是很了解,希望后續(xù)有空能了解此中間件.