当前位置:网站首页>技术分享 | 接口自动化测试之JSON Schema模式该如何使用?
技术分享 | 接口自动化测试之JSON Schema模式该如何使用?
2022-08-08 09:48:00 【51CTO】
JSON Schema 模式是一个词汇表,可用于注释和验证 JSON 文档。在实际工作中,对接口返回值进行断言校验,除了常用字段的断言检测以外,还要对其他字段的类型进行检测。对返回的字段一个个写断言显然是非常耗时的,这个时候就需要一个模板,可以定义好数据类型和匹配条件,除了关键参数外,其余可直接通过此模板来断言,JSON Schema 可以完美实现这样的需求。
JSON Schema 官网:
环境准备
安装 JSON Schema 包
- Python 版本
- Java 版本
JSON Schema 的使用
JSON Schema 模板生成
首先要借助于 JSON Schema tool 的网站 JSON Schema Tool json 字符串复制到页面左边,然后点击 INFER SHCEMA,就会自动转换为 schema json 文件类型,会将每个地段的返回值类型都设置一个默认类型,在 pattern 中也可以写正则进行匹配。
点击“设置”按钮会出现各个类型返回值更详细的断言设置,这个就是 schema 最常用也是最实用的功能。也可以对每种类型的字段最更细化的区间值校验或者断言,例如长度、取值范围等。
点击复制按钮,可以将生成的 schema 模板保存下来。
实战练习
接下来会发起一个 post 请求,验证响应值中的 url 字段与 origin 字段是否都为 string 类型。
Python版本
如果将 origin 的 type 写成 number ,则会出现报错:
返回报错信息
同理,若将 url 的 type 改为 number,也会有报错提示。
Java 版本
JsonValidator.json 文件中存放校验文件,校验响应值中的 url 字段与 origin 字段是否都为 string 类型,文件内容为:
同 Python 版本一致,以下代码校验响应值是否符合 JsonValidator.json 文件中规定的格式要求。
边栏推荐
- 「控制反转」和「依赖倒置」,傻傻分不清楚?
- Elasticseach实践1
- 【收藏】3. 壁纸收藏
- 牛刀小试基本语法,Go lang1.18入门精炼教程,由白丁入鸿儒,go lang基本语法和变量的使用EP02
- 【office】word
- STL 底层实现原理
- 巧用Prometheus来扩展kubernetes调度器
- Is it safe to buy stocks with a straight flush?Will the funds be transferred?
- Open source summer | Three ways to implement search in Flutter
- 各位大佬想问下, flinkcdc采集oracle我看了下延迟大概两分钟左右,想问下有啥解决方法吗
猜你喜欢
随机推荐
入职半个月的一些思考
实例存储之shelve
BLOB, TEXT, GEOMETRY or JSON column 'xxxx' can't have a default value
COMSOL Multiphysics 6.0 software installation package and installation tutorial
67:第五章:开发admin管理服务:20:开发【解冻/冻结用户,接口】;(用户状态变更后,需要刷新用户状态,即变更用户会话信息:我们一般通过“删除redis中会话信息,强制用户重新登录“来做的;)
继承关系下构造方法的访问特点:
【收藏】3. 壁纸收藏
简单理解MVVM模型
VMWare Esxi 虚拟系统数据存储扩容(增加容量)的简明教程
SeeOD应用:He-Ne激光束聚焦物镜设计
深度解析网易严选和京东的会员体系,建议收藏
小程序使用formdata格式传参
使用分类权重,轻松解决数据不平衡的问题
推荐100首好听英文歌
VPP source address NAT
图像分割 总结
Golang实现sha256或sha512加密
一个用来装逼的利器
"Inversion of Control" and "Dependency Inversion", can't you tell the difference?
Interviewer: Have you ever used a lock at work?Talk about the advantages, disadvantages and usage scenarios of optimistic locking and pessimistic locking