八、JMeter實戰-響應斷言


一、JMeter響應斷言

看一下官方文檔介紹,斷言:


斷言用於對采樣器執行結果的檢查,並在同一范圍內的每個采樣器之后進行處理。如果要對某個采樣器進行斷言,直接將斷言添加到采樣器的子集即可。
為什么要用斷言?

JMeter以及Postman等接口測試工具,他們都是基於協議進行工作的,使用這些工具進行發送請求,當請求發送成功的時候(即協議發送成功),在查看結果樹中請求樣本顯示綠色。比如協議狀態碼是200就是成功,也是僅僅代表協議發送成功,但是業務不一定成功。有可能是協議發送成功了,但是業務沒有成功,但是JMeter默認不做判斷。那么想要校驗業務成功還是失敗,就得需要進行斷言,斷言根據接口的響應進行斷言,一般主要斷言業務狀態碼以及messege等信息。



怎么判斷JMeter響應斷言成功?

舉個實JMeter斷言成功,在查看結果樹中請求是綠色,看不到斷言成功的信息。當JMeter斷言失敗的時候,結果樹中顯示為紅色,可以看到斷言失敗的信息。


響應斷言



斷言頁面的解釋:

一、Apply to:
1.名稱:自行定義,就是節點的名稱
2.注釋:節點的注釋,容易理解的解釋
3.Apply to:斷言可以應用於主樣本,子樣本或者兩者。默認斷言是第二個,斷言應用於主樣本。
(1)Main sample and sub-samples:主樣本和子樣本
(2)Main sample only:僅主樣本
(3)Sub-samples only:僅子樣本
(4)JMeter Variable Name to use:JMeter使用變量名字,斷言將應用於命名變量的內容

使用說明:

一般情況下,直接使用主樣本(默認)的斷言即可。因為大多數情況下,只有主請求才會具有所必須的斷言數據,但是前端的JavaScript語言,有兩個框架ajax和jquery單個請求可以在內部產生多個子請求,並且每個請求都會有響應數據,所以說,大多數情況下,進行主要采樣器的斷言就足夠了。



如果斷言中選擇Main sample and sub-samples,那么斷言就要校驗主采樣器和子采樣器的響應,看一下結果,除了主采樣器的響應中包含“退出登錄”,其他的子采樣器的響應沒有“退出登錄”,所以會斷言失敗,其他幾個是同理。



這里講一下JMeter Variable Name to use:JMeter使用變量名字,斷言將應用於命名變量的內容。我嘗試了一下,可以這樣用,有錯的麻煩提出。

斷言正確,如果正則中的變量名和斷言中的變量名不一致,斷言則會失敗。



二、模式匹配規則(Pattern Mactching Rules)

1.包括(Contains):返回的結果包括所指定的內容,支持正則匹配

舉例:

接口的響應


進行斷言,斷言通過。


2.匹配:
與Equals幾乎一樣,都是斷言要和返回值完全一致。不同的是,這里支持正則,寫正則表達式時,正則表達式也要完全和返回值匹配,才能夠通過。

3.Equals:
返回結果與你指定斷言完全一致,不支持正則匹配。注意是完全一致,這個只有一個特殊情況會用到,一般很少用。
4.SubString
與“包括”功能類似,不同點為,不支持正則匹配。
5.否
反之,非 的意思
6.或者
可以為多個值,可在下面,例如一個斷言里面可能有兩個不同的判斷值,可以選中去用,當滿足一個要求的時候,就算成功。這個功能還是可以多用的,像上面那個例子,多斷言幾種情況。



三、Custom failure message

當判斷返回值為錯誤的時候,返回什么信息。可以在斷言結果內顯示。
舉例:


在查看結果樹中可以看到剛才填寫的斷言的信息


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM