接口测试平台代码实现120:cookie持久化-3

简介: 接口测试平台代码实现120:cookie持久化-3

  本节我们来把接口库普通接口调试功能中的登陆态接口的cookie保持对话功能完善。

   前端的话没有什么好改动的,我们直接把视线聚集到views.py中的函数:

Api_send

project_login_send_for_other


 我们先来看 被调用的登陆态接口,这个函数之前是去发送请求,然后返回提取的字段,交给Api_send。

现在我们要增加一个判断,也就是如果提取设置=='cookie',那么就不是提取返回值字段来,而是要保持会话,根据前俩节的内容我们知道,如果要保持会话,那么我们的请求代码也要进行改变,之前是用requests.request,现在我们要声明一个a =  requests.session()  

然后登陆接口调用的是a.request方法,最终返回a,但是我们针对每种请求体类型都写了一个requests.request,所以虽然麻烦,但是目前逻辑上最简单的方法就是在不同的请求体类型中,都加入一个判断,虽然看起来比较low,但是系统执行起来的时候肯定只会走其中一个分支,所以运行并没有浪费效率的地方。

   先来试着改一下none类型的:

微信图片_20220703221612.png

我们把之前的请求代码放到了else里,新的if分支中判断了下返回体设置,然后声明了a,然后a进行请求登陆态接口,然后直接省略后面一切步骤,返回a即可。

之后我们依次改其他几种请求体类型:

微信图片_20220703221619.png微信图片_20220703221625.png微信图片_20220703221631.png微信图片_20220703221638.png

好了,到这为止,我们理论上搞定了登陆态接口被调用的方法。


接下来我们要考虑普通接口调用它的时候的情况了。

之前它会返回一个字典,里面包含提取的登陆态字段。但是现在如果是cookie持久化的话,那么返回的就是a,a是什么呢?我们不用关心,反正a不是字典就可以了。

   所以我们在接收的时候对登陆态返回的东西用类型判断一下,就知道是字典还是a了,若是a,那就是说明登陆态设置的是cookie持久化,那么普通接口的请求代码也要改,也要从requests.request改成a.request方法了。

   不过这里比较复杂,让我们先来回忆一下,普通接口调试函数中关于登陆态的旧逻辑吧:

   微信图片_20220703221644.png

首先判断是否需要登陆态,需要就去请求,不需要就变成空字典。

然后会依次插入到url,header,和各种body中。

这时,无论需不需要,login_res都是字典,所以我们在后面请求体请求中,可以直接放心的用循环遍历login_res.keys()

微信图片_20220703221650.png

但是我们现在增加了cookie相关,那么返回的就可能是a,那么我们后面的代码按现在的逻辑去遍历 直接就报错了。

所以我们需要判断login_res的类型看看是不是cookie持久化,若是,那么后面的所有具体不同的请求体类型的请求代码,直接全换即可。

   首先是改url插入:

微信图片_20220703221657.png

增加了if ,来判断login_res的类型,若是字典的情况,才会进行插入,否则就是cookie,不需要插入到url。


   然后是header:

微信图片_20220703221703.png

可以看到,只有当是dict字典时,才会进行插入header的操作。


然后是各种请求体:

首先是none:

微信图片_20220703221720.png

其实就是简单判断了下,如果是字典那么还是之前的requests.request,如果不是,那么就是cookie持久化,那么就用a.requests来请求,此时a就是login_res,login_res是调用登陆态接口函数返回的东西。


接下来是其他几种:

微信图片_20220703221725.png

注意,其中只有为字典时,才需要进行遍历插入请求体的代码,若不是,那么就直接用login_res请求就可以了。

微信图片_20220703221732.png微信图片_20220703221738.png微信图片_20220703221743.png

