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

接口自动化学习四:全量字段校验

什么是全量字段校验:
校验接口返回响应结果的全部字段(更进一步的断言)。

校验内容:
1.字段值
2.字段名或者字段类型

校验流程:
1.定义 校验规则(json语法,只能针对json对象校验,如果要校验状态码,直接用assert字段进行断言)
2.比对 响应数据 是否 复合 校验规则

安装jsonschema:
pip install jsonschema -i https://pypi.douban.com/simple/

校验是否安装成功:
cmd pip list或者pycharm 编辑器上查看

JSON数据:

{
"success":true,
"code":1000,
"message":"操作成功"
}

整个json数据是一个对象,包含success、code、message字段,并且是必填字段,success是布尔类型,code是整数,message是字符串类型。

{
	"type":"object",
	"properties":{
		"success":{"type":"boolean"},
		"code":{"type":"integer"},
		"message":{"type":"string"}
	},
	"required":["success","code","message"]
}

python校验步骤:

  1. 导包import jsonschema
  2. 定义jsonschema格式 数据校验规则
  3. 调用jsonschema.validate(instance=“json数据”,schema=“jsonachema规则”)

查验校验结果:
4. 校验通过:返回None
5. 校验失败
schema规则错误,返回schemaError
json数据错误,返回ValidationError

#导包
import jsonschema

#创建校验规则
schema = {
            "type": "object",
            "properties": {
                "success": "boolean",
                "code": "integer",
                "message": "string"
            },
            "requied": ["success", "code", "message", "data"]
        }


#准备待校验数据
json_data={
	"success":True,
	"code":10000,
	"message":"操作成功"
}

#调用方法,进行校验
res=jsonschema.validate(instance=json_data,schema=schema)

#查看校验结果
print("校验结果":,res)

关键字:
const:json元素必须等于指定内容
type:表示待校验元素的类型
properties:定义待校验json对象中,各个key-value中对value的限值条件
required:定义待校验json对象中,必须存在的key
pattern:使用正则表达式约束字符串类型数据
(^登录成功:以登录成功开头;登录成功$:以登录成功结尾;登录成功:包含登录成功)

综合案例:

import jsonschema

schema = {
            "type": "object",
            "properties": {
                "success": {"type": "boolean"},
                "code": {"type": "integer"},
                "message": {"pattern": "登录成功$"},
                "data": {"type": "string",
                	 "properties":{
                	 	"name":{"const":"lily"},
               			"age":{"const":14}
               			},
               			"required":["name","age"]
                }
                
            },
            "requied": ["success", "code", "message", "data"]
        }
jsonschema.validate(instance=resp.json(), schema=schema)



data={
	"success":Falese,
	"code":1000,
	"message":"登录成功",
	"data":{
		"age":18,
		"name":"lily"
	}
}

文章转载自:
http://axilemma.riewr.cn
http://benempted.riewr.cn
http://achates.riewr.cn
http://aaron.riewr.cn
http://berserkly.riewr.cn
http://assonance.riewr.cn
http://bestead.riewr.cn
http://beck.riewr.cn
http://byob.riewr.cn
http://arched.riewr.cn
http://bionics.riewr.cn
http://cabriolet.riewr.cn
http://acquiesce.riewr.cn
http://cercaria.riewr.cn
http://bonanzagram.riewr.cn
http://bathochrome.riewr.cn
http://atresia.riewr.cn
http://aragon.riewr.cn
http://brownstone.riewr.cn
http://anticarcinogenic.riewr.cn
http://aldebaran.riewr.cn
http://archangelic.riewr.cn
http://acceptor.riewr.cn
http://ardently.riewr.cn
http://betelnut.riewr.cn
http://amygdale.riewr.cn
http://blackmail.riewr.cn
http://category.riewr.cn
http://analyze.riewr.cn
http://casteless.riewr.cn
http://www.dtcms.com/a/111362.html

相关文章:

  • L1-100 四项全能(测试点1)
  • 计算机网络知识点汇总与复习——(三)数据链路层
  • 在VMware下Hadoop分布式集群环境的配置--基于Yarn模式的一个Master节点、两个Slaver(Worker)节点的配置
  • Leetcode 33 -- 二分查找 | 归约思想
  • 【YOLO系列(V5-V12)通用数据集-交通红黄绿灯检测数据集】
  • SpringBoot集成swagger和jwt
  • Flask学习笔记 - 模板渲染
  • 深入探究 Hive 中的 MAP 类型:特点、创建与应用
  • 【Linux系统编程】进程概念,进程状态
  • 第三期:深入理解 Spring Web MVC [特殊字符](数据传参+ 特殊字符处理 + 编码问题解析)
  • 游戏编程模式学习(编程质量提升之路)
  • 25.4.4错题分析
  • Linux: network: 两台直连的主机业务不通
  • 【移动编程技术】作业1 中国现代信息科技发展史、Android 系统概述与程序结构 作业解析
  • Leetcode——150. 逆波兰表达式求值
  • 【小沐杂货铺】基于Three.JS绘制三维数字地球Earth(GIS 、three.js、WebGL、vue、react)
  • 平台总线---深入分析
  • transforms-pytorch4
  • 要素的选择与转出
  • 阿里云服务器遭遇DDoS攻击有争议?
  • 在MacOS 10.15上使用MongoDB
  • 洛谷题单3-P4956 [COCI 2017 2018 #6] Davor-python-流程图重构
  • linux signal up/down/down_interruptiable\down_uninterruptiable使用
  • 机器视觉工程师的专业精度决定职业高度,而专注密度决定成长速度。低质量的合群,不如高质量独处
  • linux 命令 awk
  • 洛谷题单3-P1217 [USACO1.5] 回文质数 Prime Palindromes-python-流程图重构
  • eBay新规倒计时:您的店铺配送方案即将被系统默认修改
  • python如何快速删除文件夹中的大量文件
  • 内网(域)渗透测试流程和模拟测试day--5--Windows和Linux的提权
  • 通信数据记录仪-产品概念ID