有时后端开发同学手抖导致返回的数据结构发生变动,例如,少个字段,多个字段、结构发生变化等,客户端测试同学在没有遇到相应场景时不会发现这样的问题,所以在在接口自动化中,需要对返回的数据结构进行校验,正好postman提供了json- schema校验,结合业务,校验方式如下:
const schema = {
'$schema': 'http://json-schema.org/draft-07/schema#',
'title': '登录接口',
'description': '登录接口返回数据校验',
'type': 'object',
'properties': {
'errno': {
'type': 'integer',
'description': '错误编码'
},
'errmsg': {
'type': 'string',
'description': '返回信息'
},
'data': {
'type': 'object',
'properties': {
'countryAbbr': { 'type': 'string' },
'countryCode': { 'type': 'string' },
'email': {
'type': 'string',
'format': 'email'
},
'region': { 'type': 'string' },
'shopifyStoreToken': { 'type': 'string' },
'sid': { 'type': 'string' },
'tutuUid': { 'type': 'string' },
'tutuUsername': { 'type': 'string' },
'uid': { 'type': 'string' }
},
'required': ['countryAbbr', 'countryCode', 'email', 'region', 'shopifyStoreToken', 'sid', 'tutuUid', 'tutuUsername', 'uid']
}
},
'required': [
'errno',
'errmsg',
'data'
]
};
pm.test("Response contains valid JSON data", () => {
pm.response.to.have.jsonSchema(schema);
});
json- schema可以对返回结构进行校验,也可以对字段的类型进行校验,例如,string、integer,也可以对枚举的数据进行校验,例如[1, 2, 3]等,也可以对邮箱格式进行校验,例如fomat:email,对日期格式进行校验,例如,format:date-time等。
这样就可以把接口的返回数据全方位监控起来了。