首页 > 其他分享 >聊聊接口测试用例设计规范

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

时间:2024-11-07 21:08:39浏览次数:4  
标签:正确 必填 组合 校验 接口 测试用例 参数 聊聊 设计规范

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、弱网验证:

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

 

标签:正确,必填,组合,校验,接口,测试用例,参数,聊聊,设计规范
From: https://www.cnblogs.com/ailiailan/p/18533903

相关文章

  • 聊聊vue的 vue-intersect 插件
    1.vue-intersect 插件vue-intersect 是一个Vue.js的插件,它提供了对元素的可视区(viewport)交集检测的功能,可以用来实现懒加载等效果。使用 vue-intersect 需要先安装它,然后在你的Vue项目中配置并使用。1.1.相关地址https://blog.csdn.net/gitblog_00963/article/det......
  • 不按套路出牌版的测试用例编写思路
    这是4年测试经验,自我总结出来的适用于所有产品编写测试用例的一个大致思路吧,仅供参考,有其他见解的可以一起讨论。个人看法是:在产品需求分析阶段,书写测试用例之前我们就应该想好以下问题,大致有个思路和规划,可以帮助我们更加清晰的梳理测试用例。要写出一个逻辑清晰,条理清晰的测......
  • 聊聊公众号联动扫码登录功能如何实现
    大家好,我是V哥。扫码登录是个很普遍的功能,通过与公众号联动实现扫码登录功能,要怎么做呢,V哥整理了以下步骤和代码,供你参考。这里假设你已经有一个Java后端应用,并且微信开发者平台的配置也已经完成。(相信你可以根据微信开放平台的操作进行)整个流程包括二维码生成、扫码后获取微信......
  • 聊聊spring项目如何根据事件条件进行事件分发
    前言spring的事件驱动模型,想必大家都比较熟,今天就来水一期,如何使用事件条件来进行事件触发。直接上示例正文注:本示例主要模拟当用户注册,发送阿里云短信,模拟下单,发送腾讯云短信,模拟发送短信的逻辑,下放到事件监听里面做1、模拟创建阿里云短信publicclassAliyunSmsService......
  • pytest实现按业务线来执行,各业务线下的业务测试用例
    importargparseimportpytestdefmain():parser=argparse.ArgumentParser(description='Runspecificbusinesslinetests.')parser.add_argument('--line',choices=['line_1','line_2'],required=True,......
  • 测试用例设计方法(重点)
            软件测试的核心是测试用例的编写,是每个测试人员必须掌握的技能!!!应聘测试岗的必考题!!!目录一、等价类划分法1、概念2、等价类划分法用例设计原则3、等价类划分法/边界值分析法常用的运用场景二、边界值分析法1、概念        1.1定义      ......
  • 聊聊gitlab免费版和收费版本有哪些区别
    GitLab,一款受欢迎的代码托管和持续集成工具,有多个版本,包括免费版(GitLabCommunityEdition)和多种收费版本(GitLabEnterpriseEdition)。这些版本主要有以下不同:1、功能上的差异;2、性能与可扩展性;3、专业支持;4、集成与API;5、定价与许可;6、安全性与合规性;7、更新与维护。1、功能......
  • 第8课—设计测试用例编写技巧
    一、查看用例的模板案例模板1:案例模板2:案例模板3:二、用例的要素讲解.编写用例的要素?用例编号,用例标题,前置条件,测试步骤,预期结果,优先级(必写)系统名称、模块名称、用例创建时间,实际结果,用例类型,执行时间,执行状态等(非必填项)三、详解测试用例要素(一)用例编号可以称为:用例id,测......
  • 10.23 测试用例
    设计测试用例编写技巧=================================一、查看用例的模板案例模板1:案例模板2:案例3:==========================================二、用例的要素讲解.编写用例的要素?用例编号,用例标题,前置条件,测试步骤,预期结果,优先级(必写)系统名称、模块名称、用例创......
  • 设计测试用例编写技巧_
    一、查看用例的模板二、用例的要素讲解.编写用例的要素?用例编号,用例标题,前置条件,测试步骤,预期结果,优先级(必写)系统名称、模块名称、用例创建时间,实际结果,用例类型,执行时间,执行状态等(非必填项)三、详解测试用例要素(一)用例编号可以称为:用例id,测试编号,编号等(1)系统命名_模块名......