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