前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >httprunner 4.x学习 - 5. validate 断言总结

httprunner 4.x学习 - 5. validate 断言总结

作者头像
上海-悠悠
发布2023-08-22 11:15:22
2750
发布2023-08-22 11:15:22
举报

前言

HttpRunner4.x 支持两种(jmespath 和 正则)提取返回结果的方式,并且内置了丰富的校验结果的方式

assert校验方式

validate 可以支持的校验方式

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结尾

yaml 中可以写2种格式校验

httprunner 校验返回结果有2种格式

  • {"assert_name": [check_value, expect_value]}
  • {"check": check_value, "assert": assert_name, "expect": expect_value, "message": check status code}

第一种校验方式,也就是前面常用到的

代码语言:javascript
复制
  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"]

第二种校验方式

代码语言:javascript
复制
  validate:
    - check: status_code            # 检查点,支持 jmespath 和正则提取
      assert: eq                    # 断言方式
      expect: 200                   # 期望结果
      message: check status code    # 可选项,当校验失败时的提示语

(备注:第二种校验方式与httprunner3.x版本相比做了一些修改,以前的校验格式是{"check": check_value, "comparator": comparator_name, "expect": expect_value} 现在改成了{"check": check_value, "assert": assert_name, "expect": expect_value, "message": check status code} 总体来说”comparator” 关键字换成了 “assert”, “message”关键字无关紧要,没多大作用 )

使用示例

代码语言:javascript
复制
config:
  name: 校验结果

teststeps:
-
  name: post
  variables:
    username: test456
  request:
    method: POST
    url: http://httpbin.org/post
    json:
      username: ${username}
      password: "123456"
  extract:
    url: body.url
    origin: body.origin
    type: headers."Content-Type"
  validate:
    - check: status_code
      assert: eq
      expect: 200
    - check: body.url
      assert: eq
      expect: "http://httpbin.org/postx"
      message: 校验body的url值

contains 校验包含

关于 contains 和 contained_by 函数定义

  • check_value 是需要校验的返回结果
  • expect_value 是期望结果,可以是这几种类型:list, tuple, dict, basestring

使用示例

代码语言:javascript
复制
config:
  name: 校验结果

teststeps:
-
  name: post
  variables:
    username: test456
  request:
    method: POST
    url: http://httpbin.org/post
    json:
      username: ${username}
      password: "123456"
  extract:
    url: body.url
  validate:
    - eq: [status_code, 200]
    - contains: ["${url}", "httpbin.org/post"]
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2023-05-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 从零开始学自动化测试 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • assert校验方式
  • yaml 中可以写2种格式校验
  • contains 校验包含
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档