jmeter--斷言
------------恢復內容開始------------
1. substring和包含的區別
模式匹配規則,有五個選項。預設的是Substring,這種模式就是要斷言的文本里,是否包含有要斷言的內容。新增一個要測試的模式,裡面寫上 張三 。
我們看到第一個選項為 包括,包括 和 Substring 是差不多的,不同點就是
包括 的測試模式裡面可以寫正則表示式,可以寫多個文字
而 Substring 的測試模式裡面,不能寫正則表示式,比如可以這樣寫,也可以寫多個文字,哈哈
匹配,也是這樣,只是 匹配 的測試模式裡可以用正則,Equals 的測試模式裡,不能用正則。
Equals,學過java就會知道,這個可以用來判斷兩個字串的內容是否完全一樣。這裡也是這個意思,就是斷言響應的文字是否就是測試模式裡的文字,要完全一樣,一個字元都不能差。
2. 持續時間斷言
判斷是否在給定的時間內返回響應結果
可用來做介面效能測試
3. size assertion
可以拿來判斷響應體是否超大
4. beanshell斷言
可以通過prev.getResponseDataAsString獲取響應資料。
String response=""; String str="百度一下"; response=prev.getResponseDataAsString(); if(response.contains(str)==false){ Failure=true; String Msg="\n介面報錯啦啦"; FailureMessage=Msg+"\n"+"期望結果:\n"+str+"響應內容:\n"+response; }
import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; JSONObject object=JSONObject.parseObject(prev.getResponseDataAsString()); System.out.println("stateWord = "+object.getInteger("stateWord")); if(object.getString("msg")!=null){ log.info("msg = "+object.getString("msg")); }else { log.info("Wrong JSON Fromat, do not find msg"); } if(object.getString("time")!=null){ log.info("time = "+object.getString("time")); }else { log.info("Wrong JSON Fromat, do not find time"); } if(object.getJSONArray("data")!=null){ JSONArray jsonArray=object.getJSONArray("data"); if(jsonArray.size()<1){ log.info("Wrong JSON Fromat, do not find any data in data list"); }else { for (int index=0;index<jsonArray.size();index++){ JSONObject obj=jsonArray.getJSONObject(index); log.info("stateWord = "+obj.getInteger("stateWord")); if(obj.getString("CustomDataLen")!=null){ log.info("CustomDataLen = "+obj.getString("CustomDataLen")); }else { log.info("Wrong JSON Fromat, do not find CustomDataLen"); } if(obj.getString("CustomData")!=null){ log.info("CustomData = "+obj.getString("CustomData")); }else { log.info("Wrong JSON Fromat, do not find CustomData"); } if(obj.getString("Signature")!=null){ log.info("Signature = "+obj.getString("Signature")); }else { log.info("Wrong JSON Fromat, do not find Signature"); } } } }else { log.info("Wrong JSON Fromat, do not find data"); }
5. Json path斷言
首先,需要安裝外掛
參考:
https://www.jianshu.com/p/fac6e9032158
4種斷言
https://www.cnblogs.com/111testing/p/11219979.html
https://blog.51cto.com/6183574/2441645
jsonpath:https://www.cnblogs.com/jaychang/p/7022071.html
jmeter響應中出現亂碼
https://www.jianshu.com/p/bf6a618800f1
------------恢復內容結束------------