本文主要介绍使用requests库处理cookie和session。大多数的系统,在进行接口测试时,都要先进行登录操作,这时就需要对cookie或者session进行处理。
cookie和session简单介绍:
(1)cookie是由服务端生成,存储在响应头中,返回给客户端,客户端会将cookie存储下来。接着客户端在发送请求时,user-agent会自动获取本地存储的cookie,将cookie信息存储在请求头中,发送给服务端。cookie的过期时间可以任意设置,如果不主动清除,在很长一段时间里都可以保留,即使电脑关机。
(2)session是由服务端生成,存储在服务器端的内存、缓存、数据库等地方。客户端给服务端发送请求后,服务端会根据请求信息生成session,同时生成一个session_id,通过cookie返回给客户端,以便今后每次请求时都可以分辨你是谁;客户端再次向服务端发送请求时,会通过cookie将这个session_id发送给服务端
一、requests.session()会话保持
在接口测试时,创建一个requests.session(),session对象能够跨请求保持某些参数,会在同一个session发出的所有请求之间保持cookies,实现了会话的延续,代码如下:
这样就实现了进行接口测试时,每次都需要先登录系统的情况。那我们可不可以将登录写在公共模块里,进行接口测试前都调用这个公共模块呢?
二、cookie处理
首先写一个公共的登录类,并从响应头中获取cookie信息
在执行其他接口测试时,导入公共模块,发送请求时加入cookie