接口-cookie处理

一、简介

  • 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)