接口用例设计
接口用例设计
一、 接口测试工具
Jmeter、Postman、dubbo+testNG
二、 接口测试基本流程
研发架构设计、数据库设计评审→接口设计评审→研发输出接口文档→接口需求测试→测试输出测试用例→评审用例→执行测试→测试报告输出
三、 接口测试前置工作—明确接口定义
(1)接口方式
展示接口的请求协议、请求方式以及请求路径
(2)功能介绍
简单介绍接口的使用场景,说明这个接口的用途。接口测试的目的就是证明有没有满足这些用途
(3)字段
请求体:1)需标注请求参数名,参数数据类型
2)需标注是否为非必填
3) 需备注参数含义以及取值范围、取值含义
返回体:1)需标注返回的参数名以及返回值结构
2)需备注参数含义
3)异常情况需标注错误码code以及message提示信息
举例说明:
四、 接口用例设计基本框架
1场景分类
(1)BVT场景的定义:
BVT场景内只存在正向有效的测试用例,所有的传参都必须符合业务逻辑、符合传参规范。预期结果中一定能够实现该接口有效的需求功能。通过此场景的用例可以保证接口通畅,基础功能有效,此类用例为BVT用例。
(2)NORMAL场景的定义:
NORMAL场景内存在正向测试用例和反向测试用例,但是无论正向和反向都必须符合传参数据类型规范、字段必传与非必传规范。通过结合后端和需求设计,断言在此类传参的情况下代码对于正常有效场景和异常无效场景的判断,并给出合理反馈。通过此类用例可验证该接口需求功能所有有效和无效场景,涵盖该接口所有的需求功能测试。此类用例为NORMAL用例。
(3) ABNORMAL场景的定义:
ABNORMAL场景内仅存在异常无效的测试用例,通过传入不合符传参类型、必传与非必传、验证接口对于异常场景的处理。此类用例为ABNORMAL用例。
2接口测试用例设计要点及场景设计:
接口逻辑验证:
(1)根据需求内容和接口设计,设计逻辑场景测试,验证接口在实际业务逻辑下的接口返回内容和数据库的变更。
(2)存在上下游关联的接口,在只存在参数传递情况下,上游接口可设置为前置条件,至测试接口为止(接口解耦)
(3)存在上下游关联的接口,且存在逻辑场景,需排列组合场景,验证各个组合场景下的接口功能实现,断言主要验证信息。
(4)接口测试具有相同的前置条件时,可共用。例如登录的token信息,只需要调用1次,提供给后续所有接口测试使用。
(5)接口测试脚本要具备独立性,测试产生的脏数据对后续接口有影响时,需要测试完成后恢复原始状态(通过删除接口或直接删除数据库)。
接口参数必传与非必传验证:
(1)验证必传参数,有效场景下各个字段传入,能够正常返回,并断言接口主要功能信息。
(2)验证必传字段缺失,接口不能正常实现功能请求,断言接口对缺失必传字段的验证。
(3)验证非必传字段,在正常传入情况下,能够正常实现接口功能,断言接口主要功能信息。
(4)验证非必传字段,在缺失情况下,能够正常实现接口功能,断言接口主要功能信息
(5)验证字段依赖情况, 例如如果传入A字段,就必须传入C字段的。设计正向用例,验证字段正常关联情况下,接口返回正常,断言接口主要测试内容信息;设计异常用例,在关联字段不传入的情况下,接口不能实现正常功能请求,断言接口对缺失字段的验证。
接口参数字段数值验证:
(1)若字段类型为字符串和布尔值,则仅需跟随其他测试用例校验即可,无需考虑传入其他类型数据的情况。
(2)字段类型为整数,需要验证浮点数情况下,接口对于字段的断言,给出合理的异常提示。
(3)字段类型为浮点型,验证浮点数、整数均能正常处理,并正确返回参数
(4)根据实际需求对应的字段长度,设计上下限边界值测试用例,断言接口在边界值情况下的返回。
特殊场景验证:
(1)接口功能为增加数据和扣减数据,类似于提交、报名、新增、上传、扣减资产等增加或减少数据库数据接口,根据实际场景设计单用户和多用户并发接口测试。测试点如下:
接口并发下,带有唯一序列号的字段是否会出现重复。
接口并发下,新增数据是否正常,是否出现重复新增。
接口并发下,拥有名额限制的功能,是否超出正常限制。
接口并发下,扣减功能是否出现多扣多减情况。
接口并发下,接口是否出现异常报错。
3数据断言:自动比对数据,不需要手工验证
(1)断言接口返回值(code、message、returenValue)
(2)断言数据库字段值(新增数据是否在库里存在以及涉及的关联数据表数据是否正确、删除数据是否标注删除、更新数据数据库是否变更…)
举例: