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

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

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

校验内容:
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 jsonschemaschema = {"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"}
}

相关文章:

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

什么是全量字段校验: 校验接口返回响应结果的全部字段(更进一步的断言)。 校验内容: 1.字段值 2.字段名或者字段类型 校验流程: 1.定义 校验规则(json语法,只能针对json对象校验,如…...

R语言——获取数据1

参考资料:学习R 数据的来源可以由很多。R内置有许多数据集,而在其他的附件包中能找到更多的数据。R能从各式各样的来源中读取,且支持大量的文件格式。 1、内置的数据集 R的基本分发包有一个datasets,里面全是示例数据集。很多其他…...

自编码器(AutoEncoder)概念解析与用法实例:压缩数字图像

目录 1. 前言 2. 自编码器的基本概念 2.1 自编码器的结构 2.2 损失函数 3. 使用 PyTorch 构建自编码器:压缩数字图像 3.1 导入必要的库 3.2 定义自编码器模型 3.3 准备数据集 3.4 训练模型 3.5 可视化重建结果 3.6 完整代码 4. 自编码器的应用场景 5. …...

从零开始打造HTML5拼图游戏:一个Canvas实战项目

从零开始打造HTML5拼图游戏:一个Canvas实战项目 先看效果: 你是否曾经被那些精美的网页拼图游戏所吸引?用 HTML5 的 Canvas 技术,从零开始,教你怎么画图、处理鼠标事件,还有游戏的核心逻辑&#xff0c…...

每日一题洛谷P8649 [蓝桥杯 2017 省 B] k 倍区间c++

P8649 [蓝桥杯 2017 省 B] k 倍区间 - 洛谷 (luogu.com.cn) #include <iostream> #include <vector> using namespace std; #define int long long signed main() {int n, k;cin >> n >> k;vector<int> a(n 1);vector<int> sum(n 1);vec…...

在uniapp中,video比普通的标签层级高解决问题

<view style"position: relative;"><video style"position: absolute;z-index:-1"></video><view style"position: absolute;z-index:999"></view> </view> 上面代码并没有解决view的层级比video高的问题&…...

《探索边缘计算:重塑未来智能物联网的关键技术》

最近研学过程中发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击链接跳转到网站人工智能及编程语言学习教程。读者们可以通过里面的文章详细了解一下人工智能及其编程等教程和学习方法。下面开始对正文内容的…...

Linux(十二)信号

今天我们就要来一起学习信号啦&#xff01;&#xff01;&#xff01;还记得小编在之前的文章中说过的ctrlc吗&#xff1f;之前小编没有详细介绍过&#xff0c;现在我们就要来学习啦&#xff01;&#xff01;&#xff01; 一、信号的基本介绍 首先&#xff0c;小编带领大家先一…...

LeetCode算法题(Go语言实现)_30

题目 给定单链表的头节点 head &#xff0c;将所有索引为奇数的节点和索引为偶数的节点分别组合在一起&#xff0c;然后返回重新排序的列表。 第一个节点的索引被认为是 奇数 &#xff0c; 第二个节点的索引为 偶数 &#xff0c;以此类推。 请注意&#xff0c;偶数组和奇数组内…...

无线通信技术(三):5G NR通信频带划分与应用场景

目录 一.5G NR频带划分概述 二.全球运营商5G频带分配对比 三.5G频带的应用场景 5G网络的发展离不开频谱资源的合理分配。不同的频段决定了5G的覆盖范围、传输速率和应用场景。本文将系统介绍5G NR频带划分,并结合实际应用场景,理解不同频段的特性及其适用环境。 …...

【读书笔记·VLSI电路设计方法解密】问题61:扫描插入的目的是什么

如问题60所述,要构建可测试电路,必须确保电路中每个节点都具有可控性和可观测性。但对于包含时序元件(如触发器、锁存器等存储元件)的电路,若不采取特殊设计则难以实现这两项特性。这是因为时序元件关联节点的逻辑状态不仅取决于当前输入,还受其先前存储状态影响——它们…...

VirtualBox安装FnOS

1.下载FnOS镜像 下载网址&#xff1a; https://www.fnnas.com/2.创建虚拟机 虚拟机配置如图所示&#xff08;注意操作系统类型和网卡配置&#xff09; &#xff08;注意启动顺序&#xff09; 3.启动虚拟机 网卡类型选择桥接的Virtual Adapter 如果没有IP地址或者IP地址无法…...

Pycharm(十二)列表练习题

一、门和钥匙 小X在一片大陆上探险&#xff0c;有一天他发现了一个洞穴&#xff0c;洞穴里面有n道门&#xff0c; 打开每道门都需要对应的钥匙&#xff0c;编号为i的钥匙能用于打开第i道门&#xff0c; 而且只有在打开了第i(i>1)道门之后&#xff0c;才能打开第i1道门&#…...

集合与容器:List、HashMap(II)

一、ArrayList 是集合框架中最核心的动态数组实现&#xff0c;高频使用的容器之一。 1. 核心数据结构 基于数组实现&#xff0c;维护elementData数组存储元素&#xff1a; transient修饰的elementData不会被默认序列化&#xff08;通过自定义序列化逻辑优化存储&#xff09;…...

Eclipse 视图(View)

Eclipse 视图(View) Eclipse 视图(View)是 Eclipse 界面的重要组成部分,它提供了用户交互的平台,使得用户可以通过图形界面来编辑、调试、分析代码等。在本文中,我们将深入探讨 Eclipse 视图的功能、使用方法以及它们在软件开发中的作用。 1. 视图的功能 Eclipse 视图具…...

《AI大模型应知应会100篇》第3篇:大模型的能力边界:它能做什么,不能做什么

第3篇&#xff1a;大模型的能力边界&#xff1a;它能做什么&#xff0c;不能做什么 摘要 在人工智能飞速发展的今天&#xff0c;大语言模型&#xff08;LLM&#xff09;已经成为许多领域的核心技术。然而&#xff0c;尽管它们展现出了惊人的能力&#xff0c;但也有明显的局限性…...

Springboot----@Role注解的作用

Role(BeanDefinition.ROLE_INFRASTRUCTURE) 是 Spring 框架中的一个注解&#xff0c;用于显式标记 Bean 的角色&#xff0c;表明该 Bean 是 Spring 容器内部的基础设施组件&#xff08;如后置处理器、工具类等&#xff09;&#xff0c;而非用户直接使用的业务 Bean。其核心作用…...

小程序API —— 58 自定义组件 - 创建 - 注册 - 使用组件

目录 1. 基本介绍2. 全局组件3. 页面组件 1. 基本介绍 小程序目前已经支持组件化开发&#xff0c;可以将页面中的功能模块抽取成自定义组件&#xff0c;以便在不同的页面中重复使用&#xff1b;也可以将复杂的页面拆分成多个低耦合的模块&#xff0c;有助于代码维护&#xff1…...

前端页面鼠标移动监控(鼠标运动、鼠标监控)鼠标节流处理、throttle、限制触发频率(setTimeout、clearInterval)

文章目录 使用lodashjs库手动实现节流&#xff08;通过判断之前设定的定时器setTimeout是否存在&#xff09; 使用lodashjs库 <!DOCTYPE html> <html lang"zh-CN"><head><meta charset"UTF-8"><meta http-equiv"X-UA-Com…...

在 Android Studio 中运行安卓应用到 MuMu 模拟器

一、准备工作 1、​​确保 MuMu 模拟器已正确安装并启动​​ 从官网下载安装最新版 MuMu 模拟器。启动后&#xff0c;建议在设置中调整性能参数&#xff08;如 CPU 核心数和内存分配&#xff09;&#xff0c;以保证流畅运行。 2、​​配置 Android Studio 环境​&#xff08;按…...

从文本到多模态:如何将RAG扩展为支持图像+文本检索的增强生成系统?

目录 从文本到多模态&#xff1a;如何将RAG扩展为支持图像文本检索的增强生成系统&#xff1f; 一、为什么需要扩展到多模态&#xff1f; 二、多模态 RAG 系统的基本架构 三、关键技术点详解 &#xff08;一&#xff09;多模态嵌入&#xff08;Embedding&#xff09;技术 …...

【JavaEE】网络原理详解

1.❤️❤️前言~&#x1f973;&#x1f389;&#x1f389;&#x1f389; Hello, Hello~ 亲爱的朋友们&#x1f44b;&#x1f44b;&#xff0c;这里是E绵绵呀✍️✍️。 如果你喜欢这篇文章&#xff0c;请别吝啬你的点赞❤️❤️和收藏&#x1f4d6;&#x1f4d6;。如果你对我的…...

Python项目-基于Flask的个人博客系统设计与实现(2)

源代码 续 {% extends base.html %}{% block title %}评论管理{% endblock %}{% block content %} <div class"container py-4"><div class"row"><div class"col-md-3"><div class"list-group mb-4"><a h…...

洛谷题单3-P1720 月落乌啼算钱(斐波那契数列)-python-流程图重构

题目描述 给定一个整数 N N N&#xff0c;请将该数各个位上数字反转得到一个新数。新数也应满足整数的常见形式&#xff0c;即除非给定的原数为零&#xff0c;否则反转后得到的新数的最高位数字不应为零&#xff08;参见样例 2&#xff09;。 输入格式 一个整数 N N N。 …...

NOIP2013提高组.华容道

题目 509. 华容道 算法标签: 搜索, b f s bfs bfs, s p f a spfa spfa 思路 不难发现, 在人移动的过程中, 箱子是不动的, 从当前位置到下一个箱子旁边的位置不会移动箱子, 可以预处理出人在每个位置到其他位置的距离预处理, 从某一个状态出发, 走到另一个状态的最短路使…...

政安晨【超级AI工作流】—— 基于COZE探索有趣的主题互动问答工作流(同宇宙儿童提问机)

政安晨的个人主页&#xff1a;政安晨 欢迎 &#x1f44d;点赞✍评论⭐收藏 希望政安晨的博客能够对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出指正&#xff01; 本例&#xff0c;我们将从零展示如何创建一款专门针对儿童对某项主题进行问答的对话流智能体…...

Derivatives and Differentiation (导数和微分)

Derivatives and Differentiation {导数和微分} 1. Derivatives and Differentiation (导数和微分)1.1. Visualization Utilities 2. Chain Rule (链式法则)3. DiscussionReferences For a long time, how to calculate the area of a circle remained a mystery. Then, in Anc…...

P17_ResNeXt-50

&#x1f368; 本文为&#x1f517;365天深度学习训练营 中的学习记录博客&#x1f356; 原作者&#xff1a;K同学啊 一、模型结构 ResNeXt-50由多个残差块&#xff08;Residual Block&#xff09;组成&#xff0c;每个残差块包含三个卷积层。以下是模型的主要结构&#xff1…...

Ubuntu上离线安装ELK(Elasticsearch、Logstash、Kibana)

在 Ubuntu 上离线安装 ELK(Elasticsearch、Logstash、Kibana)的完整步骤如下: 一.安装验证 二.安装步骤 1. 在联网机器上准备离线包 (1) 安装依赖工具 #联网机器 sudo apt update sudo apt install apt-rdepends wget(2) 下载 ELK 的 .deb 安装包 #创建目录将安装包下载…...

PyCharm 下载与安装教程:从零开始搭建你的 Python 开发环境

PyCharm 是一款专为 Python 开发设计的集成开发环境&#xff08;IDE&#xff09;&#xff0c;它提供了强大的代码编辑、调试、版本控制等功能&#xff0c;是 Python 开发者的必备工具之一。如果你是初学者&#xff0c;或者正在寻找一款高效的开发工具&#xff0c;这篇文章将帮助…...