接口测试用例怎么写?一文1600字教你写一个优秀的接口测试的测试用例

2023-11-12

一、用例设计1

1、接口测试概念

接口测试:测试系统间接口的一种测试,测试的对象主要是接口,主要是测试外部系统与所测系统之间以及内部系统之间的交互点

2、接口测试方法

a、可以通过开发脚本代码进行测试
b、可以通过开源免费的接口调用调试工具测试,如:Postman等。
c、可以通过App手动测试,结合抓包工具分析,如:Fillder/Charles等

3、接口测试范围

接口范围包括:
一、被测项目中同层之间的接口(如DAO层、Service层),一个接口调用了其他的接口。
二、外部系统与系统之间的交互点(如一个App调用了第三方支付宝的API)
三、各个子系统之间的交互点(如App客户端调用了服务端的Http接口)

被测接口范围:
通常接口会很多,接口测试范围的筛选,参考测试人力资源、项目特点、接口重要性与优先级来进行。其中第一种属内部接口,构造测试稍复杂需开发配合实施,通常优先覆盖第二、三种接口
接口测试的重点测试范围:
优先测试覆盖核心业务,复杂业务的接口


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

接口测试出发点是被测接口逻辑存在错误,参考这个为出发点,更容易发现问题
设计接口测试用例,我们可简单的考虑两个基本要素,即:入参、出参,正确/错误的入参,逻辑判断后,接口是否做出正确的处理,返回正确的出参

接口测试用例有3类(逻辑测试,异常测试,路径测试):
1)逻辑测试:主要是根据开发提供的接口文档来设计测试用例,接口文档包含的要素(前提条件,输入参数,参数类型,业务逻辑,返回输出描述等),此类主要测试在正常输入的情况下,是否能得出正确的输出结果。主要使用的用例设计方法是等价类划分,边界值等

2)异常测试:接口逻辑的测试中主要测试接口正常逻辑,即对外提供的接口服务是基本可用的,但仅逻辑测试不能保证数据的安全及程序接口在异常情况下的逻辑处理的正确性
(a) 空值,null;
(b) 参数属性(如:未赋值的参数)
(c) 异常业务参数(如:构造不满足业务异常业务参数)
(d) 参数个数、参数类型错误(如:接口文档中定义必填参数2个int,输入参数仅1个,类型非int)
3)路径测试:当被测接口的实现方法中,判断逻辑复杂分支多,且判断中又调用了其他的接口,此时必须要进行路径覆盖测试

5、接口测试关注点

6、接口自动化测试工具
1)Java(HttpClient) + Junit/TestNG;
2)Jmeter
3)SoapUI
4)Python requests/urllib 库;
......

二、用例设计2

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

1.暴露在外面的接口,因为通常该接口会给第三方调用
2.供系统内部调用的核心功能接口
3.供系统内部调用非核心功能接口

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

1.正向用例优先测试,逆向用例次之(通常情况,非绝对)
2.是否满足前提条件 > 是否携带默认参值参数 > 参数是否必填 > 参数之间是否存在关联 > 参数数据类型限制 > 参数数据类型自身的数据范围值限制

3、设计分析

通常,设计接口测试用例需要考虑以下几个方面:

1.是否满足前提条件
有些接口需要满足前置条件,才可成功获取数据。常见的,需要登陆Token;
逆向用例:针对是否满足前置条件(假设为n个条件),设计0~n条用例

2.是否携带默认值参数
正向用例:带默认值的参数都不填写、不传参,必填参数都填写正确且存在的“常规”值,其它不填写,设计1条用例

3.业务规则、功能需求
这里根据实际情况,结合接口参数说明,可能需要设计n条正向用例和逆向用例

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

5.参数之间是否存在关联
有些参数彼此之间存在相互制约的关系;
逆向用例:根据实际情况,可能需要设计0~n条用例

6.参数数据类型限制
逆向用例:针对每个参数都设计1条参数值类型不符的逆向用例

7.参数数据类型自身的数据范围值限制
正向用例:针对所有参数,设计1条每个参数的参数值在数据范围内为最大值的正向用例
逆向用例:针对每个参数(假设n个),设计n条每个参数的参数值都超出数据范围最大值的逆向用例;针对每个参数(假设n个),设计n条每个参数的参数值都小于数据范围最小值的逆向用例

资源分享

最后感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走

这些资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!凡事要趁早,特别是技术行业,一定要提升技术功底。希望对大家有所帮助…….

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

