接口测试平台代码实现27: 项目详情页的导航功能

简介: 接口测试平台代码实现27: 项目详情页的导航功能

如果发生代码问题特别混乱导致无法自主修复的情况,请及时下载项目的打包百度网盘链接,在第25节的末尾。对比代码或者干脆直接覆盖。

言归正传,本节开始设计导航,教程都是属于半学习/半实验的性质。所以我们尽可能多的掌握一些,技多不压身。


我们之前已经成功建立 三个子页面,并且打通了从项目列表页进入后默认进入接口库的链路微信图片_20220617222915.png

接下来就是要 设计一个导航功能,让用户在 三个子页面中可以来回跳转。


关于导航我们有很多设计:

  1. 单纯的三个按钮组合
    微信图片_20220617222928.png
  2. 面包屑导航

微信图片_20220617222937.png

3.简易菜单

微信图片_20220617222947.png

4.导航栏

微信图片_20220617222953.png

实每种实现起来 无非就是超链接。都不难。不过我们这里选择了第四种,考虑到后续我们还会加入其他子模块。所以要做的就是顶部的一整个导航栏

颜色上 这种灰白就可以,不要太明显 抢了中间主要的内容。


截图中的第四种 出自,bootstrap的标准导航组。在这之前,我们需要修改一个之前章节中出现的导入顺序错误的问题。

打开welcome.html,众所周知,这个文件是我们的公共文件,这里除了菜单外,其他所有引入的js/css都会 在任何其他子页面中同样生效。但是我们之前引入的时候,有个顺序出现了错误。

就是

bootstrap.min.js

必须在

jquery-1.11.0.min.js


之后引入才不会报错。

我们在head标签内找到了bootstrap.min.js的引入微信图片_20220617222959.png


然后剪切走这句,粘贴到下面

微信图片_20220617223006.png

这是我们之前的一个小疏忽导致的bug,现在已修复。让我们继续开发导航栏吧:

打开P_apis.html:

添加以下div:微信图片_20220617223013.png

删掉了我们上一节中的那个h2的标题。并把项目名称project_name融合到了新的导航栏中,宽度等css均已设置好,大家先复制到自己代码中。这段代码出自bootstrap的官方教程中的导航栏demo,别问为什么这么写,我只能说人家就是这么设计的,你只要在上面跟着改改就好了。

目前的4个超链接:返回项目列表/接口库/用例库/项目设置

我们要给它们的超链接补全。

注意,这里我用了很多????? ,这些问号应该是什么?应该是放项目id的,所以我们在进入这个页面的时候,其实应该除了带上项目名称外,也要带上项目id 。才能让我们的这些导航真正实现。

我们先把这段代码源码 放出来,大家粘贴好:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<nav class="navbar navbar-default" role="navigation" style="position: absolute;top: 0px;left: 80px;width:-webkit-calc(100% - 200px);z-index: 1">
    <div class="container-fluid">
    <div class="navbar-header">
        <span style="font-size: xx-small" class="navbar-brand" >项目名称:{{ project.name }}</span>
        <a class="navbar-brand" href="/project_list/">返回项目列表</a>
    </div>
    <div>
        <ul class="nav navbar-nav">
            <li class="active"><a href="/apis/?????/">接口库</a></li>
            <li><a href="/cases/?????/">用例库</a></li>
            <li><a href="/project_set/?????/">项目设置</a></li>
        </ul>
    </div>
    </div>
</nav>
</body>
</html>

然后我们要去修改后台views.py中的控制返回各个页面数据的分发器函数:

def child_json(eid,oid=''):

我们本来是要增加项目id的,可是这里我们会觉得后续很可能还会有很多项目内的字段需要传输进来,那么我们为啥不干脆把整个项目本身传给前端呢?

当然可以:修改成如下即可:微信图片_20220617223019.png我们不再只传输一个project_name了。而是改成了把整个project都给前端。

然后我们去修改前端页面:

我们之前使用过project_name 这个参数,不过现在这个参数已经没了,取而代之的是含有整个项目内容的       project

我们再从里面提取任何字段,都后面加个 .  即可。

比如项目名称:project.name

项目id:project.id/微信图片_20220617223025.png


修改好后,我们重启服务刷新页面,看看有没有什么问题:微信图片_20220617223031.png

果然没问题,那么我们继续把project.id填入到各个超链接中吧~微信图片_20220617223039.png

我们刷新页面测试,发现全部可以正常跳转,没有报错。说明成功


这时我们发现了一个问题:

就是跳转到 用例库/项目设置 页面的时候,这个导航就看不到了。那是因为我们仅仅把这个导航放在了 接口库页面而已。


那这个时候我们怎么才能在其他俩个子模块也显示这个导航呢?

这里给大家提供3种思路:

  1. 把这段代码 nav标签,复制到其他俩个子页面中即可
  2. 把这段代码单独做成一个新页面,然后接口列表进入的是这个新页面,新页面在做3个子页面,用来单独展示 接口库/用例库/项目设置

   3.把这段代码放在公共页面welcome.html中,并且控制好显示/隐藏

以上三种思路,第二种最复杂。第一种最简单。

所以我们教程中 就采用最简单的方法,等大家都学完后,可以自己尝试换成其他方法:


粘贴复制开始,把nav标签,复制到其他俩个子页面的html中:P_cases.html/P_project_set.html

