jmeter响应断言使用_十二、Jmeter断言-响应断言、Json断言和Beanshell断言
所謂斷言,就是檢查接口的返回是否符合預期。
自動化測試腳本,如果斷言做的不好,就好比測試用例不寫預期結果,因此我認為斷言是最重要一部分。
關于如何做好斷言,我覺得要做到:要斷言的內容一定是唯一的,每個接口都要做斷言。舉例
用例:新增一條數據,然后去列表查看新增是否成功。新增數據,如果成功返回數據id,如下:
{"id": "63c81f8c-ba80-4504-ac1d-66f3774307b2","msg":"ok","code":0 }列表數據返回如下:
無數據 {"data": [] }有數據 {"data": [{"id": "63c81f8c-ba80-4504-ac1d-66f3774307b2","name": "zhangsan"}] }如何要斷言列表中存在我新增的數據?錯誤斷言:斷言data,不管是否存在我們要的數據,返回內容都包含data正確斷言:從新增接口提取返回的ID,然后斷言ID出現在列表中注意:如果id是自增形式的,建議使用json斷言,在這里json斷言是首選
實現斷言的三種方式
我們首先要把新增接口的id提取出來,用到json提取器,具體配置見下圖
JSON斷言
json斷言配置如下,取出列表所有數據的id看是否存在新增返回的id
關于json斷言配置解釋,在前面文章已經有介紹。
響應斷言
通過響應斷言進行斷言預期,只需要判斷列表數據中出現id,配置如下
關于響應斷言配置解釋,在前面文章已經有介紹。
Beanshell斷言
Beanshell斷言在實際運用的比較少,除非是結果需要經過處理后進行斷言才用得到,本文為了舉例,用Beanshell斷言實現我們的目的,配置如下
附上腳本源碼
import org.json.*;//獲取上一個請求的返回值 String response = prev.getResponseDataAsString(); //將返回值轉換為json JSONObject responseJson = new JSONObject(response); //從json提取data數組 JSONArray dataList = responseJson.getJSONArray("data"); //遍歷所有列表,判斷是否存在idfor(i==0;i<dataList.length;i++){JSONObject item = dataList[i];if(item.get("id")==${id}){Failure = false; FailureMessage = "存在新增的id";break;}else{Failure = true; FailureMessage = "不存在新增的id";}}補充
假如我們執行刪除數據后,我們需要斷言不存在于列表
響應斷言取反
json斷言取反
Beanshell斷言讀者自己想想如何處理吧,比較靈活!
總結
以上是生活随笔為你收集整理的jmeter响应断言使用_十二、Jmeter断言-响应断言、Json断言和Beanshell断言的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux sed给空文件首行插入_li
- 下一篇: python 去除字符串的标点符号 用_