responses-validator接口断言之状态码

news2024/11/18 8:47:17

概述

responses-validator 专用于对 reqeuests 的响应对象进行断言,

同时,为了更适用 yaml 的场景,支持了多种灵活、可扩展的写法,可用于搭建yaml接口自动化测试框架。

根据 reqeuests 响应对象的特点,responses-validator 的断言可以分为 4 个部分

  1. 状态码:status_code

  2. 响应头:headers

  3. 响应正文:text

  4. JSON 响应正文:json

这也成为了 responses_validator.validator 方法主要参数:

resp = requests.get("https://www.baidu.com") responses_validator.validator(    resp=resp,     status_code=200,     headers={},     text="",     json={} )

注意:resp 和 status_code 是必填参数,其他参数是选填参数

本文详细叙述了所支持的 4 种状态码断言写法:

  1. 断言单个状态码,如:200

  2. 断言多个状态码,如:200,201,204

  3. 断言单个状态码范围,如:2xx

  4. 断言多个状态码范围,如:2xx, 3xx

更多示例见下文

1. 断言单个状态码

如果状态码只有一个预期值,可以直接传递该值(字符串或数字均可)

如果响应的状态码与 status_code 参数相等,则判定为测试通过,

否则判定为测试失败

创建如下 yaml 用例,其中包含 2 个断言步骤,每个步骤对单个状态码进行断言

# test_status_code_single_value.yamltest_name: 断言状态码匹配单个值steps:  - request:      method: get      url: https://www.baidu.com  - response:      status_code: 200 # 断言通过  - response:      status_code: 201 # 断言失败

注:该请求必定返回状态码 200,下同

执行结果如下:

图片

断言单个状态码日志内容

由日志内容可见,一共进行了 2 次断言,其中:

第一次断言状态码等于 200,断言成功

第二次断言状态码等于 201,断言失败

2. 断言多个状态码

如果状态码有多个预期值,可通过 | 符号进行分隔

如果响应的状态码,与其中任意一个值相等,则判定为测试通过

如果均不相等,则判定为测试失败

创建如下 yaml 用例,其中包含 2 个断言步骤,每个步骤对多个状态码进行断言

# tests/test_status_code_multiple_value.yamltest_name: 断言状态码匹配多个值steps:  - request:      method: get      url: https://www.baidu.com  - response:      status_code: 200 | 201 # 断言通过  - response:      status_code: 401 | 403 # 断言失败

执行结果如下:

图片

断言多个状态码日志内容

由日志内容可见,一共进行了 2 次断言,其中:

第一次断言状态码等于 200 或 201,断言成功

第二次断言状态码等于 401 或 403,断言失败

如果将个断言改为如下内容,则断言成功

response:  status_code: 401 | 403 | 200 # 断言成功

执行结果如下:

图片

断言多个状态码,最后一个断言成功

3. 断言单个范围

如果状态码有多个预期值,例如 200、201、202、203、204...

可通过 * 进行匹配,例如:

  • 20* 代表所有 20 开头的状态码

  • 2* 代表所有 2 开头的状态码

如果响应的状态码,与其中任意一个值相等,则判定为测试通过

如果均不相等,则判定为测试失败

创建如下 yaml 用例,其中包含 2 个断言步骤,每个步骤对单个范围进行断言

# tests/test_status_code_single_range.yamltest_name: 断言状态码单个范围steps:  - request:      method: get      url: https://www.baidu.com  - response:      status_code: 20* # 断言通过  - response:      status_code: 40* # 断言失败

执行结果如下:

图片

断言单个范围日志内容

由日志内容可见,一共进行了 2 次断言,其中:

第一次断言状态码等于 20 开头,断言成功

第二次断言状态码等于 40 开头,断言失败

4. 断言多个范围

如果状态码有多个预期值范围,例如 20*、30*、40* ,可通过 | 符号进行分隔

如果响应的状态码,与其中任意一个范围匹配,则判定为测试通过

如果均不匹配,则判定为测试失败

创建如下 yaml 用例,其中包含 2 个断言步骤,每个步骤对多个范围进行断言