接口测试用例怎么写?一文1600字教你写一个优秀的接口测试的测试用例 的相关文章

  • 新入职一个00后卷王,每天加班到2点,太让人崩溃了····

    在程序员职场上 什么样的人最让人反感呢 是技术不好的人吗 并不是 技术不好的同事 我们可以帮他 是技术太强的人吗 也不是 技术很强的同事 可遇不可求 向他学习还来不及呢 真正让人反感的 是技术平平 却急于表现自己的人 每天加班到12点 在老
  • 软件测试|使用Python轻松裁剪视频

    简介 裁剪视频是在视频编辑和处理中常见的任务之一 Python提供了多种库和工具 可以用来裁剪视频 在本文中 我们将详细讨论如何使用Python来裁剪视频 并提供示例代码 步骤1 环境准备 首先 我们要安装必要的Python库 我们将使用
  • 软件测试|使用matplotlib绘制多种折线图

    简介 在数据可视化领域 Matplotlib是一款非常强大的Python库 它可以用于绘制各种类型的图表 包括折线图 本文将介绍如何使用Matplotlib创建多种不同类型的折线图 并提供示例代码 创建模版 在绘图之前 我们可以先创建我们的
  • 软件测试|SQLAlchemy环境安装与基础使用

    简介 SQLAlchemy 是一个强大的 Python 库 用于与关系型数据库进行交互 它提供了高度抽象的对象关系映射 ORM 工具 允许使用 Python 对象来操作数据库 而不必编写原生SQL查询 本文将介绍如何安装 SQLAlchem
  • 软件测试|使用matplotlib绘制平行坐标系图

    简介 绘制平行坐标系图 Parallel Coordinates Plot 是一种用于可视化多维数据的强大方法 在这篇文章中 我们将介绍如何使用Matplotlib库创建平行坐标系图 以及如何解释和定制这种图表 我们将使用一个示例数据集来演
  • 软件测试|sqlalchemy relationship

    简介 SQLAlchemy是一个流行的Python ORM 对象关系映射 库 它允许我们以面向对象的方式管理数据库 在SQLAlchemy中 relationship 是一个重要的功能 用于建立表之间的关系 在本文中 我们将详细探讨 rel
  • 软件测试|使用Python读写yaml文件,你会了吗?

    简介 YAML YAML Ain t Markup Language 是一种可读的数据序列化格式 它常用于配置文件和数据交换 Python 提供了许多库来处理 YAML 文件 在本文中 我们将探讨如何使用 PyYAML 库来读取和写入 YA
  • 软件测试|pycharm关联GitHub的详细步骤

    简介 GitHub 是全球最大的开源代码托管平台之一 而 PyCharm 是一款强大的 Python 集成开发环境 将两者结合使用 可以提高团队协作和代码管理的效率 本文将详细介绍如何在 PyCharm 中管理 GitHub 账号 包括如何
  • 软件测试|教你如何使用Python绘制出奥运五环旗

    简介 我们之前介绍过使用turtle来绘制正多边形 但是绘制正多边形只是turtle模块最基础的使用 我们可以使用turtle模块绘制出更多不一样的精彩图形 本文就来给大家介绍一个比较简单的turtle绘图实例 绘制奥运五环旗 初始化参数
  • 软件测试|Python数据可视化神器——pyecharts教程(九)

    使用pyecharts绘制K线图进阶版 简介 K线图 Kandlestick Chart 又称蜡烛图 是一种用于可视化金融市场价格走势和交易数据的图表类型 它是股票 外汇 期货等金融市场中最常用的技术分析工具之一 可以提供关于价格变动 趋势
  • 软件测试|教你使用Python下载图片

    前言 我一直觉得Windows系统默认的桌面背景不好看 但是自己又没有好的资源可以进行替换 突然我一个朋友提醒了我 网络上的图片这么多 你甚至可以每天换很多个好看的背景 但是如果让我手动去设置的话 我觉得太麻烦了 我不如使用技术手段将图片下
  • 跨平台UI自动化框架:Airtest,游戏开发和应用测试的利器

    2024软件测试面试刷题 这个小程序 永久刷题 靠它快速找到工作了 刷题APP的天花板 CSDN博客 文章浏览阅读2 3k次 点赞85次 收藏11次 你知不知道有这么一个软件测试面试的刷题小程序 里面包含了面试常问的软件测试基础题 web自
  • 如何写好一个错误报告

    2024软件测试面试刷题 这个小程序 永久刷题 靠它快速找到工作了 刷题APP的天花板 CSDN博客 文章浏览阅读2 3k次 点赞85次 收藏11次 你知不知道有这么一个软件测试面试的刷题小程序 里面包含了面试常问的软件测试基础题 web自
  • 开眼了,自动化测试还能这样用?

    2024软件测试面试刷题 这个小程序 永久刷题 靠它快速找到工作了 刷题APP的天花板 CSDN博客 文章浏览阅读2 3k次 点赞85次 收藏11次 你知不知道有这么一个软件测试面试的刷题小程序 里面包含了面试常问的软件测试基础题 web自
  • 新手也能看懂的【前端自动化测试入门】

    2024软件测试面试刷题 这个小程序 永久刷题 靠它快速找到工作了 刷题APP的天花板 CSDN博客 文章浏览阅读2 3k次 点赞85次 收藏11次 你知不知道有这么一个软件测试面试的刷题小程序 里面包含了面试常问的软件测试基础题 web自
  • 2024拒绝行业内卷!八年软件测试20K*16薪行业心得 想入行必看

    目前工作做软件测试工作8年 属于高级测试员那个级别吧 现在看到各行各业的人都在转行学习软件测试 想给大家一些学习建议和忠告 很多粉丝都跟我说今年行情很差 找不到工资 真的找不到工作了吗 我们常在网上看到的 程序员饱和 程序员过剩 其实一般是
  • 程序员找工作难!拿到外包公司的 offer 我应该去么?

    引言 前一阵子有一个帖子引起了非常广泛的讨论 描述的就是一个公司的外包工作人员 加班的时候因为吃了公司给员工准备的零食 被公司的HR当场批评 这个帖子一发出来 让现在测试行业日益新增的外包公司备受关注 那么外包公司和非外包公司有什么样的不一
  • Web自动化测试 —— capability参数配置

    一 capability概述 capability是webdriver支持的标准命令之外的扩展命令 配置信息 配置web驱动属性 如浏览器名称 浏览器平台 结合selenium gird完成分布式 兼容性测试 官网地址 https www
  • Airtest自动化测试工具

    一开始知道Airtest大概是在年初的时候 当时 看了一下官方的文档 大概是类似Sikuli的一个工具 主要用来做游戏自动化的 通过截图的方式用来解决游戏自动化测试的难题 最近 移动端测试的同事尝试用它的poco库来做自动化 看样子还不错
  • 深入解析 YAML 配置文件:从语法到最佳实践

    一 认识YAML YAML YAML Ain t Markup Language 是一种人类可读的数据序列化语言 它的设计目标是使数据在不同编程语言之间交换和共享变得简单 YAML采用了一种简洁 直观的语法 以易于阅读和编写的方式表示数据结

