接口测试框架实战(一) | Requests 与接口请求构造
Requests 是一个优雅而简单的 Python HTTP 库,其实 Python 内置了用于访问网络的资源模块,比如urllib,但是它远不如 Requests 简单优雅,而且缺少了许多实用功能。所以,更推荐掌握 Requests 接口测试实战技能,这也是互联网大厂流行的接口测试利器。
下面从安装 Requests 库开始,一步步掌握接口请求构造、接口请求断言、Schema 断言、Json/XML 请求、测试用例调试、HeadCookie 处理、Jsonpath 应用、认证体系等接口测试实战技能。
pip 命令安装 Requests。
Requests 官方文档:
https://2.python-requests.org/en/master/
接下来就会使用最流行的 Requests 进行接口测试。
Requests 提供了几乎所有的 HTTP 请求构造方法,以及通过传入参数的方法,对发送的请求进行定制化的配置,可以用来应对各种不同的请求场景。
发送 get 请求:
在请求中添加 data 参数,并发送 post 请求:
在请求中添加 data 参数,并发送 put 请求:
发送 delete 请求:
发送 head 请求:
发送 options 请求:
也可以直接使用 request 函数,传入不同的 method,例如使用这个方法发送 get 请求:
下面的参数都是非必须参数,但是如果需要对请求做额外的定制化,则需要掌握以下这些参数的作用。
-
header 参数
通过传入 dict 定制请求头: -
data 参数
发送编码为表单形式的数据单: -
files 参数
上传文件,dict 格式。
注意:建议用二进制模式(binary mode)打开文件。这是因为 Requests 可能会试图为你提供 Content-Length header,在它这样做的时候,这个值会被设为文件的字节数(bytes)。如果用文本模式(text mode)打开文件,就可能会发生错误。 -
timeout参数
设定超时时间(秒),到达这个时间之后会停止等待响应:
注意:timeout 仅对连接过程有效,与响应体的下载无关。timeout 并不是整个下载响应的时间限制,而是如果服务器在 timeout 秒内没有应答,将会引发一个异常(更精确地说,是在 timeout 秒内没有从基础套接字上接收到任何字节的数据时),如果不设置 timeout,将一直等待。 -
allow_redirects 参数
控制是否启用重定向,bool 类型,选择 True 为启用,选择 False 为禁用。 -
proxies参数
设置代理,dict 格式,key 值为选择的协议,可以分别设置 HTTP 请求和 HTTPS 请求的代理。 -
verify 参数
可以传入 bool 值或者 string,默认为 True。如果设置为 False 的即为忽略对 SSL 证书的验证;反之就是需要做验证;如果传入值为 string 的话,代表指定本地的证书作为客户端证书。
从本地传入证书:
忽略对SSL证书的验证:
另外三个重要参数 Json、Cookies、Auth 在后面的章节再进行详细的介绍。
最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:
这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!
相关文章:

接口测试框架实战(一) | Requests 与接口请求构造
Requests 是一个优雅而简单的 Python HTTP 库,其实 Python 内置了用于访问网络的资源模块,比如urllib,但是它远不如 Requests 简单优雅,而且缺少了许多实用功能。所以,更推荐掌握 Requests 接口测试实战技能࿰…...

【C++】详解 void*
文章目录 1. void *是什么?2. void*详解3. 和void的区别4. 应用场景4.1 函数传参时不确定类型,或者要支持多类型的传参;4.2 当函数的返回值不考虑类型指关心大小的时候 5. 总结 今天看到一段代码,觉得非常有意思。 void* say_hell…...
Linux家目录变成了-bash-4.2$
Linux家目录变成了-bash-4.2$ Mark a workarround: 使用root用户,执行cp -a /etc/skel/. /home/zookeeper/(不是root用户也可以) 其中/home/zookeeper/目录是对应自己的家目录地址~ 若有帮到你,记得点赞,收藏呀…...
Python和SQLite游标处理多行数据
如果您需要处理多行数据,使用游标或其他适当的方法是更好的选择。以下是一些处理多行数据的方法: 使用游标:游标可以逐行处理查询结果,这对于大量数据或需要逐行处理的场景非常有用。以下是一个使用Python和SQLite的游标示例&…...
安全测试之PHP 漏洞全解
PHP 漏洞全解(一)-PHP的攻击方式 针对 PHP 的网站主要存在下面几种攻击方式: 1、命令注入(Command Injection) 2、eval 注入(Eval Injection) 3、客户端脚本攻击(Script Insertion) 4、跨网站脚本攻击(Cross Site Scripting, XSS) 5、SQL 注入攻击(SQL injection) 6、跨网站…...

