- 【落叶154】《测试路上你问我答》(20)接口测试的是什么和为什
- 【落叶169】《测试路上你问我答》(32)学习接口测试的同时如何
- 【落叶298】《测试路上你问我答》(86)UML 里的类、接口和
- 【落叶257】《测试路上你问我答》(73)LoadRunner
- 【落叶292】《测试路上你问我答》(84)LoadRunner
- 【落叶212】《测试路上你问我答》(70)怎么梳理软件测试体系和
- 【落叶299】《测试路上你问我答》(87)UML 里除了类、接口
- 【落叶167】《测试路上你问我答》(30)IF 流程 = NUL
- 【落叶180】《测试路上你问我答》(38)H5 测试应该要测些什
- 【落叶203】《测试路上你问我答》(61)测试计划很难制定吗?
这是《落叶》文集里第 154 片落叶,希望你能喜欢,不为别的,只为这份坚持。
【背景】
“老师,我想问一下什么情况需要用到接口自动化测试?为什么要做接口自动化?是不是两个系统之间交互就要用到?”这是昨天一位同学问我的问题,跟他沟通后,我才明白,其实他想了解的并不是什么接口自动化测试,而就是接口测试本身。现在很多有关接口测试工具或自动化测试工具的文章和书会让新入行的同学把接口测试和接口测试工具搞混淆。于是我今天就想说说我理解中的接口测试及接口测试自动化工具。
【你问】
接口测试的是什么和为什么?
【我答】
这个问题其实很好回答,我们就先一起来把相关的基本概念理清楚吧:
接口:
接口,按我自己的理解描述它,其实就是由一段具备逻辑处理的程序代码组成的,可被其他方法、服务或应用所使用。
对于调用交口的那一方,可以把接口看作一个黑匣子,只需要负责按约定传入参数,再接收返回的数据,可以不需要知道黑匣子里的逻辑;
接口的作用:
1、系统与系统之间的调用,比如银联会提供支付接口给做第三方支付的 APP 调用,APP 在用户发起支付时,将相关的必要参数值通过支付接口传给银联服务,银联服务器处理完成之后会调用 APP 方的回调接口,返回支付处理结果;
2、前端应用对后端服务的调用,比如 APP 调用服务端的接口,服务端调用 DAO (Data Access Object) 的接口。拿查航班的 APP 来说吧,APP 本身其实主要就包含两大块,一是交互,二是数据展示,APP 通过服务端提供的接口将需要查询的航班名称传给服务端,服务端调用 DAO 的接口从数据库中获取到相应的 Data,服务端接口再将 Data 做相应的处理并最终返回给 APP,APP 将其展示出来;
3、服务与服务之间的调用,比如注册用户时,会先调用查询用户信息的服务,目的是检查该用户是否已经注册,如果返回结果是该用户已存在,及注册用户的接口就会把该结果返回给前端页面;
接口测试:
接口测试是测试系统组件间接口的一种测试。接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。测试的重点是要检查数据的交换,传递和控制管理过程,以及系统间的相互逻辑依赖关系等。
为什么要做接口测试:
1、现如今,互联网 APP 产品的系统复杂度不断上升,只靠手工的前端测试,很难确保很高的覆盖度,但是通过接口测试,我们能模拟出各种类型的入参,包括一些从前端模拟不出来的入参,我们能根据接口文档的定义,设计出相对完善的入参值,力争在接口层先保证质量,剩余的绝大多数问题就都是 APP 自身的交互和数据展示问题了。
2、接口测试相对 UI/功能测试来说,更容易实现自动化,执行起来也比较稳定,维护成本也比较低。
3、接口自动化适用于现网巡检、回归测试等,可以减少人工回归测试的人力成本;
4、现在很多系统前后端是分离的,从安全层面来说,只依赖于前端进行 Input Validation 已经完全不能满足系统的安全要求,因为绕过前端相对容易,所以就需要后端同样进行 Input Validation,这就只能依赖于接口测试去验证了;
《测试路上你问我答》里的 Q&A 20,如果是你要的,甚好!如果不是,你问,我答!
作者简介:14 年测试 + 11 年项目管理 + 11 年团队管理 = 一个测试老兵
网友评论
不过您后面谈到的接口测试适用于回归,我怎么觉得自动化测试才适合项目的回归,而的接口测试就适合每个需求的测试😁