一、简介
-
cookie
是服务器发送到用户浏览器,并保存到用户本地的一小块数据,会在浏览器下次向同一服务器再发起请求时,被携带并发送到服务器上。 -
通常用于告知服务端,两个请求是否来自同一浏览器,如保持用户的登录状态。
1.1 原理
-
cookie
技术会根据从服务器端发出的响应报文内的一个叫做Set-Cookie
的首部字段信息,通知客户端保存cookie
。
-
客户端再向服务器端发送请求时,客户端会在请求报文中加入
cookie
值后,再发送出去。 -
服务器端会检查客户端发送的请求中有没有
cookie
值,然后对比服务器的记录,最后确定是哪一个客户端,之前的信息状态是什么。
1.2 使用场景
-
在接口测试过程中,很多情况下,需要发送的请求附带
cookies
,才会得到正常的响应结果。 -
所以使用
Python+requests
进行接口自动化测试也是同理,需要在构造接口测试用例时加入cookie
。 -
传递
cookie
的两种方式:- 通过请求头信息传递;
- 通过请求的关键字参数
cookies
传递。
二、实际应用场景
- 判断用户是否已经登录;
- 记录用户登录信息(比如用户名、上次登录时间等);
- 记录用户搜索关键词。
2.1 处理方法
自定义header
import requests
url = 'https://httpbin.ceshiren.com/cookies'
headers = {"Cookie": 'working=1', 'User-Agent': 'python-requests/2.23.0'}
r = requests.get(url, headers=headers)
print(r.request.headers)
使用cookies参数
import requests
url = 'https://httpbin.ceshiren.com/cookies'
headers = {'User-Agent': 'Python-requests/2.23.0'}
cookies = dict(cookies_are='working2')
r = requests.get(url, headers=headers, cookies=cookies)
print(r.request.headers)