Jmeter 断言使用
先說一下使用斷言的目的:在request的返回層面增加一層判斷機(jī)制。因?yàn)閞equest成功了,并不代表結(jié)果一定正確。類似于QTP中的檢查點(diǎn)檢查點(diǎn)。斷言的使用方法:
step_1:在你選擇的Sampler下添加對應(yīng)的斷言(因?yàn)椴煌愋偷臄嘌詸z查的內(nèi)容不同)。配置好響應(yīng)的檢查內(nèi)容(根據(jù)斷言情況而定,有的斷言控制面板不需要添加任何內(nèi)容,如XML Assertion)。
step_2:添加一個(gè)斷言結(jié)果的監(jiān)聽器(從監(jiān)聽器中添加),通過“斷言結(jié)果”可以看到是否通過斷言。對于一次請求,如果通過的話,斷言結(jié)果中只會打印一行請求的名稱;如果失敗,則除了請求的名稱外,還會有一行失敗的原因。(不同類型的斷言,結(jié)果不同。)
注意:一個(gè)Sampler可以添加多個(gè)斷言,根據(jù)你的檢查需求來添加相應(yīng)的斷言,當(dāng)Sampler下所有的斷言都通過了,那么才算request成功。
下面簡單說一下幾種斷言的使用(前3種應(yīng)該較為常用一點(diǎn)):
1、Response Assertion(響應(yīng)斷言)
適用于判斷返回內(nèi)容中的內(nèi)容,控制面板元素如下:
位置1:名稱、注釋
位置2:要測試的相應(yīng)字段,即要檢查的項(xiàng)
位置3:模式匹配規(guī)則
- 包括:返回結(jié)果包括你指定的內(nèi)容
- 匹配:(好像跟Equals查不多,弄不明白有什么區(qū)別)
- Equals:返回結(jié)果與你指定結(jié)果一致
- Substring:返回結(jié)果是指定結(jié)果的字串
否:不進(jìn)行匹配
位置4:要測試的模式,即填寫你指定的結(jié)果(可填寫多個(gè),如圖中就是希望返回文本中包含有2個(gè)指定的字符串,只有當(dāng)同時(shí)包含了這2個(gè)串,這個(gè)斷言才算通過,否則,算失敗。)按鈕【添加】、【刪除】是進(jìn)行指定內(nèi)容的管理
?
2、Size Assertion(Size斷言)
Size Assertion用于判斷返回內(nèi)容的大小,Size Assertion控制面板元素如下:
位置1:名稱、注釋
位置2:指定大小(單位:字節(jié))與比較類型,返回內(nèi)容的大小、比較類型、指定字節(jié)大小的比較時(shí)的擺放順序是:【返回內(nèi)容的大小】【比較類型】【指定字節(jié)大小】,如果這個(gè)比較結(jié)果通過,則斷言通過,如圖中,如果返回內(nèi)容的大小大于10個(gè)字節(jié),則斷言通過,否則失敗。
?
3、Duration Assertion(Size斷言)
Duration Assertion用于判斷服務(wù)器的響應(yīng)時(shí)間,控制面板元素如下:
位置1:名稱、注釋
位置2:響應(yīng)時(shí)間設(shè)置(單位:毫秒),如果響應(yīng)時(shí)間大于設(shè)置的響應(yīng)時(shí)間,則斷言失敗,否則成功!(等于的情況不好設(shè)置,暫不知道具體情況如何)
?
4、HTML Assertion(HTML斷言)
html assertion的作用是檢查返回的的內(nèi)容,格式是否符合指定格式的相關(guān)標(biāo)準(zhǔn)。具體見下面說明。HTML Assertion的控制面板元素如下:
位置1:名稱、注釋
位置2:Tidy Settings,Doctype有auto、omit、strict、loose(這里各設(shè)置代表什么意思暫不太了解)
位置3:格式類型,即你按那種格式來檢查返回內(nèi)容,html or xhtml or xml?
位置4:能接受的最大值設(shè)置,Error threshold:最大可以接受的錯(cuò)誤數(shù);Warning threshold:最大可以接受的警告數(shù)。如果勾選“Error only”這忽略Warning,只對Error作統(tǒng)計(jì)檢查。如果對返回內(nèi)容的檢查結(jié)果不超過指定結(jié)果,則斷言通過,否則失敗。
?
5、XML Assertion(XML斷言)
就目前的理解來看XML Assertion的作用是判斷返回結(jié)果是否否和xml的格式即<></>成對出現(xiàn)。(不知這樣理解對不對?如果是這樣的話,這個(gè)在HTML中,設(shè)置Format為XML就可以實(shí)現(xiàn)了,為什么還需要這個(gè)呢?)XML Assertion控制面板元素如下:
從控制面板上可以看出,XML Assertion不需要設(shè)置任何內(nèi)容。
在使用XML Assertion的過程中,遇到一個(gè)問題,弄不明白,問題貼在這里,希望路過的朋友,如果知道的話,幫忙解答一下:
Jmeter中添加xml assertion
斷言結(jié)果:Error on line 1: The element type "Detail" must be terminated by the matching end-tag "</Detail>".
但實(shí)際請求返回結(jié)果:
<?xml version="1.0" encoding="UTF-8"?><Info><Country>中國</Country><Province>未知</Province><City>未知</City><Type>大學(xué)</Type><ISP>教育網(wǎng)</ISP><Detail>中國教育網(wǎng)</Detail></Info>
問題:<Detail></Detail>是成對的,斷言那邊怎么會過不去?
?
轉(zhuǎn)載于:https://www.cnblogs.com/Uther/p/5292097.html
總結(jié)
以上是生活随笔為你收集整理的Jmeter 断言使用的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。