【bug-maven】(一)java: 错误: 不支持发行版本 5 (二):java: 错误: 无效的源发行版:15
【bug-maven】(一)java: 错误: 不支持发行版本 5 (二):java: 错误: 无效的源发行版:15 (一)java: 错误: 不支持发行版本 5 报错截图: 出错原因: 打开Projec…...
git命令大全(附使用步骤+注释)
下面有具体使用步骤 git status 查看git状态 git add 提交到暂存区 git commit -m 提交到本地仓库,添加注释 git log 查看日志 git clone 克隆远程仓库 git reset,指定文件识 可以将暂存区的文件回退到工作区 git checkout指定文件’ 可以进行工作区还原…...

【论文阅读】Progressive Spatio-Temporal Prototype Matching for Text-Video Retrieval
资料链接 论文链接:https://openaccess.thecvf.com/content/ICCV2023/papers/Li_Progressive_Spatio-Temporal_Prototype_Matching_for_Text-Video_Retrieval_ICCV_2023_paper.pdf 代码链接:https://github.com/imccretrieval/prost 背景与动机 文章发…...
python --- 类与对象(二)
类属性与方法 类的私有属性 __private_attrs:两个下划线开头,声明该属性为私有,不能在类的外部被使用或直接访问。在类内部的方法中使用时 self.__private_attrs。 类的方法 在类的内部,使用 def 关键字来定义一个方法…...

任正非说:华为以前还出现过可笑的工号文化,看官大官小的指令
你好!这是华研荟【任正非说】系列的第33篇文章,让我们聆听任正非先生的真知灼见,学习华为的管理思想和管理理念。 一、要把可以规范化的管理都变成扳铁路道岔,使岗位操作标准化、制度化。 来源于任正非先生2003年的讲话《在理性与…...
用Python舞动数据的魔力:探索数据分析的艺术之路
用Python舞动数据的魔力:探索数据分析的艺术之路 前言什么是Python数据分析Python介绍数据分析介绍Python和数据分析的关系 python数据分析的作用金融领域社交媒体领域电子商务领域医疗领域物流和供应链管理领域 Python数据分析教材 前言 打开招聘网站,…...

