接口测试平台代码实现15:基于生态考虑的菜单重构+意见反馈功能设计

简介: 接口测试平台代码实现15:基于生态考虑的菜单重构+意见反馈功能设计

在开始之前要补俩句:

  1. 上节课中漏掉了一张截图,使得有些小伙伴们忘记修改退出按钮的href了。这里补上:

2.关于github开源,登陆了俩天愣是没打开,暂时搁置此路线。目前我会临时把代码打包后实时上传到这里,需要同步一下的可以下载看看。


3. 关于生态建设,一定一定不要忽视生态建设,不然你的平台99%会被冷落,无人问津,最后死在摇篮。具体的措施可以看我的公众号文章:关于测试平台生态建设思考

好了,本节课我们基本前期的工作准备的都差不多了。从这里开始就是要进入正文了。

在大型动工之前,我们需要进行一个未来生态的设计层面上的改动。

首先就是菜单:

目前:项目管理 { 项目列表 /  接口库 / 用例库 }改动后: 项目列表 / 接口调试/帮助/后台

为什么这么改呢?因为接口库 和 用例库 是属于项目列表内的模块。所以不能在这里并列显示,而项目管理中 也只剩下了 项目列表一个子菜单,所以干脆 删掉项目管理这个目录,直接就显示一个 项目列表方便。用户点击 项目列表 - 然后点击具体项目- 进入项目下的接口库和用例库 即可。接口调试功能,属于并列在外的大模块。是用来充当postman的。它并不会储存什么,仅仅作为临时请求用的一个工具而已。为什么这么设计呢?这都是笔者公司经过长期实践,总结出来的关于建设生态的好设计。不多解释,全是泪。

帮助模块 和 后台模块 是非常重要的俩个入口,后台可以方便你和其他开发者快速进入后台而不用每次手动输入127.0.0.1:8000/admin/ 放心其他人进不去,因为没有你的管理员账户密码。帮助模块作为最重要的降低新人学习成本的说明书。你会发现这之后,菜单没有用到扩展/收起功能,这个功能看似不错,但是对于我们目前简单的菜单内容来说,只是徒增了用户项目接口调试的路径,降低了体验的流畅度。所以任何技术和设计都是要有考虑的。


然后是首页增加 意见反馈/吐槽的 输入框 和发送功能,这就是我们今天要搞定的事:

  1. 首先改菜单:

打开welcome.html

目前是项目管理下 带着3个子菜单:微信图片_20220616221554.png

更改成:4个菜单并列

微信图片_20220616221559.png

这里细节较繁琐,眼神不好的同学请直接复制粘贴 整个nav标签:

<nav id="navbar" class="">
    <ul>
            <li>
                <a href="#">
                    项目列表
                </a>
            </li>
            <li>
                <a href="#">
                    接口调试
                </a>
            </li>
            <li>
                <a href="">
                    帮助
                </a>
            </li>
            <li>
                <a href="">
                    后台
                </a>
            </li>
    </ul>
</nav>

好我们启动服务,打开浏览器看看 现在显示效果:

微信图片_20220616221607.png

很好,4个并列菜单,用户一点 直接进入。方便快捷。然后我们在welcom.html中 顺手给后台 菜单加上超链接,因为这个菜单什么都不用写,直接放我们后端url:/admin/  即可,注意前后都有/

微信图片_20220616221612.png

刷新页面,看看点击一下什么效果:微信图片_20220616221908.png

可以看到我们直接跳转到了后端。

这里我们学一个新技巧,a标签 如果加上 target属性,就可以不在本页面跳转,而是新打开一个标签页来跳转。以免我们当前页面的内容丢失。

微信图片_20220616221914.png

具体添加的是 target="_blank"好了,让我们回到首页,刷新, 再点击后台看看:

微信图片_20220616221921.png

可以看到,是新打开了一个标签页。 好,到这里我们的四大菜单,先搞定了一个!

然后我们要做的是首页的反馈机制,这个很重要。我们要实时收集使用者的吐槽,来持续优化平台,千万不能全按照自己一个人设计,容易陷入牛角尖。

打开home.html

看到我们之前写的一大堆没用的废话“

微信图片_20220616222247.png

好,现在开始删掉一部分,给我们吐槽的输入框留点地方

微信图片_20220616222258.png

我稍微做了点变动,大家可以按照这个写,显示上会好很多...

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
</head>
<body >
    <div style="text-align: center">
        <h1>
            <br>
            欢迎 {{ username }} 使用接口测试平台
        </h1>
        <h3>welcome to use Apitest</h3>
    </div>