随机推荐

  • 使用C语言设计一个学生信息管理系统,系统功能:系统能实现学员信息的管理的基本功能,如信息录入,删除,修改,查找,成绩排序等功能

    项目思路 使用结构体 struct 来表示一个学生的信息 包括学号 姓名 性别和分数 使用数组来存储多个学生的信息 并用变量count记录当前已有学生数量 提供菜单界面供用户选择功能 根据用户选择调用功能函数实现功能 使用switch分支控
  • Go timer 是如何被调度的?

    hi 大家好 我是 haohongfan 本篇文章剖析下 Go 定时器的相关内容 定时器不管是业务开发 还是基础架构开发 都是绕不过去的存在 由此可见定时器的重要程度 我们不管用 NewTimer timer After 还是 timer
  • Qt实现 自定义矩阵布局

    前言 当界面需要同时展示多个项的时候 可能需要一个矩阵来填充数据 因为通常不知道数据项的多少 所以支持自定义行列就显得尤为重要 比如可能需要在一台电脑同时显示多个报表的数据 如果一直切换 因为无法比较各个报表的数据 难免不够直观 这种时候
  • Android代码通过包名调用系统卸载程序

    卸载指定包名的应用 param packageName public boolean uninstall String packageName boolean b checkApplication packageName Logger d
  • Mongodb 锁

    MMAP1存储引擎 collection锁 collection level concurrency control 在MMAP版本中 只提供了database的锁 既当一个用户对一个collection进行操作时 其他的collectio
  • 《Kubernetes故障篇:had untolerated taint node.kubernetes.io/not-ready》

    一 环境信息 操作系统 K8S版本 containerd版本 Centos7 6 v1 24 17 v1 6 12 二 背景信息 部署完K8S集群后 使用如下命令测试集群 进入pod中发现无法解析k8s默认域名和无法ping通外网 宿主机主
  • SWUST OJ#1103(数据结构之删除顺序表中指定区间的数据)

    目录 题目 思路 代码 题目 题目描述 建立顺序表L 将指定区间的数据从顺序表中删除 假设指定区间是合法数据 无序做合法性判断 测试数据为整型 输入 第一行是表长n 第二行是表中数据元素 第三行是闭区间 输出 删除以后的顺序表中的数据元素
  • Unable to find a single main class from the following candidates

    项目启动编译时报错 错误原因 当前项目下无法找到单个main方法 因为当前项目有两个main方法 有时可能有多个 此些main方法会列在 括号中 解决方式 把非启动类中的那些main方法注释掉 保证只有一个main方法
  • cocos自定义类 绑定到lua

    1 按照 frameworks cocos2d x tools tolua下的README mdown的指示一步一步做下去 务必要和文件中描述的一样 我已经被这个坑爹的东西坑的很惨了 检查这个有没有配置好的方法是 运行下那个genbindi
  • 循环依赖 三级缓存解决

    循环依赖的产生 A对象里面依赖着B对象 B对象依赖着A对象 流程 当A开始实例化A 然后初始化A 再初始化的A的时候 去实例化B 然后再初始化B 初始化B的时候在去实例化A 产生一个循环依赖 spring设置三级缓存来解决这个问题 Obje
  • 校招面试重点汇总之多线程(不多但都是高频面试题)

    一 进程和线程有什么区别 进程和线程都是操作系统中用来实现多任务的概念 但是它们之间有一些重要的区别 如下所述 1 定义方面 进程 进程是操作系统中分配资源的基本单位 是正在运行中的一个程序 一个进程可以包含多个线程 每个进程有自己独立的地
  • vscode检测到#include错误,请更新includePath。解决方法

    vscode检测到 include错误 请更新includePath 解决方法 最近电脑重做 重新安装了一边vscode 但是写代码的时候发现头文件会标错 显示无法找到 下面是我的解决办法 Linux 子系统 执行命令查看g 包含路径 g
  • Android Studio开发环境搭建及本地Gradle设置方法

    Android Studio开发环境搭建及本地Gradle设置方法 在进行Android应用程序开发时 Android Studio是一款非常强大的集成开发环境 IDE 它提供了丰富的工具和功能 帮助开发者轻松创建 测试和调试Android
  • java token生成规则_token的生成原理 使用方法!

    什么是token Token是服务端生成的一串字符串 以作客户端进行请求的一个令牌 当第一次登录后 服务器生成一个Token便将此Token返回给客户端 以后客户端只需带上这个Token前来请求数据即可 无需再次带上用户名和密码 基于 To
  • [解决办法]已经安装了数字证书,但是谷歌浏览器登录https协议的web系统时仍然提示证书不受信任...

    已经安装了数字证书 但是谷歌浏览器登录https协议的web系统时仍然提示证书不受信任 如下图 解决办法 1 单击Chrome浏览器右侧设置菜单 选择 设置 2 拖至页面下方 单击 显示高级设置 3 单击高级设置中的 HTTPS SSL 处
  • IDEA 热部署项目

    使用Idea 开发SpringBoot项目 修改完代码以后 要重新启动 Application 才可以看到效果 这样做开发效率肯定是大受影响的 可以通过热部署 热更新来实时加载更改 提高效率 1 引入热部署插件
  • 电脑蓝屏终止代码irql_一分钟教你看懂蓝屏代码,轻松解决电脑蓝屏问题

    电脑突然蓝屏的情况 想必很多朋友都遇到过吧 不知道你们是怎么解决的呢 重装系统 还是找专业人员维修呢 其实只要够看懂蓝屏代码 就能 对症下药 有些问题自己就能解决 今天小源就分享一些常见的蓝屏代码给大家 下面我们一起来看看吧 一 0X000
  • Python中的字典索引

    Python中的符合数据类型 字符串 列表和序列 它们用整数作为索引 如果你试图用其他的类型做索引 就会产生错误 gt gt gt list 1 2 3 gt gt gt list 0 1 gt gt gt list one Traceba
  • 【Linux】序列化和反序列化

    文章目录 定义 利用 Json 实现序列化反序列化 Json 的认识 Jsoncpp 库的下载与认识 实现序列化 实现反序列化 在网络编程中 直接使用 结构体 进行数据传输会出错 因为本质上socket无法传输结构体 我们只有将结构体装换为
  • 接口测试用例怎么写?一文1600字教你写一个优秀的接口测试的测试用例

    一 用例设计1 1 接口测试概念 接口测试 测试系统间接口的一种测试 测试的对象主要是接口 主要是测试外部系统与所测系统之间以及内部系统之间的交互点 2 接口测试方法 a 可以通过开发脚本代码进行测试 b 可以通过开源免费的接口调用调试工具