一直接觸LR比較多,這陣子突然想了解一下開源的
性能測(cè)試工具,無(wú)意中接觸到了Jmeter+Badboy,這兩款工具對(duì)于想進(jìn)行性能測(cè)試,但又對(duì)LR高額的商業(yè)費(fèi)用望而止步的小公司可謂是再適合不過(guò)了。
自已小結(jié)一下:
JMeter是純Java編寫的功能與性能測(cè)試工具,但其錄制腳本過(guò)于笨拙復(fù)雜,成為使用者的詬病。Badboy是用C++開發(fā)的,被用于測(cè)試和開發(fā)復(fù)雜的動(dòng)態(tài)應(yīng)用。 它提供了強(qiáng)大的屏幕錄制和回放功能,同時(shí)也提供了豐富的圖形結(jié)果分析功能。只要不用于商業(yè)目的就可以免費(fèi)使用。因此這兩工具的結(jié)合,就成為了絕配。你可以 用Badboy錄制腳本,然后將錄制的腳本導(dǎo)出為JMeter格式的腳本,最后將該腳本導(dǎo)入到JMeter,借助于JMeter強(qiáng)大的測(cè)試功能模擬大量的 虛擬用戶,進(jìn)行復(fù)雜的性能測(cè)試。
1. 安裝Badboy
下載地址 http://badboy.com.au/download/index,按網(wǎng)頁(yè)提示輸入name/email/company等后下載標(biāo)識(shí)為recommended的那個(gè)版本。
這是一個(gè)可執(zhí)行程序,下載之后雙擊,根據(jù)安裝向?qū)О惭b。
2. 安裝Jmeter
http://jmeter.apache.org/選擇Download Releases --點(diǎn)擊下載Binary: apache-jmeter-2.7_src.zip(注意zip包才是適合windows系統(tǒng)的,其中Source是可以看到源碼的包,如果不需要查看源碼可以只下載Binary下的zip包。)下載后解壓;
安裝Jmeter需本地安裝JDK及配置好環(huán)境變量,詳細(xì)配置如下:
解壓apache-jmeter-2.7_src.zip至C盤c:\apache-jmeter-2.7目錄下,桌面選擇”我的電腦“(右鍵)--高級(jí)--環(huán)境變量,在”系統(tǒng)變量“---”新建“,在變量名中輸入:JMETER_HOME,變量值中輸入:c:\apache-jmeter-2.7,再修改CLASSPATH變量,變量值中添加%JMETER_HOME%\lib\ext\ApacheJMeter_core.jar;%JMETER_HOME%\lib\jorphan.jar;%JMETER_HOME%\lib\logkit-2.0.jar; 然后確定。
然后到Jmeter\bin下運(yùn)行jmeter.bat即可打開Jmeter
3. 用Badboy錄制腳本并到處為JMeter格式的腳本
在開始菜單中啟用Badboy,點(diǎn)擊工具欄上的紅色圓餅按鈕,開始錄制,然后在URL框中輸入你要測(cè)試站點(diǎn)的URL。隨便點(diǎn)擊幾個(gè)鏈接,然后點(diǎn)擊工具欄上的黑色方框按鈕,停止錄制。最后點(diǎn)擊 File –>Export to JMeter… ,將錄制的腳本導(dǎo)出為Jmeter格式的腳本。
4. 啟用JMeter,導(dǎo)入Badboy錄制的腳本,并設(shè)置測(cè)試計(jì)劃,開始測(cè)試
然后點(diǎn)擊 文件 –>打開,在文件管理器中選擇你剛導(dǎo)出的Badboy錄制的腳本。
Jmeter和LR一樣有著錄制腳本、參數(shù)化、檢查點(diǎn)、集合點(diǎn)、設(shè)置關(guān)聯(lián)、場(chǎng)景等。
1,Jmeter參數(shù)化:
先準(zhǔn)備一個(gè)dat文件保存在本地,然后選擇”選項(xiàng)“---函數(shù)助手---__CSVRead--輸入dat文件保存的路徑如C:\test.dat,點(diǎn)擊生成并復(fù)制${__CSVRead(c:\test.dat,)}
找到需參數(shù)化的頁(yè)面--將復(fù)制的${__CSVRead(c:\test.dat,)}粘貼到參數(shù)化值的位置。
2,檢查點(diǎn):
檢查對(duì)對(duì)象設(shè)置:右鍵點(diǎn)擊某頁(yè)面---->添加---->斷言---->響應(yīng)斷言
檢查結(jié)果:添加一個(gè)斷言結(jié)果,右鍵點(diǎn)擊頁(yè)面---->添加---->監(jiān)聽器---->斷言結(jié)果
還可以再添加一個(gè)“查看結(jié)果樹” 右鍵點(diǎn)擊我們的“登錄”頁(yè)面---->添加---->監(jiān)聽器---->查看結(jié)果樹
3,集合點(diǎn)設(shè)置:
右鍵點(diǎn)擊 step1---->定時(shí)器---->Synchronizing Timer,這樣子就添加了一個(gè)“集合點(diǎn)”,如果發(fā)現(xiàn)集合點(diǎn)的位置不對(duì),可發(fā)隨需要插入到相應(yīng)位置。
4,關(guān)聯(lián):
方法一,從前一個(gè)請(qǐng)求中取,用正則表達(dá)式提取器。
具體方法,在需要獲得數(shù)據(jù)的請(qǐng)求上右擊添加一個(gè)后置處理器-->正則表達(dá)式提取器
引用名稱即下一個(gè)請(qǐng)求要引用的參數(shù)名稱,如填寫title,則可用${title}引用它。
正則表達(dá)式中()括起來(lái)的部分就是要提取的。.代表任意字符,*代表出現(xiàn)任意次。
模板,用$$引用起來(lái),如果在正則表達(dá)式中有多個(gè)正則表達(dá)式(多個(gè)括號(hào)括起來(lái)的東東),則可以是$2$,$3$等等,表示解析到的第幾個(gè)值給title。
匹配數(shù)字,0代表隨機(jī),-1代表所有,其余正整數(shù)代表將在檢查的內(nèi)容中,第幾個(gè)匹配的內(nèi)容提取出來(lái)。
方法二,用xpath從前一個(gè)請(qǐng)求中取。這種形式比較適合于返回為xml片段的情況。
在需要獲得數(shù)據(jù)的請(qǐng)求上右擊添加一個(gè)后置處理器-->xPath Extractor。
引用名稱即下一個(gè)請(qǐng)求要引用的參數(shù)名稱,如填寫body,則可用${body}引用它。
XPath query,即xpath的表達(dá)式,要符合xpath的語(yǔ)法。