什么是全量字段校验:
校验接口返回响应结果的全部字段(更进一步的断言)。
校验内容:
1.字段值
2.字段名或者字段类型
校验流程:
1.定义 校验规则(json语法,只能针对json对象校验,如果要校验状态码,直接用assert字段进行断言)
2.比对 响应数据 是否 复合 校验规则
安装jsonschema:
pip install jsonschema -i https://pypi.douban.com/simple/
校验是否安装成功:
cmd pip list或者pycharm 编辑器上查看
JSON数据:
{
"success":true,
"code":1000,
"message":"操作成功"
}
整个json数据是一个对象,包含success、code、message字段,并且是必填字段,success是布尔类型,code是整数,message是字符串类型。
{
"type":"object",
"properties":{
"success":{"type":"boolean"},
"code":{"type":"integer"},
"message":{"type":"string"}
},
"required":["success","code","message"]
}
python校验步骤:
- 导包import jsonschema
- 定义jsonschema格式 数据校验规则
- 调用jsonschema.validate(instance=“json数据”,schema=“jsonachema规则”)
查验校验结果:
4. 校验通过:返回None
5. 校验失败
schema规则错误,返回schemaError
json数据错误,返回ValidationError
#导包
import jsonschema
#创建校验规则
schema = {
"type": "object",
"properties": {
"success": "boolean",
"code": "integer",
"message": "string"
},
"requied": ["success", "code", "message", "data"]
}
#准备待校验数据
json_data={
"success":True,
"code":10000,
"message":"操作成功"
}
#调用方法,进行校验
res=jsonschema.validate(instance=json_data,schema=schema)
#查看校验结果
print("校验结果":,res)
关键字:
const:json元素必须等于指定内容
type:表示待校验元素的类型
properties:定义待校验json对象中,各个key-value中对value的限值条件
required:定义待校验json对象中,必须存在的key
pattern:使用正则表达式约束字符串类型数据
(^登录成功:以登录成功开头;登录成功$:以登录成功结尾;登录成功:包含登录成功)
综合案例:
import jsonschema
schema = {
"type": "object",
"properties": {
"success": {"type": "boolean"},
"code": {"type": "integer"},
"message": {"pattern": "登录成功$"},
"data": {"type": "string",
"properties":{
"name":{"const":"lily"},
"age":{"const":14}
},
"required":["name","age"]
}
},
"requied": ["success", "code", "message", "data"]
}
jsonschema.validate(instance=resp.json(), schema=schema)
data={
"success":Falese,
"code":1000,
"message":"登录成功",
"data":{
"age":18,
"name":"lily"
}
}