httprunner---validate校验器

validate校验器

在httprunner的源码里,utils.py可以找到有哪些校验方法

def get_uniform_comparator(comparator):
    """ convert comparator alias to uniform name
    """
    if comparator in ["eq", "equals", "==", "is"]:
        return "equals"
    elif comparator in ["lt", "less_than"]:
        return "less_than"
    elif comparator in ["le", "less_than_or_equals"]:
        return "less_than_or_equals"
    elif comparator in ["gt", "greater_than"]:
        return "greater_than"
    elif comparator in ["ge", "greater_than_or_equals"]:
        return "greater_than_or_equals"
    elif comparator in ["ne", "not_equals"]:
        return "not_equals"
    elif comparator in ["str_eq", "string_equals"]:
        return "string_equals"
    elif comparator in ["len_eq", "length_equals", "count_eq"]:
        return "length_equals"
    elif comparator in ["len_gt", "count_gt", "length_greater_than", "count_greater_than"]:
        return "length_greater_than"
    elif comparator in ["len_ge", "count_ge", "length_greater_than_or_equals", \
        "count_greater_than_or_equals"]:
        return "length_greater_than_or_equals"
    elif comparator in ["len_lt", "count_lt", "length_less_than", "count_less_than"]:
        return "length_less_than"
    elif comparator in ["len_le", "count_le", "length_less_than_or_equals", \
        "count_less_than_or_equals"]:
        return "length_less_than_or_equals"
    else:
        return comparator

平常用eq比较多,eq就是equals的缩写,这里总结下相关的校验方法

那么上面的validate校验也可以用下面这种格式

  • eq equals,判断实际结果和期望结果是否相等,可以用"eq", "equals", "==", "is"
  • lt less_than, 判断实际结果小于期望结果 ,可以用 "lt", "less_than"
  • le less_than_or_equals,判断实际结果小于等于期望结果 ,可以用 "le", "less_than_or_equals"
  • gt greater_than,判断实际结果大于期望结果,可以用"gt", "greater_than"
  • ge greater_than_or_equals,判断实际结果大于等于期望结果,可以用"ge", "greater_than_or_equals"
  • ne not_equals, 判断实际结果和期望结果不相等,可以用"ne", "not_equals"
  • str_eq string_equals 判断转字符串后对比 实际结果和期望结果是否相等,可以用"str_eq", "string_equals"
  • len_eq length_equals 判断字符串或list长度,可以用"len_eq", "length_equals", "count_eq"
  • len_gt length_greater_than 判断实际结果的长度大于和期望结果,可以用"len_gt", "count_gt", "length_greater_than", "count_greater_than"
  • len_ge length_greater_than_or_equals 实际结果的长度大于等于期望结果,可以用"len_ge", "count_ge", "length_greater_than_or_equals", "count_greater_than_or_equals"
  • len_lt length_less_than 实际结果的长度小于期望结果,可以用"len_lt", "count_lt", "length_less_than", "count_less_than"
  • len_le length_less_than_or_equals 实际结果的长度小于等于期望结果,可以用"len_le", "count_le", "length_less_than_or_equals", "count_less_than_or_equals"
    {
        "code": 0,
        "datas": [
            {
                "age": 20,
                "create_time": "2019-09-15",
                "id": 1,
                "mail": "283340479@qq.com",
                "name": "yoyo",
                "sex": "M"
            },
            {
                "age": 21,
                "create_time": "2019-09-16",
                "id": 2,
                "mail": "123445@qq.com",
                "name": "yoyo111",
                "sex": "M"
            }
        ],
        "msg": "success!"
    }
    

    针对上面的返回结果写几种不同的validate,校验返回结果,

    - config:
        name: test_demo
        variables: {}
    - test:
        name: test_demo case1
        request:
            url: http://127.0.0.1:8000/api/test/demo
            method: GET
            headers:
                Content-Type: application/json
                User-Agent: python-requests/2.18.4
            json:
                username: test
                password: 123456
        extract:
            - mail: content.datas.0.mail         # 提取mail
        validate:
            - eq: [status_code, 200]
            - less_than: [status_code, 400]
            - equals: [content.code, 0]
            - equals: [content.msg, success!]
            - length_equals: [content.datas, 2]
            - greater_than_or_equals: [content.datas.0.age, 18]

    validate两种格式
     

  • {"comparator_name": [check_item, expect_value]}
  • {"check": check_item, "comparator": comparator_name, "expect": expect_value}
        validate:
            - check: status_code
              comparator: eq
              expect: 200
     
            - check: status_code
              comparator: less_than
              expect: 400
     
            - check: content.code
              comparator: equals
              expect: 0
     
            - check: content.msg
              comparator: equals
              expect: success!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值