当前位置:网站首页>技术分享 | 接口自动化测试之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 文件中规定的格式要求。
边栏推荐
- PCL 计算两空间直线的交点
- Debug 调式程序
- A concise tutorial on expanding (increasing capacity) of VMWare Esxi virtual system data storage
- Flink Record has Long.MIN_VALUE timestamp (= no timestamp marker). Is the time characteristic
- 22-08-06 Xi'an EasyExcel implements dictionary table import and export
- STL 底层实现原理
- VPP静态映射实现DNAT
- 【AGC】开放式测试示例
- Elasticseach实践1
- shell脚本知识记录
猜你喜欢
随机推荐
Interviewer: Have you ever used a lock at work?Talk about the advantages, disadvantages and usage scenarios of optimistic locking and pessimistic locking
干货 | Oracle数据库操作命令大全,满满的案例供你理解,收藏!
Kotlin协程:生命周期原理
VPP源地址NAT
PCL 计算两空间直线的交点
xgboost 加速
Bytes and Characters and Common Encodings
flink sql创建表成功,查询却报错block data,大家有没有碰到这现象
让百姓消费更安全更放心更满意 江苏出台放心消费创建示范认定管理办法
[Image Classification] 2021-CoAtNet NeurlPS
VMWare Esxi 虚拟系统数据存储扩容(增加容量)的简明教程
2.5W 字详解线程与锁了,面试随便问!!
实例存储之shelve
Categorized input and output, Go lang1.18 introductory refining tutorial, from Bai Ding to Hongru, go lang basic data types and input and output EP03
Recommend 100 nice English songs
数学基础(二)逆矩阵、伪逆矩阵、最小二乘解、最小范数解
分门别类输入输出,Go lang1.18入门精炼教程,由白丁入鸿儒,go lang基本数据类型和输入输出EP03
【无标题】
docker部署redis容器问题
LAN技术-5Eth-Trunk