REST Assured 54 - What Is JSON Schema?

REST Assured 系列汇总 之 REST Assured 54 - What Is JSON Schema?

JSON Schema

说到车,你会想象它的结构组成。例如:一辆车有4个轮子,一个车体,油缸,方向盘,座位等。这些组成任何车的基本结构。如果一个物体只有3个轮子,其它部分都满足前面我们说的基本结构,也不能称作是我们定义的这种结构的车。

当创建一个 Gmail 账号时,并非所有字段信息都是必须的。但是如果不填写某些必要信息,将会得到错误,账号不能创建成功。相似地,一个用来存储键值对数据的 JSON 也有结构,定义其允许的格式和字段,值等。这种结构就称为一个 JSON Schema。

一个 JSON Schema 是一个 JSON 文档,用来验证一个 JSON 对象的语法和语义。语法是验证一个 JSON 对象是否是一个有效的 JSON 对象。语义是验证一个有效的 JSON 对象是否包含所有必要的字段,值的格式,允许的值等。

根据 JSON Schema 官网定义,JSON Schema 就是一个词汇表,用来注释和验证 JSON 文档。

JSON Schema 例子:

{
    "$schema": "http://json-schema.org/draft-07/schema",
    "$id": "http://example.com/example.json",
    "type": "object",
    "title": "The root schema",
    "description": "The root schema comprises the entire JSON document.",
    "default": {},
    "examples": [
        {
            "token": "abc123"
        }
    ],
    "required": [
        "token"
    ],
    "properties": {
        "token": {
            "$id": "#/properties/token",
            "type": "string",
            "title": "The token schema",
            "description": "An explanation about the purpose of this instance.",
            "default": "",
            "examples": [
                "abc123"
            ]
        }
    },
    "additionalProperties": true
}

上面是一个非常简单的 JSON Schema。关注一下关键字段 “required” 和 “properties“. 任意 JSON 对象基于这个 JSON Schema 都必须有一个 “token” 属性,且 “token” 字段值的类型是字符串。总之,出现在 “required” 数组中的字段,一个 JSON 对象都必须包含这些字段。“properties” 部分是用来定义这些字段的。

“additionalProperties” 字段表明是否允许其它额外的属性列在 “properties” 部分。

JSON Schema 是容易理解的,我还可以用它来验证一个属性的最大值 或 最小值 或 正则表达式。

可以通过 JSON Schema website 基于给定的 JSON 对象生成一个 JSON Schema,当然你也可以进行修改。

作为一个测试人员,我们必须掌握有关 JSON Schema 创建 的基本概念。对于自动化断言一个JSON request 和 response 是否满足期望是非常有帮助的。开发人员不是每次都会给你提供一个 JSON Schema,这种情况,你需要掌握如何创建 JSON Schema,就可以直接验证了。

你可能感兴趣的:(#,Rest,Assured,json,json,schema,rest,assured,api,testing)