jmeter--5.断言

目录

1. 响应断言

1.1 添加断言

1.2 名词解释

断言失败显示示例

2. json断言

2.1 添加断言

2.2 名词解释

断言失败显示示例

2.3 json断言应用

3. beanshell断言

3.1 添加断言

3.2 原理

断言失败显示示例


1. 响应断言

1.1 添加断言

线程组->添加->断言->响应断言

jmeter--5.断言_第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数据
  • 文档(文本):能获取到的所有文本
  • 忽略状态:一个请求进行多项响应断言时,忽略某一项断言的响应结果,而继续下一项断言
  • 请求数据:请求体中的信息

模式匹配规则:

  • 包括:包含上面的信息即算匹配通过,支持正则表达式
  • 匹配:完全对应上上面的信息才算匹配通过,支持正则表达式
  • 相等:响应结果与上面指定信息完全一致才算匹配通过,不支持正则表达式
  • 字符串:包含上面的信息即算匹配通过。不支持正则表达式,对大小写敏感
  • 否:与上面勾选的信息反转即算通过,不包含不匹配勾选的信息

测试模式

  • 需要匹配的正则表达式或字符串。这里可以添加多项。
  • 每一项会分开进行验证
  • 如果一条验证失败,后边的不会再进行验证

断言失败显示示例

jmeter--5.断言_第2张图片

2. json断言

2.1 添加断言

线程组->添加->断言->json断言

jmeter--5.断言_第3张图片

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:取反

断言失败显示示例

jmeter--5.断言_第4张图片

2.3 json断言应用

  • 返回的数据必须是json格式
  • 必须按照jsonpath的语法进行指定路径搜索,找不到对应路径的数据断言失败
  • jsonpath是根据键值对的键去找值进行数据校验
  • 返回的是字段,需要转为字符串后再进行比较

3. beanshell断言

3.1 添加断言

线程组->添加->断言->beanshell断言

jmeter--5.断言_第5张图片

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;
}

断言失败显示示例

jmeter--5.断言_第6张图片

你可能感兴趣的:(测试工具,jmeter,学习,开发语言)