本文最后更新于 2024-07-28,文章内容可能已经过时。

什么是接口

接口:API 应用程序接口 就是软件或者模块之间规范化安全化传递参数和接收数据的通道

  • 定义应用程序功能的协议、数据结构、通信规则等,被用于软件系统之间或者一个软件系统中不同模块之间的通信。

  • 可以让不同的应用之间或者不同模块之间实现相互之间的通讯和相互之间的交互。

  • 通过API,应用程序可以实现对外提供服务或对其它应用程序进行功能扩展让应用程序之间可以更加高效地交互和协作。

什么是接口测试

接口测试就是通过接口请求(URL)向服务器或程序发送数据(接口参数),以检验接口返回的数据(响应)是否符合规定或预期结果。

测试人员需要关注被测接口的功能是否实现,性能是否达标,安全性是否满足,重点关注数据的交换,传递,处理次数以及控制管理的过程。

接口测试的测试点

  • 接口功能

  • 接口参数

  • 接口权限

  • 接口响应

  • 接口依赖

接口测试流程

  1. 熟悉接口文档

    1. 接口地址

    2. 接口参数

    3. 请求方式

    4. 鉴权方式

    5. 返回结果

  1. 编写接口用例并评审

    1. 根据需求文档,接口文档写测试用例,然后开发,测试一起评审测试用例是否符合需求和相关要求。

  2. 执行用例,缺陷跟踪管理

    1. 执行接口测试的时候,可以借助已经开发好的工具,如比较主流Jmeter,Postman,SoapUI,或者直接自己写代码进行相应的接口测试。

  3. 持续集成,输出接口测试报告

    1. 流程方面,在回归阶段加强异常场景的覆盖,并逐步向系统测试,冒烟测试阶段延伸,最终达到全流程自动化。

    2. 结果展示,更加丰富的结果展示,趋势分析,质量统计和分析等

    3. 问题定位,报错信息,日志更精准,方便问题复现与定位

    4. 结果校验,加强自动化校验能力,如数据库信息校验。

    5. 代码覆盖率,不断尝试由目前的黑盒向白盒下探,提供代码覆盖率。

    6. 性能需求,完善性能测试体系,通过自动化的手段监控接口性能指标是否正常

为什么要接口测试

  • 项目开发中,前后端开发进度不同步,后端接口已经开发完成前端还未完成时,可以先对接口进行测试以利于更早发现问题进行修复。

  • 接口测试可以发现功能测试发现不了的问题,如:

  • 前端对数据做了校验但是后端没有可以通过接口传入非法数据;

  • 前端对功能权限做了限制,但是后端没有可以直接通过接口进行无权限的操作

  • 前端限制了参数个数与必填参数,但是后端没有造成参数确实

  • 接口测试可以检验出一些后端安全性问题:如:SQL注入,

  • 接口测试更容易实现自动化持续集成

接口的分类

依据所遵循协议的不同,常见接口可以分为以下三类。

  • HTTP接口,他是基于超文本传输协议开发的接口,但并不能排 除没有使用其他协议

  • WebService接口,他是系统对外的接口,比如你要从别的网站或服务器上获取资源,一般来说,别人不会把数据共享给你的,他们会提供一个他们写好的方法,让外部人员获取数据,从而达到数据同步的目的。

  • RESTful接口,简称REST其描述了一个架构样式的网络系统,核心是面向资源。REST专门针对网络应用设计和开发方式,降低开发的复杂性,提供系统的可伸缩性。

基于B/S架构的软件系统接口大多数为HTTP接口