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


前言

会话对象

①会话对象让你能够跨请求保持某些参数。它也会在同一个 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'})  
  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值