接口测试进阶:在接口测试中框架中使用json schema
当今接口测试越来越重要,一般情况下我们总是会对接口的返回的 json 字符串进行验证,看返回是否跟我们的预期相符。不过很多情况下我们会遇到下面的问题
- 响应结果在测试中不停的发生变动,比如昨天还是 3 个字段,今天可能返回值里只有 2 个字段了,测试这边没有比较好的方式感受到后端的变化
- 我们需要对 json 的返回值进行一些校验,需要写很多的断言,大部分时候这些断言都是相似的,或者是重复的,比如说校验某个字段的长度必须小于 10 之类的
那如何解决呢?
- 与前后端沟通好返回值的字段,类型以及校验规则,最好有前后端+测试端统一一份合约,大家都按照合约来进行数据的处理
- 测试的时候通过合约里定义好的校验规则进行数据校验
这时候 json schema 就派上用场了。
json schema
JSON Schema 是一种 JSON 媒体类型,用于定义 JSON 数据的结构。 JSON 模式旨在定义 JSON 数据的验证,可用于验证响应和请求 JSON。 在 JSON Schema 中,我们可以验证数据类型、字段是否为必填、最小长度或最大长度等。
举例
下面的数据代表了一个员工的信息
- id:
employeeId
- 员工名称:
employeeName
- 年龄:
employeeAge
- 职称:
jobTitle
- 爱好:
hobby
{
"employeeId": 1,
"employeeName": "Fulan",
"employeeAge": 23,
"jobTitle": "SDET",
"hobby": [
"watch movies",
"play football"
]
}
上面的定义其实是有一些疑问的,比如
- id 是什么意思
- employeeName 的最大长度是多少
- employeeAge 的最小值是什么
- jobTitle 是必填吗
- hobby 可以填几个
我们可以通过生成 JSON schema 来回答上面的问题