1.断言是什么
断言:依靠软件程序自动判断操作结果的正确性,用于检查测试中得到的响应数据等是否符合预期。在接口测试用例中没有断言的接口用例是无效的,一个接口的断言有三个层面,一个是HTTP状态码的断言,另外一个是业务状态码的断言,最后是某一接口请求后服务端响应数据的断言
简单来讲,断言会在接口调用后尝试捕捉接口响应结果片段,如果能捕捉到,则判定接口成功,否则判定接口为失败
2.Jmeter最常用断言实现
2.1Response Assertion(响应断言)
作用域:
作用位置 | 生效位置 |
---|---|
线程组 | 所有取样器生效 |
取样器 | 该取样器生效 |
一般情况下,我们用默认配置即可。各个项目也简略解释如图:
Apply to | 响应断言的应用范围 |
---|---|
Main sample and sub-samples | 作用于父节点取样器及对应子节点取样器 |
Main sample only | 只作用于父节点取样器(一般的断言都选这个) |
Sub-samples only | 只作用于子节点取样器 |
JMeter Variable | 只作用于jmeter变量(可写入正则提取的响应值) |
下面用看一个小例子
请求百度:
响应数据:
在【百度一下】请求下添加响应断言:
执行请求,查看结果树:
断言判定失败,把上面断言中的“千度一下”改为“百度一下”,再次执行,则接口判定为成功。
2.2Json断言
JSON断言可以对服务器返回的JSON文档进行验证。
JSON断言有两种使用模式:
1.根据JSONPath能否在JSON文档中找到路径;
2.根据JSONPath提取值并对值进行验证。
若文档格式为非JSON则断言失败;找不到路径断言失败;提取值与预期值不一致断言失败。
添加-断言-Json断言
若响应数据返回是Json格式,我们可以对其进行json断言操作
这里有两个地方需要额外注意:
(1)验证null值,还是需要勾选“Additionally assert value”,否则验证的是JSONPath能否找到路径;
(2)预期值不填表示空字符,与null不等价。