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

接口测试框架实战(一) | 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 在后面的章节再进行详细的介绍。

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!

http://www.lryc.cn/news/223141.html

相关文章:

  • 【C++】详解 void*
  • Linux家目录变成了-bash-4.2$
  • Python和SQLite游标处理多行数据
  • 安全测试之PHP 漏洞全解
  • 【bug-maven】(一)java: 错误: 不支持发行版本 5 (二):java: 错误: 无效的源发行版:15
  • git命令大全(附使用步骤+注释)
  • 【论文阅读】Progressive Spatio-Temporal Prototype Matching for Text-Video Retrieval
  • python --- 类与对象(二)
  • 任正非说:华为以前还出现过可笑的工号文化,看官大官小的指令
  • 用Python舞动数据的魔力:探索数据分析的艺术之路
  • iOS 让界面元素的文字随着语言的更改而变化——本地化文字跟随
  • Xcode15更新内容
  • 【数据集标注制作】视频剪切标注1——类DarkLabel软件
  • 一体化HIS医疗信息管理系统源码:云HIS、云电子病历、云LIS
  • NSSCTF逆向题解
  • 广域网加速的作用:企业为什么需要广域网加速?
  • SQL SERVER Inregration Services-OLE DB、Oracle和ODBC操作
  • 尚硅谷大数据项目《在线教育之实时数仓》笔记006
  • Linux-源码安装go
  • 如何检测小红书账号是否被限流?哪些原因会导致账号被限流?
  • [动态规划] (十三) 简单多状态 LeetCode 740.删除并获得点数
  • 【K-means聚类算法】实现鸢尾花聚类
  • 什么是代理IP池?如何判断IP池优劣?
  • 【面经】讲一下线程池的参数和运行原理
  • 针对图像分类的数据增强方法,离线增强,适合分类,无标签增强
  • 润色论文Prompt
  • 配置简单VLAN
  • 手机是否能登陆国际腾讯云服务器?
  • 5分钟Python安装实战(MAC版本)
  • python自动化测试(十一):写入、读取、修改Excel表格的数据