Java 自动化通过 JSON Schema 完成接口自动化测试的数据验证

什么是JSON Schema

JSON Schema,也称为JSON模式,下面一段话来自百度百科的介绍: JSON Schema是描述你的JSON数据格式;JSON模式(应用程序/模式+ JSON)有多种用途,其中之一就是实例验证。验证过程可以是交互式或非交互式的。例如,应用程序可以使用JSON模式来构建用户界面使互动的内容生成除了用户输入检查或验证各种来源获取的数据。 一般使用JSON Schema来进行JSON数据格式验证,在数据提交到业务层次之前进行JSON格式的验证。 jsonschema百度百科

JSON Schema官网的描述摘要:http://json-schema.org/

  1. JSON Schema是基于JSON格式定义JSON数据结构的规范
  2. 用于描述现有的数据格式(JSON数据)
  3. 清晰的人机可读文档:定义的JSON Schema具有人类和机器都可读的特性
  4. 使用JSON Schema可完成完整的JSON结构和数据验证
  5. 可用于自动化测试和确保客户提交的数据质量(如下我们只讨论在自动化测试中的应用)

下面是一段JSON示例: 文档中包含如下信息:

  • 一个老师的唯一标识符:teacherId
  • 一个老师的名称:teacherName
  • 老师的年龄:age
  • 老师的标签:tags
{
  "teacherId": 1,
  "teacherName": "Happy",
  "age": 18,
  "tags": [ "JAVA", "Python","Automation" ]
}

例子很简单,但是中间有些问题有待解决,这也是我们在自动化测试中可能会关注的信息,比如以下这些:

  • teacherId是啥?
  • teacherName是必需的吗?
  • 年龄字段age可以为0吗?
  • 所有的标签都是字符串类型的值吗?

开始写JSON Schema

首先我们从如下一些关键字开始:

  • $schema:该关键字声明该模式是根据标准的特定草案编写的,主要用于版本控制,可省略
  • $id:该关键字定义模式的URI,可省略
  • title和description:该JSON Schema的注释和描述信息,不会向验证的数据调节约束
  • type:该关键字会定义JSON数据的第一个约束,比如是JSON对象还是数组

针对上述JSON 案例初步编写的JSON Schema如下

 

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "$id": "http://example.com/teacher.schema.json",
  "title": "老师信息",
  "description": "丁鱼教育的一个老师信息",
  "type": "object"
}

定义属性

teacherId 属性

  • teacherId是老师的唯一标识符,是不可缺少的
  • teacherId类型是整型

根据约束我们在上面JSON Schema更新如下:

  • 添加一个属性验证的关键字(key):properties
  • 添加一个teache
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值