接口测试的用例设计

article/2025/6/8 14:49:46

1.简介

  在这篇文章里,我们来学习一下接口测试用例设计,主要是来学习一些用例设计要点。其实说白了,接口用例设计和功能用例设计差不多,照猫画虎即可。不要把它想象的多么高大上,多么的难,其实一样,以前怎么设计,现在就怎么设计,和黑盒测试设计测试用例半斤八两。这里不再赘述,想详细了解的可以看一下Python的接口自动化用例设计。宏哥在这里,换一个角度来说接口测试的用例设计,首先我们看一下接口测试的范围。

2.接口测试范围

2.1功能测试:验证产品逻辑是否正确

  功能测试是我们接口测试时候相当重要的一部分,接口的功能都没实现,后边的异常、性能就更加谈不上了。其实接口测试和在web页面、或者移动端操作那些按钮、输入框是一样的。按钮将绑定的参数通过接口传过去,而输入框是将你输入的参数通过接口传过去。接口测试是在产品还没有开发好按钮和输入框,你手动写参数通过工具或者其他方法传过去,验证是否可以得到期望的。

  下边的这八种接口功能测试的8种方法和web页面的测试用例的设计方法一模一样的,这个都是测试的基础知识,不知道的自己可以单独查询一下各种方法的概念及其的用法。

2.2异常测试

null : 是开发过程中特定指的一个对象为空的端符,就是一个空对象,不指向任何内存地址

" " : 指一个空字符串,代表该对象有值,指向一个空地址

数据类型:例如我们有个年龄的字段要求传的是ini类型的值,我们给它传的是字符串。这就是数据类型异常。8中基本数据类型,我们传一个不符合规定的数据类型。

负载均衡架构:测试某一个后台(Tomcat 4)挂了,挂了之后 Tomcat4的请求会直接返回一个错误(前台1个nginx ,后台多个 Tomcat),测试是否会返回这个错误,能否会使用户访问失败;一段时间后,想让 Tomcat4 重新加入,判断能否重新加入集群中并正确处理所有请求。

冷热备份:冷备份不常见,热备份:前面有4个Tomca,后面有4个Tomca备份,如果Tomca4挂了,判断Tomca4的备份能否顶替之前的,仍然保持4个服务器存活;当Tomca4 正常后,判断能够成为Tomca4的备份。

1.3性能测试(狭义)

负载测试:我发了好多请求,看看能不能正常发出去,再看看服务器端能不能正常处理这些发过来的请求。

稳定性测试:比如我跑服务跑了好长时间,比如24h、一周等,看看能不能将程序压垮等等。

3.自动化接口测试范围

  为什么在这里没有涉及到前边接口测试的环境异常和功能测试。在这里宏哥做了细分,这部分主要是有其他的测试负责的,比如:环境异常测试,一般需要我们协调和运维配合。需要他们把环境部署成和线上一样的架构,以及硬件、内存等等。由于各个公司的资源和重视不一样,但是最差了也得是等比例缩小的一个初始化的模型。这样做的接口测试才有意义。性能测试也可以自动化测试,这个也有专门的测试,当然了,你也可以进行一些简单的测试,如果你是全栈测试,那么这三部分你都精通那最好了。这里宏哥主要介绍的围绕的功能测试和数据异常测试。

4.自动化接口测试用例设计

  这里宏哥通过具体实例说明一下。自动化接口测试原则:你能够把你设计的接口测试用例映射成一张表。因为映射成一张表你才可以更好的方便的操作,并且可以自动加载它。

4.1接口自动化用例设计示例:登录

环境异常测试时需要运维小伙伴配合测试的,此暂时不做描述
以常见的登录界面为例

输入:用户名:邮箱或者手机号码
输入:密码:6-16位的长度,区分大小写,不能用空格

首先,我们先要知道接口测试用例的规则,与功能测试用例不同,不需要描述测试步骤。我们需要描述id(序号)、目标URL、username、password、协议状态码(可写可不写)、程序状态码(开发返回成功的状态码)、返回内容(例如success)、实际结果、执行状态(自定义,例如0:失败。1:成功)。根据如上内容,可以把这个整理成一个表中,如上字段作为表头。按照正常数据和异常数据维护成Excel就可以。

数据异常:null、“”、特殊符号(&、*)

PS:红色框圈住的针对执行SQL时数据截断的情况。

