當你利用Badboy將你的測試腳本錄制完畢后,接下來是腳本的調試工作了。
在我看來,調試應該包括有以下幾個方面:
1.根據測試場景對腳本進行必要的修改;
2.腳本參數化;
3.添加適當的Listener,進行測試結果的簡單收集
講到的是腳本的參數化問題。
在Jmeter里面,可以利用的對Request進行配置的組件都包含在Configuration Elements中。
其中CSV Data Set Config是我們講的主角。
假如,現在要測試某個網站的Search的性能,于是你錄制了一個search的HTTP Request。
利用Jmeter打開后可以看到錄制腳本中,search的字段是參數名字為p,如下圖:
參數化Step 1:將HTTP Request需要參數化的項的Value處,用${參數名}代替;如:將p的Value修改為${Searchitem}
參數化Step 2:在名叫Step 1的Simple Concoller中添加CSV Data Set Config
參數化Step 3:設置CSV Data Set Config
Filename --- 參數項文件
File Encoding --- 文件的編譯方法,一般為空
Vaiable Names --- 文件中各列所表示的參數項;各參數項之間利用逗號分隔;參數項的名稱應該與HTTP Request中的參數項一致。
Delimiter --- 如文件中使用的是逗號分隔,則填寫逗號;如使用的是TAB,則填寫 ;
Recycle on EOF? --- True=當讀取文件到結尾時,再重頭讀取文件
False=當讀取文件到結尾時,停止讀取文件
Stop thread on EOF? --- 當Recycle on EOF?一項為False時起效;True=當讀取文件到結尾時,停止進程
完成這三步之后,腳本的參數化大功告成了。
其實,在我看來大部分的測試軟件的參數化都是類似的,都是將需要參數化的項目用符號替代,然后通過定義參數文件中的各項來達到參數化的目的。
相比起Jmeter2.2版本,CSV Data Set Config添加了File Encoding(個人認為沒有什么用);參數間分隔符多了Tab;Stop thread on EOF?
還有補充說明一下,在Jmeter中除了可以為HTTP Request進行參數化,還可以給其他的請求做參數化,做法都是類似的。