前置接口数据引用指南:自动化测试流程优化技巧

news2024/10/6 1:07:48

当进行 自动化测试 编排时,测试步骤间的数据传递是至关重要的。

在传统的方式中,一般通过复杂的脚本配置,或者手动复制这些数据,然后再慢慢地粘贴到每个需要它们的地方,以此来实现接口之间的参数传递。这种方式往往效率低下、容易出错并且难以维护,当接口或业务逻辑发生变化时,需要进行大量修改,增加了维护成本。

为了应对这种复杂的数据依赖关系,Apifox 中引入了「动态值」传递机制

这种机制就像是一个灵活的“桥梁”,将指定的“上游”测试步骤的运行结果捕获,并插入到“下游”测试步骤的请求参数中,确保测试用例能够适应不同场景下的数据变化。

这种响应关联机制消除了中间的手动传递数据环节,使得测试工作更连贯、高效,并降低了出错的可能性。

讲了这么多,那么如何在 Apifox 中设置动态值呢?或者换句话说,如何在自动化测试里通过「动态值」读取前置步骤的运行结果呢?

设置动态值实际上非常简单,你只需要在自动化测试的接口详情中,在你定义参数值时点击“魔棒”图标,选择「读取前置步骤的运行结果」选项。

图片

然后选择一个你想要从中提取数据的前置步骤:

图片

接着将你需要的数据提取出来,你可以提取前置步骤的请求参数(请求头、请求体等)和响应数据(响应头、响应正文等)  

图片

如果你提取的是前置步骤中返回的响应正文,你也可以通过 JSONPath 表达式来继续定位(比如获取某个具体 ID 值)

图片

最后如果需要对数据进行特殊处理,你还可以添加处理函数,对你的数据进行加密、解密和类型转换等。

图片

怎么样,是不是非常 nice,以前 30 分钟的活儿现在 3 分钟就给它干完了。这不仅省掉了时间和降低了出错的风险,而且能让你专注于更重要的事情——比如喝杯咖啡,或者想想午餐吃啥子😎 。

好的,基本的功能介绍完毕,下面通过一个案例来实际演示一下更具体的使用。

实战演示

想象一下,你正在测试一个宠物商店的在线 API,其中一个自动化测试任务是“确认可以成功地增加新宠物并查询新增后的宠物信息”,这个任务可以进行两个步骤的测试:

  1. “增加新宠物”步骤:在这里,你发送一个请求,告诉系统有一只新宠物需要注册。你得到了响应,包括了新宠物的 ID。

  2. “查询宠物信息”步骤:在这一步,你需要使用刚才注册宠物时得到的宠物 ID 来查询它。

不用动态值,通常路径是这样的:新增完宠物,得到宠物 ID后,你需要复制宠物 ID,然后人工粘贴到查询请求中。

但如果用了动态值,流程就这样:新增完宠物 -> 得到宠物 ID  -> 下游测试步骤自动读取该宠物 ID  -> 发送请求。完全无需你的干预。

我们在 Apifox 中来操作一下这个自动化测试任务。

步骤 1 查看待提取参数

在“增加新宠物”这一步,假设新增宠物后返回的数据结构是这样的(当然我们也可以在接口文档中查看事先定义的接口响应的数据结构):

{
  "code": 0,
  "data": {
    "id": 1,
    "name": "中华田园犬",
    "photoUrls": [
      "http://dummyimage.com/336x280"
    ],
    "status": "sold"
    // 其它信息 ......
  }
}

我们的目的是在“下游”测试步骤中,将“上游”测试步骤的特定参数提取出来使用。所以如果我们要提取出宠物 id ,就要先定位它在响应结果中的位置,根据上面的数据结构,可以看出 id 值位于 data 对象中。

待提取参数的位置确认好后,我们就可以在“下游”测试步骤中引用它。

步骤 2 动态值引用前置结果

在“查询宠物信息”这一步,进入测试步骤详情页,点击类似“魔棒”的图标,然后选择「读取前置步骤的运行结果」选项

图片

将前置步骤选中后,选择从响应正文(Body)中提取信息,指定“提取部分”数据,并通过 JSONPath 表达式进一步定位。在本例中,根据“新增宠物”后返回的数据结构,若想要提取到宠物 id,需要填写的表达式为 data.id,填写完毕后,点击“插入”即可。

JSONPath 表达式通过「 . 」来匹配下级元素,更多用法你可以前往 Apifox 帮助文档了解。**

图片

“插入”完毕,你可以查看参数值的来源和提取位置

图片

步骤 3 验证参数传递

