接口自动化测试实操【设置断言思路】

news2024/11/17 23:57:12

1 断言设置思路

这里总结了我在项目中常用的5种断言方式,基本可能满足90%以上的断言场景,具体参见如下脑图:

在这里插入图片描述

下面分别解释一下图中的五种思路:

1) 响应码

对于http类接口,有时开发人员只是通过设置接口响应码来反应接口是否成功,这时我们的断言就需要检查接口响应码是否符合预期来判断用例是否执行成功。

2) 验证关键字段值

一般接口中会设有专门的字段来反馈接口成功与否的信息,比如:msg字段,经常好多接口通过该字段反应后台的处理情况,如果成功会返回成功信息,失败会返回失败原因。这样我们测试时可以直接校验该字段值来判断用例是否执行成功。

3) 正则匹配

当一个接口返回内容比较多时,但有一定规则可寻,我们可以借助正则表达式来校验检查。

4) 数据库匹配核对

要对一个查询类接口的返回数据进行验证,我们可以采用编写SQL,到数据查询结果,然后将数据库结果与接口返回结果进行核对检查,这样就能比较准确的验证接口返回数据的正确性。

5) 相关接口辅助验证

举个例子,比如测试一个删除接口,删除了一条记录后,如何验证接口真的把记录删除成功了,可以再调用查询接口,检查被删除的记录是否真的查询不到了,那就说明删除真的成功了。

2 断言设置实战演示
基于上面的断言思路,接下来,我通过实际例子给大家做一下展示,这里通过两种平台工具来展示,一种是开源好用的Jmeter;另一种是之前给大家推荐的eolink平台,eolink平台因为支持自定义脚本,且平台提供了很多内置函数,也可以像Jmeter一样灵活实现上述5种断言思路。

下图展示一下eolink平台的自定义脚本功能:

在这里插入图片描述

在这里插入图片描述

2.1 响应码断言展示

如果一个接口需要通过接口请求的响应码来断言,判断是否达到预期结果,Jmeter工具的实现如下:

 在这里插入图片描述

在这里插入图片描述

说明:

该用例会返回400的错误码,断言设置校验响应码是否为400,如果等于400表示用例执行成功,否则失败。

再展示一下用eolink的实现效果

在这里插入图片描述

2.2 验证关键字段值

如果一个接口需要通过响应结果中出现某个关键词来判断是否达到预期结果,可以采用验证关键字段值的断言方式,用Jmeter工具实现如下:

在这里插入图片描述

说明:

该用例通过检查接口返回字段msg的值是否为“您没有登录,请重新登录”来判断用例是否执行成功。

再展示一下用eolink的实现效果:

在这里插入图片描述

2.3 正则匹配

如果一个接口返回的响应结果是不断变化的,但结果符合某个预期的规则,这时可以采用正则匹配的方式来断言,用Jmeter工具实现如下:

在这里插入图片描述

说明:

通过正则匹配,除了验证某个符合预期规则的字段值,可以用于匹配检查接口返回样式,匹配成功了,说明用例执行通过。

再展示一下用eolink的实现效果:

在这里插入图片描述

2.4 数据库匹配核对

针对一个查询类接口,如果想详细验证返回结果的各个字段,可以采用数据库匹配核对方式来断言,用Jmeter工具实现如下:

在这里插入图片描述

在这里插入图片描述

说明:

对于一个查询类用例,通过查询数据库,然后将接口返回结果与数据库返回结果进行对比,对比成功说明用例执行通过。

再展示一下用eolink的实现效果:

在这里插入图片描述

执行结果:

在这里插入图片描述

2.5 相关接口辅助验证

很多接口的验证需要依赖其他相关接口来判断,实现起来会稍微复杂些,但断言效果非常好,先用Jmeter工具给大家展示一下:

在这里插入图片描述

说明:

对于部署接口是否成功的验证,我这边通过“查看部署日志”接口来辅助验证,当部署日志接口中获取到部署成功日志打印后,就说明用例执行通过。

再展示一下用eolink的实现效果:

1)有两种方式,一种步骤中添加相关接口,提取相应内容,后续做判断。

在这里插入图片描述

在这里插入图片描述

2)再一种就通过JS脚本来维护多个接口,并处理接口的响应结果,添加断言来实现。

