图片-稻子网
图片-稻子网
图片-稻子网
图片-稻子网

服务器cookie-高级测试:你有没有得到神器会话来实现跨请求登录保留?

前言

在学习自动化或者去面试自动化相关的岗位时,难免会遇到的问题之一是:自动化请求中的登录信息如何处理?无论是学习界面自动化,还是外出面试自动化测试岗位,测试人员遇到的问题之一就是如何处理登录?

图片[1]-服务器cookie-高级测试:你有没有得到神器会话来实现跨请求登录保留?-稻子网

举一个非常简单的例子:

在做界面自动化测试的时候服务器cookie,肯定会遇到一个测试场景,在操作的时候会提示用户登录或者直接返回HTTP状态码401()。

例如:我们在电商平台购物时,会提示我们先登录再创建订单。由于 HTTP 协议是无状态的,因此在创建订单时服务器不知道是哪个用户在操作。因此,用户在创建订单时必须先登录。登录成功后,服务器会返回一个特定的标识符,用于识别和跟踪用户。

常用识别信息

在自动化的过程中,你一般会听到两个登录术语:一个是token,一个是。

它是由 Web 服务器保存在用户浏览器上的一个小文本文件。它包含有关用户的信息。通常,服务器创建一个会话,并通过请求的请求将其返回给客户端(浏览器或其他客户端)。类似于我们用身份证加入一家公司,然后公司给我们一个员工号。在后续的工作流程中,我们使用员工编号进行工时统计或工资分配。

图片[2]-服务器cookie-高级测试:你有没有得到神器会话来实现跨请求登录保留?-稻子网

Token是申请公司通过账户密码生成的具有时间有效性和权限的随机数。令牌的使用类似于我们出生后有了身份证,以后我们会直接出示我们的身份证。

实战-自动保存/获取

自动采集原理

有一个非常强大的接口用于测试第三方库-。很多学习的同学可能都知道,库的常见用法一般如下:

1.第一种方式:

.get(url,,)

.post(网址,数据,)

图片[3]-服务器cookie-高级测试:你有没有得到神器会话来实现跨请求登录保留?-稻子网

2.第二种方式:

.(网址,.,)

.(url,.data,)

使用以上两种方法,当界面需要依赖登录信息时,需要手动提取出来,然后通过变量传递给下一个界面。

其实除了上面提到的手动获取方式,还有一种用法:.()。实际上,一个会话类的所有请求方法在底层都被称为该类的对象。

其他方法和方法的区别在于:

直接使用调用请求方法发送请求,每次都会创建一个新的(会话对象),所以之前没有请求的信息

图片[4]-服务器cookie-高级测试:你有没有得到神器会话来实现跨请求登录保留?-稻子网

直接创建一个对象发送请求,然后每次请求使用同一个对象,可以自动保存之前的信息(数据),然后其他接口会在同一个时自动调用保存的信息用过的 。

如果接口是依赖的,可以使用自动管理,s=.(),那么依赖接口可以通过s.get()/s.post()自动关联

识别自动识别集

你可能会好奇,什么情况下会自动获得对应的呢?这时候就可以使用抓包工具了。这个抓包工具可以清晰的划分接口的各种数据,包括Set(登录信息的存储)、Text(对应响应数据体)。

请看下面的截图!

图片[5]-服务器cookie-高级测试:你有没有得到神器会话来实现跨请求登录保留?-稻子网

从上面的截图可以知道,用户登录成功后,服务器通过登录界面返回的一组响应数据返回相应的用户信息。

图片[6]-服务器cookie-高级测试:你有没有得到神器会话来实现跨请求登录保留?-稻子网

如何自动获取?

通过以上原理的介绍,我们可以知道,在接口请求之前,我们首先创建一个会话并与服务器建立连接,然后会生成相应的。通俗地说,就是用身份证登记。注册成功后,对方的数据库会生成一个ID号,然后我们会用这个号来验证我们的身份。

代码实现方法如下:

1.创建对话:s=.()

2.发起登录请求:s.post(url,data,) #登录请求一般是post请求

3.查看订单详情页:s.get(url,,) #查看数据一般是get请求

注意:创建订单或查询订单详情的请求必须在登录请求后提交,否则对应信息为空

图片[7]-服务器cookie-高级测试:你有没有得到神器会话来实现跨请求登录保留?-稻子网

其他:查看保存的信息——..()

代码段

图片[8]-服务器cookie-高级测试:你有没有得到神器会话来实现跨请求登录保留?-稻子网

图片[9]-服务器cookie-高级测试:你有没有得到神器会话来实现跨请求登录保留?-稻子网

操作结果:

图片[10]-服务器cookie-高级测试:你有没有得到神器会话来实现跨请求登录保留?-稻子网

总结

的自动保存功能其实类似于管理器。不同的是,在使用的时候,我们需要手动提取登录名保存在管理器中服务器cookie,然后将其他请求放到管理器下,默认调用在管理器中;而传递s=.()的作用就是先发起一个会话,然后再发出不同的请求,直接使用同一个会话。返回后服务器会自动保存。其他接口需要直接通过s.get()或者s.post()进行自动获取。

图片[11]-服务器cookie-高级测试:你有没有得到神器会话来实现跨请求登录保留?-稻子网

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片