接口测试平台番外翻页功能

简介: 可能是平台目前在一些公司已经进行大规模应用的缘故,很多因量变引起质变的问题也相继出现,比如接口库的接口过多,一页暂时不全,就想做分页显示这个功能。

   正巧最近接到一些反馈分页的需求,就打算插入一节来实现下。

   分页功能开发之前大家要先明白一个原理,我们目前的接口数据,进入接口库的时候,是全部从数据库拿出来,一次性都送给前端html模版的。当接口数过多的时候,难免引起渲染卡顿,显示缓慢,搜索困难,眼花缭乱等问题。

   但是分页功能 绝对不仅仅是简单的前端展示效果。而是在后端就进行了分页处理,有种说法叫异步加载。当然今天我们讲的方法是不是大家可以自己偷偷验证哦~

   我们先在views.py中的 child_json中找到控制接口库的接口列表。

微信图片_20220705220111.png

看到其中的apis了么,这就是我们所有的该项目接口了。现在我们要在它身上动手脚,让其变成分页的状态。


不过我们需要借助一个第三方方法,Paginator ,所以先用pip3来下载它:

微信图片_20220705220116.png

然后在views.py顶部导入:

微信图片_20220705220123.png

(这里要吐槽下网络上的很多博客教程,从来不给你说导入语句,上来就用,这导致很多新人压根不知道要怎么导入,简直就是为了宣传自己而写博客,从来不站在初学者读者的角度上考虑,博主也曾经在这上面浪费掉大量精力。很多平台已经开始打击这种差评多的博客了。)


这三个方法都比较重要,我们先全部导入。分别代表正常,类型错误,空

导入之后我们回到child_json开始搞起:

微信图片_20220705220129.png

大家可以简单看出代码是什么意思,我们把apis进行包装后 变成了P_apis,并且是异步加载 每页最多15条。

而具体页码我们则是 通过前端传入参数page,如果第一次进入没有页码那么就默认为第一页,然后P_apis 根据具体页码 再次变身,成真正的该页码下所有的数据即接口列表。 然后把这些数据传给前端,仍然叫apis的字段就可以了。

但是这里我们 需要想办法给这个 page变成真正的具体页码,还记得我们child_json如果想带上 页码参数 要怎么做了么?就是利用好ooid那个参数。这个备用参数,此时再次显现作用。


我们找到进入接口库的函数:open_apis

给它加上一个page页码参数:

微信图片_20220705220136.png

这个参数 从前端获取,代码如上,具体怎么获取现在先不要管,我们赶紧回到child_json函数中把这个ooid 接收用起来。

微信图片_20220705220144.png

好到此为止,我们后端的改动基本完成,。接下来就是前端html了。为了方便测试,我特意把每页数量降低为2个,并且新增了很多接口:

微信图片_20220705220150.png

我们需要加入 页码这个dom标签组,代码很多,大家直接复制就好:

这其中并不是很简单的,每个页码,下一页 上一页 显示 等等都是需要设置的。因为我们做的就是异步加载,不算小活。

微信图片_20220705220156.png

<div class="pagination" style="padding-left: 70px;">
    <span class="step-links">
        {% if apis.has_previous %}
            <a href="?page={{ apis.previous_page_number }}" aria-labe="Previous">
                <span aria-hidden="true">&laquo;上一页</span>
            </a>&nbsp;&nbsp;
        {% endif %}
        {% for pg in apis.paginator.page_range %}
            {% if apis.number == pg  %}
                <a href="?page={{ pg }}">第{{ pg }}页</a>&nbsp;&nbsp;&nbsp;
            {% else %}
                <a href="?page={{ pg }}">{{ pg }}</a>&nbsp;&nbsp;
            {% endif %}
        {% endfor %}
        {% if apis.has_next %}
            <a href="?page={{ apis.next_page_number }}" aria-label="Next">
                &nbsp;&nbsp;<span>下一页&raquo;</span>
            </a>
        {% endif %}
    </span>
</div>

如上的代码中,我们对当前页码,每一页,上一页 下一页,都进行了复杂啊的判断和超链接设置,超链接很简单,就是在当前页面url的后面加上 page 页码参数即可,因我后台的设计就是接收前端的page参数来决定加载哪页的接口。

写好后,我们重启服务,刷新页面看看效果:

微信图片_20220705220203.png微信图片_20220705220209.png

所有新接口名称都None,大家可以通过接口左面的id判断,可以发现确实实现了异步加载功能。


然后我们恢复每页数据,10个,15个 任你设置。

微信图片_20220705220215.png

再看看效果:


微信图片_20220705220220.png

最后我们稍稍美化下 这个页面显示,起码让它居中:

微信图片_20220705220226.png

居中很简单,删掉原来的div的style,然后给它们再套一层div,并在这个最外层div上设置一个 text-align:center的属性即可。

微信图片_20220705220231.png

如果不想让鼠标放在a标签上显示下划线,就可以在顶部head里的styel里设置统一a标签的格式:

微信图片_20220705220240.png

