jmeter中使用beanshell斷言


之前講了jmeter中beanshell腳本的使用,其實還可以借助beanshell來進行斷言,這種斷言方式相對響應斷言、json斷言來說更為靈活,可以自己構造想要斷言的內容

先來看一下接口的場景:

接口A是一個新增數據接口,新增成功后,列表中的數據會多出1條,但是這個接口返回內容比較少,只有一個msg信息和狀態碼。

所以為了更好的斷言,我打算每次新增前后都調一下查詢接口,獲取新增前后,列表中的數據總數,如果前后相差1,則認為新增成功;如果前后相等,則認為接口請求失敗

開始嘗試了json斷言,如下

但是實際運行后,結果如下

所以后來嘗試使用 beanshell 斷言

import org.json.*;

String responseData = prev.getResponseDataAsString(); //獲取請求的返回結果

JSONObject response = new JSONObject(responseData);

//log.info(response.getJSONObject("data").toString());
//log.info(response.getJSONObject("data").get("total").toString());

data = response.get("data").get("total")-1; // 新增成功后的數據總量減去1
//log.info(data.toString());


if (data.equals(${total1}))  //判斷新增一條數據后再減去1的值與新增前是否一致
    {
    Failure=false ;  // 如果相等,則斷言成功
    FailureMessage = "斷言成功";
//    log.info(data.toString());
    } 
else {
    
    Failure=true;  // 如果不相等,則斷言失敗

    FailureMessage = "斷言失敗";
//    log.info(data.toString());
    }

 data.equals(${total1}) 是判斷data的值與total是否相等;

如果相等,則這個接口是成功的,我們期望這個斷言標記為成功

beanshell使用Failure來標記失敗,所以這里我們寫 Failure=false ,表示不返回失敗;

如果不想等,則接口調用失敗,我們期望這個斷言標記為失敗

所以這里我們寫 Failure=true ,返回失敗;

FailureMessage是自定義的斷言信息,當斷言失敗時,可以打印出結果

這樣就斷言就寫好了,可以參考上述方式,從響應內容中提取想要的字段信息,來和預期結果進行比對。

 


免責聲明!

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



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