接口测试和接口自动化测试一直都是很多人混乱的概念。所以搞清楚2个的概念是很重要的一件事情。
接口:一段具备逻辑处理功能的程序代码组成的,可被其他方法、服务或应用所使用。
对于调用接口的那一方,可以把接口看做一只黑匣子,只需要负责按约定传入参数,再接收返回的数据,而不需要知道黑匣子里的逻辑。
1.接口的作用
- 1.系统与系统之间的调用。比如银联会提供支付接口给负责三方支付的应用程序调用,应用程序在用户发起支付请求时,将相关的必要参数值通过支付接口传给银联服务器,银联服务器处理完成之后会调用应用程序方的回调接口,返回支付处理结果。
- 2.前端应用对后端服务的调用。比如应用程序调用服务器端的接口,服务器端调用DAO[data access object 数据访问对象]的接口。以某系统来看,应用程序本身主要包括2部分:一是交互,二是数据展示。应用程序通过数据访问对象的接口从数据库中获取到相应的数据,服务器端接口在将数据做相应的处理并最终返回给应用程序,应用程序将其展示出来。
- 3.服务与服务之间的调用。比如,注册用户,会先调用查询用户信息的服务,目的是检查是否已注册。如果返回已注册,则负责注册用户的接口就会将该结果返回到前段页面。
接口测试是测试系统组件间接口的一种测试,主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。测试的重点是检查数据的交互、传递和控制管理过程,以及系统间的相互逻辑依赖关系等。
2.为什么要做接口测试
- 1.只靠前端测试很难确保很高的覆盖率。接口测试,可以模拟出各种类型的入参,包括一些在前端模拟不出来的入参,还能根据接口文档的定义,设计出相对完善的入参值,在接口层保证质量,剩余的绝大多数问题就是应用程序自身的交互和数据展示问题。
- 2.接口测试相对于交互界面测试和功能测试来说,更容易实现自动化,执行起来比较稳定,维护成本也比较低。
- 3.接口自动化适用于回归测试等,可以减少人工回归测试的人力成本。
- 4.前、后端系统分离,从安全层面来说,只依赖前端进行不能满足安全要求,绕过前端相对容易,所以需要后端同样进行输入校验,只能依赖接口测试去验证了。