# tests/test_status_code_multiple_range.yamltest_name: 断言状态码匹配多个范围steps:  - request:      method: get      url: https://www.baidu.com  - response:      status_code: 10* | 20* # 断言通过  - response:      status_code: 30* | 40* |50* # 断言失败

执行结果如下:

图片

断言多个范围日志内容

由日志内容可见,一共进行了 2 次断言,其中:

第一次断言状态码等于 10 开头或 20 开头,断言成功

第二次断言状态码等于 30 开头或 40 开头或 40 开头,断言失败

测试开发研习社

《pytest源码剖析》正在连载中,希望对你有所帮助;《jmeter文档通读》正在进行中,希望能够一起进步;《jmeter二次开发》正在筹备中,希望聆听你的想法;

89篇原创内容

公众号

原创不易,喜欢请星标+点赞+在看,关注公众号《测试开发研习社》,不错过技术干货,谢谢鼓励!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1811868.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

电流监测利器!FP137宽共模范围高侧轨电流测量IC助您解决电流问题!

随着大量包含高精度放大器和精密匹配电阻的IC的推出,在高侧电流测量中使用差分放大器变得非常方便。高侧检测带动了电流检测IC的发展,降低了由分立器件带来的参数变化、器件数目太多等问题,集成电路方便了我们使用。本文将对FP137高端电流检测…

用Vue3构建一个交互式3D图

本文由ScriptEcho平台提供技术支持 项目地址:传送门 代码相关的技术博客 应用场景介绍 本代码段用于创建可用于展示服务或产品计划的卡片式组件。此类组件常见于网站或应用程序中,用于以清晰简洁的方式呈现不同级别的功能和定价信息。 代码基本功能…

Pycharm将python程序打包为exe文件

前提:我的文件只有一个,多个的还没有试过 打开项目终端 s1:在项目终端输入(注意要在自己的项目下) pip install pyinstaller s2:在项目终端输入(注意要在自己的项目下) pyinstaller …

香港国际ESG联盟:绿色能源时代的先锋力量

在香港国际ESG联盟引领绿色能源革命浪潮的今天,ESG联盟正以矢志不渝的精神推动大陆储能市场的繁荣与进步,同时立足于香港这一国际金融之都,ESG联盟的视野早已超越地域界限,向中国内地乃至全球市场延伸开来。联盟始终秉承着创新开放…

大模型生成短视频

最近看到一个开源项目可以通过AI生成短视频,然后尝试了下,感觉还不错,下面是具体步骤。 项目名叫moneyprinterTurbo,它本意是对接到Youtube,自动生成视频并上传到Youtube获取流量赚钱,所以项目名叫moneypri…

图形和插图软件Canvas X Pro 20 Build 914

Canvas X Pro是一款功能强大、用途广泛的Windows软件,旨在处理技术图形和可视化,该程序结合了创建矢量和光栅图形的工具,这使其成为需要创建高质量技术插图和演示文稿的工程师、设计师、科学家和其他专业人士的理想选择。 Canvas X Pro的主要功能之一是支持处理大型和复杂的…

ssm职工健康素养数据管理系统设计与实现-计算机毕业设计源码45392

摘 要 信息化社会内需要与之针对性的信息获取途径,但是途径的扩展基本上为人们所努力的方向,由于站在的角度存在偏差,人们经常能够获得不同类型信息,这也是技术最为难以攻克的课题。针对职工健康素养数据管理系统等问题&#xff0…

SpringBoot基础配置文件

在SpringBoot当中, 所有的配置文件都将会被配置在application.preperties当中 一: 配置服务器端口 只需要在相应的properties当中输入, 修改我们的端口号即可 server.port80 二: 修改banner #设置 将我们的Banner不再进行显示, 或者是也可以让其在控制台当中显示, 或者是日…

Python 全栈体系【四阶】(五十九)

第五章 深度学习 十三、自然语言处理(NLP) 4. 语言模型 4.1 什么是语言模型 语言模型在文本处理、信息检索、机器翻译、语音识别中承担这重要的任务。从通俗角度来说,语言模型就是通过给定的一个词语序列,预测下一个最可能的词…

外包SEO如何进行?

