接口测试 求问,有没有 python 语言的,直接生成 jsonschema 的方法?

爱吃米饭 · October 24, 2020 · Last by 爱吃米饭 replied at December 13, 2020 · 2780 hits

目的:想要保存每一次的 response,然后自动解析出 jsonschema 并保存;下一次请求运行的时候用这个 schema 去 diff 新的回参是否有改动。

困惑:
1、在网上找了很久,没有找到 Python 版直接进行 jsonschema* 生成 * 的方法或直接比较的方法。
2、http://JSONschema.net/#/home 这个网址,必须要先把我们的 Json 信息复制到该网页,然后通过该网页生成的 jsonschema 格式文件写到本地,不智能。

求问:
各位大佬有没有什么思路实现呢,或者求问有没有开源框架可用,先谢过~

共收到 10 条回复 时间 点赞

python 有一个库:jsonschema==3.2.0 可以参考

gocopper 回复

pythonschema 是校验格式是否正确的库,应该不能自动生成 schema 文件。

爱吃米饭 回复

看错了,试试 genson==1.2.2

想要保存每一次的 response,然后自动解析出 jsonschema 并保存
一个接口一般只有一份 jsonschema 的啊,为什么要保存每一次的?

因为可能接口修改,导致回参改变,那么 jsonschema 也可能发生变化,手动修改就太不智能了。所以想最近的两次对比,这样更好些。

gocopper 回复

谢谢,我去了解一下

爱吃米饭 回复

jsonschema 定义是一种契约,在前后端协作开发的时候,报错了才知道后端改了哪个东西,要你现在自动把 schema 改了,那么就不知道后端改了哪里了,想过这个问题没。
不过你要做自动应该有你的需求,有个 js 写的,代码简洁不难懂,自己改成 Python 应该可以满足
https://github.com/easy-json-schema/easy-json-schema

先把回参与旧的 schema 对比,然后保存新的 schema,如果不一样,肯定会报错的。不存在说不知道后端改了哪里呀

这个问题搞定了没?想问下,我也想解决这个问题。

🔥🔥🔥 回复

你可以去看看:genson

需要 Sign In 后方可回复, 如果你还没有账号请点击这里 Sign Up