</body>
</htm

然后我们要在div里,h3标签下面,放上新的内容:textarea标签

这个标签是一个多行文本框。我们输入textarea 然后按tab键 就可以自动写出这个完整的标签了。

微信图片_20220616222304.png

其中name id 都是默认空,我们因为之后要把框的吐槽内容发送给后台储存起来给我们管理员看,所以这里给id弄个值,以便定位 id = "tucao_input"

name属性我们没啥用,删了

cols 属性是列,也就是多少列,也就是我们每行有多少字。现在30个有点小。给换成50了。

rows 属性是行,意思是初始化显示多少行,默认10行。差不多了。不用改。我们刷新页面看看效果:

微信图片_20220616222309.png

好了。现在你尝试在里面写字,尝试拖动右下角。都可以感受下多行文本框的作用噢

微信图片_20220616222314.png

我们在给他随便美化俩下,加点css:

微信图片_20220616222622.png

看看效果:

微信图片_20220616222627.png

但是我们放个这 光秃秃的,别人都不知道干嘛用的。所以我们要给它默认解释文案:在标签内加 placeholder 属性,就是我们的默认文案,它不是css,所以千万不要写在style里。它是和id name 平级的属性。

微信图片_20220616222633.png

微信图片_20220616222637.png


好 我们给button按钮增加一个onclick属性,就是点击会运行什么js函数

函数名就叫 pei()

微信图片_20220616223038.png

然后我们在body根目录 也就是和div平级的位置,写一个script标签,用来存放pei()函数:

微信图片_20220616223043.png

内容就是 一个异步请求:$.get()微信图片_20220616223048.png眼神不好的复制源码:

<script>
        function pei() {
            $.get("/pei/",{
                "tucao_text":document.getElementById('tucao_input').value,
            },function (ret) {
                alert('已成功吐槽!')
            })
        }
</script>

其中textarea标签我们用.value来获取用户输入的内容。

等待接口返回,我们弹窗提示吐槽成功文案。

这里的设计大家可以自行更改哈~


然后我们去写urls.py的映射关系:

微信图片_20220616223052.png然后我们去views.py中写这个吐槽函数pei()

微信图片_20220616223057.png

好了,这里我们要想一想,这个吐槽内容我们后台已经成功拿到了。那么要怎么通知我们管理员呢?

这里给大家提供几个建议:

  1. 通过钉钉的机器人发消息 ,此方法比较实时。很快速。而且不用存放在我们平台的数据库,省空间。但是操作起来需要钉钉里面群里添加机器人-发送接口 ,初次使用会很蒙蔽。
  2. 发短信/邮件,此方法也可以,但是就是有点小题大做。而且调取短信接口花钱,发送邮件代码不是很好写。有兴趣的可以自己这么做
  3. 存放在django平台的数据库中,给创建个吐槽表,然后管理员可以去后台随时查看,以后我们还可以利用这些吐槽做个弹幕.....  而且这里我正好可以给大家讲一下,如何新建一个表 和 如何操作这个表 的技术。


综上考虑。我们选择了第三点,用本平台的数据库存放吐槽内容,而且我们还能偷偷存上吐槽者的用户名...虽然我们对外说匿名

这块内容较多,具体放在下一节中讲解。

下节预告:django自带的sqlite3数据库和orm使用-吐槽内容存放。


虽然我们迟迟没有进入到项目管理模块中,但是我们已经把周边功能都快搞完了,在这个过程中,我们学到了很多技术,这些都为我们之后去啃超难的项目管理模块 做了技术准备。相当于我们先拿简单外围功能练级,等级高了,再去打boss, 所以小伙伴们不要着急,磨刀不误砍柴工。

   

本节结尾:我们可以尝试给home.html 也就是主页,换个背景图,不然光秃秃的不好看:在head标签中,增加style标签。style标签内可以存放各种全局样式。我们指定修改body的背景图,就写body{各种css属性}微信图片_20220616223534.png

如图所示,背景图充满屏幕,随浏览器大小实时变化的 标准写法。

我下载了一张图片 存放到了static中,取名叫做home.jpg,小伙伴们写的时候千万别忘了写全图片的后缀!微信图片_20220616223539.png

看看效果!

微信图片_20220616223544.png

