接口测试这么玩才明白

简介: 接口测试这么玩才明白


接口测试作为当下提升测试效能的利器,逐步被大家所认同。但同时很多团队在落地接口自动化时,又会感觉效果不是很明显,投入了大量的时间,写了很多脚本,但是效果并不是很明显。其中有各种问题,结合某团队的现状,分享一些实践经验,仅供参考。

 

引入接口测试,希望能够解决如下问题:


1. 突破现有瓶颈,提升测试效能,同时降低人力成本(注意不能把降低人力成本放在核心位置,否则容易适得其反);


2. 降低人为错误率,规避因为人的疲劳和惯性思维以及投机取巧导致的错误;


3. 提高测试覆盖率:有些场景通过页面操作难以验证到,需要通过接口的方式来触发,比如一些异步请求、定时任务等;


4. 适应持续集成与交付:与流水线结合,当研发提交代码时,可以触发接口测试,作为交付质量的一个验证环节;

 

并不是所有的场景都适合做接口测试,如上图所罗列的6种场景,就不适合开展接口测试(不是做不了,而是不合适),强调下第二点,对于一些业务规则特别复杂的场景,接口测试是满足验证的,例如优惠券的选择使用,接口仅能验证券能使用,但是是否是最优组合,需要通过结合业务规则在前端验证,或者通过固化测试数据来做自动化验证(类似模型测试中的标注法,有机会另分享)

 

 

接口测试也不是什么银弹,很多团队认为引入自动化测试,就能够解决当下的问题,其实并不是这样的。重点澄清以下几点:


1. 为了自动化而自动化:如上文提到的不适合接口测试的场景,就没必要强行为之,不要为了追求测试覆盖率而做自动化;


2. 发现不了BUG:接口测试本身是适用于回归测试,并不适用当前迭代的新内容,所以不要期望接口测试能发现大量BUG,如果真出现这种情况,反而需要反思和检查;


3. 能够快速提效:从短期(当个迭代周期)来看,接口测试反而是降效的。因为它需要更多的投入,但是从更多的时间维度来看,它才能提效。

 


 

接口测试用例也是需要经过设计的,而不是简单的接口堆砌,需要遵循基本的分类和设计原则,如上几图所示,比较清晰,不再赘述。


断言的设计是接口测试有效性的基本保障,没有断言、断言不合理的接口用例,写得越多,跑得越多,死得也就越快,希望大家能够重视。Http状态码是替代不了断言的。

 

光有理论,没有案例是不行的,在分享的时候给出了8个常见错误案例和1个优秀案例,由于篇幅原因,不在文章中放出,文末可下载完整PPT查看。

 

所有的知识认知都会经历如上曲线。以接口测试为例,当我们刚接触的时候,可能会处于A点,感觉引入接口测试,就能解决大部分的问题,容易产生过高的期望值(特别是管理层,需要做好预期管理)。


团队在实践一段时间的接口测试时,由于落地方法不对、时间投入不足、维护成本高等问题,感觉接口测试也没什么用,进入低潮期。


经过实践,找到正确的方法,重新认知,又会走上正轨。毕竟这条路是行业大多数团队实践并取得成功过的,它一定能解决某些问题。


 

最后,组织和个人对于接口测试的诉求也是不一样的。越来越多的团队采用统一的测试平台来管理接口测试,因为团队希望得到标准化、可视化的数据沉淀。


而对个人来说,使用平台,可能会失去一个提升代码能力的机会(接口测试平台的实践是测试人员锻炼代码能力的重要路径),其实并不是,作为个人,应该抓住机会去了解平台的具体实现,甚至参与到平台的研发过程中,把别人的开发设计和解决问题的思路变成自己的心得体会。

 

关注并在公众号回复“接口”,可获得本文完整的PPT。因为做了脱敏处理,所以样式有点不好看,请见谅。


相关文章
|
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 方法的作用如何解决
|
3月前
|
存储
Postman 接口测试配置 Pre-request Script
Postman 接口测试配置 Pre-request Script
128 5
Postman 接口测试配置 Pre-request Script
|
2月前
|
XML Web App开发 数据挖掘
Postman接口测试工具全解析:功能、脚本编写及优缺点探讨
文章详细分析了Postman接口测试工具的功能、脚本编写、使用场景以及优缺点,强调了其在接口自动化测试中的强大能力,同时指出了其在性能分析方面的不足,并建议根据项目需求和个人偏好选择合适的接口测试工具。
55 1
|
2月前
|
Web App开发 JSON 测试技术
精通Postman接口测试:关联技术与自动化实践指南
这篇文章详细介绍了如何使用Postman进行接口测试,包括关联技术、自动化实践,以及如何通过环境变量和全局变量解决接口之间的关联性问题。
41 0
精通Postman接口测试:关联技术与自动化实践指南
|
2月前
|
SQL 安全 测试技术
[go 面试] 接口测试的方法与技巧
[go 面试] 接口测试的方法与技巧
下一篇
无影云桌面