接口测试平台代码实现40:修改bug

简介: 我们的这个系列已经进行了长达12章成品预览和40章纯开发章节,但是基本还没做过完全一点的测试修复bug章节,每次新开发的功能也仅仅停留在单元/函数层面上的自测。

 经过了最近几十名小伙伴的反馈后,凑够了一些bug,对于一个复杂一点的工具化平台来说,尤其是我们一个测试单枪匹马负责研发且缺少测试环节的情况下,有几个bug太正常了,大家不要灰心。

   其他的教程中可能从头到尾都是最正确的代码,一个bug都没有,我们跟着学完之后,难免会觉得这些太简单了,太顺利了,然后等到自己实际工作中敲起来,出现了bug后接受不了,开始悲观自暴自弃甚至放弃,自我否定。实际上,这就是为什么我不直接把已经完成的平台正确可靠的代码一章一章的复制粘贴出来,而是亲自实际带着大家从0开始 搭建一套新的平台的原因,这样可以让大家感受一下,实际经历一下最真实的开发过程:

   有bug就修复,设计出错后面补,调试用的代码数据忘记删除,ide命令行报错,浏览器的console报错 等等等等。这些经历实打实的是一段开发经历,而非跟着书上的教程敲一遍那样顺畅。这也是你在任何培训/书本/公众号。博客/视频 上都无法得到的真实经历和体验。经受过这个教程后你才算是一个铁骨铮铮,摸爬滚打,身经百战出来的汉子,而不是一个温室培养出来纸上谈兵的书生。

   其实在开发过程中,我故意留下了一些小bug或者比较有话题的bug,当然也有确实疏忽掉的,幸运的是真的好多粉丝都在实际写着代码跟着,反馈了很多。

   那么本节课,就让我们来对这些bug依次进行修复吧。

   bug-1:

描述:删除项目后,这个项目内的接口并没有被删除,依然停留在数据库,并且通过后台删除会报错,变成了实打实的脏数据。

解决:这就是所谓的联级删除了。

首先找到我们的删除项目的函数:delete_project

微信图片_20220619115928.png


发现我们之前写这个函数的时候,还没有去开发接口概念,所以没有写接口删除的代码,那么现在就该加上了。(之后项目内的用例模块也需要到时候进行删除),增加代码后如下图:

微信图片_20220619115945.png

这样就可以实现删除项目id为待删除项目的id的 所有接口了


bug-2:

描述:接口保存后,再打开发现数据没有显示成功。


解决:这个问题是最近的一个bug,我去后台看了一下,其实数据都保存成功了,那么问题就出在显示上了。

这里要给大家解释一下,在我们前端的ts_show函数中,目前只有 清空初始化调试弹层+显示弹层和接口id/接口name。还并没有开始写显示接口真实内容的代码,所以下一节才是要做这个显示,因为当中涉及到编码格式的显示/子页面的切换/下拉框的选择等等,所以还是比较复杂的。

目前的ts_show()函数:

微信图片_20220619115951.png

bug-3:

描述:好几个页面的console中都出现了这个404报错,也不知道什么意思也不知道怎么修复

微信图片_20220619115957.png

解决: 大家可以看到这个红色报错,404代表这个资源没有找到,这个资源的后缀是.ico,也就是一个图标,之所以一直懒得管这个bug,就是因为仅仅是个小图标而已,但是天天这么红实在碍眼,所以就修复一下吧:

首先要明白这个.ico到底是什么,为什么我明明没引用,但是每个页面都会报错找不到。其实他就是我们的icon图标,也就是这个网页的小图标

微信图片_20220619120004.png

而html默认都会去寻找这个小标志,我们没有设置过,自然会报错了,这里我们可以用俩种方式解决,一是不让它找了,二是给它弄个漂亮的小icon。无论哪种,我们都只需要在welcome.html中改动即可在所有页面模块内生效。

打开welcome.html:

在head中加入这样一句代码:

<link rel="shortcut icon" href="#">

不过很多小伙伴会觉得灰心,我们真的想弄一个自己的图标呢?

所以我们其实可以制作一个.ico的图片放在/static目录下,然后这句代码的href属性就要为这个图片的相对路径了:

首先我们要知道这个图片应该非常非常非常小才行,太大的会很卡。最好我们找个在线制作的网站做一个:http://www.bitbug.net/

比如上面这个,百度搜索的第一个。

微信图片_20220619120012.png

点击生成后就会自动下载这个.ico图标了,切记一点,图片一定要小!越小越好,低于500k,并且图案要简洁大方,不然缩小之后看着花花绿绿的是什么都看不出来。你看看百度等大网站的icon就简简单单一个字...微信图片_20220619120018.png

然后把这个文件粘贴到static目录下:微信图片_20220619120026.png

在welcome.html中的这句代码改成如下:

微信图片_20220619120034.png

让我们再次刷新页面看看效果吧:


微信图片_20220619120042.png

