当前位置: 首页 > news >正文

2023最详细的接口测试用例设计教程

一、接口测试流程

1、需求讨论

2、需求评审

3、场景设计

4、数据准备

5、测试执行

二、分析接口文档元素

1、接口名称

2、接口地址

3、支持格式

4、请求方式

5、请求参数(参数名称、类型、是否必填、参数说明等)

6、返回参数(返回码、返回值信息、返回JSON串信息)

三、如何设计接口测试用例

3.1、为什么要设计测试用例

1、理清思路、避免漏测

2、提高测试效率

3、跟进测试进度

4、体现任务工作量

5、跟进重复性工作

3.2、设计接口测试用例从哪些方面考虑

1、功能

功能是否正常

功能是否按照接口文档实现

正常场景

异常场景

2、逻辑业务

是否依赖业务、比如是否登录成功

3、异常测试

(1)参数异常

关键字参数、参数为空、多参数、少参数、错误参数

覆盖所有的必选参数,组合可选参数,参数有、无或为null,参数的顺序、个数、类型

参数类型数值大小、输入的数值范围,参数字串长短,参数包含特殊字符

(2)数据异常

关键字数据、数据为空、长度不一致、错误数据

4、安全

Cookie

header

唯一识别码

四、常用的接口测试用例覆盖方法

1、必须参数覆盖

对于接口的参数,接口文档一般都会说明哪些是必需的,哪些是非必需的。

对于必需的参数,一定要测试传参数和不传参数接口是否报错。

2、必须参数各种情况覆盖

传非法的字符,特殊的字符,空值,超过边界的参数是否报错?错误信息是否正确?

3、非必须参数覆盖

一般接口对于非必需参数都不会做非正常性传值的判断,所以要测试合法的参数值,接口返回的内容是否正确。

如果有接口文档说明对非必需参数做了非正常的验证的话,也要对其进行验证。

4、参数组合覆盖

有些参数需要相互配合着才起作用,如“offset”和“count”组合起来进行翻页,这个时候要组合起来进行测试。

5、业务逻辑相关覆盖

有些接口与业务逻辑关联密切,单独从接口角度测试,可能会遗漏掉一些因业务逻辑而产生的bug。

所以如果和业务逻辑相关,也要考虑到业务逻辑相关的测试用例。

五、接口测试接口优先级

1、优先级 - 针对所有接口

(1)暴露在外面的接口,因为通常该接口会给第三方调用

(2)供系统内部调用的核心功能接口

(3)供系统内部调用非核心功能接口

2、优先级 - 针对单个接口

(1)正向用例优先测试,逆向用例次之(通常情况,非绝对)

(2)是否满足前提条件 > 是否携带默认参数 > 参数是否必填 > 参数之间是否存在关联 > 参数数据类型限制 >参数数据类型自身的数据范围限制

六、接口测试的设计思路分析

1、是否满足前提条件

有些接口需要满足前置条件,才可成功获取数据。如常见的需要登陆Token。

逆向用例:

针对是否满足前置条件(假设为n个条件),设计0~n条用例

2、是否携带默认值参数

正向用例:

带默认值的参数都不填写、不传参,必填参数都填写正确且存在的“常规”值,其它不填写,设计正向用例

3、业务规则、功能需求

根据实际情况,结合接口参数说明,可能需要设计n条正向用例和逆向用例

4、参数是否必填

逆向用例:

针对每个必填参数,都设计1条参数值为空的逆向用例

5、参数之间是否存在关联

有些参数彼此之间存在相互制约的关系

逆向用例:

根据实际情况,可能需要设计0~n条用例

6、参数数据类型限制

逆向用例:

针对每个参数都设计1条参数值类型不符的逆向用例

7、参数数据类型自身的数据范围限制

正向用例:

针对所有参数,设计1条每个参数的参数值在数据范围内为最大值的正向用例

逆向用例:

针对每个参数(假设n个),设计n条每个参数的参数值都超出数据范围最大值的逆向用例

针对每个参数(假设n个),设计n条每个参数的参数值都小于数据范围最小值的逆向用例

总结:

以上几个方面考虑全的话,基本可以做到如下几个方面的覆盖:

(1)主流程测试用例:正常的主流程功能校验

(2)分支流测试用例:正常的分支流功能校验

(3)异常流测试用例:异常容错校验

七、接口测试返回结果的比较

目的:

验证代码正常

验证代码正确

1、比较返回码

2、比较返回值的完整性,即返回的key全不全

3、比较key的value数据类型

4、比较key对应的value值(也包括验证业务相关数据的value值)

总结:一般接口自动化,通常验证1、2两点即可,第3点根据公司测试周期来评估,而第4点,在功能测试中会验证value值的正确性。

相关文章:

2023最详细的接口测试用例设计教程

