python接口自动化测试中,如何校验json返回数据的格式是否正确

Posted 只宅不技术

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python接口自动化测试中,如何校验json返回数据的格式是否正确相关的知识,希望对你有一定的参考价值。

校验json返回数据格式是否正确需要用到jsonschema

首先进行安装

pip install jsonschema

示例

from jsonschema import validate

result = {
    "code" : 0,
    "name": "中国",
    "msg": "login success!",
    "password": "000038efc7edc7438d781b0775eeaa009cb64865",
    "username": "test"
}
#校验数据格式设定
schema = {
    "$schema": "http://json-schema.org/draft-04/schema#",
    "title": "test demo",
    "description": "validate result information",
    "type": "object",
    "properties": {
        "code": {
            "description": "error code",
            "type": "integer"
        },
        "name": {
            "description": "name",
            "type": "string"
        },
        "msg":
        {
            "description": "msg",
            "type": "string"
        },
        "password":
        {
            "description": "error password",
            "maxLength": 20,
            "pattern": "^[a-f0-9]{20}$",  # 正则校验a-f0-9的16进制,总长度20
            "type": "string"
        }
    },
    "required": [
        "code","name", "msg", "password"
    ]
}

# validate校验, 跟assert断言一个意思
validate(instance=result, schema=schema)

输出为

 

因为password长度超过了我们校验中限制的最大长度20

 

以上是关于python接口自动化测试中,如何校验json返回数据的格式是否正确的主要内容,如果未能解决你的问题,请参考以下文章

接口自动化测试,一键快速校验接口返回值全部字段

python接口自动化测试-unittest-单个用例管理

使用WisdomTool RESTClient进行自动化测试,如何取消对返回的body内容的校验?对排除的JSON属性字段不做校验?

接口自动化测试,一键快速校验接口返回值全部字段

技术必备:推荐一款接口自动化测试数据校验神器

python接口自动化测试十二:对返回的json的简单操作