现在,让我们验证一下,是否将前置步骤的结果引用了。运行该自动化测试场景,然后在「测试报告」中查看详情

图片

其中,“新建宠物”步骤中返回了如下的 JSON 响应,其中包含它的 id 值。

图片

我们来看一下“查询宠物信息”步骤中,是不是拿这个 id 去查的。如下图所示,它的请求参数和新建宠物后返回的 id 一致,参数传递成功,说明已成功读取到前置步骤的运行结果。

图片

如果出现错误,那么大概率是因为你的 JSONPath 表达式写错了,你可以在该测试报告中点击「调试此步骤」按钮

图片

然后跳转到该测试步骤的详情页,鼠标移动到「动态值」那里,你可以快速地定位出问题所在,这样出现问题时就不用在几十个测试步骤里找来找去了。

图片

看吧,是不是很神奇?这正是自动化测试中引入「动态值」这样的功能能够为我们节省时间和精力的原因。如果你还在手工处理这些繁琐的测试步骤,那么是时候升级你的测试流程,开始使用动态值了。这样一来,你的测试不仅更快,更准确,还会给你多留出时间去做更重要的事情。

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

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

相关文章

openwrt 搭建web

折腾 软路由 有几年了,最近试了下 移动的 IPV6, 既然可以拿到 公网的 IPV6, 所以想折腾下, 经过不懈努力 实现了:通过 ipv4/ipv6 地址访问我的 web站点 (白飘不花钱的方式) 1 动态DNS 折腾 DDNS 无非是想 白飘 公网IP,但是 仅仅…

力扣题:数字与字符串间转换-12.25

