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="
接口报错啦啦";
	FailureMessage=Msg+"
"+"期望结果:
"+str+"响应内容:
"+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

------------恢复内容结束------------

原文地址:https://www.cnblogs.com/vivian-xiaoyun/p/13524391.html