首页 > 其他分享 >httprunner 4.x学习 - 5. validate 断言总结

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

时间:2023-05-05 23:36:03浏览次数:26  
标签:httprunner 断言 校验 value equals expect validate eq check

前言

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}

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

  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    # 可选项,当校验失败时的提示语

(备注:第二种校验方式与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"关键字无关紧要,没多大作用
)

使用示例

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

使用示例

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"]

标签:httprunner,断言,校验,value,equals,expect,validate,eq,check
From: https://www.cnblogs.com/yoyoketang/p/17375624.html

相关文章

  • Vue el-form表单resetFields与clearValidate方法失效的三个坑
    1.在el-form标签中必须要绑定一个model,而且必须是:model,不能是v-model,这个是element-ui那边规定2.prop属性需要和上述model绑定的对象里的字段完全一致3.调用方法是this.$refs["refName"].resetFields(),this.$refs["refName"].clearValidate(["name"]),注意是this.$refs(vue3中是......
  • HttpRunner 4.x 学习2 - 快速创建项目
    执行 hrpstartprojectdemo  命令,即可初始化指定名称的项目工程。hrpstartprojectauto快速创建项目demo├──.env是环境配置文件├──.gitignore传git仓库时忽略文件├──debugtalk.py辅助函数功能文件├──har辅助函数功能文件......
  • httprunner 4.x学习 - 3.variables 变量声明与引用
    前言在HttpRunner中,支持变量声明(variables)和引用($var或${var})的机制。在config和step中均可以通过variables关键字定义变量,然后在测试步骤中可以通过$变量名称的方式引用变量。区别在于在config中定义的变量为全局的,整个测试用例(testcase)的所有地方均可以引......
  • httprunner 4.x学习 - 2.测试用例结构(testcase)
    前言httprunner4.x版本,YAML/JSON格式用例(testcase)结构延续了之前的config和teststeps两个部分config配置部分config部分示例config:name:"requestmethodstestcasewithfunctions"variables:foo1:config_bar1foo2:config_bar2......
  • Httprunner4.x-02-运行测试项目
    安装环境:pip3installhttprunner遇到问题:subprocess-exited-with-error解决方法:pipinstall--upgradesetuptools ......
  • 交个朋友HttpRunnerV4.x 01-初次见面
     背景:Pytest是纯接口的自动化框架。而HttpRunner一款开源测试平台,可以实现接口测试/压力测试DevOps/数字体验监测。那交个新朋友HttpRunner学习下。 米哈游-平台部、有米科技-测试与工程质量保障部、通用环球医疗-环球健康等客户案例在使用HttpRunner框架。 为什么......
  • pytest常用断言
    如上官网所说,pytest使用python中的assert来比较实际值与预期值,实现断言功能1常用的断言方式assertxxxasserta==basserta!=basserta>basserta<bassertainbassertanotinbassertinstance(a,int)asserta>banda>c同时断言多个条件asserta>bo......
  • golang —— 类型断言的妙用
    最近写代码的时候发现编译器老是会给switchv.(type)一个简化提醒couldeliminatetypeassertionsinswitchcases,于是尝试根据提醒优化了一下: switchv:=v.(type){ caseint: m[k]=v*2 casestring: m[k]=goStrings.Repeat(v,2) default: }最后发现居......
  • SpringBoot2 hikari关于 Failed to validate connection com.mysql.cj.jdbc.Connectio
    项目启动不报错,如果静默15分钟没有数据库操作就报上述错误WARN不影响程序运行Failedtovalidateconnectioncom.mysql.cj.jdbc.ConnectionImpl@16244d67(Nooperationsallowedafterconnectionclosed.).PossiblyconsiderusingashortermaxLifetimevalue.发现Spri......
  • @Valid 和 @Validated 注解用法详解
     目录案例引入@Valid详解@Validated详解@Valid和@Validated比较  案例引入下面我们以新增一个员工为功能切入点,以常规写法为背景,慢慢烘托出@Valid和@Validated注解用法详解。那么,首先,我们会有一个员工对象Employee,如下:/***员工对象**@authors......