如何快速写出Json Schema,校验Json Schema

本文首发于微信公众号: 【软测小生】欢迎关注,有很多资料哦

如何快速写出Json Schema,校验Json Schema_第1张图片
image

得到一个Json文件,如何快速的去测试呢?
难道是一个个节点的去验证吗?那显然效率太低了。 一般推荐使用Json Schema(一种Json的数据结构定义)去校验。

对于JsonSchema,有很多种方式:可以自己一个个节点的写,可以使用生成工具,或者在线生成工具生成。

那么如何快速的根据Json内容 写出一个JsonSchema呢?
我最近在做Json相关的一些测试,总结了一套快速生成自己想要的JsonSchema的方法:

1、首先得到Json文件

复制到在线生成Json Schema的工具里面:
https://www.jsonschema.net/

如何快速写出Json Schema,校验Json Schema_第2张图片
image

2、优化你的Json Schema,成为你想要的Schema。

在上面截图中我们可以看到很多节点,$id、type、title、default、examples、required、pattern等
哪些东西是你想要的呢?这个你自己定好了

我在座的过程中一般会把$id、title、default、examples都去掉,因为我觉得这些都是些可有可无的东西,反而是太多了,造成干扰不是那么直观、简洁。

一般会根据数据节点的特征,只留下Type,需要用正则表达式匹配的留下pattern;需要特定长度的留下maxLenghminLength.

3、使用Notepad++批量去掉一些节点

比如使用正则表达式来匹配: "$id":.?\r\n* ** ——>匹配所有以$id:开头的行**
批量替换即可去掉所有的节点

如何快速写出Json Schema,校验Json Schema_第3张图片
image

自动生成的的Schema会对如下图出现的第一个节点生成第一个Schema,required会包含上面节点中的7个节点,在校验的时候第二项里面就报错,因为少了一个节点(默认这种情况是正常的,缺少借点就说明没数据,不是异常),这个时候就需要将required去掉,并将所有项的共同节点全列出来,就可以继续进行验证。

如何快速写出Json Schema,校验Json Schema_第4张图片
image

4、怎么来验证自己写的Schema是否匹配Json呢?

同样是利用在线工具来辅助查看。
https://jsonschemalint.com/#/version/draft-07/markup/json

如何快速写出Json Schema,校验Json Schema_第5张图片
image

image.png

你可能感兴趣的:(如何快速写出Json Schema,校验Json Schema)