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


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


相关文章
|
11月前
|
关系型数据库 MySQL 测试技术
【分享】AgileTC测试用例管理平台使用分享
AgileTC 是一个脑图样式测试用例管理平台,支持用例设计、执行与团队协作,帮助测试人员高效管理测试流程。
512 116
【分享】AgileTC测试用例管理平台使用分享
|
11月前
|
测试技术 开发者 Python
Python单元测试入门:3个核心断言方法,帮你快速定位代码bug
本文介绍Python单元测试基础,详解`unittest`框架中的三大核心断言方法:`assertEqual`验证值相等,`assertTrue`和`assertFalse`判断条件真假。通过实例演示其用法,帮助开发者自动化检测代码逻辑,提升测试效率与可靠性。
652 1
|
11月前
|
人工智能 数据可视化 测试技术
AI测试平台自动遍历:低代码也能玩转全链路测试
AI测试平台的自动遍历功能,通过低代码配置实现Web和App的自动化测试。用户只需提供入口链接或安装包及简单配置,即可自动完成页面结构识别、操作验证,并生成可视化报告,大幅提升测试效率,特别适用于高频迭代项目。
|
11月前
|
人工智能 测试技术 调度
写用例写到怀疑人生?AI 智能测试平台帮你一键生成!
霍格沃兹测试开发学社推出AI智能测试用例生成功能,结合需求文档一键生成高质量测试用例,大幅提升效率,减少重复劳动。支持自定义提示词、多文档分析与批量管理,助力测试人员高效完成测试设计,释放更多时间投入核心分析工作。平台已开放内测,欢迎体验!
|
11月前
|
人工智能 测试技术 项目管理
测试不再碎片化:AI智能体平台「项目资料套件」功能上线!
在实际项目中,需求文档分散、整理费时、测试遗漏等问题常困扰测试工作。霍格沃兹推出AI智能体测试平台全新功能——项目资料套件,可将多个关联文档打包管理,并一键生成测试用例,提升测试完整性与效率。支持套件创建、文档关联、编辑删除及用例生成,适用于复杂项目、版本迭代等场景,助力实现智能化测试协作,让测试更高效、更专业。
|
11月前
|
人工智能 自然语言处理 测试技术
AI测试平台的用例管理实践:写得清晰,管得高效,执行更智能
在测试过程中,用例分散、步骤模糊、回归测试效率低等问题常困扰团队。霍格沃兹测试开发学社推出的AI测试平台,打通“用例编写—集中管理—智能执行”全流程,提升测试效率与覆盖率。平台支持标准化用例编写、统一管理操作及智能执行,助力测试团队高效协作,释放更多精力优化测试策略。目前平台已开放内测,欢迎试用体验!
|
数据可视化 前端开发 测试技术
接口测试新选择:Postman替代方案全解析
在软件开发中,接口测试工具至关重要。Postman长期占据主导地位,但随着国产工具的崛起,越来越多开发者转向更适合中国市场的替代方案——Apifox。它不仅支持中英文切换、完全免费不限人数,还具备强大的可视化操作、自动生成文档和API调试功能,极大简化了开发流程。
|
Java 测试技术 容器
Jmeter工具使用:HTTP接口性能测试实战
希望这篇文章能够帮助你初步理解如何使用JMeter进行HTTP接口性能测试,有兴趣的话,你可以研究更多关于JMeter的内容。记住,只有理解并掌握了这些工具,你才能充分利用它们发挥其应有的价值。+
1684 23
|
SQL 安全 测试技术
2025接口测试全攻略:高并发、安全防护与六大工具实战指南
本文探讨高并发稳定性验证、安全防护实战及六大工具(Postman、RunnerGo、Apipost、JMeter、SoapUI、Fiddler)选型指南,助力构建未来接口测试体系。接口测试旨在验证数据传输、参数合法性、错误处理能力及性能安全性,其重要性体现在早期发现问题、保障系统稳定和支撑持续集成。常用方法包括功能、性能、安全性及兼容性测试,典型场景涵盖前后端分离开发、第三方服务集成与数据一致性检查。选择合适的工具需综合考虑需求与团队协作等因素。
2303 24
|
JSON 前端开发 测试技术
大前端之前端开发接口测试工具postman的使用方法-简单get接口请求测试的使用方法-简单教学一看就会-以实际例子来说明-优雅草卓伊凡
大前端之前端开发接口测试工具postman的使用方法-简单get接口请求测试的使用方法-简单教学一看就会-以实际例子来说明-优雅草卓伊凡
1280 10
大前端之前端开发接口测试工具postman的使用方法-简单get接口请求测试的使用方法-简单教学一看就会-以实际例子来说明-优雅草卓伊凡