一、接口测试流程 1、需求讨论 2、需求评审 3、场景设计 4、数据准备 5、测试执行 二、分析接口文档元素 1、接口名称 2、接口地址 3、支持格式 4、请求方式 5、请求参数(参数名称、类型、是否必填、参数说明等) 6、返回参数(返回…...

【数据库】 数据库的理论基础详解

目录 一, 什么是数据库 二, 数据库管理系统(DBMS) 三,数据库与文件系统的区别 1,对比区别: 2,优缺点总结: 四,数据库的发展史 五,常见数据库 1, 关系型…...

Linux环境运行Maven 生成的hadoop jar包

运行命令: hadoop jar ./jar包名字 class对象路径 输入路径 输出路径 linux内部jar包测试 cd 到以下目录,创建以下文件夹 [rootreagan180 ~]# cd /opt/soft/hadoop313/share/hadoop/mapreduce/ 创建文件夹(读取路径) [roo…...

ThreadPoolExecutor原理解析

1. 工作原理1.1 流程图1.2 执行示意图从上图得知如果当前运行的线程数小于corePoolSize(核心线程数),则会创建新线程作为核心线程来执行任务(注意,执行这一步需要获取全局锁)。如果运行的线程等于或多于corePoolSize,则将任务加入BlockingQue…...

谷粒学苑第二章前端框架-2.2前端框架开发过程

一、前端框架开发过程 第一步:添加路由 src/router模块用来管理路由。 第二步:点击某个路由,显示路由对应页面内容 component: () > import(/views/table/index), 表示路由对应的页面,是views/table/index.vue页面 第三步&a…...

权限管理实现的两种方式(详解)

登录的接口请求的三个内容:1. token2. 用户信息、角色信息3. 菜单信息第一种:基于角色Role的动态路由管理 (不推荐,但市场用的比较多)首先列出枚举每个角色对应几个路由,然后根据用户登录的角色遍历枚举出来的角色动态注册对应的路…...

【C++】智能指针思路解析和模拟实现

此篇文章就从以下几个方面出发,带你了解智能指针的方方面面1.为什么需要智能指针当我们开辟内存并使用的时候,我们的顺序应该是这样:开辟内存-》使用内存-》释放内存问题就出现在第三步,开辟好了,也使用了,…...

SpringCloud(18):Sentinel流控降级入门

Sentinel本地应用流控降级实现分为三步: 创建本地应用搭建本地Sentinel控制台本地应用接入本地Sentinel控制台1 本地应用创建 整体流程分析 创建springboot项目在项目的pom.xml文件中引入sentinel-core的依赖坐标创建TestController,定义使用限流规则运行测试具体流程 1.创…...

C++【多态】

文章目录1、多态的概念2、多态的定义及实现2-1、多态的构成条件2-2、虚函数2-3、虚函数的重写2-4 多态样例2-5、协变2-6、 析构函数与virtual2-7、函数重载、函数隐藏(重定义)与虚函数重写(覆盖)的对比2-8、override 和 final&…...

缓存预热、缓存雪崩、缓存击穿、缓存穿透,你真的了解吗?

缓存穿透、缓存击穿、缓存雪崩有什么区别,该如何解决? 1.缓存预热 1.1 问题描述 请求数量较高,大量的请求过来之后都需要去从缓存中获取数据,但是缓存中又没有,此时从数据库中查找数据然后将数据再存入缓存&#xf…...

【Java基础】018 -- 面向对象阶段项目上(拼图小游戏)

目录 拼图小游戏(GUI) 一、主界面分析 1、练习一:创建主界面1 2、练习二:创建主界面2(JFrame) 3、练习三:在游戏界面中添加菜单(JMenuBar) ①、菜单的制作 4、添加图片&a…...

【网络~】

网络一级目录二、socket套接字三、UDP数据报套接字四、TCP流套接字一级目录 1.局域网、广域网 2.IP地址是什么? IP地址是标识主机在网络上的地址 IP地址是如何组成的? 点分十进制,将32位分为四个部分,每个部分一个字节&#xff…...

手写JavaScript中的call、bind、apply方法

手写JavaScript中的call、bind、apply方法 call方法 call() 方法使用一个指定的 this 值和单独给出的一个或多个参数来调用一个函数。 function Product(name, price) {this.name name;this.price price; }function Food(name, price) {Product.call(this, name, price);t…...

JAVA练习46-将有序数组转换为二叉搜索树

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 前言 提示:这里可以添加本文要记录的大概内容: 2月10日练习内容 提示:以下是本篇文章正文内容,下面案例可供参考 一、题目-…...

linux(centos7.6)docker

官方文档:https://docs.docker.com/engine/install/centos/1安装之前删除旧版本的docker2安装yum install-y yum-utils3配置yum源 不用官网的外国下载太慢 推荐阿里云yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.r…...

微信小程序滚动穿透问题

文章目录1、catchtouchmove"true"2、page-meta3、wx.setPageStyle做小程序的开发业务中,经常会使用弹窗,当弹窗里的内容过多时,要滚动查看,然后经常会遇到滚动弹窗,弹窗底下页面也跟着滚。解决思路&#xff…...

安全—06day

负载均衡反向代理下的webshell上传负载均衡负载均衡下webshell上传的四大难点难点一:需要在每一台节点的相同位置上传相同内容的webshell难点二:无法预测下一次请求是哪一台机器去执行难点三:当我们需要上传一些工具时,麻烦来了&a…...

PostgreSQL入门

PostgreSQL入门 简介 PostgreSQL是以加州大学伯克利分校计算机系开发的POSTGRES, 版本 4.2为基础的对象关系型数据库管理系统(ORDBMS) 支持大部分SQL标准并且提供了许多现代特性 复杂查询外键触发器可更新视图事务完整性多版本并发控制 …...

自媒体人都在用的免费音效素材网站

视频剪辑、自媒体人必备的剪辑音效素材网站,免费下载,建议收藏! 1、菜鸟图库 音效素材下载_mp3音效大全 - 菜鸟图库 菜鸟图库是一个综合性素材网站,站内涵盖设计、图片、办公、视频、音效等素材。其中音效素材就有上千首&#xf…...

Java数据结构中二叉树的深度解析及常见OJ题

本篇文章讲述Java数据结构中关于二叉树相关知识及常见的二叉树OJ题做法讲解(包含非递归遍历二叉树) 目录 一、二叉树 1.1二叉树概念 1.2特殊的二叉树 1.3二叉树性质 1.4二叉树基本性质定理题 1.5二叉树遍历基本操作 1.6二叉树遍历的前中后非递归写法 1.7…...

打磨与展望:RAG 的进阶技巧与避坑指南

走过了从加载文档到完整问答链的全程,恭喜你——你已经亲手建造出了一台可以和自己文档“对话”的 RAG 引擎。但任何一个上过生产环境的开发者都知道:原型和产品之间,往往隔着一条名为“细节”的护城河。 用户开始提各种刁钻问题,…...

使用Taotoken CLI工具一键配置团队开发环境与统一模型端点

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 使用Taotoken CLI工具一键配置团队开发环境与统一模型端点 当团队需要统一接入多个大模型时,为每位成员手动配置API密钥…...

OBS高级计时器:7种计时模式让直播时间管理更简单

OBS高级计时器:7种计时模式让直播时间管理更简单 【免费下载链接】obs-advanced-timer 项目地址: https://gitcode.com/gh_mirrors/ob/obs-advanced-timer 在直播和视频制作中,时间管理是提升专业度的关键环节。obs-advanced-timer作为一款专为O…...

别再手动找数据了!用SPSS的‘添加变量’功能,5分钟搞定跨表数据匹配

SPSS数据合并实战:用‘添加变量’功能高效匹配跨表数据 在数据分析的日常工作中,我们常常遇到这样的场景:市场部门提供了一份客户基本信息表,销售团队则提交了季度消费记录,两份数据都包含客户ID字段但其他信息分散在不…...

不止于测温:用MAX31855和K型热电偶搭建一个低成本高精度温度监控系统(附STM32源码)

从热电偶到云端:基于MAX31855的高精度温度监测系统全栈开发指南 在工业自动化、实验室监测甚至家庭酿造等场景中,温度数据的精确采集与实时监控往往成为项目成败的关键。传统温度传感器虽然简单易用,但在高温、腐蚀性环境或需要极高精度的场合…...

Mulch:轻量级声明式Docker编排工具,简化单机应用部署与管理

1. 项目概述与核心价值最近在折腾一个自托管的小型服务器,主要用来跑一些个人项目、家庭媒体服务和自动化脚本。随着服务越装越多,一个老问题又浮出水面:如何高效、安全地管理这些应用?传统的做法要么是手动安装配置,过…...

告别毛边!保姆级教程:在Unity里完美播放Pr导出的WebM透明视频(附完整参数)

告别毛边!Unity中完美播放Pr导出WebM透明视频的终极指南 透明视频在游戏特效、UI动画和AR应用中越来越常见,但许多开发者都遇到过令人抓狂的"毛边"问题——那些不该出现的半透明像素像顽固污渍一样破坏视觉效果。本文将彻底解决这个痛点&#…...

SpinalHDL Bool类型详解:从基础概念到实战应用

1. 项目概述:从Verilog的“1‘b1”到SpinalHDL的“Bool”在数字电路设计的底层,信号的真与假、高与低,构成了所有逻辑运算的基石。如果你是从Verilog或VHDL转过来的工程师,对wire、reg或者std_logic类型一定不陌生,它们…...

C加加开发者如何通过Taotoken快速接入多模型API服务

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 C开发者如何通过Taotoken快速接入多模型API服务 1. 场景与需求 在C后端服务中集成大模型能力时,开发者常面临几个实际…...

终极指南:如何一键将小米智能家居全面接入HomeAssistant

终极指南:如何一键将小米智能家居全面接入HomeAssistant 【免费下载链接】hass-xiaomi-miot Automatic integrate all Xiaomi devices to HomeAssistant via miot-spec, support Wi-Fi, BLE, ZigBee devices. 小米米家智能家居设备接入Hass集成 项目地址: https:/…...