目录
打赏
0
0
0
0
27
分享
相关文章
接口测试新选择:Postman替代方案全解析
在软件开发中,接口测试工具至关重要。Postman长期占据主导地位,但随着国产工具的崛起,越来越多开发者转向更适合中国市场的替代方案——Apifox。它不仅支持中英文切换、完全免费不限人数,还具备强大的可视化操作、自动生成文档和API调试功能,极大简化了开发流程。
除了postman还有什么接口测试工具
最好还是使用国内的接口测试软件,其实国内替换postman的软件有很多,这里我推荐使用yunedit-post这款接口测试工具来代替postman,因为它除了接口测试功能外,在动态参数的支持、后置处理执行sql语句等支持方面做得比较好。而且还有接口分享功能,可以生成接口文档给团队在线浏览。
28 2
Potpie.ai:比Copilot更狠!这个AI直接接管项目代码,自动Debug+测试+开发全搞定
Potpie.ai 是一个基于 AI 技术的开源平台,能够为代码库创建定制化的工程代理,自动化代码分析、测试和开发任务。
210 19
Potpie.ai:比Copilot更狠!这个AI直接接管项目代码,自动Debug+测试+开发全搞定
大前端之前端开发接口测试工具postman的使用方法-简单get接口请求测试的使用方法-简单教学一看就会-以实际例子来说明-优雅草卓伊凡
大前端之前端开发接口测试工具postman的使用方法-简单get接口请求测试的使用方法-简单教学一看就会-以实际例子来说明-优雅草卓伊凡
114 10
大前端之前端开发接口测试工具postman的使用方法-简单get接口请求测试的使用方法-简单教学一看就会-以实际例子来说明-优雅草卓伊凡
以项目登录接口为例-大前端之开发postman请求接口带token的请求测试-前端开发必学之一-如果要学会联调接口而不是纯写静态前端页面-这个是必学-本文以优雅草蜻蜓Q系统API为实践来演示我们如何带token请求接口-优雅草卓伊凡
以项目登录接口为例-大前端之开发postman请求接口带token的请求测试-前端开发必学之一-如果要学会联调接口而不是纯写静态前端页面-这个是必学-本文以优雅草蜻蜓Q系统API为实践来演示我们如何带token请求接口-优雅草卓伊凡
79 5
以项目登录接口为例-大前端之开发postman请求接口带token的请求测试-前端开发必学之一-如果要学会联调接口而不是纯写静态前端页面-这个是必学-本文以优雅草蜻蜓Q系统API为实践来演示我们如何带token请求接口-优雅草卓伊凡
Python测试淘宝店铺所有商品接口的详细指南
本文详细介绍如何使用Python测试淘宝店铺商品接口,涵盖环境搭建、API接入、签名生成、请求发送、数据解析与存储、异常处理等步骤。通过具体代码示例,帮助开发者轻松获取和分析淘宝店铺商品数据,适用于电商运营、市场分析等场景。遵守法规、注意调用频率限制及数据安全,确保应用的稳定性和合法性。
使用ChatGPT生成登录产品代码的测试用例和测试脚本
使用ChatGPT生成登录产品代码的测试用例和测试脚本
100 35
Socket.IO介绍,以及怎么连接测试Socket.IO接口?
Socket.IO 是一个用于浏览器和服务器间实时双向通信的库,支持低延迟消息传递、跨平台运行及自动重连。文章介绍了其特点与调试需求,并详细说明如何使用 Apifox 工具创建、连接、发送/接收 Socket.IO 事件,以及团队协作和调试技巧。掌握这些技能可提升实时应用开发效率与质量。
使用ChatGPT生成关于登录产品代码的单元测试代码
使用ChatGPT生成关于登录产品代码的单元测试代码
52 16
微信公众号接口测试实战指南
微信公众号接口测试是确保系统稳定性和功能完整性的重要环节。本文详细介绍了测试全流程,包括准备、工具选择(如Postman、JMeter)、用例设计与执行,以及常见问题的解决方法。通过全面测试,可以提前发现潜在问题,优化用户体验,确保公众号上线后稳定运行。内容涵盖基础接口、高级接口、微信支付和数据统计接口的测试,强调了功能验证、性能优化、安全保护及用户体验的重要性。未来,随着微信生态的发展,接口测试将面临更多挑战和机遇,如小程序融合、AI应用和国际化拓展。

热门文章

最新文章