hxz
发布于 2023-06-28 / 75 阅读
0

我们团队定义的接口测试用例设计规范

背景:

在团队内,如果没有明确的规范来指导如何设计接口测试用例,可能会导致测试场景考虑不全面,从而遗漏一些关键的测试点。还可能导致测试过程中重复工作或者遗漏测试项,需要反复修改和补充测试用例,影响测试进度和效率。

所以,制定接口测试用例设计规范很有必要,下面将展开阐述。

接口测试用例设计细节和规范:

首先,明确接口所属的项目,模块,接口信息。

其中,接口信息关键组成有:

接口名称、接口协议、域名/ip:port、URI、请求方式、请求头、请求体、返回体

根据接口提供的信息,从以下角度编写测试用例:

  1. 主流程,提取最核心的,符合该接口业务功能的接口请求,预置好前置步骤,传入对应的正向参数,断言正确预期结果。

  2. 输入校验:

    1. 关注headers中涉及身份信息的入参校验的安全性和合法性,以cookies中userid为例

      1. userid过期

      2. userid无效

      3. userid的key值缺失

    2. 请求体中必填字段的校验(观察响应体,对齐接口文档,必填项缺失时是否有非200状态码返回以及对应msg):

      1. key缺失

      2. value为None

      3. value为空字符串。

    3. 选填字段校验:

      1. 需要明确选填字段的设置是否符合业务要求,后端服务一定会用到的参数是否为必填项。

      2. 移除选填字段时是否会影响接口结果

    4. 入参类型的校验:

      1. 针对数值型:需考虑边界值,特殊值(0,-1),小数,超长位数数值,字符串形式的数值,空(None,null);

      2. 字符串类型:空字符串,特殊字符(@#¥&*),英文大小写...

      3. 列表或字典类型:取值范围内外的边界值,特殊值[],{},空None、null;

      4. 布尔值:true,false,null;

      5. 时间戳:取值范围内外的值,超长位数时间戳,足够小的时间戳,负数

  1. 内部处理逻辑校验:

    1. 约束条件:业务功能数值限制,状态限制,关系限制,时间限制等

    2. 越权:横向、纵向越权校验

    3. 业务逻辑时序:比如需要先经过业务a处理才能到达业务b处理,必须要按照该流程顺序执行

    4. 唯一性数值的重复校验

    5. 不同的处理数量是否返回预期的响应体

    6. 遍历接口文档中定义的枚举值

    7. 状态转换,比方说执行中、执行完成的状态切换

  2. 响应体校验:

    1. 状态码是否符合接口文档

    2. 涉及敏感信息输出需校验是否加密

    3. 校验是否有额外参数未体现在接口文档中

    4. 校验响应体的参数变量类型和值的正确性