JSON数据校验

JSON Schema 简介

JSON Schema is a vocabulary that allows you to annotate and validate JSON documents.

Json Schema定义了一套词汇和规则,这套词汇和规则用来定义Json元数据,且元数据也是通过Json数据形式表达的。Json元数据定义了Json数据需要满足的规范,规范包括成员、结构、类型、约束等

在接口自动化测试中,如果需要校验的json数据字段非常多。虽然我们可以使用类似jsonpathjmespath来提取数据后一一校验,但字段非常多的话就不是很方便,这里就不妨尝试使用JSON Schema来校验

JSON Schema相关文档

JSON Schema校验器

JSON Schema生成器

python-jsonschema简单使用

安装

pip install jsonschema

简单使用示例

from jsonschema import validate
import json

# schema示例,使用用在线schema生成器生成后保存为文件如schema.json
with open('schema.json', 'r') as f:
    schema = json.load(f)
'''
schema = {
    "type": "object",
    "properties": {
        "price": {"type": "number"},
        "name": {"type": "string"},
    },
}
'''

def test_json_schema_success():
    validate(instance={"name": "Eggs", "price": 34.99}, schema=schema)

# ValidationError: 'Invalid' is not of type 'number'
def test_json_schema_fail():
    validate(instance={"name": "Eggs", "price": "Invalid"}, schema=schema)

参考及扩展阅读