前言
HttpRunner4.x 内置了丰富的校验结果的方式
校验方式
assert | 缩写 | 说明 |
---|---|---|
equal | "eq", "equals", "equal" | 相等 |
less_than | "lt", "less_than" | 小于 |
less_or_equals | "le", "less_or_equals" | 小于或等于 |
greater_than | "gt", "greater_than" | 大于 |
greater_or_equals | "ge", "greater_or_equals" | 大于或等于 |
not_equal | "ne", "not_equal" | 不等于 |
string_equals | "str_eq", "string_equals" | 转字符串相等 |
length_equal | "len_eq", "length_equal" | 长度相等 |
length_greater_than | "len_gt","length_greater_than" | 长度大于 |
length_greater_or_equals | "len_ge","length_greater_or_equals" | 长度大于或等于 |
length_less_than | "len_lt", "length_less_than" | 长度小于 |
length_less_or_equals | ""len_le", "length_less_or_equals" | 长度小于或等于 |
contains | check_value 包含 expect_value | |
contained_by | expect_value 包含check_value | |
type_match | type类型匹配 | |
regex_match | 正则匹配re.match(expect_value, check_value) | |
startswith | 字符串以xx开头 | |
endswith | 字符串以xx结尾 |
2种校验方式:
validate:- eq: [status_code, 200]- eq: [body.url, "http://httpbin.org/post"]- eq: [body.origin, "183.193.27.78"]- eq: [headers."Content-Type", "application/json"]
validate:- check: status_code # 检查点,支持 jmespath 和正则提取assert: eq # 断言方式expect: 200 # 期望结果message: check status code # 可选项,当校验失败时的提示语
案例:
config:name: 案例teststeps: -name: postvariables:username: adminrequest:method: POSTurl: http://120.25.121.168:19001/api/loginjson:username: ${username}password: "quxue2023"validate:- eq: [status_code, 200]- eq: [body.data.username, "admin"]- eq: [body.data.message, "成功"]- eq: [headers."Content-Type", "application/json"]
contains 校验包含
关于 contains 和 contained_by 函数定义
- check_value 是需要校验的返回结果
- expect_value 是期望结果,可以是这几种类型:list, tuple, dict, basestring
config:name: 案例teststeps: -name: postvariables:username: adminrequest:method: POSTurl: http://120.25.121.168:19001/api/loginjson:username: ${username}password: "quxue2023"validate:- eq: [status_code, 200]- eq: [body.data.username, "admin"]- contains: [body.data.username, "2024"]- eq: [body.data.message, "成功"]- eq: [headers."Content-Type", "application/json"]