1.接口测试简介
接口测试是测试系统组件间接口的一种测试。接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。测试的重点是要检查数据的交换,传递和控制管理过程,以及系统间的相互逻辑依赖关系等。
2.接口测试流程
接口测试的流程和功能测试流程类似,依据的对象是需求说明书和接口需求,接口测试流程如下:
3.接口测试范围
1) 业务功能(包括正常、异常场景是否实现)
2) 业务规则(覆盖度是否全面)
3) 参数验证(边界、业务规则是否达到要求)
4) 异常场景(重复提交、并发提交、事务中断、多机环境、大数据量测试)
5) 性能测试(响应时间、吞吐量、并发数、资源要求)
6) 安全测试(权限验证、SQL 注入等)
4.接口测试重点
- 检查接口的功能:检查接口的功能有没有实现,也就是请求会不会成功,如果不成功会不会返回错误代号(或错误信息)
- 检查接口返回的数据:检查接口返回的数据、数据格式、数据类型是否与预期一致(正向且传递的参数正常);
- 检查接口的容错性:接口是否可以正常处理(假如传递的参数足够大或者为负、空值时)
- 检查接口的性能:http 请求接口大多与后端执行的 SQL 语句性能、算法等比较相关。
- 检查接口的安全性:外部调用的接口尤为重要
5.接口测试需求分析
- 首先根据接口设计的技术架构方案,了解清楚被测接口对应的公共入参、入参、出参及返回数据的 Json 结构规范,根据测试场景进行测试。
- 理解接口参数,熟悉接口参数的输入要求、输入值范围、必填项等;
- 理解接口输出,熟悉返回 json 的结构构成、返回值类别、返回值范围、返回 data 的不同类型等。
- 理解接口的逻辑、接口的业务关联,熟悉技术方案中的接口相互关联、依赖的关系,接口与接口之间的数据传递等。
- 寻找测试点,根据输入 (参数名、取值范围)、输出 (参数名、返回值范围)、关联关系,进行测试点分析;
6.接口测试用例设计
接口测试的主要测试对象是接口,但是随着系统复杂度越来越高,接口越来越多,完全覆盖所有接口是很难的一件事情,并且实际过程中任意内部接口的变动都可能导致我们的测试用例的不可用。
接口用例设计优先级
优先级-->针对所有接口
暴露在外面的接口,因为通常该接口会给第三方调用;
供系统内部调用的核心功能接口;
供系统内部调用非核心功能接口;
优先级-->针对单个接口
正向用例优先测试,逆向(异常)用例次之 (通常情况,非绝对);
是否满足前提条件 > 是否携带默认参值参数 > 参数是否必填 > 参数之间是否存在关联 > 参数数据类型限制 > 参数数据类型自身的数据范围值限制
接口用例设计方法
测试用例编写注意事项
是否满足前提条件 | 有些接口需要满足前置条件,才可成功获取数据。常见的,需要登陆 Token。逆向用例:针对是否满足前置条件 (假设为 n 个条件),设计 0~n 条用例 |
是否携带默认值参数 | 正向用例:带默认值的参数都不填写、不传参,必填参数都填写正确且存在的 “常规” 值,其它不填写,设计 1 条用例; |
业务规则、功能需求 | 这里根据实际情况,结合接口参数说明,可能需要设计 n 条正向用例和逆向用例 |
参数是否必填 | 逆向用例:针对每个必填参数, |