iOS 让界面元素的文字随着语言的更改而变化——本地化文字跟随
在我的 App 内置的设置中,修改了语言,这时需要让当前界面的文本跟着改变语言。 解决方法是:添加一个观察者,观察 localize 本地语言的通知,然后一有变化就调用自定义的方法执行操作。(而设置中其实是改变了…...

Xcode15更新内容
参考博客: 【WWDC 2023】Xcode 15 更新内容 文章目录 1. xcode15起,项目内创建的图片可以使用点语法访问2.2. UIKit项目也可以使用预览功能3. Xcode新增标签功能4.Log分类 1. xcode15起,项目内创建的图片可以使用点语法访问 2.2. UIKit项目也…...
【数据集标注制作】视频剪切标注1——类DarkLabel软件
视频标注 用于从视频中标注数据,用于YOLO网络的目标检测。旨在实现单次鼠标标注能生成多张被标注图像,实现数据集快速制作! 从视频中,通过鼠标框选指定区域,形成掩码box鼠标选定区域后,根据设定的成像尺寸…...

一体化HIS医疗信息管理系统源码:云HIS、云电子病历、云LIS
基于云计算技术的B/S架构的HIS系统,为医疗机构提供标准化的、信息化的、可共享的医疗信息管理系统,实现医患事务管理和临床诊疗管理等标准医疗管理信息系统的功能。系统利用云计算平台的技术优势,建立统一的云HIS、云病历、云LIS,…...

NSSCTF逆向题解
[SWPUCTF 2021 新生赛]简简单单的逻辑 直接把key打印出来,然后整理一下result,让key和result进行异或 key[242,168,247,147,87,203,51,248,17,69,162,120,196,150,193,154,145,8] data[0xbc,0xfb,0xa4,0xd0,0x03,0x8d,0x48,0xbd,0x4b,0x00,0xf8,0x27,0x…...

广域网加速的作用:企业为什么需要广域网加速?
由于局域网与广域网之间巨大的带宽鸿沟,通过增加带宽来满足膨胀的流量需求是不切实际的。 并且广域网带宽成本较高,增加广域网带宽对任何企业都意味着巨大的成本负担。这些使得控制 管理广域网带宽使用成为必需。 企业为什么要加速广域网? 对重要的企…...

SQL SERVER Inregration Services-OLE DB、Oracle和ODBC操作
OLE DB链接器 OLE DB插件下载:https://learn.microsoft.com/zh-cn/sql/connect/oledb/download-oledb-driver-for-sql-server?viewsql-server-ver16 配置OLE DB Connection Manager 在点击“新建”时,会弹出警告信息“不支持指定的提供程序࿰…...

尚硅谷大数据项目《在线教育之实时数仓》笔记006
视频地址:尚硅谷大数据项目《在线教育之实时数仓》_哔哩哔哩_bilibili 目录 第9章 数仓开发之DWD层 P041 P042 P043 P044 P045 P046 P047 P048 P049 P050 P051 P052 第9章 数仓开发之DWD层 P041 9.3 流量域用户跳出事务事实表 P042 DwdTrafficUserJum…...
Linux-源码安装go
使用go 1.14 版本 #wget https://golang.org/dl/go1.14.15.linux-amd64.tar.gz #tar zxvf go1.14.15.linux-amd64.tar.gz #mv go /usr/local/ #vim /etc/profile export GOROOT/usr/local/go export GOBIN$GOROOT/bin export GOPKG$GOROOT/pkg/tool/linux_amd64 export GO…...

UE5 学习系列(二)用户操作界面及介绍
这篇博客是 UE5 学习系列博客的第二篇,在第一篇的基础上展开这篇内容。博客参考的 B 站视频资料和第一篇的链接如下: 【Note】:如果你已经完成安装等操作,可以只执行第一篇博客中 2. 新建一个空白游戏项目 章节操作,重…...
逻辑回归:给不确定性划界的分类大师
想象你是一名医生。面对患者的检查报告(肿瘤大小、血液指标),你需要做出一个**决定性判断**:恶性还是良性?这种“非黑即白”的抉择,正是**逻辑回归(Logistic Regression)** 的战场&a…...
工程地质软件市场:发展现状、趋势与策略建议
一、引言 在工程建设领域,准确把握地质条件是确保项目顺利推进和安全运营的关键。工程地质软件作为处理、分析、模拟和展示工程地质数据的重要工具,正发挥着日益重要的作用。它凭借强大的数据处理能力、三维建模功能、空间分析工具和可视化展示手段&…...

沙箱虚拟化技术虚拟机容器之间的关系详解
问题 沙箱、虚拟化、容器三者分开一一介绍的话我知道他们各自都是什么东西,但是如果把三者放在一起,它们之间到底什么关系?又有什么联系呢?我不是很明白!!! 就比如说: 沙箱&#…...

【无标题】湖北理元理律师事务所:债务优化中的生活保障与法律平衡之道
文/法律实务观察组 在债务重组领域,专业机构的核心价值不仅在于减轻债务数字,更在于帮助债务人在履行义务的同时维持基本生活尊严。湖北理元理律师事务所的服务实践表明,合法债务优化需同步实现三重平衡: 法律刚性(债…...

Kubernetes 节点自动伸缩(Cluster Autoscaler)原理与实践
在 Kubernetes 集群中,如何在保障应用高可用的同时有效地管理资源,一直是运维人员和开发者关注的重点。随着微服务架构的普及,集群内各个服务的负载波动日趋明显,传统的手动扩缩容方式已无法满足实时性和弹性需求。 Cluster Auto…...
Java中栈的多种实现类详解
Java中栈的多种实现类详解:Stack、LinkedList与ArrayDeque全方位对比 前言一、Stack类——Java最早的栈实现1.1 Stack类简介1.2 常用方法1.3 优缺点分析 二、LinkedList类——灵活的双端链表2.1 LinkedList类简介2.2 常用方法2.3 优缺点分析 三、ArrayDeque类——高…...
CentOS 7.9安装Nginx1.24.0时报 checking for LuaJIT 2.x ... not found
Nginx1.24编译时,报LuaJIT2.x错误, configuring additional modules adding module in /www/server/nginx/src/ngx_devel_kit ngx_devel_kit was configured adding module in /www/server/nginx/src/lua_nginx_module checking for LuaJIT 2.x ... not…...

多模态学习路线(2)——DL基础系列
目录 前言 一、归一化 1. Layer Normalization (LN) 2. Batch Normalization (BN) 3. Instance Normalization (IN) 4. Group Normalization (GN) 5. Root Mean Square Normalization(RMSNorm) 二、激活函数 1. Sigmoid激活函数(二分类&…...

(33)课54:3 张表的 join-on 连接举例,多表查询总结。数据库编程补述及游标综合例题。静态 sqL与动态sqL(可带参数)
(112)3 张表的 join-on 连接举例 : (113) 多表查询总结 : (114)数据库编程补述 : 综合例题 : 以上没有动手练习,不知道这样的语法是否…...