Python 处理 session 最简单的方法

本贴最后更新于 606 天前,其中的信息可能已经时移世异

前言:

不管是在做接口自动化还是在做 UI 自动化,测试人员遇到的第一个问题都是卡在登录上。
那是因为在执行登录的时候,服务端会有一种叫做 session 的会话机制。
一个很简单的例子:
在做功能测试的时候,肯定会遇到一种测试场景,需要在没登录的时候进行一些普通操作,会提示“请先登录”
比如:我们在逛 TB 的时候,如果没有登录,那么当你搜索到一个商品,准备下单时候,是不是就会弹出一个登录框?
其实这就是利用到了 session 会话机制。
因为 HTTP 协议是无状态的,那么在下订单,加入购物车等场景时,服务器是不知道哪个用户在操作。
因此,服务器需要为特定用户创建特定会话,该会话用于识别用户并跟踪用户,以便知道下一个什么商品的订单,购物车里有些什么商品。

requests.session

python 有一个非常强大的接口测试第三方库 -- requests
很多学习 Python 的同学们可能都知道 requests 库的用法,但是不知道的是还有另外一种用法:requests.session
session 其实是一个会话类,requests 的所有请求方法,底层都是调用的这个类的对象。
其他方法和 session 的区别在于:
直接使用 requests 调用请求方法发送请求,每次都会创建一个新的 session(会话对象),所以没有之前请求的 cookies 信息
直接创建一个 session 对象来发请求,那么每次发请求用的都是这个会话对象,所有能够保存之前的会话信息(cookies 数据)

代码如下:

session 类

image.png

requests 库

image.png

1 操作
zymnstlm 在 2020-09-23 11:40:21 更新了该帖
1 回帖
请输入回帖内容 ...
  • chenxiaotingv5

    登录不是一般都是 post 请求方法嘛,作者为啥用 get 请求方法