jmeter學習指南之響應斷言和beanshell斷言

testingbang發表於2019-08-20

一、響應斷言

 1、什麼是響應斷言?

      在jmeter中最常用的斷言方法是“響應斷言”,它是透過檢查sampler的請求內容和響應結果中是否匹配指定的字串來判斷結果是否正確。

      響應斷言簡單實用,能夠解決工作中的大部分問題。

      尤其是在jmeter4.0版本中在響應斷言中加入了Request Headers、Request Data,使得能夠對請求頭和請求體進行斷言,滿足了多樣性的斷言需求,非常方便。

 

2、使用響應斷言

     響應斷言的使用非常簡單,通常需要關注如下三點:

 

  “要測試的響應欄位”

指我們要進行斷言的內容所在的位置,分為request和response兩大塊,根據實際情況選擇即可(最常用的是響應文字)

  “模式匹配規則”  (此處提到的1和3對應上圖中的數字)

控制上圖中的“1”如何匹配“3”

"包括"--1包括3,支援正則; “匹配”--1完全匹配3,支援正則;

“Equals”--1完全匹配3中的文字內容,不支援正則,且大小寫敏感;“Substring”--1包括3中的文字內容,不支援正則,且大小寫敏感;

“否”、“或者”--跟前面四個選項結合使用,分別用於邏輯取反、取或。

  “要測試的模式”

這裡填寫我們要進行斷言的內容,可以新增多個模式,可以使用變數、文字、正規表示式(在“包括”和“匹配”模式下)。

 

二、BeanShell斷言

 1、什麼是BeanShell斷言?

      BeanShell斷言可以使用beanshell指令碼來執行斷言檢查,可以用於更復雜的個性化需求,使用更靈活,功能更強大,但是要能夠熟練使用beanshell指令碼。

      在這裡除了可以使用beanshell的內建變數外,主要透過Failure和FailureMessage來設定斷言結果。

Failure = false;-----表示斷言成功,

FailureMessage = "……"; ----自定義的成功資訊

Failure = true;-----表示斷言失敗,

FailureMessage = "……";-----自定義的失敗資訊。

      下面看一個簡單的示例:

其中指令碼內容如下:

if ("200".equals(""+ResponseCode) == false )

{

    // 響應碼不等於200時,設定斷言失敗,並輸出失敗資訊

    Failure=true ;

    FailureMessage ="Response code was not a 200 response code it was " + ResponseCode + "." ;

    print ( "the return code is " + ResponseCode);   // this goes to stdout

    log.warn( "the return code is " + ResponseCode); // this goes to the JMeter log file

} else {

    // 響應碼等於200時,設定斷言成功,並輸出成功資訊

    Failure=false;

    FailureMessage = "Return true, and the response code was " + ResponseCode;

     }

}


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69942496/viewspace-2654224/,如需轉載,請註明出處,否則將追究法律責任。

相關文章