接口测试平台代码实现137: 小bug集中修复

简介: 接口测试平台代码实现137: 小bug集中修复

   有bug反馈证明 有人在用,在学。这点很好。当然随着 难度不断的提升,一些bug也并不是我故意埋的了。感谢反馈的小伙伴等人!


bug1:  新建项目 ,打开登陆态接口,看到的场景很诡异


微信图片_20220707093702.png

如图,如果你想知道为什么这么诡异,现在,就带你研究!

这个问题的罪魁祸手是 views.py中的这个函数:

微信图片_20220707093717.png

当项目并没有设置 登陆态的时候,就返回了个空字典。这样前端的js自然找不到里面的内容,从而展示空白/undefined等。

所以修复这个问题也简单,我们给这个空字典改成一个有各个必要字段的字典就好了:

微信图片_20220707093724.png

# 获取项目登陆态
def project_get_login(request):
    project_id = request.GET['project_id']
    try:
        login = DB_login.objects.filter(project_id=project_id).values()[0]
    except:
        login = {"project_id":project_id,"api_method":"none","api_url":"","api_header":"{}","api_host":"","body_method":"none",
                 "api_body":""}
    return HttpResponse(json.dumps(login),content_type='application/json')

然后我们刷新页面再打开就可以看到如下正常效果了:

微信图片_20220707093752.png

bug2 :新项目的登陆态接口保存失败!


这个问题的诱发原因就是,新项目并没有在数据库中的登陆态。而代码中又仅仅是保存。所以这里我们要用到一个orm方法:更新或新建 upate_or_create

意思就是 如果存在就更新,不存在就创建。


这个update_or_create的用法如下:

数据表.object.update_or_create( 更新用的字典,查询的字段 )

其中查询字段可以是多个微信图片_20220707093801.png

# 保存登陆态接口
def project_login_save(request):
    # 提取所有数据
    project_id = request.GET['project_id']
    login_method = request.GET['login_method']
    login_url = request.GET['login_url']
    login_host = request.GET['login_host']
    login_header = request.GET['login_header']
    login_body_method = request.GET['login_body_method']
    login_api_body = request.GET['login_api_body']
    login_response_set = request.GET['login_response_set']
    # 保存数据
    DB_login.objects.update_or_create(
        defaults={
            "api_method": login_method,
            "api_url": login_url,
            "api_header": login_header,
            "api_host": login_host,
            "body_method": login_body_method,
            "api_body": login_api_body,
            "set": login_response_set,
            } ,
        project_id = project_id
    )
    # 返回
    return HttpResponse('success')

经过测试,这样就搞定了!!!


bug3: 登陆态项目请求报错!

最简单的请求 某度:微信图片_20220707093808.png微信图片_20220707093817.png

这个问题引起的原因是 调试登陆态接口时,这句代码引起的:

微信图片_20220707093830.png

当时我们设计的时候,只设计了返回值是json的情况。当请求返回体非这个的时候,自然引发了这句报错。但是我们暂时并没有打算去用正则等方式去提取非json格式的返回体 关键字段。所以这里我们临时 给try掉。以后优化的时候我们再回来 增加其他格式的设置吧~


微信图片_20220707093843.png

再看看结果显示:

微信图片_20220707093926.png

好,这里我们顺手再解决这个中间是undefined的问题:

原来是我们之前漏掉了set字段:

微信图片_20220707093934.png

加上 就好了,然后新项目就不会出现这个问题了。老项目我们手动改下即可。

微信图片_20220707093940.png微信图片_20220707093945.png

好了,本期改的bug很多了。欢迎小伙伴继续关注!