当你的业务需要外包seo时,首先选择一个信誉良好且经验丰富的SEO服务提供商至关重要,深入研究其过往案例和客户评价可以帮助你评估他们的专业性和可靠性。 在选择了合适的服务商后,你需要与他们进行深入的沟通,讨论你的业务特点、市…

信贷背后的大秘密:贷后管理的作用与智慧

很多朋友可能都听过“贷后管理”这个词,尤其是在征信报告的查询记录里,它经常是出现频率最高的。很多人可能觉得贷后管理就是走过场,没啥大用,其实,这背后可是大有门道的。 贷后管理到底是个啥? 贷后管理&a…

SpringBoot+layui实现商品打标

标题 下拉框组件效果图代码实现前端界面产品打标页面代码 后端代码controllerservice ,serviceImplmappermapper.xmlentity 数据库表 下拉框组件 xm-select 效果图 代码实现 前端界面 <script type"text/html" id"stockTags"><div><div&…

Redis实战篇4:发布博客与点赞

一、博客 关于发布博客这个功能&#xff0c;他就是mysql相关的数据库&#xff0c;不涉及到redis&#xff0c;但是我们可以来看一下其相关的表的功能来了解一下&#xff1a; 博客表&#xff1a; 与其对应的评论表&#xff1a; 关于其数据库的设计也应该好好的学习一下。 二…

盲盒小程序开发:传统与当代的创新融合

谈起盲盒&#xff0c;许多人并不陌生。近几年&#xff0c;盲盒一直是年轻人首选的娱乐消费方式&#xff0c;小小的盲盒为消费者带来了极大的欢乐。 盲盒小程序是将传统的盲盒玩法与线上购物方式相融合&#xff0c;对拆盲盒进行创新&#xff0c;为盲盒消费者带来全新的盲盒体验…

宋街宣传活动-循环利用,绿色生活

善于善行回收团队是一支致力于推动环保事业&#xff0c;积极倡导和实践绿色生活的志愿者队伍。我们的宗旨是通过回收再利用&#xff0c;减少资源浪费&#xff0c;降低环境污染&#xff0c;同时提高公众的环保意识&#xff0c;共同构建美丽和谐的家园。 善于善行志愿团队于2024年…

NLP原理系列1-说清楚transformer原理

NLP原理系列1-说清楚transformer原理 来用思维导图和截图描述。 思维导图的本质是 变化(解决问题)-> 更好的&#xff0c; 或者复杂问题拆分为小问题 以及拆分的思路。 经典全图 0 transformer的前世今生 1 seq2seq 序列化数据 到 序列化数据&#xff0c; 只要能把 训练…

在多项目管理中,企业如何平衡项目资源分配?

数字化时代&#xff0c;多项目管理已经成为了企业内部的常态。组织可以在不同项目之间进行资源合理分配和调度&#xff0c;避免资源浪费和重复使用、提高资源利用率&#xff0c;从而提升项目执行效率和组织整体竞争力。 然而在多项目管理中&#xff0c;资源管理却面临着多重难点…

CrowdSec 防护软件安装与使用

1、环境介绍 操作系统版本&#xff1a;centos 7.9 2、存储库安装 curl -s https://install.crowdsec.net | sudo sh3、安装安全引擎CrowdSec yum install crowdsec启动 systemctl start crowdsec systemctl enable crowdsec4、安装修正组件 yum install crowdsec-firewall…

认证申报 | 中华环保联合会 “全国环境友好企业”认证服务

中华环保联合会水环境治理专业委员会秘书处 联系人&#xff1a;王小雅 电话 &#xff1a;010-51651268 13718793867 网址&#xff1a;www.acef-water.com.cn 01什么是“全国环境友好企业”认证 “全国环境友好企业”认证是经国家认证认可监督管理委员会审查监督并在全国认…

基于kdtree的三种搜索近邻点(python版本)

1、前言 点云中近邻点搜索查询是一种非常常见的数据处理操作步骤&#xff0c;近邻点搜索方式包括k近邻搜索、近距离搜索&#xff08;球体近邻搜索&#xff09;、圆柱体搜索三种方式&#xff0c;每一种搜索方式适用的场景各不相同。其中kdtree搜索是一种有效搜索近邻点方式&…