在这里插入图片描述

eolink平台有着非常丰富易用的功能,帮助项目团队更好的对API接口进行管理和测试,最后,再补充介绍一下该平台对于API接口测试方面的某系高级功能:

1)与API文档关联与自动同步

在测试用例中,绑定API文档之后,当API发生变化时,您可以一键将文档内容同步到测试步骤中,减轻维护用例的成本。

在这里插入图片描述

2)0代码,拖拉拽完成测试流程编排

平台支持拖拉方式进行复杂多接口链路的场景编排,减轻脚本维护工作量。

在这里插入图片描述

3)对数据库进行操作

平台也支持在自动化用例中添加对数据库的操作,常用于以下场景:

  1. 测试前对数据库插入测试数据。
  2. 清除脏数据。
  3. 查询 API 操作是否对数据库生效。

 在这里插入图片描述

在这里插入图片描述

4)定时自动测试

该平台也支持自动化用例定时执行,减少人为的干预,进一步降低执行成本。

 在这里插入图片描述

在这里插入图片描述

综合来看,eolink平台功能十分强大,除了能像Jmeter一样灵活实现各类接口场景的自动化测试,还有丰富的API管理、API监控、API市场功能,帮助整个研发团队高效实现API全流程的管控,可以说是非常强大易用的一款API管理测试平台。

正在做测试的朋友可以进来交流,群里给大家整理了大量学习资料和面试题项目简历等等....

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

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

相关文章

期末复习【计算机网络】

期末复习【计算机网络】 前言推荐期末复习如何快速阅读电子书重点第1章 概述1.6 计算机网络的性能1.6.2 计算机网络的性能指标√ 1.7 计算机网络体系结构1.7.3 具有五层协议的体系结构√ 第2章 物理层2.3 物理层下面的传输媒体 *2.4 信道复用技术2.4.1 频分复用、时分复用和统计…

天津大学天津市认知计算与应用重点实验室视听觉认知计算团队12篇论文被语音处理顶会Interspeech 2023接收

天津大学天津市认知计算与应用重点实验室视听觉认知计算团队12篇论文被语音技术顶会Interspeech 2023接收,涵盖意图识别、口语理解、声学特征、语音识别、语音分离、情感识别等研究方向,论文简介如下。 01. Rethinking the visual cues in audio-visual…

Harbor 间通过API实现镜像复制

背景: 通过harbor搭建私有镜像仓库时,往往会设计出 研发镜像仓库--》测试镜像仓库--》产品镜像仓库,甚至更多。那个多镜像间的复制将成了一个必须解决的问题。当然可以通过harbor自带的界面操作即可实现需求,也可以通过harbor提供…

详解20个常见的模拟电路

桥式整流电路 二极管的单向导电性:二极管的PN结加正向电压,处于导通状态;加反向电压,处于截止状态。其伏安特性曲线,如下图。 理想开关模型和恒压降模型:理想模型指的是在二极管正向偏置时,其管…

乳腺癌预测的黑科技!一起探索 R 语言和随机森林算法的奇妙之处!

一、引言 乳腺癌是全球最常见的女性恶性肿瘤之一,也是导致女性死亡的主要原因之一。根据世界卫生组织的数据,每年有约200万例乳腺癌新病例的发生,导致60多万人死亡。乳腺癌的早期发现和精准治疗对于患者的生存率和预后至关重要。 然而&…

uniapp封装门票等票务样式

先看效果图 ticketpage组件引用后,根据父级背景颜色改变镂空的颜色,空组件只有中间镂空的样式,上面是插槽heaer,下面内容是插槽content,可以自定义自己的内容和样式。我实现的最终效果是用的uview组件,如果复现需要项目引入。可…

pytorch量化库使用(2)

