聊聊接口测试用例设计规范

news/2024/11/7 21:19:32/文章来源:https://www.cnblogs.com/ailiailan/p/18533903

1、通过性验证:

先按照接口文档传入所有必填字段并且字段值在正确范围内,预期返回正确结果

2、参数验证(正向/逆向):

  1. 必填参数:针对每个必填参数,都设计一条参数为空的测试用例,接口错误信息返回正确
  2. 非必填参数:设计一条用例所有非必填的参数都传入值,非必填参数(类型,范围)不正确,是否给出合理提示
  3. 参数值范围:参数的值在/不在接口文档中规定参数值范围内
  4. 长度边界值:符合长度范围内的,长度边界值,超过长度边界值的类型:符合参数类型的,不符合参数类型的(数组,字符串,正数,负数,整数,小数,小数点位数,中文,英文,特殊符号)
  5. 特殊值:空、null、"null"、""、" "、0、值的前后带有空格、特殊符号等
  6. 接口文档中不存在的参数:接口传入文档中不存在的参数不会异常
  7. 接口中传入的参数被覆盖:重复传入相同的key,但value不同
  8. 传入的参数格式不对:非json、少括号
  9. 参数个数:如果接受列表类型的参数,如果对列表大小没有进行限定则传入一个超大列表,如果对列表大小进行了规范则需要测试列表大小的边界值;接口能否正确返回数据;

PS:后端代码中一般会有专门的代码来处理接口入参的校验,可以通过查看研发的代码来帮助提高接口参数校验测试的效率,如java工程中的javax.validation.constraints。

接口入参size需要在[1 -3]内:

3、参数组合:

很多时候,接口中的参数有多个取值来满足不同的业务逻辑,当这样的参数>1时,就会出现参数组合的场景。例如参数A可传[1,2,3],

参数B可传["first","second","third"]

  1. 存在的组合:返回信息正确
  2. 不存在的组合:错误信息通俗易懂,错误码正确
  3. 参数组合中参数的个数:若多个参数组合,是否允许任意多个参数的随机组合(例如2个参数组合、3个参数组合、不传)

4、接口前提条件验证:
前提条件是否满足:

  1. token(token失效/token格式不对/token类型不对、登录退出登录其他账号)
  2. headers(例如Content-Type:application/json; charset=utf-8 、不填)

5、接口返回信息和状态码等正确:

  1. 状态码正确
  2. 错误信息没有歧义(增:调用了一次新增接口之后再调一次新增接口,删:调用了一次删除接口之后再调一次删除接口)
  3. 返回数据的结构正确
  4. 返回数据字段值类型正确

6、数据操作正确性验证:

如果接口是操作数据相关的,需要查看数据的流转和持久化是否正确完成,一般查看MySQL和Redis是否有相应的CUD操作即可

7、并发能力:

也就是对接口做性能测试,验证并发能力是否满足预期

8、接口权限/安全:

  1. 权限控制:当借口只有特定权限的用户才能操作时,验证不同权限的用户的处理逻辑
  2. 幂等校验:抓包工具拦截请求,修改敏感字断值
  3. 事务/锁校验:同时操作同一条数据的修改操作,给出正确信息
  4. 参数非明文:参数是否加密,加密规则是否易破解
  5. 密码复杂度:密码安全规则,密码的复杂程度校验

9、弱网验证:

弱网下,接口是否可以正常响应

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/828468.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2287: 【例28.3】 数列分段

include <bits/stdc++.h> using namespace std; int n, m, sum, num; int main( ) { cin >> n >> m; for (int i=1;i<=n;i++) { int e; cin >> e; if (num+e>m) { sum++; num=e; } else { num+=e; } } cout << sum+1; return 0; } 反思:这…

CRM系统主要是干什么的?

什么是CRM 系统?CRM系统到底是干什么的?不同的企业人员该如何利用CRM去解决他们的问题等等,问题太多了,我想着就就专门出一期内容,来为大家详细介绍。 干货满满,建议收藏!! 首先第一个问题,什么是CRM系统? CRM是Customer Relationship Management 的缩写,就是客户关…