然后别忘了 我们还要设置好数据返回,之前我们只给写了接口库返回项目数据的if判断。

打开views.py中的child_json()函数:微信图片_20220617223045.png

别忘了还要修改下面的进入页面的函数:微信图片_20220617223050.png

复制稍作修改,成功后,让我们等待服务重启,刷新页面再次测试:

发现点击其他俩个子页面都没啥问题,可以成功显示导航栏了


但是我们这里也发现了一个小瑕疵。就是这选中深色的表现不对:微信图片_20220617223103.png

比如此时我已经进入了用例库,但是导航上依然显示的是选中的接口库。

其实这点我们不用担心,就是个样式问题而已,没有影响功能。

我们只需要先搞清楚 是什么决定这个选中深色的 即可解决:微信图片_20220617223110.png

其实就是我们的这个导航中的 三个li标签 内的class属性,有没有发现,具有class=active的 就会显示深色?

那么我们只需要在P_cases.html和P_projevt_set.html俩个页面内 把这个class属性分别移动到 对应的 li标签即可:

用例库页面:

微信图片_20220617223116.png

项目设置页面:微信图片_20220617223122.png

好了,我们现在再次刷新页面看看效果?微信图片_20220617223128.png

相关文章
|
12天前
|
人工智能 供应链 安全
AI辅助安全测试案例某电商-供应链平台平台安全漏洞
【11月更文挑战第13天】该案例介绍了一家电商供应链平台如何利用AI技术进行全面的安全测试,包括网络、应用和数据安全层面,发现了多个潜在漏洞,并采取了有效的修复措施,提升了平台的整体安全性。
|
18天前
|
JSON Java 测试技术
SpringCloud2023实战之接口服务测试工具SpringBootTest
SpringBootTest同时集成了JUnit Jupiter、AssertJ、Hamcrest测试辅助库,使得更容易编写但愿测试代码。
52 3
|
22天前
|
网络协议 关系型数据库 应用服务中间件
【项目场景】请求数据时测试环境比生产环境多花了1秒是怎么回事?
这是一位粉丝(谢同学)给V哥的留言,描述了他在优化系统查询时遇到的问题:测试环境优化达标,但生产环境响应时间多出1秒。通过抓包分析,发现MySQL请求和响应之间存在500毫秒的延迟,怀疑是网络传输开销。V哥给出了以下优化建议:
|
21天前
|
监控 安全 测试技术
构建高效的精准测试平台:设计与实现指南
在软件开发过程中,精准测试是确保产品质量和性能的关键环节。一个精准的测试平台能够自动化测试流程,提高测试效率,缩短测试周期,并提供准确的测试结果。本文将分享如何设计和实现一个精准测试平台,从需求分析到技术选型,再到具体的实现步骤。
90 1
|
2月前
|
人工智能 监控 测试技术
云应用开发平台测试
云应用开发平台测试
63 2
|
21天前
|
监控 安全 测试技术
构建高效精准测试平台:设计与实现全攻略
在软件开发过程中,精准测试是确保产品质量的关键环节。一个高效、精准的测试平台能够自动化测试流程,提高测试覆盖率,缩短测试周期。本文将分享如何设计和实现一个精准测试平台,从需求分析到技术选型,再到具体的实现步骤。
47 0
|
2月前
|
JSON 算法 数据可视化
测试专项笔记(一): 通过算法能力接口返回的检测结果完成相关指标的计算(目标检测)
这篇文章是关于如何通过算法接口返回的目标检测结果来计算性能指标的笔记。它涵盖了任务描述、指标分析(包括TP、FP、FN、TN、精准率和召回率),接口处理,数据集处理,以及如何使用实用工具进行文件操作和数据可视化。文章还提供了一些Python代码示例,用于处理图像文件、转换数据格式以及计算目标检测的性能指标。
68 0
测试专项笔记(一): 通过算法能力接口返回的检测结果完成相关指标的计算(目标检测)
|
3月前
|
移动开发 JSON Java
Jmeter实现WebSocket协议的接口测试方法
WebSocket协议是HTML5的一种新协议,实现了浏览器与服务器之间的全双工通信。通过简单的握手动作,双方可直接传输数据。其优势包括极小的头部开销和服务器推送功能。使用JMeter进行WebSocket接口和性能测试时,需安装特定插件并配置相关参数,如服务器地址、端口号等,还可通过CSV文件实现参数化,以满足不同测试需求。
251 7
Jmeter实现WebSocket协议的接口测试方法
|
3月前
|
JSON 移动开发 监控
快速上手|HTTP 接口功能自动化测试
HTTP接口功能测试对于确保Web应用和H5应用的数据正确性至关重要。这类测试主要针对后台HTTP接口,通过构造不同参数输入值并获取JSON格式的输出结果来进行验证。HTTP协议基于TCP连接,包括请求与响应模式。请求由请求行、消息报头和请求正文组成,响应则包含状态行、消息报头及响应正文。常用的请求方法有GET、POST等,而响应状态码如2xx代表成功。测试过程使用Python语言和pycurl模块调用接口,并通过断言机制比对实际与预期结果,确保功能正确性。
262 3
快速上手|HTTP 接口功能自动化测试
|
3月前
|
JavaScript 前端开发 测试技术
ChatGPT与接口测试
ChatGPT与接口测试,测试通过
49 5