资深老鸟整理,接口自动化测试requests框架高级用法(详全)

本文深入探讨了Requests库在接口自动化测试中的高级用法,包括会话对象的使用,如跨请求保持cookie和连接池,以及如何自定义身份验证、设置代理、处理SSL证书验证和超时。通过实例讲解了Request请求和Response响应对象,强调了会话对象在保持状态和提高性能方面的作用。此外,还涵盖了Python编程基础、自动化测试项目实战和DevOps体系等内容。
摘要由CSDN通过智能技术生成


前言

会话对象

①会话对象让你能够跨请求保持某些参数。它也会在同一个 Session 实例发出的所有请求之间保持 cookie, 期间使用 urllib3库 的 connection pooling 【连接池】功能。

所以如果向同一主机发送多个请求,底层的 TCP 连接将会被重用【同一服务器地址发起的多个请求不需要重新token身份认证,比如对同一服务器不同资源发起的请求】,从而带来显著的性能提升。

会话对象具有主要的 Requests API 的所有方法。

实例:跨请求【注意这里是跨请求而不是跨域】保持一些 cookie:

import requests

session = requests.Session()

session.get('http://httpbin.org/cookies/set/sessioncookie/123456789')
r = session.get("http://httpbin.org/cookies")

print(r.text)

②会话对象也可用来为请求时提供缺省数据。这是通过 为会话对象的属性提供数据 来实现的:

import requests

session = requests.Session()
session.auth = ('user', 'pass')
session.headers.update({
   'x-test': 'true'})

# both 'x-test' and 'x-test2' are sent
response = session.get('http://httpbin.org/headers', headers={
   'x-test2': 'true'})

print(response.request.headers)

运行结果:【任何传递给请求方法的字典都会与已设置会话层数据合并【requests headers】。方法层的参数覆盖会话的参数。】

③【注意】即使使用会话对象,方法级别的参数不会被跨请求保持。

例如:第一个请求发送 cookie,第二个请求无法获取cookie:

import requests

session = requests.Session()

r = session.get('http://httpbin.org/cookies', cookies={
   'from-my': 'browser'})  # 这里的cookie是通过参数的方式发送至服务器,而不是通过请求头的方式
print(r.json())
# '{"cookies": {"from-my": "browser"}}'

r = session.get('http://httpbin.org/cookies')
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值