我们做接口自动化时,对接口返回值进行断言校验,除了常用字段的断言检测以外,还要对其他字段的类型进行检测
原因:
- 1、返回字段较多,无法保证每个字段都写断言
- 2、防止后端未做null值的校验判断,如果因为版本变更或网络等原因造成某个不能接收null值的返回字段为null,就很有可能造成软件的崩溃
- 3、某些数值是不能为负的
- 4、小数点保留位数,对于股票的交易、医疗数据的分析,小数点的精确度都是有其实际价值的
资料和工具
Json Schema 官网:http://json-schema.org/
Json schema tool:https://www.jsonschema.net/
rest-assured 官方schema用法:https://github.com/rest-assured/rest-assured/wiki/Usage#json-schema-validation
介绍和使用
进入Json schema tool,将需要解析的json字符串复制到页面左边,然后点击
INFER SHCEMA
,就会自动转换为schema json文件类型,会将每个地段的返回值类型都设置一个默认类型
这个就是schema最常用也是最实用的功能,也可以对每种类型的字段最更细化的区间值校验或者断言,具体感兴趣的话可以从官网学习;平常对重要字段的校验我通常会选用其他断言。
在右上角有个复制的按钮,将schema内容复制到需要保存的路径文件中
在rest-assured官网上获取信息:
- 先添加json-schema-validator依赖(尽量与rest-assured版本保持一致)
<dependency>
<groupId>io.rest-assured</groupId>
<artifactId>json-schema-validator</artifactId>
<version>4.0.0</version>
</dependency>
- 然后在测试用例用调用schema断言,传入schema文件路径即可
.body(matchesJsonSchemaInClasspath("responseSchema/test.schema"))