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

news2024/11/16 7:21:19

一、接口测试流程

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值)

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你! 

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

博途PLC 面向对象系列之“双通气缸功能块“(SCL代码)

1、面向对象系列之找对象 https://rxxw-control.blog.csdn.net/article/details/136150027https://rxxw-control.blog.csdn.net/article/details/1361500272、博途PLC 面向对象系列之"单通气缸功能块" https://rxxw-control.blog.csdn.net/article/details/1363399…

DB-GPT:大模型 + 数据库,全流程自动化

DB-GPT:大模型 数据库,全流程自动化 提出背景DB-GPT 结构具体问题与解法背景分析对比其他工具DB-GPT系统设计 提出背景 论文:https://arxiv.org/pdf/2312.17449.pdf 代码:https://github.com/eosphoros-ai/DB-GPT 本文介绍了D…

pytorch --反向传播和优化器

1. 反向传播 计算当前张量的梯度 Tensor.backward(gradientNone, retain_graphNone, create_graphFalse, inputsNone)计算当前张量相对于图中叶子节点的梯度。 使用反向传播,每个节点的梯度,根据梯度进行参数优化,最后使得损失最小化 代码…

Dynamo幕墙探究系列(一)

一直想写个系列教程,但是没有那么多时间整理资料,这次呢,先弄个小系列吧,还是和之前差不多的幕墙测试,我们分几节课,一步一步深入研究。 今天先开个小头儿,要弄的,就是下面这么个模型…

小程序图形:echarts-weixin 入门使用

去官网下载整个项目: https://github.com/ecomfe/echarts-for-weixin 拷贝ec-canvs文件夹到小程序里面 index.js里面的写法 import * as echarts from "../../components/ec-canvas/echarts" const app getApp(); function initChart(canvas, width, h…

【IDEA】2023版IDEA安装破解教程

2023版IDEA安装破解教程 第一步:IDEA的卸载 这里以Windows11系统为例,首先我们打开控制面板,点击程序,找到自己的IDEA,双击卸载。(或者可以直接找到idea所在文件位置,直接delete文件夹&#x…

化肥工业5G智能制造工厂数字孪生可视化平台,推进化肥行业数字化转型

化肥工业5G智能制造工厂数字孪生可视化平台,推进化肥行业数字化转型。随着科技的不断发展,数字化转型已经成为各行各业发展的必然趋势。在化肥工业领域,5G智能制造工厂数字孪生可视化平台的应用正在逐渐普及,为行业数字化转型提供…

微信小程序云开发教程——墨刀原型工具入门(页面交互+交互案例教程)

引言 作为一个小白,小北要怎么在短时间内快速学会微信小程序原型设计? “时间紧,任务重”,这意味着学习时必须把握微信小程序原型设计中的重点、难点,而非面面俱到。 要在短时间内理解、掌握一个工具的使用&#xf…

AI时代编程新宠!如何让孩子成为未来的编程大师?

文章目录 一、了解编程的基础概念二、选择适合的编程工具三、激发孩子的兴趣四、注重基础能力的培养五、提供实践机会六、鼓励孩子与他人合作七、持续支持与鼓励《信息学奥赛一本通关》本书定位内容简介作者简介目录 随着科技的迅猛发展,编程已经从一种专业技能转变…

C++三级专项 Hermite多项式

用递归的方法求Hermite多项式的值。 对给定的x和正整数n,求多项式的值,并保留两位小数。 输入 给定的n和正整数x. 输出 多项式的值。 输入样例 1 2 输出样例 4.00 解析:按照题目给出的要求:递归来解决就行,上…

『京墨』1.7.0 发布,开源的诗文(名句)、歇后语、成语、绕口令、节日等的阅读 APP

1.7.0 更新日志 优化 UI 显示;优化数据同步,尤其是诗文同步;【诗文名句】【成语】【歇后语】模块添加收藏功能;添加“滑动翻页”功能。 介绍 『京墨』开源的古诗词文(名句)、歇后语、成语、绕口令、节日…

C++_map与set

目录 一、set 1、set的用法 2、multiset 二、map 1、map的用法 2、map的operator[] 3、multimap 结语 前言: C中的map和set容器属于关联式容器,与序列式容器不同的地方在于(序列式容器即vector、list,其底层是由线性数据…

牛客禁用题:求阶乘

思路&#xff1a;在新类中使用全局变量进行运算&#xff0c;在主类中定义新类数组&#xff0c;通过构造函数的调用次数返回阶乘 #include <type_traits> class add{public:static int count;static int tmp;add(){countcounttmp;tmp;} }; int add::count0; int add::t…

Flink:动态表 / 时态表 / 版本表 / 普通表 概念区别澄清

博主历时三年精心创作的《大数据平台架构与原型实现&#xff1a;数据中台建设实战》一书现已由知名IT图书品牌电子工业出版社博文视点出版发行&#xff0c;点击《重磅推荐&#xff1a;建大数据平台太难了&#xff01;给我发个工程原型吧&#xff01;》了解图书详情&#xff0c;…

在golang中使用protoc

【Golang】proto生成go的相关文件 推荐个人主页&#xff1a;席万里的个人空间 文章目录 【Golang】proto生成go的相关文件1、查看proto的版本号2、安装protoc-gen-go和protoc-gen-go-grpc3、生成protobuff以及grpc的文件 1、查看proto的版本号 protoc --version2、安装protoc-…

Java 打包 SpringBoot 项目报错

Java 打包 SpringBoot 项目报错 问题重现 Please refer to xxxx for the individual test results. Please refer to dump files (if any exist) [date].dump, [date]-jvmRun[N].dump and [date].dumpstream. 解决问题 在 pom.xml 的 <properties> 中添加项目代码 <s…

AIGC下一步:如何用AI再度重构或优化媒体处理?

让媒资中“沉默的大多数”再次焕发光彩。 邹娟&#xff5c;演讲者 编者按 AIGC时代下&#xff0c;媒体内容生产领域随着AI的出现也涌现出更多的变化与挑战。面对AI的巨大冲击&#xff0c;如何优化或重构媒体内容生产技术架构&#xff1f;在多样的应用场景中媒体内容生产技术又…

【半监督医学图像分割 2021 IEEE】DU-GAN

【半监督医学图像分割 2021 IEEE】DU-GAN 论文题目&#xff1a;DU-GAN: Generative Adversarial Networks with Dual-Domain U-Net Based Discriminators for Low-Dose CT Denoising 中文题目&#xff1a;基于双域U-Net鉴别器的生成对抗网络用于低剂量CT去噪 论文链接&#xff…

云时代【5】—— LXC 与 容器

云时代【5】—— LXC 与 容器 三、LXC&#xff08;一&#xff09;基本介绍&#xff08;二&#xff09;相关 Linux 指令实战&#xff1a;使用 LXC 操作容器 四、Docker&#xff08;一&#xff09;删除、安装、配置&#xff08;二&#xff09;镜像仓库1. 分类2. 相关指令&#xf…

C---输入5个字符串,找出最长字符串并输出

从键盘输入5个字符串&#xff0c;找出最长的字符串并输出该字符串 例&#xff1a; 输入&#xff1a;123 1234 werere1234 12 123 输出&#xff1a;werere1234 #include <stdio.h> #include <string.h>int main() {char strings[5][80]; // 存储5个字符串&#x…