接口测试意义及工作流程
一、为什么要做接口测试?
一)、接口测试的作用
1、接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互。
2、测试的重点是要检查数据的交换,传递和控制管理过程,以及系统间的相互逻辑依赖关系等。
二)、接口测试的意义
1、按照分层测试模型,处于中间层的接口测试,在稳定性,效率,成本,技术,实施难度上综合来讲,是收益最大的。
2、相较于传统的UI层次的测试,接口测试把测试在时间上、架构上提前了,并且能够覆盖到一些UI测试无法触及的功能点,提高了测试的覆盖率,对质量控制提升了信心。
3、接口测试也更容易实现自动化持续集成,支持后端快速发版需求,利于CT(持续测试)的开展。
三)、为什么做接口测试?
1.越底层发现bug,它的修复成本是越低的。
2.很多系统前后端架构是分离
2.1 前端随便变,接口测好了,后端不用变,前后端是两拨人开发的。
2.2 检查系统的安全性、稳定性,前端传参不可信,比如京东购物,前端价格不可能传入-1元,但是通过接口可以传入-1元。
2.3 只依赖前端进行限制已经完全不能满足系统的安全要求(绕过前面实在太容易), 需要后端同样进行控制,在这种情况下就需要从接口层面进行验证。
2.4 前后端传输、日志打印等信息是否加密传输也是需要验证的,特别是涉及到用户的隐私信息。
3、接口持续集成是为什么能低成本高收益的根源
接口测试相对容易实现自动化持续集成,且相对UI自动化也比较稳定,可以减少人工回归测试人力成本与时间,缩短测试周期,支持后端快速发版需求。
二、接口测试工作流程
一)、测试流程
1、分析接口文档和需求文档(接口说明、请求方式、请求URL、请求参数、返回数据、返回实例)
2、接口用例设计
3、编写接口测试用例
4、接口测试执行
5、输出接口测试报告
二)、如何快速评估自己的测试用例覆盖率:
1、参数验证是否完整(包括各种边界和业务规则)
2、业务需求点覆盖是否完整(单接口业务功,依赖接口业务功能)
3、接口异常场景覆盖是否完整(数据的异常)
三)、接口测试用途
1、回归测试
2、非功能性测试
四)、API测试用例设计
| 测试点 | 测试内容举例 |
| 入参校验---传递不同的入参,检查返回值是否正确【必选】 | 入参等于空字符串/null |
| 入参类型(字符串、数值、布尔、数组、对象) | |
| 入参长度(字符串最小/最大长度) | |
| 入参值域(数值最小/最大值) | |
| 入参是否在枚举值范围内 | |
| 入参存在默认值 | |
| 入参等于0/负数 | |
| 入参组合(参数之间是否存在关联) | |
| 入参符合一定规则(比如账号只能由字母、下划线组成) | |
| 入参包含特殊字符 | |
| 业务逻辑校验---根据业务场景去设计【必选】 | 查询不存在的数据,应该返回空结果 |
| 数据状态不符合预期,不允许修改或删除 | |
| 返回值校验【必选】 | 返回状态码校验 |
| 新增类接口建议校验新生成的数据标识不为空 | |
| 更新或删除类接口建议校验返回消息中 success 为 true | |
| 列表查询类接口建议校验返回的查询记录数是否正确,排序规则是否正确 | |
| 数据详情类接口建议校验核心字段数据准确性 | |
| 幂等---检查幂等逻辑正确性【可选】 | 是否需要支持幂等(读接口一般不需要) |
| 前端重复提交 | |
| 接口超时重试 | |
| 消息重复消费 | |
| 稳定性---检查可用性策略和性能指标合理性【可选】 | 可用性(限流、熔断、降级) |
| 性能(qps、rt、fail、机器资源、中间件资源、存储资源) | |
| 兼容性---检查变更接口兼容性【可选】 | 入参兼容性(入参字段只能新增,不允许修改删除) |
| 返回值兼容性(返回值字段只能按顺序新增) | |
| 功能兼容性(兼容老功能) | |
| 数据兼容性(兼容老数据) | |
| 透明性【可选】 | 接口对调用方透明 |
| 可维护性【可选】 | 检查日志和变更记录 |
| 异常日志 | |
| 接口变更记录 | |
| 监控告警【可选】 | 检查监控告警配置 |
| 性能监控(qps、rt) | |
| 业务监控(错误码、业务指标) |
相关文章:
接口测试意义及工作流程
一、为什么要做接口测试? 一)、接口测试的作用 1、接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互。 2、测试的重点是要检查数据的交换,传递和控制管理过程,以及系统间的相互逻辑依赖关系等。 二&#…...
QT-如何使用RS232进行读写通讯
以下是一个使用Qt进行RS232通讯的具体示例,包括读取和写入数据的操作: #include <QCoreApplication> #include <QDebug> #include <QSerialPort> #include <QTimer>QSerialPort serial; // 串口对象void readData() {QByteArra…...
05 神经网络语言模型(独热编码+词向量的起源)
博客配套视频链接: https://space.bilibili.com/383551518?spm_id_from=333.1007.0.0 b 站直接看 配套 github 链接:https://github.com/nickchen121/Pre-training-language-model 配套博客链接:https://www.cnblogs.com/nickchen121/p/15105048.html 统计语言模型 统计+语…...
PyTorch Lightning教程八:用模型预测,部署
关于Checkpoints的内容在教程2里已经有了详细的说明,在本节,需要用它来利用模型进行预测 加载checkpoint并预测 使用模型进行预测的最简单方法是使用LightningModule中的load_from_checkpoint加载权重。 model LitModel.load_from_checkpoint("b…...
桂林小程序https证书
现在很多APP都相继推出了小程序,比如微信小程序、百度小程序等,这些小程序的功能也越来越复杂,不可避免的和网站一样会传输数据,因此小程序想要上线就要保证信息传输的安全性,也就是说各种类型的小程序也需要部署https…...
html input 设置不允许修改
要设置一个 HTML input 元素不允许修改,您可以添加 readonly 属性或将 disabled 属性设置为 true。这将禁用元素的编辑功能。 下面是几个示例: 使用 readonly 属性: <input type"text" readonly value"不允许修改的文本…...
BI技巧丨利用Index计算半累计
在实际的业务场景中,特别是财务模块和库存管理模块,经常需要我们针对每个月的期初期末进行相关指标计算,这也是我们之前曾经提到的Calculate基础应用——半累计计算。 现在我们也可以通过微软新推出的Index开窗函数来解决这一问题。 INDEX函…...
第三章:前端UI框架介绍
文章目录 一、Bootstrap1.1 Bootstrap简介及版本1.2 Bootstrap使用 二、AntDesign2.1 简介2.2 基本使用2.3 antd pro 三、ElementUI3.1 简介3.2 基本使用 四、Vant4.1 简介4.2 基本使用 一、Bootstrap 1.1 Bootstrap简介及版本 1、 简介 Bootstrap,来白 Twitter&a…...
javaScript:文档流写入和元素写入
目录 前言 文档流写入 把元素直接写入到文档流 注意编辑 注意 元素写入 注意 innerHTML 特点: 设置内容 获取内容 innerText 特点: 注意 相关代码 前言 在JavaScript中,文档流写入是指将内容直接写入到DOM(文档对…...
【BI系统】选型常见问题解答二
本文主要总结BI系统选型过程中遇见的常见问题,并针对性做出回答,希望能为即将选型,或正在选型BI系统的企业用户们提供一个快速了解通道。 有针对金蝶云星空的BI方案吗?能起到怎样的作用? 答:奥威BI系统拥…...
docker版jxTMS使用指南:使用jxTMS采集数据之一
本文讲解了如何jxTMS的数据采集与处理框架并介绍了如何用来采集数据,整个系列的文章请查看:docker版jxTMS使用指南:4.4版升级内容 docker版本的使用,请查看:docker版jxTMS使用指南 4.0版jxTMS的说明,请查…...
【js】日期、时间正则匹配
1、日期的正则表达式 格式:2023-08-11 var reg /^[1-9]\d{3}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])$/; var regExp new RegExp(reg); if(!regExp.test(value)){alert("日期格式不正确");return; }2、时间的正则表达式 格式:23:00:00…...
专利研读-SIMD系列-向量化引擎
专利研读-SIMD系列-向量化引擎 1、专利内容 阿里巴巴的专利:向量化处理数据的方法及装置,主要思想为:对于行存表或行、列存混合存储的查询场景,需要手工将行存表转换成列存表再在列存表基础上进行向量化处理,这种方式代…...
C#--设计模式之单例模式
单例模式大概是所有设计模式中最简单的一种,如果在面试时被问及熟悉哪些设计模式,你可能第一个答的就是单例模式。 单例模式的实现分为两种: 饿汉式:在静态构造函数执行时就立即实例化。懒汉式:在程序执行过程中第一…...
RWEQ风蚀方程模型与ArcGIS数据处理Python代码库添加结合理论研究和科研实践
RWEQ模型是应用比较普遍的能适应大区域定量估算风蚀量的模型。该模型是基于大量野外实验的一种经验模型,在实际测定风力导致的土壤侵蚀量以及当地的气象、地表植被、土壤湿度、地表的结皮和地表的可蚀性等因子的基础上得出的一个经验方程。 1、掌握土壤风蚀模型的原…...
基于STM32微控制器的物联网(IoT)节点设计与实现
基于STM32微控制器的物联网(IoT)节点的设计和实现。我们讨论物联网节点的基本概念和功能,并详细介绍了STM32微控制器的特点和优势。然后,我们将探讨如何使用STM32开发环境和相关的硬件模块来设计和实现一个完整的物联网节点。最后,我们将提供一个示例代码,展示如何在STM3…...
篇二十一:中介者模式:解耦对象之间的交互
篇二十一:"中介者模式:解耦对象之间的交互" 开始本篇文章之前先推荐一个好用的学习工具,AIRIght,借助于AI助手工具,学习事半功倍。欢迎访问:http://airight.fun/。 另外有2本不错的关于设计模式…...
tomcat的多实例,动静分离(web服务基础结束)
多实例 多实例就是在一台服务器上有多个tomcat的服务(核心是改端口) 实验:多实例 安装步骤 1.安装好 jdk 2.安装 tomcat cd /opt tar zxvf apache-tomcat-9.0.16.tar.gz mkdir /usr/local/tomcat mv apache-tomcat-9.0.16 /usr/local/tomca…...
LeetCode150道面试经典题--判断子序列(简单)
1.题目 给定字符串 s 和 t ,判断 s 是否为 t 的子序列。 字符串的一个子序列是原始字符串删除一些(也可以不删除)字符而不改变剩余字符相对位置形成的新字符串。(例如,"ace"是"abcde"的一个子序…...
kubeadml 安装 k8s
目录 一:kubeadml 安装 k8s 1、网络环境 2、 环境准备 3、 所有节点安装docker 4、所有节点安装kubeadm,kubelet和kubectl 5、部署K8S集群 6、测试 二: 部署 Dashboard 一:kubeadml 安装 k8s 1、网络环境 master&am…...
Phi-3.5-Mini-Instruct效果验证:对LLM幻觉内容主动标注‘不确定’并提供依据
Phi-3.5-Mini-Instruct效果验证:对LLM幻觉内容主动标注不确定并提供依据 1. 项目背景与核心价值 微软Phi-3.5-Mini-Instruct作为轻量级大模型的代表,在保持小体积的同时展现了出色的逻辑推理和问答能力。然而,与所有大语言模型一样…...
Keil uVision隐藏技能Get:利用User Command,让STM32工程编译后自动打包bin、hex甚至版本信息
Keil uVision隐藏技能:利用User Command实现STM32工程编译全自动化 在嵌入式开发领域,效率往往决定着项目成败。想象一下这样的场景:每次修改代码后,你不仅要等待漫长的编译过程,还需要手动执行一系列重复操作——生成…...
ST-Link驱动安装与Keil MDK配置保姆级教程(含固件升级与常见错误排查)
ST-Link驱动安装与Keil MDK配置保姆级教程(含固件升级与常见错误排查) 当你第一次拿到ST-Link调试器和STM32开发板时,可能会被各种驱动安装、软件配置搞得晕头转向。作为过来人,我完全理解这种困惑——明明按照教程一步步操作&…...
ConfettiSwiftUI快速入门:10分钟学会配置基础庆祝动画
ConfettiSwiftUI快速入门:10分钟学会配置基础庆祝动画 【免费下载链接】ConfettiSwiftUI SwiftUI Package for Configurable Confetti Animation 🎉 项目地址: https://gitcode.com/gh_mirrors/co/ConfettiSwiftUI ConfettiSwiftUI是一个功能强大…...
从《辐射》游戏到精准放疗:聊聊DRR技术如何悄悄改变我们的医疗体验
从《辐射》游戏到精准放疗:聊聊DRR技术如何悄悄改变我们的医疗体验 还记得《辐射》系列游戏中那个标志性的Pip-Boy设备吗?主角只需抬起手腕,就能瞬间扫描周围环境并生成全息影像。这种科幻场景如今已在医疗领域以更精密的形式实现——DRR&…...
VSCode+Python+遥感影像处理实战配置(农业AI工程师私藏版)
更多请点击: https://kaifayun.com 第一章:VSCodePython遥感影像处理实战配置(农业AI工程师私藏版) 在农业AI工程实践中,高效处理Sentinel-2、Landsat或国产高分系列遥感影像,离不开轻量、可扩展且支持科学…...
应对Turnitin严查:英文论文降AIGC率不踩坑的正确方法(附实操达标教程)
前几天我把初稿发给导师,内容没什么大问题,但是英文部分的AI率实在太高了,我自己用系统跑了一遍测试,turnitin检测ai率高达95%,我当时看着结果彻底懵了。 英文降ai确实难,很多人不知道怎么给英文降ai&…...
科技史上的今天:4月23日
今天是4月23日,在科技发展的长河中,这一天见证了多个里程碑式的时刻,从物理学的奠基到航空工业的突破,再到互联网时代的商业博弈。以下是发生在今天的四件科技大事。 量子力学之父普朗克诞生 1858年的今天,德国物理学…...
DS4Windows:让PS4/PS5手柄在Windows上获得原生游戏体验的终极方案
DS4Windows:让PS4/PS5手柄在Windows上获得原生游戏体验的终极方案 【免费下载链接】DS4Windows Like those other ds4tools, but sexier 项目地址: https://gitcode.com/gh_mirrors/ds/DS4Windows 你是否想在Windows电脑上使用PlayStation手柄,却…...
从‘淘宝店铺数据’到‘用户画像’:我是如何用PCA压缩高维特征并提升模型性能的
从‘淘宝店铺数据’到‘用户画像’:我是如何用PCA压缩高维特征并提升模型性能的 当面对淘宝店铺每天产生的海量用户行为数据时,数据分析师常常陷入两难:保留所有特征会导致"维度灾难",而随意删除特征又可能丢失关键信息…...