力扣题-12.25 [力扣刷题攻略] Re:从零开始的力扣刷题生活 力扣题1:481. 神奇字符串 解题思想:首先将字符串构建出来,然后进行遍历即可 class Solution(object):def magicalString(self, n):""":type n: int:rty…

微信小程序校园跑腿系统怎么做,如何做,要做多久

​ 在这个互联网快速发展、信息爆炸的时代,人人都离不开手机,每个人都忙于各种各样的事情,大学生也一样,有忙于学习,忙于考研,忙着赚学分,忙于参加社团,当然也有忙于打游戏的&#x…

arcgis javascript api4.x加载天地图cgs2000坐标系

需求&#xff1a;arcgis javascript api4.x加载天地图cgs2000坐标系 效果&#xff1a; 示例代码&#xff1a; <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"wid…

别小看它!现货黄金趋势通道的作用

在现货黄金市场中&#xff0c;我们对趋势通道的熟悉程度不如趋势线。实际上&#xff0c;趋势通道是从趋势线演化而来的&#xff0c;没有趋势线就没有趋势通道。然而很多人不重视趋势通道&#xff0c;认为它只是趋势线的附庸&#xff0c;下面我们就来讨论一下趋势通道的作用。 为…

现控散落知识点梳理【自用/最新】

这里写目录标题 悬而未决之谜✅结合能控分解思考&#xff0c;非奇异线性变换会不会导致某变量的可控可观性发生变化&#xff1f;✅如图所示与时域结合时&#xff0c;传递函数是开环or闭环&#xff1f;✅对于一般状态&#xff0c;给出ABC&#xff0c;怎么判断每个变量的能控能观…

Python入门必看,python语言特点及差别

文章目录 前言一、高级语言分类二、认识Python三、Python 解释器总结Python技术资源分享1、Python所有方向的学习路线2、学习软件3、精品书籍4、入门学习视频5、实战案例6、清华编程大佬出品《漫画看学Python》7、Python副业兼职与全职路线 前言 Python (发音:[ paiθ(ə) n; …

Echarts自定义样式实现3D柱状图-长方体-圆柱体,两种样式

Echarts自定义样式实现3D柱状图-长方体-圆柱体&#xff0c;两种样式 效果图代码series配置项目 效果图 长方体 柱状体 代码 <!--此示例下载自 https://echarts.apache.org/examples/zh/editor.html?cbar3d-dataset&gl1 --> <!DOCTYPE html> <html lang…

手撕分布式缓存---多节点的调取

经过上一个章节的学习&#xff0c;我们已经知晓了如何搭建了HTTP Server&#xff0c;通过HTTP协议与我们定义的路由&#xff0c;我们可以远程访问这个节点&#xff1b;基于这一点&#xff0c;我们可以部署多台实现了HTTP的缓存服务从而实现分布式的特性。这一章节我们要基于此背…

win环境下启动kafka Port already in use: 6688; nested exception is

背景 zk启动成功后&#xff0c;接下来启动kafka&#xff0c;再启动kafka后一直说端口被占用。 端口占用解决办法: netstat -aon|findstr 9092 taskkill -f -pid 7780 杀掉后&#xff0c;再次启动kafka时&#xff0c;问题并未解决 后来修改了批处理文件kafka-run-class.bat中…

验证码:防范官网恶意爬虫攻击,保障用户隐私安全

网站需要采取措施防止非法注册和登录&#xff0c;验证码是有效的防护措施之一。攻击者通常会使用自动化工具批量注册网站账号&#xff0c;以进行垃圾邮件发送、刷量等恶意活动。验证码可以有效阻止这些自动化工具&#xff0c;有效防止恶意程序或人员批量注册和登录网站。恶意程…

RK3568 android11 调试mipi摄像头 gc2093

一&#xff0c;摄像头简介 GC2093是一个高质量的1080P CMOS图像传感器&#xff0c;用于安全相机产品、数码相机产品和手机相机应用程序。包含了一个1920H x 1080V像素阵列、片上10位ADC和图像信号处理器。高性能和低功耗功能的全面集成使GC2093最适合设计&#xff0c;减少了实…

【05】GeoScene海图或者电子航道图批量出图

出单张000数据参考上一篇博客&#xff0c;如果想同时出多张海图000数据&#xff0c;也是可以实现的。思路如下&#xff1a; 1 批量创建产品 GeoScene海事模块通过ProductDefinitions表和ProductCoverage要素类定义产品和AOI覆盖区&#xff0c;可支持批量导入产品信息和AOI覆盖…

PFA烧杯可高温加热ICP-MS实验室适用耐强酸碱本底纯净

聚四氟&#xff08;PFA&#xff09;烧杯可用于痕量分析、同位素分析等实验&#xff0c;ICP-MS实验室适用。半导体、多晶硅、光伏电子 锂电池行业均适用。杯体刻度清晰&#xff0c;方便观察&#xff0c;尖嘴方便倾倒溶液。 技术参数 品名 规格 材质 耐受温度 PFA烧杯 10ml…

ASP.NET Core MVC依赖注入理解(极简个人版)

依赖注入 文献来源&#xff1a;《Pro ASP.NET Core MVC》 Adam Freeman 第18章 依赖注入 1 依赖注入原理 所有可能变化的地方都用接口在使用接口的地方用什么实体类通过在ConfigureService中注册解决注册的实体类需要指定在何种生命周期中有效 TransientScopedSingleton 2…

开源学习项目推荐

文章目录 koodo-reader凤凰架构学习项目NPS 内网穿透客户端 koodo-reader 项目地址&#xff1a;https://github.com/koodo-reader/koodo-reader 介绍&#xff1a;一个开源的阅读器&#xff0c;阅读pdf也有目录&#xff0c;作为epub阅读器和pdf阅读器看资料挺好 凤凰架构 项…

NPDP证书含金量高吗?跟PMP相比含金量怎么样?

两个证方向不太一样&#xff0c;含金量都挺高的&#xff0c;具体怎么选呢&#xff1f;接着往下看~ PS&#xff1a;不想看长篇大论的&#xff0c;来找我&#xff0c;直接把你的经历甩出来&#xff0c;我帮你判断~ 一、产品经理跟项目经理的区别 表面上&#xff0c;项目经理和产…

WEB渗透—PHP反序列化(四)

Web渗透—PHP反序列化 课程学习分享&#xff08;课程非本人制作&#xff0c;仅提供学习分享&#xff09; 靶场下载地址&#xff1a;GitHub - mcc0624/php_ser_Class: php反序列化靶场课程&#xff0c;基于课程制作的靶场 课程地址&#xff1a;PHP反序列化漏洞学习_哔哩…

7+单细胞+分型+机器学习,最近大热的生信思路,要拿分趁现在

今天给同学们分享一篇生信文章“Machine learning-based integration develops a neutrophil-derived signature for improving outcomes in hepatocellular carcinoma”&#xff0c;这篇文章发表在Front Immunol期刊上&#xff0c;影响因子为7.3。 结果解读&#xff1a; 单细…

GaN图腾柱无桥 Boost PFC(单相)九-EMI 滤波器容性电流影响分析

前言 为了防止 PFC 变换器中高频开关谐波对电网产生影响&#xff0c;同时抑制电网中的高频干扰对变换器运行的影响&#xff0c;一般通过在 PFC 变换器与交流电源之间加入EMI 滤波器消除共模干扰和差模干扰&#xff0c;使变换器满足相应的 EMI 标准。在基于GaN 功率器件的图腾柱…