接口测试平台代码实现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

相关文章
|
4天前
|
消息中间件 监控 小程序
电竞陪玩系统架构优化设计,陪玩app如何提升系统稳定性,陪玩小程序平台的测试与监控
电竞陪玩系统架构涵盖前端(React/Vue)、后端(Spring Boot/php)、数据库(MySQL/MongoDB)、实时通信(WebSocket)及其他组件(Redis、RabbitMQ、Nginx)。通过模块化设计、微服务架构和云计算技术优化,提升系统性能与可靠性。同时,加强全面测试、实时监控及故障管理,确保系统稳定运行。
|
17天前
|
算法 Java 测试技术
使用 BenchmarkDotNet 对 .NET 代码进行性能基准测试
使用 BenchmarkDotNet 对 .NET 代码进行性能基准测试
46 13
|
27天前
|
监控 JavaScript 测试技术
postman接口测试工具详解
Postman是一个功能强大且易于使用的API测试工具。通过详细的介绍和实际示例,本文展示了Postman在API测试中的各种应用。无论是简单的请求发送,还是复杂的自动化测试和持续集成,Postman都提供了丰富的功能来满足用户的需求。希望本文能帮助您更好地理解和使用Postman,提高API测试的效率和质量。
86 11
|
2月前
|
并行计算 算法 测试技术
C语言因高效灵活被广泛应用于软件开发。本文探讨了优化C语言程序性能的策略,涵盖算法优化、代码结构优化、内存管理优化、编译器优化、数据结构优化、并行计算优化及性能测试与分析七个方面
C语言因高效灵活被广泛应用于软件开发。本文探讨了优化C语言程序性能的策略,涵盖算法优化、代码结构优化、内存管理优化、编译器优化、数据结构优化、并行计算优化及性能测试与分析七个方面,旨在通过综合策略提升程序性能,满足实际需求。
76 1
|
2月前
|
人工智能 供应链 安全
AI辅助安全测试案例某电商-供应链平台平台安全漏洞
【11月更文挑战第13天】该案例介绍了一家电商供应链平台如何利用AI技术进行全面的安全测试,包括网络、应用和数据安全层面,发现了多个潜在漏洞,并采取了有效的修复措施,提升了平台的整体安全性。
|
2月前
|
JSON Java 测试技术
SpringCloud2023实战之接口服务测试工具SpringBootTest
SpringBootTest同时集成了JUnit Jupiter、AssertJ、Hamcrest测试辅助库,使得更容易编写但愿测试代码。
74 3
|
2月前
|
监控 安全 测试技术
构建高效的精准测试平台:设计与实现指南
在软件开发过程中,精准测试是确保产品质量和性能的关键环节。一个精准的测试平台能够自动化测试流程,提高测试效率,缩短测试周期,并提供准确的测试结果。本文将分享如何设计和实现一个精准测试平台,从需求分析到技术选型,再到具体的实现步骤。
168 1
|
3月前
|
人工智能 监控 测试技术
云应用开发平台测试
云应用开发平台测试
89 2
|
2月前
|
监控 安全 测试技术
构建高效精准测试平台:设计与实现全攻略
在软件开发过程中,精准测试是确保产品质量的关键环节。一个高效、精准的测试平台能够自动化测试流程,提高测试覆盖率,缩短测试周期。本文将分享如何设计和实现一个精准测试平台,从需求分析到技术选型,再到具体的实现步骤。
78 0
|
19天前
|
存储 前端开发 Java
【SpringMVC】——Cookie和Session机制
获取URL中参数@PathVarible,上传文件@RequestPart,HttpServerlet(getCookies()方法,getAttribute方法,setAttribute方法,)HttpSession(getAttribute方法),@SessionAttribute