JSON数据校验
JSON Schema 简介
JSON Schema is a vocabulary that allows you to annotate and validate JSON documents.
Json Schema定义了一套词汇和规则,这套词汇和规则用来定义Json元数据,且元数据也是通过Json数据形式表达的。Json元数据定义了Json数据需要满足的规范,规范包括成员、结构、类型、约束等
在接口自动化测试中,如果需要校验的json数据字段非常多。虽然我们可以使用类似jsonpath、jmespath来提取数据后一一校验,但字段非常多的话就不是很方便,这里就不妨尝试使用JSON Schema来校验
JSON Schema相关文档
JSON Schema校验器
JSON Schema生成器
- 从代码生成:Pydantic
- json数据在线生成:jsonschema.net、quicktype.io
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)