相关文章
|
28天前
|
数据采集 机器学习/深度学习 大数据
行为检测代码(一):超详细介绍C3D架构训练+测试步骤
这篇文章详细介绍了C3D架构在行为检测领域的应用,包括训练和测试步骤,使用UCF101数据集进行演示。
32 1
行为检测代码(一):超详细介绍C3D架构训练+测试步骤
|
30天前
|
机器学习/深度学习 人工智能 监控
提升软件质量的关键路径:高效测试策略与实践在软件开发的宇宙中,每一行代码都如同星辰般璀璨,而将这些星辰编织成星系的过程,则依赖于严谨而高效的测试策略。本文将引领读者探索软件测试的奥秘,揭示如何通过精心设计的测试方案,不仅提升软件的性能与稳定性,还能加速产品上市的步伐,最终实现质量与效率的双重飞跃。
在软件工程的浩瀚星海中,测试不仅是发现缺陷的放大镜,更是保障软件质量的坚固防线。本文旨在探讨一种高效且创新的软件测试策略框架,它融合了传统方法的精髓与现代技术的突破,旨在为软件开发团队提供一套系统化、可执行性强的测试指引。我们将从测试规划的起点出发,沿着测试设计、执行、反馈再到持续优化的轨迹,逐步展开论述。每一步都强调实用性与前瞻性相结合,确保测试活动能够紧跟软件开发的步伐,及时适应变化,有效应对各种挑战。
|
4天前
|
监控 安全 测试技术
构建高效的精准测试平台:设计与实现指南
在软件开发过程中,精准测试是确保产品质量和性能的关键环节。一个精准的测试平台能够自动化测试流程,提高测试效率,缩短测试周期,并提供准确的测试结果。本文将分享如何设计和实现一个精准测试平台,从需求分析到技术选型,再到具体的实现步骤。
28 1
|
22天前
|
人工智能 监控 测试技术
云应用开发平台测试
云应用开发平台测试
37 2
|
4天前
|
监控 安全 测试技术
构建高效精准测试平台:设计与实现全攻略
在软件开发过程中,精准测试是确保产品质量的关键环节。一个高效、精准的测试平台能够自动化测试流程,提高测试覆盖率,缩短测试周期。本文将分享如何设计和实现一个精准测试平台,从需求分析到技术选型,再到具体的实现步骤。
24 0
|
28天前
|
JSON 算法 数据可视化
测试专项笔记(一): 通过算法能力接口返回的检测结果完成相关指标的计算(目标检测)
这篇文章是关于如何通过算法接口返回的目标检测结果来计算性能指标的笔记。它涵盖了任务描述、指标分析(包括TP、FP、FN、TN、精准率和召回率),接口处理,数据集处理,以及如何使用实用工具进行文件操作和数据可视化。文章还提供了一些Python代码示例,用于处理图像文件、转换数据格式以及计算目标检测的性能指标。
53 0
测试专项笔记(一): 通过算法能力接口返回的检测结果完成相关指标的计算(目标检测)
|
2月前
|
Java C++
代码文件间重复性测试
本文介绍了如何使用代码相似性检测工具simian来找出代码文件中的重复行,并通过示例指令展示了如何将检测结果输出到指定的文本文件中。
|
1月前
|
JavaScript 前端开发 API
vue尚品汇商城项目-day02【9.Home组件拆分+10.postman测试接口】
vue尚品汇商城项目-day02【9.Home组件拆分+10.postman测试接口】
39 0
|
1月前
|
算法 Java 测试技术
数据结构 —— Java自定义代码实现顺序表,包含测试用例以及ArrayList的使用以及相关算法题
文章详细介绍了如何用Java自定义实现一个顺序表类,包括插入、删除、获取数据元素、求数据个数等功能,并对顺序表进行了测试,最后还提及了Java中自带的顺序表实现类ArrayList。
18 0
|
2月前
|
移动开发 JSON Java
Jmeter实现WebSocket协议的接口测试方法
WebSocket协议是HTML5的一种新协议,实现了浏览器与服务器之间的全双工通信。通过简单的握手动作,双方可直接传输数据。其优势包括极小的头部开销和服务器推送功能。使用JMeter进行WebSocket接口和性能测试时,需安装特定插件并配置相关参数,如服务器地址、端口号等,还可通过CSV文件实现参数化,以满足不同测试需求。
219 7
Jmeter实现WebSocket协议的接口测试方法
下一篇
无影云桌面