1. 程式人生 > 實用技巧 >jmeter--斷言

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

------------恢復內容結束------------