相关文章
|
23天前
|
移动开发 JSON Java
Jmeter实现WebSocket协议的接口测试方法
WebSocket协议是HTML5的一种新协议,实现了浏览器与服务器之间的全双工通信。通过简单的握手动作,双方可直接传输数据。其优势包括极小的头部开销和服务器推送功能。使用JMeter进行WebSocket接口和性能测试时,需安装特定插件并配置相关参数,如服务器地址、端口号等,还可通过CSV文件实现参数化,以满足不同测试需求。
106 7
Jmeter实现WebSocket协议的接口测试方法
|
23天前
|
JSON 移动开发 监控
快速上手|HTTP 接口功能自动化测试
HTTP接口功能测试对于确保Web应用和H5应用的数据正确性至关重要。这类测试主要针对后台HTTP接口,通过构造不同参数输入值并获取JSON格式的输出结果来进行验证。HTTP协议基于TCP连接,包括请求与响应模式。请求由请求行、消息报头和请求正文组成,响应则包含状态行、消息报头及响应正文。常用的请求方法有GET、POST等,而响应状态码如2xx代表成功。测试过程使用Python语言和pycurl模块调用接口,并通过断言机制比对实际与预期结果,确保功能正确性。
101 3
快速上手|HTTP 接口功能自动化测试
|
23天前
|
JavaScript 前端开发 测试技术
ChatGPT与接口测试
ChatGPT与接口测试,测试通过
31 5
|
2月前
|
网络协议 测试技术 网络安全
Python进行Socket接口测试的实现
在现代软件开发中,网络通信是不可或缺的一部分。无论是传输数据、获取信息还是实现实时通讯,都离不开可靠的网络连接和有效的数据交换机制。而在网络编程的基础中,Socket(套接字)技术扮演了重要角色。 Socket 允许计算机上的程序通过网络进行通信,它是网络通信的基础。Python 提供了强大且易于使用的 socket 模块,使开发者能够轻松地创建客户端和服务器应用,实现数据传输和交互。 本文将深入探讨如何利用 Python 编程语言来进行 Socket 接口测试。我们将从基础概念开始介绍,逐步引导大家掌握创建、测试和优化 socket 接口的关键技能。希望本文可以给大家的工作带来一些帮助~
|
2月前
|
网络协议 测试技术 网络安全
Python进行Socket接口测试的实现
在现代软件开发中,网络通信是不可或缺的一部分。无论是传输数据、获取信息还是实现实时通讯,都离不开可靠的网络连接和有效的数据交换机制。而在网络编程的基础中,Socket(套接字)技术扮演了重要角色。 Socket 允许计算机上的程序通过网络进行通信,它是网络通信的基础。Python 提供了强大且易于使用的 socket 模块,使开发者能够轻松地创建客户端和服务器应用,实现数据传输和交互。 本文将深入探讨如何利用 Python 编程语言来进行 Socket 接口测试。我们将从基础概念开始介绍,逐步引导大家掌握创建、测试和优化 socket 接口的关键技能。希望本文可以给大家的工作带来一些帮助~
|
2月前
|
SQL Java 测试技术
SpringBoot单元测试快速写法问题之PorkService 接口中的 getPork 方法的作用如何解决
SpringBoot单元测试快速写法问题之PorkService 接口中的 getPork 方法的作用如何解决
|
2月前
|
XML Web App开发 数据挖掘
Postman接口测试工具全解析:功能、脚本编写及优缺点探讨
文章详细分析了Postman接口测试工具的功能、脚本编写、使用场景以及优缺点,强调了其在接口自动化测试中的强大能力,同时指出了其在性能分析方面的不足,并建议根据项目需求和个人偏好选择合适的接口测试工具。
55 1
|
2月前
|
Web App开发 JSON 测试技术
精通Postman接口测试:关联技术与自动化实践指南
这篇文章详细介绍了如何使用Postman进行接口测试,包括关联技术、自动化实践,以及如何通过环境变量和全局变量解决接口之间的关联性问题。
41 0
精通Postman接口测试:关联技术与自动化实践指南
|
2月前
|
Web App开发 敏捷开发 测试技术
自动化测试之美:使用Selenium WebDriver进行网页功能验证
【8月更文挑战第29天】在数字时代,软件质量是企业竞争力的关键。本文将深入探讨如何通过Selenium WebDriver实现自动化测试,确保网页应用的可靠性和性能。我们将从基础设置到编写测试用例,逐步引导读者掌握这一强大的测试工具,同时分享实战经验,让测试不再是开发的负担,而是质量保证的利器。
|
2月前
|
测试技术
一款功能完善的智能匹配1V1视频聊天App应该通过的测试CASE
文章列举了一系列针对1V1视频聊天App的测试用例,包括UI样式、权限请求、登录流程、匹配逻辑、消息处理、充值功能等多个方面的测试点,并标注了每个测试用例的执行状态,如通过(PASS)、失败(FAIL)或需要进一步处理(延期修改、待定、方案再定等)。
39 0
下一篇
无影云桌面