图片已经缩小展示了,而且console也不报错了。大家可以用自己公司的ico来作为内部平台也可以,跟设计部门要就行。


bug-4:

描述:在接口库中,左侧菜单展开后,隐藏按钮不见了?

微信图片_20220619120048.png

解决:其实并不是不见了,只是因为隐藏按钮被这个接口库顶部菜单给遮挡了。虽然我们可以通过调整层级来让这个按钮显示出来,但是我总觉得这个按钮设计的并不好,所以我们这次干脆给这个显示隐藏按钮 给重新设计,当然逻辑不变,只是位置和文案都变了。

打开welcome.html:找到旧的这个按钮:

微信图片_20220619120054.png


我们修改成如下:

微信图片_20220619121545.png

style进行了大变动,且文案变成了小于号,并且用span 大号包裹住:

然后修改下面的它关联的函数:display_menu()

微信图片_20220619120142.png

注意细微差别,style.margileft改成了style.left。避免大家出错,请直接复制以下代码:

<button id="menu_btn" onclick="display_menu()" style="
position: absolute;left: 188px;top: 48%;z-index: 999;height: 35px;
background-color: #353c48;color: white;border: 0;font-size: x-large"><</button>
<script>
    function display_menu() {
        menu = document.getElementById('navbar');
        btn = document.getElementById('menu_btn');
        if( btn.innerText == '<' ){
            menu.style.display = 'none';
            btn.style.left = '0px';
            btn.innerText = '>';
        }else{
            menu.style.display = 'block';
            btn.style.left = '188px';
            btn.innerText = '<';
        }
    }
</script>

好,刷新页面看看效果:


微信图片_20220619120151.png微信图片_20220619120203.png

但是经过这次改动后,右上角的 回到主页和退出按钮 的位置就乱了:

微信图片_20220619120211.png微信图片_20220619120218.png

这种情况我们正好也可以重新设计这俩个按钮:同样他们也只在welcome.html中显示,所以我们如下设计。找到这俩个按钮:微信图片_20220619120227.png

然后,记住他们的超链接 一个是/home/ 一个是/logout/ ,好,删掉~

记住这些功劳按钮,他们都是为了当时我们学习更多的css才制作的如此难看的,如今我们要设计更好看 符合审美常识的按钮来替换掉它们了。

新增如下按钮组,简洁大方。微信图片_20220619120235.png

<div style="font-size: large;position: absolute;top: 0px;right: 0px;box-shadow: 4px 4px 8px grey;
            padding-left: 5px;padding-right: 5px">
    <a href="/home/" style="color: black;text-decoration: none"> 主页 </a>
    <a href="/logout/"  style="color: black;text-decoration: none"> 退出 </a>
</div>

看看效果:

微信图片_20220619120246.png

然后我们发现 ,每个子页面貌似都向上移动了一大块距离,使得我们原本的布局不好看了起来:

微信图片_20220619120257.png微信图片_20220619120319.png

太顶了,那是因为这个主页/退出按钮组 以前在文档流中可以当作一行来占位,现在脱离文档流了,所以所有子页面都顺势上滑。我们可以在原位置用过br标签换行符来撑开:微信图片_20220619120327.png


然后各个页面效果就恢复了之前的:

微信图片_20220619120412.png

bug-5:

描述:接口名称目前貌似没法修改,用户不能登陆后台去修改接口名称吧?微信图片_20220619120420.png

解决:这个是我们疏忽的一点,之前的确忘记了接口名称了。所以用户新增的接口名称都是None,而且没法改。这属于设计缺失,那么我们本节最后就搞定这个问题吧:

打开P_apis.html,找到这个调试弹层中的这个small标签,就是放接口名的:微信图片_20220619120427.png

我们的解决方案是,把这个small标签变成一个输入框,用来显示接口名,并且内容会和接口的其他数据一样,传递给后端保存函数用来保存。


首先给它改成input如下所示,并且h3改成h4,不然太大了,注意颜色为绿色,不然和背景白色靠色了。

微信图片_20220619120436.png

效果如下:

微信图片_20220619120456.png

然后我们去修改ts_show()函数,把它的innertext改成value:

微信图片_20220619120509.png

刷新页面,发现可以成功显示接口名称了。

微信图片_20220619120523.png

然后是清空函数clear_ts_api()中,增加这个id和name的清空,这是我们上一节课漏掉的部分:微信图片_20220619120536.png然后就是保存函数ts_save()中加入这个api_name吧:

微信图片_20220619120542.png

最后我们要把这个函数的返回处理部分改动一下,从关闭调试弹层 改成 直接刷新页面。这样可以保证我们新改动的数据能直接生效显示:

微信图片_20220619120548.png

好,我们这里前端html的基本弄完了,现在去改后台保存函数Api_save():微信图片_20220619120555.png

搞完之后,我们重启服务,刷新页面。测试:

现在叫这个:微信图片_20220619120600.png

改了之后:微信图片_20220619120607.png

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