【JMeter】接口断言
文章目录
- 概览
- 默认断言
- 普通断言(响应断言)
- JSON断言
- 自定义断言
概览
断言含义:判断结果是否符合预期。
默认断言
默认情况下,预期状态码小于400。
状态码:
- 1xx:继续请求
- 2xx:请求成功
- 3xx:重新请求
- 4xx:客户端错误(你错了)
- 5xx:服务端错误(我错了)
示例:
期望:验证输入错误的用户名密码,接口返回失败。
实际:不加断言,输入错误的用户名密码,断言结果却显示成功的。
普通断言(响应断言)
示例:
期望:验证输入错误的用户名密码,接口返回失败。
实际:添加登录成功的响应断言,输入错误的用户名密码,断言结果显示失败。
JSON断言
示例:
期望:验证输入错误的用户名密码,接口返回成功。
实际:添加登录失败的JSON断言,输入错误的用户名密码,断言结果显示成功。
自定义断言
通过代码,完全自由的控制断言条件。
示例:
期望:验证输入错误的用户名密码,接口返回失败。
实际:添加JSR223断言,输入错误的用户名密码,断言结果显示失败。
(根据需求修改脚本中正则关键字出现次数中的/内容/、判断关键字出现次数中的数量0及断言失败消息即可)
脚本如下:
// JSR223 断言
sampler_code = prev.getResponseCode() //实际取样代码
sampler_data = prev.getResponseDataAsString() //实际取样内容//正则统计关键字出现次数
count_fail = (sampler_data =~ /用户名或密码错误/).size()
count_success = (sampler_data =~ /accessToken/).size()
log.info("fail:${count_fail} success:${count_success}")//判断关键字出现次数
if (count_success==0 && count_fail >0){log.info('断言失败')AssertionResult.setFailure(true)prev.setSuccessful(false) //修改取样器结果AssertionResult.setFailureMessage('有fail出现')
}else{log.info('断言成功')AssertionResult.setFailure(false)prev.setSuccessful(true) //修改取样器结果
}
log.info('自定义断言完成')