前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >接口测试平台代码实现105:登录态接口

接口测试平台代码实现105:登录态接口

作者头像
我去热饭
发布2022-05-19 09:35:11
7810
发布2022-05-19 09:35:11
举报
文章被收录于专栏:测试开发干货

本节开始之前 要纠正一个bug,这个bug算是作者挖的一个小坑,在graphql的实际发送请求的代码中,作者对variables的求值代码不小心写成了int,其实应该用eval,因为这一个错误后其他代码全是复制粘贴,所以导致首页/接口调试/用例执行 三处均存在这个bug,好在榜一大哥使用中发现并给予纠正。

所以我们要改动以下三处:

views.py中的Api_send_home函数:

views.py中的Api_send函数:

run_cases.py中的demo函数:

然后就正常了,欢迎大家持续反馈bug。

接口测试平台,有个比较重要的功能,就是登陆态接口设置。

那么什么是登录态,一般的app接口 是需要一个token字段来验证 此时的用户是否是登陆状态,登录的又是哪个账号。

如果这个token不对,那么后台就会给当前账号踢掉。

而这个token是客户端怎么获取到的呢?其实绝大部分都是从登陆接口获取的。

也就是说,带着用户名 密码 /验证码 的那个接口,它作为第一个接口,是很特殊的,它不像后续接口需要token,它是用来获取token的,然后这个token被客户端当作其他后续接口的请求体/header中 发送出去。

而token是会变的,每当登陆接口调用了一次,token都会变化一次。我们平时说 一个手机先登陆app,此时它用的是token1,然后另一个手机也登陆同样账号,它用的就是token2, 而后台的缓存/数据库中存储的该账号的token只有一个,所以token1就失效了,第一个手机的请求因为带着失效的token,就会被服务器返回某个错误码,然后客户端接收到这个错误码就会把用户踢出。

当然上面说的是绝大部分app,还有很多其他的各种操作。比如web端的cookie方式 来判断登陆状态等等。不过话说回来,这一切都是要靠第一个请求,登陆接口来搞定。

所以我们测试平台为什么要加入这个功能呢?

比如接口库中,需要测试某个查询好友列表的接口,结果你写完之后每次请求,返回结果都说:请先登陆!

然后你就要去手动在请求体中加入麻烦的token,甚至还有用户id 等等其他字段。然后再请求才能成功返回。但是这个token你去哪弄呢?你只能通过去请求登陆接口获取。所以相当于你要测试一个接口,就要手动先去调用登陆接口,然后复制返回值的token等字段,然后打开查询好友接口,把这几个字段粘贴进去,然后再请求。这个操作很麻烦。

所以我们要开发一个 自动加入登陆状态的 功能,在测试查询接口的时候,有个小开关,打开,那么本次请求,就会先去自动请求登陆接口,然后自动把返回值token加入到查询请求的请求体中,然后出现结果。

从用户的角度体验,几乎看不出什么额外的麻烦流程。

那么我们先来制定下要怎么做。 1.首先,这个登录态接口包含账户信息,我们就不能作为整个平台的公用的。只能放到项目内,因为项目内是个人建立的,后果可以自负。当然后续上了权限管理后,其他人就可以控制看不到自己项目内的内容了。

2.作为项目内的一项功能,那么它应该可以作用到接口库和用例库中。

3.它需要有自己独特的管理页面(弹层),其中包括调试,返回值提取设置,类型选择,客户端选择,预置默认文案等等。

首先我们看底部的按钮:登录按钮,(错别字请自行纠正,博主键盘经常手误打成登陆,大家见谅)

首先打开P_apis.html,下方找个地方写登陆态的div:

然后新建script 并内增一个展示函数function:

内容基本是照搬部分接口调试层的代码。

然后在登录态按钮和这个login_show函数结合起来:

到此,我们点击按钮 打开登陆态接口的设置层的链路就完成了。下一节我们要开发这个div内的具体各个元素了。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-12-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 测试开发干货 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
访问管理
访问管理(Cloud Access Management,CAM)可以帮助您安全、便捷地管理对腾讯云服务和资源的访问。您可以使用CAM创建子用户、用户组和角色,并通过策略控制其访问范围。CAM支持用户和角色SSO能力,您可以根据具体管理场景针对性设置企业内用户和腾讯云的互通能力。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档