schema断言
json Schema模式是一个词汇表,用于注释和验证json文档。
实际工作中,对接口返回值进行断言校验,除了常用字段的断言检测外,还需要对其他字段的类型进行检测,对返回的字段一个个写断言显然很耗时,这时候就需要一个模板,可以定义好数据类型和匹配条件,除关键参数外,其他可直接通过此模板来断言。
json schema官网:http://json-schema.org/implementations.html
环境准备
pip install jsonschema
生成jsonschema模板
首先需要有json字符串,然后借助工具将其生成json schema
工具1:网站JSON Schema Tool
工具2:apifox
输入json,点击json schema即可生成。
如json
{
"username": "string",
"password": "string"
}
{
"type": "object",
"properties": {
"username": {
"type": "string"
},
"password": {
"type": "string"
}
},
"required": [
"username",
"password"
],
"x-apifox-orders": [
"username",
"password"
]
}
python tests
新建python文件,输入如下代码,并运行test
可以看到通过了一条用例,这里其实是用的pytest单元测试框架。
如果把password的类型写错,则执行会出错,用例会失败。
from jsonschema.validators import validate
def test_schema():
schema={
"type": "object",
"properties": {
"username": {
"type": "string"
},
"password": {
"type": "number"
}
},
"required": [
"username",
"password"
],
}
validate(instance={"username":"eggs","password":123},schema=schema)