FX Graph Mode量化模式 训练后量化有多种量化类型(仅权重、动态和静态),配置通过qconfig_mapping ( prepare_fx函数的参数)完成。 FXPTQ API 示例: import torch from torch.ao.quantization import (ge…

ACL2023 | 赔了?引入GPT-3大模型到智能客服,竟要赔钱?

作者 | 小戏、Python 关于大模型的商业落地,一个非常容易想到的场景就是智能客服,作为不止是大模型也是 NLP 领域的一个最主要的应用场景,由于人工客服的高昂成本,AI 客服伴随着模型技术的发展也逐步走进我们的生活,在…

vue iview table Tooltip内容过多闪屏解决

vue的项目,框架是iview 客户反应,指令描述的内容有几百个字,鼠标悬浮,浏览器开始闪烁 解决思路是加宽度限制,滚动, 后面发现像是transfer属性的bug,触碰浏览器底部,距离不够造成 …

重新理解 RocketMQ Commit Log 存储协议

最近突然感觉:很多软件、硬件在设计上是有 root reason 的,不是 by desgin 如此,而是解决了那时、那个场景的那个需求。一旦了解后,就会感觉在和设计者对话,了解他们的思路,学习他们的方法,思维…

C#可视化 国产热剧信息查询(具体做法及全部代码)

目录 题目: 做法: 代码部分: DBHelper类 From1主窗体代码 题目: 1. 首次打开页面,展示所有汽车信息列表,如图 1 所示。 2.双击第二行右边内容全部发生改变 数据库设计及内容 做法: 首先设置d…

React hooks文档笔记(五)useEffect——解决异步操作竞争问题

1.开发环境下组件加载两次? 非bug,重新安装组件仅在开发过程中发生,帮助找到需要清理的效果。在生产环境中只会加载一次。 React 将在 Effect 下次运行之前以及卸载期间调用您的清理函数。return () > {}; 2. 🌰订阅事件情况…

Python连接MySQL数据库(简单便捷)

🐒,本文中,使用到的工具有:Pycharm,Anaconda,MySQL 5.5,spyder(Anaconda) 什么是 PyMySQL? PyMySQL 是在 Python3.x 版本中用于连接 MySQL 服务器的一个库,Python2 中则…

Java 语言基础练习题

Java 语言基础练习题 Key Point ●包的基本语法 ●Java 语言中的标识符,命名规范 ●八种基本类型 ●基本操作符 ●if 语句和switch 语句 练习 1.(标识符命名)下面几个变量中,那些是对的?那些是错的?错的请…

C++学习 程序控制结构

程序控制结构 以某种顺序执行的一系列动作,用于解决某个问题。包括 顺序结构、选择结构、循环结构。 顺序结构 按照顺序正常执行。前几篇文章的代码都是顺序结构的体现。 选择结构 执行满足条件的语句。 if 结构:if (表达式){} 表达式为真则执行&…

Linux历史及环境搭建(VMware搭建CentOS7环境)

Linux历史及环境搭建 1.Linux历史1.1 UNIX发展的历史1.2 Linux发展历史1.2.1 开源1.2.2 官网1.2.3 发行版本 2.VMware配置CentOS7环境2.1 CentOS下载2.2 配置环境2.3 切换国内阿里源2.4 无图形化界面开机 结语 1.Linux历史 在这里简要介绍Linux的发展史。要说 Linux&#xff0…

机器学习李宏毅学习笔记36

文章目录 前言Meta learning应用总结 前言 Meta learning(二)应用方向 Meta learning应用 回顾gradient descen Θ0(initial的参数)是可以训练的,一个好的初始化参数和普通的是有很大差距的。可以通过一些训练的任务…

Python通过私信消息提取博主的赠书活动地址

文章目录 前言背景设计开发1.引入模块2.获取私信内容3.根据文本提取url的方法4.获取包含‘书’的url5.程序入口 效果总结最后 前言 博主空空star主页空空star的主页 大家好,我是空空star,本篇给大家分享一下《通过私信消息提取博主的赠书活动地址》。 背…

通用策略04丨ORB魔改框架+自适应动量过滤模板

量化策略开发,高质量社群,交易思路分享等相关内容 大家好,今天我们分享2023年度第4期通用策略——ORB魔改框架自适应动量过滤模板。 本期策略是2023年通用系列第4篇。本期主要内容有对ORB原版的逻辑魔改,其次我们将跨日周期均线过…

现在有一个未分库分表的系统,未来要分库分表,如何设计才可以让系统从未分库分表动态切换到分库分表上?

停机迁移方案 最 low 的方案,就是很简单,大家伙儿凌晨 12 点开始运维,网站或者 app 挂 个公告,说 0 点到早上 6 点进行运维,无法访问。 接着到 0 点停机,系统停掉,没有流量写入了,…