1. 程式人生 > >JMeter學習(十四)jmeter_斷言使用

JMeter學習(十四)jmeter_斷言使用

cnblogs amp one 理解 等於 ring 查點 sample 希望

先說一下使用斷言的目的:在request的返回層面增加一層判斷機制。因為request成功了,並不代表結果一定正確。類似於QTP中的檢查點檢查點。斷言的使用方法:
step_1:在你選擇的Sampler下添加對應的斷言(因為不同類型的斷言檢查的內容不同)。配置好響應的檢查內容(根據斷言情況而定,有的斷言控制面板不需要添加任何內容,如XML Assertion)。
step_2:添加一個斷言結果的監聽器(從監聽器中添加),通過“斷言結果”可以看到是否通過斷言。對於一次請求,如果通過的話,斷言結果中只會打印一行請求的名稱;如果失敗,則除了請求的名稱外,還會有一行失敗的原因。(不同類型的斷言,結果不同。)
註意:一個Sampler可以添加多個斷言,根據你的檢查需求來添加相應的斷言,當Sampler下所有的斷言都通過了,那麽才算request成功。
下面簡單說一下幾種斷言的使用(前3種應該較為常用一點):

1、Response Assertion(響應斷言)

適用於判斷返回內容中的內容,控制面板截圖如下:
位置1:名稱、註釋
位置2:要測試的相應字段,即要檢查的項
位置3:模式匹配規則
包括:返回結果包括你指定的內容
匹配:(好像跟Equals查不多,弄不明白有什麽區別)
Equals:返回結果與你指定結果一致
Substring:返回結果是指定結果的字串
否:不進行匹配
位置4:要測試的模式,即填寫你指定的結果(可填寫多個,如圖中就是希望返回文本中包含有2個指定的字符串,只有當同時包含了這2個串,這個斷言才算通過,否則,算失敗。)按鈕【添加】、【刪除】是進行指定內容的管理

2、Size Assertion(Size斷言)

Size Assertion用於判斷返回內容的大小,Size Assertion控制面板截圖如下:
位置1:名稱、註釋
位置2:指定大小(單位:字節)與比較類型,返回內容的大小、比較類型、指定字節大小的比較時的擺放順序是:【返回內容的大小】【比較類型】【指定字節大小】,如果這個比較結果通過,則斷言通過,如圖中,如果返回內容的大小大於10個字節,則斷言通過,否則失敗。

3、Duration Assertion(Size斷言)

Duration Assertion用於判斷服務器的響應時間,控制面板截圖如下:
位置1:名稱、註釋
位置2:響應時間設置(單位:毫秒),如果響應時間大於設置的響應時間,則斷言失敗,否則成功!(等於的情況不好設置,暫不知道具體情況如何)

4、HTML Assertion(HTML斷言)

html assertion的作用是檢查返回的的內容,格式是否符合指定格式的相關標準。具體見下面說明。HTML Assertion的控制面板如下:
位置1:名稱、註釋
位置2:Tidy Settings,Doctype有auto、omit、strict、loose(這裏各設置代表什麽意思暫不太了解)
位置3:格式類型,即你按那種格式來檢查返回內容,html or xhtml or xml?
位置4:能接受的最大值設置,Error threshold:最大可以接受的錯誤數;Warning threshold:最大可以接受的警告數。如果勾選“Error only”這忽略Warning,只對Error作統計檢查。如果對返回內容的檢查結果不超過指定結果,則斷言通過,否則失敗。

5、XML Assertion(XML斷言)

就目前的理解來看XML Assertion的作用是判斷返回結果是否否和xml的格式即<></>成對出現。(不知這樣理解對不對?如果是這樣的話,這個在HTML中,設置Format為XML就可以實現了,為什麽還需要這個呢?)XML Assertion控制面板截圖如下:
從控制面板上可以看出,XML Assertion不需要設置任何內容。
在使用XML Assertion的過程中,遇到一個問題,弄不明白,問題貼在這裏,希望路過的朋友,如果知道的話,幫忙解答一下:
Jmeter中添加xml assertion
斷言結果:Error on line 1: The element type "Detail" must be terminated by the matching end-tag "</Detail>".
但實際請求返回結果:
<?xml version="1.0" encoding="UTF-8"?><Info><Country>中國</Country><Province>未知</Province><City>未知</City><Type>大學</Type><ISP>教育網</ISP><Detail>中國教育網</Detail></Info>
問題:<Detail></Detail>是成對的,斷言那邊怎麽會過不去?
以上參考:
1、http://www.51testing.com/html/75/n-97675.html
2、http://jakarta.apache.org/jmeter/usermanual/component_reference.html#XML_Assertion

JMeter學習(十四)jmeter_斷言使用