接口测试这么玩才明白

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


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

 

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


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


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


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


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

 

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

 

 

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


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


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


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

 


 

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


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

 

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

 

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


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


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


 

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


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

 

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


相关文章
|
8天前
|
JSON Java 测试技术
SpringCloud2023实战之接口服务测试工具SpringBootTest
SpringBootTest同时集成了JUnit Jupiter、AssertJ、Hamcrest测试辅助库,使得更容易编写但愿测试代码。
37 3
|
1月前
|
JSON 算法 数据可视化
测试专项笔记(一): 通过算法能力接口返回的检测结果完成相关指标的计算(目标检测)
这篇文章是关于如何通过算法接口返回的目标检测结果来计算性能指标的笔记。它涵盖了任务描述、指标分析(包括TP、FP、FN、TN、精准率和召回率),接口处理,数据集处理,以及如何使用实用工具进行文件操作和数据可视化。文章还提供了一些Python代码示例,用于处理图像文件、转换数据格式以及计算目标检测的性能指标。
59 0
测试专项笔记(一): 通过算法能力接口返回的检测结果完成相关指标的计算(目标检测)
|
2月前
|
移动开发 JSON Java
Jmeter实现WebSocket协议的接口测试方法
WebSocket协议是HTML5的一种新协议,实现了浏览器与服务器之间的全双工通信。通过简单的握手动作,双方可直接传输数据。其优势包括极小的头部开销和服务器推送功能。使用JMeter进行WebSocket接口和性能测试时,需安装特定插件并配置相关参数,如服务器地址、端口号等,还可通过CSV文件实现参数化,以满足不同测试需求。
239 7
Jmeter实现WebSocket协议的接口测试方法
|
2月前
|
JSON 移动开发 监控
快速上手|HTTP 接口功能自动化测试
HTTP接口功能测试对于确保Web应用和H5应用的数据正确性至关重要。这类测试主要针对后台HTTP接口,通过构造不同参数输入值并获取JSON格式的输出结果来进行验证。HTTP协议基于TCP连接,包括请求与响应模式。请求由请求行、消息报头和请求正文组成,响应则包含状态行、消息报头及响应正文。常用的请求方法有GET、POST等,而响应状态码如2xx代表成功。测试过程使用Python语言和pycurl模块调用接口,并通过断言机制比对实际与预期结果,确保功能正确性。
248 3
快速上手|HTTP 接口功能自动化测试
|
1月前
|
JavaScript 前端开发 API
vue尚品汇商城项目-day02【9.Home组件拆分+10.postman测试接口】
vue尚品汇商城项目-day02【9.Home组件拆分+10.postman测试接口】
40 0
|
2月前
|
JavaScript 前端开发 测试技术
ChatGPT与接口测试
ChatGPT与接口测试,测试通过
48 5
|
3月前
|
网络协议 测试技术 网络安全
Python进行Socket接口测试的实现
在现代软件开发中,网络通信是不可或缺的一部分。无论是传输数据、获取信息还是实现实时通讯,都离不开可靠的网络连接和有效的数据交换机制。而在网络编程的基础中,Socket(套接字)技术扮演了重要角色。 Socket 允许计算机上的程序通过网络进行通信,它是网络通信的基础。Python 提供了强大且易于使用的 socket 模块,使开发者能够轻松地创建客户端和服务器应用,实现数据传输和交互。 本文将深入探讨如何利用 Python 编程语言来进行 Socket 接口测试。我们将从基础概念开始介绍,逐步引导大家掌握创建、测试和优化 socket 接口的关键技能。希望本文可以给大家的工作带来一些帮助~
|
4月前
|
存储
Postman 接口测试配置 Pre-request Script
Postman 接口测试配置 Pre-request Script
212 5
Postman 接口测试配置 Pre-request Script
|
3月前
|
网络协议 测试技术 网络安全
Python进行Socket接口测试的实现
在现代软件开发中,网络通信是不可或缺的一部分。无论是传输数据、获取信息还是实现实时通讯,都离不开可靠的网络连接和有效的数据交换机制。而在网络编程的基础中,Socket(套接字)技术扮演了重要角色。 Socket 允许计算机上的程序通过网络进行通信,它是网络通信的基础。Python 提供了强大且易于使用的 socket 模块,使开发者能够轻松地创建客户端和服务器应用,实现数据传输和交互。 本文将深入探讨如何利用 Python 编程语言来进行 Socket 接口测试。我们将从基础概念开始介绍,逐步引导大家掌握创建、测试和优化 socket 接口的关键技能。希望本文可以给大家的工作带来一些帮助~
|
3月前
|
SQL Java 测试技术
SpringBoot单元测试快速写法问题之PorkService 接口中的 getPork 方法的作用如何解决
SpringBoot单元测试快速写法问题之PorkService 接口中的 getPork 方法的作用如何解决