给人一种 非常深远 幽静 的感觉。大家可以随意找图片。但是要记得一点,如果你的图片 颜色和你的 字体 颜色相近,那么就看不清楚了。所以那时候可以去修改字体颜色,黑色不行 就白色!h1/h3都加上:

style="color:white" 微信图片_20220616223550.png

看看效果:

微信图片_20220616223558.png

相关文章
|
3月前
|
数据采集 机器学习/深度学习 大数据
行为检测代码(一):超详细介绍C3D架构训练+测试步骤
这篇文章详细介绍了C3D架构在行为检测领域的应用,包括训练和测试步骤,使用UCF101数据集进行演示。
87 1
行为检测代码(一):超详细介绍C3D架构训练+测试步骤
|
8天前
|
算法 Java 测试技术
使用 BenchmarkDotNet 对 .NET 代码进行性能基准测试
使用 BenchmarkDotNet 对 .NET 代码进行性能基准测试
40 13
|
18天前
|
监控 JavaScript 测试技术
postman接口测试工具详解
Postman是一个功能强大且易于使用的API测试工具。通过详细的介绍和实际示例,本文展示了Postman在API测试中的各种应用。无论是简单的请求发送,还是复杂的自动化测试和持续集成,Postman都提供了丰富的功能来满足用户的需求。希望本文能帮助您更好地理解和使用Postman,提高API测试的效率和质量。
70 11
|
1月前
|
监控 测试技术
slb测试会话保持功能
slb测试会话保持功能
37 6
|
3月前
|
运维
【运维基础知识】用dos批处理批量替换文件中的某个字符串(本地单元测试通过,部分功能有待优化,欢迎指正)
该脚本用于将C盘test目录下所有以t开头的txt文件中的字符串“123”批量替换为“abc”。通过创建批处理文件并运行,可实现自动化文本替换,适合初学者学习批处理脚本的基础操作与逻辑控制。
219 56
|
2月前
|
并行计算 算法 测试技术
C语言因高效灵活被广泛应用于软件开发。本文探讨了优化C语言程序性能的策略,涵盖算法优化、代码结构优化、内存管理优化、编译器优化、数据结构优化、并行计算优化及性能测试与分析七个方面
C语言因高效灵活被广泛应用于软件开发。本文探讨了优化C语言程序性能的策略,涵盖算法优化、代码结构优化、内存管理优化、编译器优化、数据结构优化、并行计算优化及性能测试与分析七个方面,旨在通过综合策略提升程序性能,满足实际需求。
65 1
|
2月前
|
JSON Java 测试技术
SpringCloud2023实战之接口服务测试工具SpringBootTest
SpringBootTest同时集成了JUnit Jupiter、AssertJ、Hamcrest测试辅助库,使得更容易编写但愿测试代码。
70 3
|
3月前
|
测试技术
自动化测试项目学习笔记(五):Pytest结合allure生成测试报告以及重构项目
本文介绍了如何使用Pytest和Allure生成自动化测试报告。通过安装allure-pytest和配置环境,可以生成包含用例描述、步骤、等级等详细信息的美观报告。文章还提供了代码示例和运行指南,以及重构项目时的注意事项。
328 1
自动化测试项目学习笔记(五):Pytest结合allure生成测试报告以及重构项目
|
3月前
|
JSON 算法 数据可视化
测试专项笔记(一): 通过算法能力接口返回的检测结果完成相关指标的计算(目标检测)
这篇文章是关于如何通过算法接口返回的目标检测结果来计算性能指标的笔记。它涵盖了任务描述、指标分析(包括TP、FP、FN、TN、精准率和召回率),接口处理,数据集处理,以及如何使用实用工具进行文件操作和数据可视化。文章还提供了一些Python代码示例,用于处理图像文件、转换数据格式以及计算目标检测的性能指标。
83 0
测试专项笔记(一): 通过算法能力接口返回的检测结果完成相关指标的计算(目标检测)
|
4月前
|
移动开发 JSON Java
Jmeter实现WebSocket协议的接口测试方法
WebSocket协议是HTML5的一种新协议,实现了浏览器与服务器之间的全双工通信。通过简单的握手动作,双方可直接传输数据。其优势包括极小的头部开销和服务器推送功能。使用JMeter进行WebSocket接口和性能测试时,需安装特定插件并配置相关参数,如服务器地址、端口号等,还可通过CSV文件实现参数化,以满足不同测试需求。
280 7
Jmeter实现WebSocket协议的接口测试方法