首页
学习
活动
专区
圈层
工具
发布
28 篇文章
1
如何设计自动化测试落地方案
2
【DevOps实践】5. Jenkins流水线集成SonarQube做代码质量分析
3
2023年十款开源测试开发工具推荐(自动化、性能、造数据、流量复制)
4
史上最全测试开发工具推荐(含自动化、性能、稳定性、抓包)
5
史上最全测试开发工具推荐(含自动化、APP性能、稳定性、抓包神器)
6
2021年软件测试工具大全(自动化、接口、性能、安全、测试管理)
7
软件测试_接口测试面试题_1.6
8
最全的 postman 工具使用教程!收藏了
9
单元测试指南
10
fiddler 抓包详细教程「建议收藏」
11
9个用于测试自动化的最佳AI测试工具(2024)
12
接口测试是什么?如何测试?
13
接口测试
14
从0到1学习接口自动化测试必备知识!
15
接口测试简介以及接口测试用例设计思路
16
httprunner 4.x学习 - 2.测试用例结构(testcase)
17
httprunner 4.x学习 - 5. validate 断言总结
18
初识Katalon Studio自动化测试工具
19
史上最全的Linux常用命令汇总(超全面!超详细!)收藏这一篇就够了!
20
LLM+RAG:AI生成测试用例智能体平台 (保姆级教程)
21
pytest+requests+allure实现接口自动化测试系列(10)-jenkins持续集成(完)
22
测试开发实战 | Docker+Jmeter+InfluxDB+Grafana 搭建性能监控平台
23
牛逼!花了9天,开发了一款一站式智能测试平台:STP!
24
Jmeter+Ant+Jenkins接口自动化测试平台
25
Locust + python + influxdb + grafana 展示性能压测QPS图表
26
那些高频的Python基础面试题
27
量化你团队的代码质量
28
如何在团队中做好Code Review

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

前言

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"]
下一篇
举报
领券