接口测试平台代码实现138: 关于大用例登陆态干扰bug

简介: 昨天有小伙伴反馈说 他发现了一个bug, 就是当俩个项目 不同大用例 运行时,登陆态干扰问题。

按照他的描述,应该是如下场景触发的:

项目A - 有登陆态接口A (此登陆态接口返回一个字段A)- 大用例接口A (此接口需要加登陆态返回的字段A)


执行后,发现可以加入字段A


然后去继续执行:

项目B - 有登陆态接口B (此登陆态接口返回一个字段B) -大用例接口B (此接口需要加登陆态返回的字段B)


结果他说问题出现了,就是 接口B加入的字段是 项目A的 登陆态接口返回的字段A。


他怀疑是run_cases.py中的这段代码引发的:

微信图片_20220707101932.png这段代码的意思是 当发现接口需要使用登陆态变量的时候,先去检查是否已经存在 登陆态变量(login_res) ,如果已存在 则直接用,否则就重新调用登陆态接口去获取。


这里的login_res 正常来说只有当之前接口触发过登陆态,才会生成这个登陆态字典变量。


这个bug的关键就在于,项目A先执行,生成了login_res, 然后项目B再执行,发现已经存在了login_res后就不再继续请求了。


我们现在先来用实际的demo来测试一下,看看能否复现吧~


一:先创建项目A/B

微信图片_20220707101952.png

然后分别新建登陆态接口 A/B 。


注意,为了更好的做测试,我决定不再到处找别的接口了,就我们自己的平台我们新建四个接口用来测试,并且新建一个专门存放测试接口的views_test.py

微信图片_20220707101959.png

然后去urls.py中导入:

微信图片_20220707102005.png

然后增加四个测试用接口,俩个登陆态,俩个普通接口:

微信图片_20220707102013.png

  # ------------ 测试用接口
    url(r'^test_login_A/$', test_login_A),  # 保存一个全局变量组
    url(r'^test_login_B/$', test_login_B),  # 保存一个全局变量组
    url(r'^test_api_A/$', test_api_A),  # 保存一个全局变量组
    url(r'^test_api_B/$', test_api_B),  # 保存一个全局变量组

然后去views_test.py中新建这四个函数:

微信图片_20220707102019.png


到此 我们之后调试的时候,举例子比如只要访问的是

http://127.0.0.1:8000/test_api_A/。那么就会返回 函数test_api_A的内部res字典了。想

怎么测怎么测。


所以现在我要给这四个接口添加内容:


两个登陆态接口,就userid吧:]

微信图片_20220707102035.png

俩个普通接口就 更简单了:

微信图片_20220707102042.png

临时这样设置,后续需要我们随时改即可。然后我们去设置项目A和B的登陆态和普通接口吧~


先来项目A的:

微信图片_20220707102049.png

然后设置好提取后,保存。然后再Send

微信图片_20220707102055.png

然后是项目A的普通接口:

微信图片_20220707102101.png

从图中可看到,加了登陆态后仍然可以请求成功。


然后是项目B:

微信图片_20220707102107.png别忘了切换回none后保存。

微信图片_20220707102114.png


调试成功后别忘了保存。


好!接下来,我们给俩个项目都增加 大用例,虽然大用例只有一个普通接口组成。


这里我们顺手删除之前写的 没用的 :新增登陆态接口按钮。

微信图片_20220707102120.png项目A用例:

微信图片_20220707102138.png


项目B用例:

微信图片_20220707102144.png

好了。现在我们都设置好了。也都添加了登陆态。


篇幅有限,本章到此为止,下一节我们开始正式来测试这个bug。


不要以为测试很简单哦。我们首先要制定测试方案。


相关文章
|
1月前
|
Java 关系型数据库 数据库连接
Mybatis+MySQL动态分页查询数据经典案例(含代码以及测试)
Mybatis+MySQL动态分页查询数据经典案例(含代码以及测试)
26 1
|
1天前
|
人工智能 监控 数据处理
【AI大模型应用开发】【LangSmith: 生产级AI应用维护平台】1. 快速上手数据集与测试评估过程
【AI大模型应用开发】【LangSmith: 生产级AI应用维护平台】1. 快速上手数据集与测试评估过程
12 0
|
16天前
|
算法 安全 Java
java代码 实现AES_CMAC 算法测试
该代码实现了一个AES-CMAC算法的简单测试,使用Bouncy Castle作为安全提供者。静态变量K定义了固定密钥。`Aes_Cmac`函数接受密钥和消息,返回AES-CMAC生成的MAC值。在`main`方法中,程序对给定的消息进行AES-CMAC加密,然后模拟接收ECU的加密结果并进行比较。如果两者匹配,输出"验证成功",否则输出"验证失败"。辅助方法包括将字节转为16进制字符串和将16进制字符串转为字节。
|
1月前
|
缓存 运维 Serverless
应用研发平台EMAS产品常见问题之测试检查更新没有反应如何解决
应用研发平台EMAS(Enterprise Mobile Application Service)是阿里云提供的一个全栈移动应用开发平台,集成了应用开发、测试、部署、监控和运营服务;本合集旨在总结EMAS产品在应用开发和运维过程中的常见问题及解决方案,助力开发者和企业高效解决技术难题,加速移动应用的上线和稳定运行。
|
1月前
|
测试技术 数据库 Python
python测试代码(二)
python测试代码(二)
19 0
|
1月前
|
机器学习/深度学习 人工智能 监控
视觉智能平台常见问题之体验产品的美颜测试关掉如何解决
视觉智能平台是利用机器学习和图像处理技术,提供图像识别、视频分析等智能视觉服务的平台;本合集针对该平台在使用中遇到的常见问题进行了收集和解答,以帮助开发者和企业用户在整合和部署视觉智能解决方案时,能够更快地定位问题并找到有效的解决策略。
23 1
|
1月前
|
Java 测试技术
单元测试编写可测试代码
单元测试编写可测试代码
19 2
|
2月前
|
测试技术
Lim测试平台测试报告说明
Lim测试平台测试报告说明
32 2
|
2月前
|
SQL 测试技术 数据库连接
Lim接口测试平台-接口测试功能详解
Lim接口测试平台-接口测试功能详解
40 1
|
2月前
|
SQL 监控 测试技术
Lim测试平台变量使用规则介绍
Lim测试平台变量使用规则介绍
27 0

热门文章

最新文章