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

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

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

   分页功能开发之前大家要先明白一个原理,我们目前的接口数据,进入接口库的时候,是全部从数据库拿出来,一次性都送给前端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

相关文章
|
5天前
|
数据可视化 前端开发 测试技术
接口测试新选择:Postman替代方案全解析
在软件开发中,接口测试工具至关重要。Postman长期占据主导地位,但随着国产工具的崛起,越来越多开发者转向更适合中国市场的替代方案——Apifox。它不仅支持中英文切换、完全免费不限人数,还具备强大的可视化操作、自动生成文档和API调试功能,极大简化了开发流程。
|
5天前
|
存储 测试技术 数据库
接口测试工具攻略:轻松掌握测试技巧
在互联网快速发展的今天,软件系统的复杂性不断增加,接口测试工具成为确保系统稳定性的关键。它如同“翻译官”,模拟请求、解析响应、验证结果、测试性能并支持自动化测试,确保不同系统间信息传递的准确性和完整性。通过Apifox等工具,设计和执行测试用例更加便捷高效。接口测试是保障系统稳定运行的第一道防线。
|
5天前
|
Web App开发 JSON 测试技术
API测试工具集合:让接口测试更简单高效
在当今软件开发领域,接口测试工具如Postman、Apifox、Swagger等成为确保API正确性、性能和可靠性的关键。Postman全球闻名但高级功能需付费,Apifox则集成了API文档、调试、Mock与自动化测试,简化工作流并提高团队协作效率,特别适合国内用户。Swagger自动生成文档,YApi开源但功能逐渐落后,Insomnia界面简洁却缺乏团队协作支持,Paw仅限Mac系统。综合来看,Apifox是国内用户的理想选择,提供中文界面和免费高效的功能。
|
11天前
|
消息中间件 监控 小程序
电竞陪玩系统架构优化设计,陪玩app如何提升系统稳定性,陪玩小程序平台的测试与监控
电竞陪玩系统架构涵盖前端(React/Vue)、后端(Spring Boot/php)、数据库(MySQL/MongoDB)、实时通信(WebSocket)及其他组件(Redis、RabbitMQ、Nginx)。通过模块化设计、微服务架构和云计算技术优化,提升系统性能与可靠性。同时,加强全面测试、实时监控及故障管理,确保系统稳定运行。
|
1月前
|
监控 JavaScript 测试技术
postman接口测试工具详解
Postman是一个功能强大且易于使用的API测试工具。通过详细的介绍和实际示例,本文展示了Postman在API测试中的各种应用。无论是简单的请求发送,还是复杂的自动化测试和持续集成,Postman都提供了丰富的功能来满足用户的需求。希望本文能帮助您更好地理解和使用Postman,提高API测试的效率和质量。
103 11
|
1月前
|
监控 测试技术
slb测试会话保持功能
slb测试会话保持功能
58 6
|
2月前
|
人工智能 供应链 安全
AI辅助安全测试案例某电商-供应链平台平台安全漏洞
【11月更文挑战第13天】该案例介绍了一家电商供应链平台如何利用AI技术进行全面的安全测试,包括网络、应用和数据安全层面,发现了多个潜在漏洞,并采取了有效的修复措施,提升了平台的整体安全性。
|
2月前
|
JSON Java 测试技术
SpringCloud2023实战之接口服务测试工具SpringBootTest
SpringBootTest同时集成了JUnit Jupiter、AssertJ、Hamcrest测试辅助库,使得更容易编写但愿测试代码。
83 3
|
2月前
|
监控 安全 测试技术
构建高效的精准测试平台:设计与实现指南
在软件开发过程中,精准测试是确保产品质量和性能的关键环节。一个精准的测试平台能够自动化测试流程,提高测试效率,缩短测试周期,并提供准确的测试结果。本文将分享如何设计和实现一个精准测试平台,从需求分析到技术选型,再到具体的实现步骤。
184 1
|
3月前
|
JSON 算法 数据可视化
测试专项笔记(一): 通过算法能力接口返回的检测结果完成相关指标的计算(目标检测)
这篇文章是关于如何通过算法接口返回的目标检测结果来计算性能指标的笔记。它涵盖了任务描述、指标分析(包括TP、FP、FN、TN、精准率和召回率),接口处理,数据集处理,以及如何使用实用工具进行文件操作和数据可视化。文章还提供了一些Python代码示例,用于处理图像文件、转换数据格式以及计算目标检测的性能指标。
95 0
测试专项笔记(一): 通过算法能力接口返回的检测结果完成相关指标的计算(目标检测)

热门文章

最新文章