当前位置: 首页 > article >正文

schema断言

json Schema模式是一个词汇表,用于注释和验证json文档。

实际工作中,对接口返回值进行断言校验,除了常用字段的断言检测外,还需要对其他字段的类型进行检测,对返回的字段一个个写断言显然很耗时,这时候就需要一个模板,可以定义好数据类型和匹配条件,除关键参数外,其他可直接通过此模板来断言。

json schema官网:http://json-schema.org/implementations.html

环境准备

pip install jsonschema

生成jsonschema模板

首先需要有json字符串,然后借助工具将其生成json schema

工具1:网站JSON Schema Tool

工具2:apifox 

 

输入json,点击json schema即可生成。

如json

{
    "username": "string",
    "password": "string"
}

 

{
    "type": "object",
    "properties": {
        "username": {
            "type": "string"
        },
        "password": {
            "type": "string"
        }
    },
    "required": [
        "username",
        "password"
    ],
    "x-apifox-orders": [
        "username",
        "password"
    ]
}

python tests

新建python文件,输入如下代码,并运行test

可以看到通过了一条用例,这里其实是用的pytest单元测试框架。

如果把password的类型写错,则执行会出错,用例会失败。

from jsonschema.validators import validate


def test_schema():
    schema={
    "type": "object",
    "properties": {
        "username": {
            "type": "string"
        },
        "password": {
            "type": "number"
        }
    },
    "required": [
        "username",
        "password"
    ],
}
    validate(instance={"username":"eggs","password":123},schema=schema)

 


http://www.kler.cn/a/6125.html

相关文章:

  • jenkins 使用 ssh-agent向windows进行部署
  • doris:远程存储
  • linux-27 发行版以及跟内核的关系
  • Mysql--基础篇--数据类型(整数,浮点数,日期,枚举,二进制,空间类型等)
  • JVM vs JDK vs JRE
  • 关于考完两门专业课的感受阶段性总结
  • Linux快速启动SpringBoot工程
  • Unity学习日记17(虚拟轴、光)
  • PHP享元模式(Flyweight Pattern)
  • JavaScript之BOM操作
  • OpenCloudOS 9.0发布,腾讯闯入底层基础软件“深水区”
  • 蓝桥杯入职项目(HTML + springBoot)
  • 【新2023Q2模拟题JAVA】华为OD机试 - 不含 101 的数
  • PyTorch C++系列教程1:用 VGG-16 识别 MNIST
  • twitter开源算法(1)For You推荐系统架构
  • 10年 “自动化测试” 老鸟,写给 3-5 年测试员的几点建议,满满硬货指导
  • 牛客网Python入门103题练习|(05--运算符(2))
  • Vue3---手写Tree组件
  • leetcode 105.从前序与中序遍历序列构造二叉树
  • 【计算思维题】少儿编程 蓝桥杯青少组计算思维题真题及解析第2套
  • 一篇文章搞定《动手学深度学习》-(李牧)PyTorch版本的所有内容
  • 上班族适合大自考还是小自考?看完你就懂了
  • 【IAR工程】STM8S208RB基于ST标准库窗口看门狗(WWDG)
  • 华为手表开发:WATCH 3 Pro(12)http请求数据到服务器
  • 【Linux】传输层协议 — TCP协议
  • spark第四章:SparkSQL基本操作