开发者社区> 游客pxprrm2iipsfu> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

接口测试平台代码实现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很多了。欢迎小伙伴继续关注!

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
接口测试平台代码实现148:加密算法的设计与实现
接口测试平台代码实现148:加密算法的设计与实现
15 0
接口测试平台代码实现153:加密算法更新
接口测试平台代码实现153:加密算法更新
5 0
接口测试平台代码实现133: 全局变量-12
好,时隔半月的 实战系列继续更新。 让我们先回顾下现在的进度: 全局变量组的增删改查已经做完了。 然后我们想先插入到接口调试层功能里。 这其中涉及到 变量的占位 和替换。 我们做了一个大字符串的替换公共函数。 然后把url,header host等都塞进去换一遍出来,都成功了。
14 0
接口测试平台代码实现53: 首页重构1
接口测试平台代码实现53: 首页重构1
75 0
接口测试平台代码实现11: 用户管理模块设计和开发
上节,我们已经做完了首页,那么针对于一个平台来说,这并不仅仅是一个有界面的工具/脚本,而是实实在在可多人协同使用的平台。那么就必然不可缺少 用户概念。
28 0
接口测试平台代码实现10:菜单页面升级
在介绍项目列表之前,先让我们热热身,做一个各个页面都会出现的 右上角返回主页按钮,这里会学习到一些css属性和js的使用。
15 0
接口测试平台代码实现33:接口调试
接口测试平台代码实现33:接口调试
14 0
接口测试平台代码实现29:真正的三大核心模块概述
如果说接口测试平台到底是做什么的?或者说核心到底是什么? 是帮助模块么?是首页么?是登陆注册么? 肯定都不是。
18 0
接口测试平台代码实现13:注册功能
上节我们实现了登陆功能,但是可惜用户表中没数据。所以这节我们讲如何注册用户。
15 0
接口测试平台代码实现1:环境和所需技术
本节主要是要介绍下,做一个这样的测试平台,都需要提取掌握哪些技术呢?还没掌握的可以在看完本节之后,去好好学习一下相关技术。本公众号会用直白的土话给您讲讲,并不是百度百科那种晦涩难懂的定义哈。
23 0
+关注
游客pxprrm2iipsfu
我去热饭
435
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载