什么是接口测试及其测试流程

Posted 酔清风

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了什么是接口测试及其测试流程相关的知识,希望对你有一定的参考价值。

感谢大家的莅临,文章末尾为大家准备了一些福利,需要的可以获取哦。

1 什么是接口测试

接口测试是项目测试的一部分,正如其名,它测试的主要对象是接口,是测试系统组件间接口的一种测试。

百度百科对接口测试的定义:接口测试一般会用于多系统间交互开发,或者拥有多个子系统的应用系统开发的测试。接口测试适用于为其他系统提供服务的底层框架系统和中心服务系统,主要测试这些系统对外部提供的接口,验证其正确性和稳定性。接口测试同样适用于一个上层系统中的服务层接口,越往上层,其测试的难度越大。

一般来说接口测试按测试对象分为两种类型:模块接口测试、web接口测试;web接口测试又可以分为服务端接口测试和外部接口测试。

​模块接口测试其实就是单元测试的基础,适用于分别开发一些功能模块,数据会在这些功能模块之间传递。服务端接口测试,就是测试客户端/浏览器与服务端接口,一般开发人员都分为前端开发和后端开发,他们之间的怎么进行接口交互,可以参考我之前的文章接口测试基础-了解http请求。外部接口测试,其实相对而言的,这个接口不是本系统内部的,而是调用的是第三方的接口,如支付宝授权登录,需要调用支付宝授权接口。

接口测试是一种完整的测试体系,也分为接口功能测试、接口性能测试、接口稳定性测试、接口安全性测试。

接口测试也可以分为参数测试和场景测试。参数测试就是对单个接口的入参和出参进行详细的测试,包括入参默认值、必传项、非必传项、业务逻辑、兼容性测试(是否兼容不同版本的前端)、错误码、异常类型、安全加密等。场景测试,就是指单个接口组成的连续的场景,比如注册功能,需要包括发送验证码接口、注册接口,其中注册接口包含的功能有验证注册账号和注册验证码功能。

2 接口测试的测试流程

了解了接口测试是什么之后,怎么做接口测试呢?接口测试的流程其实和功能测试流程类似:接口测试计划-接口测试用例-接口测试执行-接口测试报告。测试用例设计的依赖对象主要是需求说明书和接口文档。

接口测试因其不是针对普通用户,而是针对的另外一个系统组件,所以不能直接测试,需要使用工具测试,比如服务端http接口测试,常用的工具有jmeter、postman、httpclient等。用工具测试,所以目标就是准备要测试数据测试脚本后直接执行即可, 在进行测试执行编写时,有如下的原则:

1.不同的接口参数覆盖不同的业务场景;

2.在后台构造合适的数据来满足接口的测试用例;

3.根据接口的返回值,断言其是否返回期望结果,并查看数据库验证;

4.测试用例涉及多个步骤的,应对涉及的步骤都验证;

5.删除测试过程中产生的结果,确保每个用例执行前都是一个清洁的环境。

3 接口测试持续集成

对接口测试而言,持续集成自动化是核心内容,通过自动化的手段我们才能做到低成本高收益。目前我们已经实现了接口自动化,主要应用于回归阶段,后续还需要加强自动化的程度,包括但不限于下面的内容:

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

  b) 结果展示:更加丰富的结果展示、趋势分析,质量统计和分析等

  c) 问题定位:报错信息、日志更精准,方便问题复现与定位。

  d) 结果校验:加强自动化校验能力,如数据库信息校验。

  e) 代码覆盖率:不断尝试由目前的黑盒向白盒下探,提高代码覆盖率。

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

4 接口测试质量评估标准

  a) 业务功能覆盖是否完整

  b) 业务规则覆盖是否完整

  c) 参数验证是否达到要求(边界、业务规则)

  d) 接口异常场景覆盖是否完整

  e) 接口覆盖率是否达到要求

  f) 代码覆盖率是否达到要求

  g) 性能指标是否满足要求

  h) 安全指标是否满足要求

5 接口测试工具

postman:接口测试工具。常用必备!

fiddler:抓包工具。常用必备!

(温馨提示,文末滑动栏有相关文章哦)

mock:模拟出参的工具,有很多实现方案;

jemter:性能测试工具,也可以用来做接口测试;

python:requests库,学python绕不开这家伙;

swagger-ui等一些web工程。

……

 福利

 

以上是关于什么是接口测试及其测试流程的主要内容,如果未能解决你的问题,请参考以下文章

什么是接口测试及其测试流程

接口测试 - 什么是接口测试及其测试流程

什么是接口测试及其测试流程

接口测试流程梳理

接口测试全流程

接口测试全流程扫盲