11月7日 NOIP模拟(难题math、矩阵游戏matrix、括号序列seq、道路road) - 模拟赛记录

Preface T1 试图找规律失败,正经推反而几分钟就出来了。以后应该少想这些歪门邪道(除非实在闲的蛋疼或者没有一点头绪,且必须要打完所有能打的子任务比如暴力或特殊性质;而且必须在用常规方法思考过后,才能够用一些稍微不那么常规的方法) 至于 T2、T3、T4,因为知道 T1 浪…

ESP32学习笔记2(GPIO的数字输入输出功能)

1. 普通5mm直径LED参数测定实验 以上为普通5mm直径LED,手册建议持续工作电流为20mA以内。以下,采用学生电源(带控压限流功能)通过限流电阻170欧给各色LED供电,通过缓慢加压测流和观察LED亮度的方法,确定电流、压降与亮度关系,实测该批次LED颜色与压降大致如下: 颜色 …

2024/11/7日工作总结

学习JS基础知识: 1.事件绑定:点击查看代码 <!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8"><title>Title</title> </head> <body><img id="龙泡泡" src="../imgs/年…

实验三 c++

实验任务一 源代码 button.hpp1 #pragma once2 3 #include<iostream>4 #include<string>5 6 using std::string;7 using std::cout;8 9 class Button{ 10 public: 11 Button(const string &text); 12 string get_label()const; 13 void click(); 1…

学习openeuler操作系统的记录本

1.下载以及配置openeuler在官网里面下载openeuler操作系统,在官网的文档里面里面查看相对应的注意事项,(一定要会阅读官方文档),在官网查看下载的对应操作系统需要的最小cpu,以及磁盘大小等分配合适的虚拟硬盘,配置的过程要一步一步来,防止出现分配不合理,而导致的操作…

AWVS安装及破解

以kali为例安装AWVS复制安装文件到kali中 AWVS百度网盘下载 root用户打开kali并把安装包解压到/opt/AWVS路径中 7z x acunetix_23.11.231123131_x64.7z -o/opt/AWVS/编辑host文件 vim /etc/hosts将以下内容加在hosts文件尾部 127.0.0.1 erp.acunetix.com127.0.0.1 erp.acunetix…

这款Chrome 插件,使浏览器页面快速滑动到最底部和最顶部,并且还能...

前言 前几日我在使用谷歌浏览器,也就是chrome的时候,浏览一个内容很长的页面,由于页面上的内容有前后关联,所以我必须不停地切换到上面和下面。这非常不方便。使我非常抓狂。后来,我灵机一动,去谷歌浏览器的插件市场上搜索了一下有没有快速回到底部和顶部的插件,结果,还…

数据结构_链表_单向循环链表 双向链表的初始化、插入、删除、修改、查询打印(基于C语言实现)

一、单向循环链表的原理与应用 思考:对于单向链表而言,想要遍历链表,则必须从链表的首结点开始进行遍历,请问有没有更简单的方案实现链表中的数据的增删改查? 回答:是有的,可以使用单向循环的链表进行设计,单向循环的链表的使用规则和普通的单向链表没有较大的区别,需…

『模拟赛』多校A层冲刺NOIP2024模拟赛19

『模拟赛记录』多校A层冲刺NOIP2024模拟赛19Rank byd CSP 之后就没场切过题😡😡😡A. 图书管理 签,又寄了。 这种题直接做复杂度算着不对的话大概率就是要拆分贡献了。赛时用对顶堆维护的中位数,卡常到极致在 \(n=10^4\) 时要跑 1.2s。 感觉卡常有用所以写下来:发现如果…

WSL 挂载虚拟磁盘

为了扩展 WSL 虚拟机的大小,可以在 D 盘创建一个虚拟硬盘文件作为 WSL 虚拟机的数据盘。创建虚拟硬盘文件。打开磁盘工具,点击 操作 > 创建 VHD 打开虚拟硬盘创建菜单,创建一个虚拟硬盘文件:挂载虚拟硬盘。打开终端(管理员),运行下面的命令找到刚刚新建的虚拟磁盘: …