jck28-lucio-整体结构响应断言

目录

  • JSON Schema 简介
  • 生成 JSON Schema 文档
  • 使用 JSON Schema 断言

JSON Schema 简介

  • 是使用 JSON 格式编写的
  • 可以用来定义校验 JSON 数据的结构
  • 可以用来校验 JSON 数据的一致性
  • 可以用来校验 API 接口请求和响应

生成 JSON Schema 文档

  • 复制 JSON 数据
  • 粘贴到在线生成工具中
  • 自动生成 JSON Schema 数据

JSON Schema 在线生成工具:https://app.quicktype.io

生成 JSON Schema 文档

预期的 JSON 文档结构

{
  "name": "Hogwarts",
  "rank": 1,
  "Courses": [
    "UI Auto Testing",
    "Java",
    "Docker",
    "JUnit5"
  ]
}

JSON Schema 响应断言

  • 实战演示
import org.junit.jupiter.api.Test;

import static io.restassured.RestAssured.given;
import static io.restassured.module.jsv.JsonSchemaValidator.matchesJsonSchemaInClasspath;

public class TestJsonSchema {

    @Test
    void func() {

        given()
                .header("Hello", "Hogwarts")
        .when()
                .get("https://httpbin.ceshiren.com/get")  // 发送请求
        .then()
                .log().all()  // 打印完整的响应信息
                .assertThat()
                .body(matchesJsonSchemaInClasspath("schema.json"));  // JSON Schema 断言
    }
}

附录:JSON Schema 依赖配置

  • JSON Schema Validator
  • pom.xml 中添加配置信息
<dependency>
    <groupId>io.rest-assured</groupId>
    <artifactId>json-schema-validator</artifactId>
    <version>4.4.0</version>
    <scope>test</scope>
</dependency>