select username,password from user where username = """ 中间的单引号将会截断,抛出异常。

设计用例表头时,将中文转换成英文,方便程序做映射时处理,同时也方便写入代码中。

5.环境异常测试

  前边虽然说需要协调运维的小伙伴配合测试环境异常,但是在这里你可以提前考虑一下,什么事情都要向到前边,未雨绸缪。不要等出事了临时抱佛脚。

5.1简单web架构集群

 

  上图是一个简单的web部署架构。接口测试主要是前台传递参数,后台接口参数并处理返回期望的结果。简单的描述一下上边的架构:用户通过web页面发送请求到nginx,nginx接收到请求不作任何处理,将请求分发到后台的tomcat1、tomcat2、tomcat3服务器上。服务器处理请求后,将结果返回到web页面,用户看到结果。

这里分发是有规律的,不是一同乱分发,那样还不得有的服务器先得没事干,有的服务器累死了,分发原则:根据userid来进行区分。

例如:取余,当余数为0时,分发到1,当余数为1时,分发到2,到余数为2时,分发到3。

环境异常条件:tomcat2服务器挂掉了,专业点就是宕机了。假如此时有9个用户,他们的userid分别是:1,2,3,4,5,6,7,8,9。此时恰好是1用户把tomcat2给玩挂了。

5.2环境异常测试示例:

   结合上图:宏哥来描述一下,这个环境异常的场景,根据这个场景设计的测试用例。用户1将服务器tomcat2玩挂机了,恰好此时用户1又发出请求,所以此时用户1的请求期望结果只能发送到tomcat1或者tomcat3上。服务器挂机以后运维团队收到告警,快速修复tomcat2服务器(例如重启),当下一次用户4发送请求的时候,由于tomcat2正常所以预期结果还是正常环境了分发到tomcat2上。这里我们主要是观察一下tomcat2是否可以正常加入到集群中。这些策略可以提前和运维的小伙伴定好了进行测试。

 5.3如何确定分发到那台服务器

  方法:通过日志查看有没有分发到,例如:用户1分发2上,即使访问成功但是没有日志,那么这就是一个bug,和我们之前定好的均衡策略有冲突。其他的都类似。


http://www.hkcw.cn/article/XryywRjZXv.shtml

相关文章

AI“实体化”革命:具身智能如何重构体育、工业与未来生活

近年来,人工智能(AI)技术的飞速发展正在重塑各行各业,而具身智能(Embodied AI)作为AI领域的重要分支,正逐渐从实验室走向现实应用。具身智能的核心在于让AI系统具备物理实体,能够与环…

车规级BMS芯片国产化!精准电量监测延长电池寿命

通品替代芯片充电管理类应用值得一看:华芯邦以创新技术领航国产化新赛道。 在消费电子、新能源汽车、工业设备等领域,电源管理芯片如同设备的“心脏”,直接决定了产品的续航能力、安全性和用户体验。然而,长期以来,这…

【摘录】LCD/LED/OLED/Micro LED

端午节焦点访谈播出了:成都辰显光电有限公司总经理黄秀颀博士作为科技领军人才代表出镜,分享了其带领团队推进Micro-LED技术创新与产业化。作为显示行业的一份子很惭愧,对这些技术还是一片空白,补补知识吧。 1、LCD(液…

C++和C#界面开发方式的全面对比

文章目录 C界面开发方式1. **MFC(Microsoft Foundation Classes)**2. **Qt**3. **WTL(Windows Template Library)**4. **wxWidgets**5. **DirectUI** C#界面开发方式1. **WPF(Windows Presentation Foundation&#xf…

【氮化镓】钝化层对p-GaN HEMT阈值电压的影响

2021年5月13日,中国台湾阳明交通大学的Shun-Wei Tang等人在《Microelectronics Reliability》期刊发表了题为《Investigation of the passivation-induced VTH shift in p-GaN HEMTs with Au-free gate-first process》的文章。该研究基于二次离子质谱(SIMS)、光致发光(PL)…

Juce实现Table自定义

Juce实现Table自定义 一.总体展示概及概述 在项目中Juce中TableList往往无法满足用户需求,头部和背景及背景颜色设置以及在Cell中添加自定义按钮,所以需要自己实现自定义TabelList,该示例是展示实现自定义TableList,实现自定义标…

VBA 64位API声明语句第010讲

跟我学VBA,我这里专注VBA, 授人以渔。我98年开始,从源码接触VBA已经20余年了,随着年龄的增长,越来越觉得有必要把这项技能传递给需要这项技术的职场人员。希望职场和数据打交道的朋友,都来学习VBA,利用VBA,起码可以提高…

【鸿蒙】HarmonyOS NEXT之如何正常加载地图组件

1、不支持模拟器,需要真机! 2、Map地图需要在AGC上申请权限,需要在AGC上创建对应的项目 地址: AppGallery Connect 2.1 AGC中项目创建 2.1.1 添加项目 2.1.2 起个名字 2.1.3 添加应用: 2.1.4 选择HarmonyOS APP&…

精美的软件下载页面HTML源码:现代UI与动画效果的完美结合

精美的软件下载页面HTML源码:现代UI与动画效果的完美结合 在数字化产品推广中,一个设计精良的下载页面不仅能提升品牌专业度,还能显著提高用户转化率。本文介绍的精美软件下载页面HTML源码,通过现代化UI设计与丰富的动画效果&…

3. 简述node.js特性与底层原理

😺😺😺 一、Node.js 底层原理(简化版) Node.js 是一个 基于 Chrome V8 引擎构建的 JavaScript 运行时,底层核心由几部分组成: 组成部分简要说明 1.V8 引擎 将 JS 编译成机器码执行&#xff0…

【后端高阶面经:架构篇】51、搜索引擎架构与排序算法:面试关键知识点全解析

一、搜索引擎核心基石:倒排索引技术深度解析 (一)倒排索引的本质与构建流程 倒排索引(Inverted Index)是搜索引擎实现快速检索的核心数据结构,与传统数据库的正向索引(文档→关键词&#xff0…

LayoutLM 模型文章总结

模型处理的文本图片样例: LayoutLM,一种简单而有效的文本和布局预训练方法,用于文档图像理解任务。BERT模型中输入的文本信息主要通过文本嵌入和位置嵌入来表示,LayoutLM 增加了两种输入嵌入: (1) 二维位置嵌入&…

低成本单节电池风扇解决方案WD8001

功能说明 1 、充电参数: 5V/500mA ,满电 4.2V ,充电指示灯为 LED4 ,充电亮, 满电熄灭; 2 、工作电压: 2.7---4.2V,BAT 电压低于 2.7V ,芯片禁止输出; 3 、工作说明&a…

6个月Python学习计划 Day 13 - 文件操作基础

第一周 Day 1 - Python 基础入门 & 开发环境搭建 Day 2 - 条件判断、用户输入、格式化输出 Day 3 - 循环语句 range 函数 Day 4 - 列表 & 元组基础 Day 5 - 字典(dict)与集合(set) Day 6 - 综合实战:学生信息…

解决IDEA插件使用Lombok找不到符号问题

https://juejin.cn/post/7013998800842784782 -Djps.track.ap.dependenciesfalse

应用智能化转型—MCP原理分析

当下AI风头正盛,许多行业都已经进入AI赋能的道路,无论是服务业、工业、还是软件行业。本篇文章我将以软件的智能化转型之MCP原理分析为主题讲解其具体实现方案 MCP我们都知道是一个当下非常火的模型上下文协议,它可以搭建出模型与业务之间的…

【R语言编程绘图-mlbench】

mlbench库简介 mlbench是一个用于机器学习的R语言扩展包,主要用于提供经典的基准数据集和工具,常用于算法测试、教学演示或研究场景。该库包含多个知名数据集,涵盖分类、回归、聚类等任务。 包含的主要数据集 BostonHousing 波士顿房价数据…

兼容老设备!EtherNet/IP转DeviceNet网关解决储能产线通讯难题

在新能源行业飞速发展的当下,工业自动化水平的高低直接影响着企业的生产效率与产品质量。JH-EIP-DVN疆鸿智能ETHERNET/IP和DEVICENET作为工业领域常用的通信协议,它们之间的转换应用在新能源生产线上发挥着关键作用。本文重点探讨ETHERNETIP从站转DEVICE…

实验设计与分析(第6版,Montgomery著,傅珏生译) 第10章拟合回归模型10.9节思考题10.12 R语言解题

本文是实验设计与分析&#xff08;第6版&#xff0c;Montgomery著&#xff0c;傅珏生译) 第10章拟合回归模型10.9节思考题10.12 R语言解题。主要涉及线性回归、回归的显著性、残差分析。 10-12 vial <- seq(1, 12, 1) Viscosity <- c(26,24,175,160,163,55,62,100,26,30…

【Ragflow】25.Ragflow-plus开发日志:excel文件解析新思路/公式解析适配

引言 RagflowPlus v0.3.0 版本中&#xff0c;增加了对excel文件的解析支持&#xff0c;但收到反馈&#xff0c;说效果并不佳。 以下测试文件内容来自群友反馈提供&#xff0c;数据已脱敏处理。 经系统解析后&#xff0c;分块效果如下&#xff1a; 可以看到&#xff0c;由于该…