目录
1. 响应断言
1.1 添加断言
1.2 名词解释
断言失败显示示例
2. json断言
2.1 添加断言
2.2 名词解释
断言失败显示示例
2.3 json断言应用
3. beanshell断言
3.1 添加断言
3.2 原理
断言失败显示示例
1. 响应断言
1.1 添加断言
线程组->添加->断言->响应断言
1.2 名词解释
Apply to :
- Main sample and sub-samples: 作用于父节点取样器及对应子节点取样器
- Main sample only: 仅作用于父节点取样器(默认选择)
- Sub-samples only: 仅作用于子节点取样器
- JMeter Variable Name to use: 作用于jmeter变量(写入jmeter的变量名称,从这里面提取需要的值)
测试字段:
- 响应文本:返回的响应文本,不包含响应头
- 响应代码:请求返回的响应码
- 响应信息:请求返回的响应信息
- 响应头:请求返回的响应头
- 请求头:请求信息的请求头
- URL样本:请求URL数据
- 文档(文本):能获取到的所有文本
- 忽略状态:一个请求进行多项响应断言时,忽略某一项断言的响应结果,而继续下一项断言
- 请求数据:请求体中的信息
模式匹配规则:
- 包括:包含上面的信息即算匹配通过,支持正则表达式
- 匹配:完全对应上上面的信息才算匹配通过,支持正则表达式
- 相等:响应结果与上面指定信息完全一致才算匹配通过,不支持正则表达式
- 字符串:包含上面的信息即算匹配通过。不支持正则表达式,对大小写敏感
- 否:与上面勾选的信息反转即算通过,不包含不匹配勾选的信息
测试模式
- 需要匹配的正则表达式或字符串。这里可以添加多项。
- 每一项会分开进行验证
- 如果一条验证失败,后边的不会再进行验证
断言失败显示示例
2. json断言
2.1 添加断言
线程组->添加->断言->json断言
2.2 名词解释
Assert JSON Path exists:断言的JSON元素的路径,即jsonpath
Additionally assert value:是否额外验证根据jsonpath提取的值。勾选-验证根据jsonpath提取值是否符合预期,不勾选-验证jsonpath能否在JSON文档中找到路径
Match as regular expression:勾选-预期值可以使用正则表达式,不勾选-预期值不能使用正则表达式。如果需要使用正则表达式就需要勾上,默认勾选上的
Expected Value:预期值,需要与jsonpath提取到的值进行对比
Expect null:若提取验证的值为null,则需要勾选上,否则验证的是JSONPath能否找到路径。注意预期值不填表示空,与null不等价,需要设置预期为:[],表示空数组
Invert assertion:取反
断言失败显示示例
2.3 json断言应用
- 返回的数据必须是json格式
- 必须按照jsonpath的语法进行指定路径搜索,找不到对应路径的数据断言失败
- jsonpath是根据键值对的键去找值进行数据校验
- 返回的是字段,需要转为字符串后再进行比较
3. beanshell断言
3.1 添加断言
线程组->添加->断言->beanshell断言
3.2 原理
主要通过Failure标识是否失败和FailureMessage标识失败信息。
//1. 断言返回的状态码
if("201".equals(""+ResponseCode)){
Failure = false; //Failure=false 断言成功
FailureMessage = "断言状态码成功!";
}else{
Failure = true; //Failure=true 断言失败
FailureMessage = "断言状态码为201,返回的状态码为:"+ResponseCode;
}
//2.断言返回的结果中包含有某一个字符串
var result = prev.getResponseDataAsString(); //获取相应数据
if(result.contains("accesstoken")){
Failure = false;
FailureMessage = "断言返回结果中包含[access_token]成功!";
}else{
Failure = true;
FailureMessage = "断言返回结果中包含[accesstoken],返回的信息为:"+result;
}