首页 > 其他分享 >自动化测试循环控制:学习 ForEach 的精确运用

自动化测试循环控制:学习 ForEach 的精确运用

时间:2024-01-09 16:37:35浏览次数:27  
标签:遍历 精确 宠物 循环 ForEach 数组 自动化 ID

在 自动化测试 场景中,当需要对数组内的所有元素分别执行特定操作时,我们通常会采用 ForEach 循环 来实现这一过程。例如一个常见的场景:请求一个获取宠物列表的接口,返回了 n 个宠物的 id ,然后根据这些宠物 id 逐一查询并获取每个宠物的详细数据。

一般的 ForEach 循环用 JavaScript 脚本可以这样表示:

let dataArray = [];

// 使用 forEach 循环遍历数组
dataArray.forEach((element, index) => {  
// 发起新的请求或进行某些断言});

其中,forEach 方法将遍历数组中的每个元素,并将当前元素(element)及其对应索引(index)作为参数传递给回调函数,回调函数将对当前元素进行处理,然后 forEach 将继续遍历剩余的元素,直到数组中的所有元素都已处理完毕。

简单来说就是数组内有多少个元素就循环多少次,循环次数等于数组内的元素个数

在 Apifox 中,通过借助直观的图形化界面,你可以轻松实现跟上述 forEach 方法一样的操作,而不需要编写繁琐的脚本。 

自动化测试循环控制:学习 ForEach 的精确运用_自动化测试

在 Apifox 自动化测试的「ForEach 循环」中,你可以将“上游”测试步骤的运行结果设置为需要遍历的数组。

自动化测试循环控制:学习 ForEach 的精确运用_程序员_02

也可以使用变量(环境、全局、临时变量)中的数组,或者直接写死一个固定数组。

自动化测试循环控制:学习 ForEach 的精确运用_程序员_03

并且,你可以在「ForEach 循环」上设置“中断条件”以及遇到错误时该执行的操作。

自动化测试循环控制:学习 ForEach 的精确运用_自动化测试_04

在“下游”测试步骤中,你就可以引用「ForEach 循环」中自动遍历出来的元素(element)及其对应索引(index)来做其它操作,比如作为接口的请求参数来发起新的请求。

与「ForEach 循环」类似,「For 循环」功能在执行相应操作时也能获取到遍历出来的索引(index)。

使用「ForEach 循环」时需要注意的是,如果设置在循环中的内容不是一个数组,则整个循环不会执行,直接跳过。

下面通过一个例子来演示一下基本的用法。

实战演示

有两个接口,第一个用于检索宠物信息的列表,第二个用于通过 ID 获取单个宠物的详细信息。目标是先从列表中获取所有宠物的信息,然后利用各自的 ID,逐一查询并获取每个宠物的详细数据。

步骤 1

添加 ForEach 循环

首先,通过调用“获取宠物信息列表”的接口来获得列表数据。然后,使用「ForEach 循环」来处理这些数据,在该循环中,我们可以直接读取前置步骤的运行结果,并使用 JsonPath 表达式从前一步骤获取的结果中提取所有宠物 ID,这可以将它们组成一个数组。「ForEach 循环」将遍历这个数组中的每个 ID,并对每个 ID 执行后续操作。

自动化测试循环控制:学习 ForEach 的精确运用_程序员_05

步骤 2

使用 ForEach 循环里的元素值

继续上一步骤之后,添加用于“获取单个宠物详情”的接口,并进入到该测试步骤详情页。在这个测试步骤中,「ForEach 循环」中的当前元素值(element)将作为接口请求的参数,这个 element 代表正在被循环遍历的数组中的宠物 ID。

自动化测试循环控制:学习 ForEach 的精确运用_Apifox_06

步骤 3

验证结果

在执行测试并生成“测试报告”后,你可以查看报告详情。

如果列表返回了三个宠物信息(对应于数组中的三个 ID),在测试报告中将会看到“获取单个宠物详情”的接口被调用了三次。对于每一次调用,“获取单个宠物详情”的接口都会使用数组中相应的 ID 作为请求参数,从而针对每个宠物 ID 返回详细信息。

自动化测试循环控制:学习 ForEach 的精确运用_测试工具_07

通过对比,确认列表中提供的宠物 ID 和实际的请求参数是否匹配。

自动化测试循环控制:学习 ForEach 的精确运用_自动化测试_08

以上就是 自动化测试 中「ForEach 循环」的基本使用,你可以用该功能来循环遍历数组,并对其中的每个元素进行下一步的操作。

标签:遍历,精确,宠物,循环,ForEach,数组,自动化,ID
From: https://blog.51cto.com/u_15964010/9162695

相关文章

  • UI自动化神器:RunnerGo
    UI自动化测试已经成为现代软件开发过程中不可或缺的一部分。它能够提供诸多优势,包括提高测试效率、减少人力成本、提升软件质量等。同时,可视化工具为UI自动化测试带来了更多便利和灵活性。然而,可视化工具也存在一些潜在的劣势。本文将探讨UI自动化测试的必要性以及可视化工具的优势......
  • 使用 Jamf Pro 和 Okta 工作流程实现自动化苹果设备管理
    Jamf的销售工程师VincentBonnin与Okta的产品经理EmilyWendell一起介绍了JNUC2021的操作方法会议。它们涵盖了Okta工作流程(OktaWorkflow),并在其中集成了JamfPro,构建了一些工作流程,并提供了几个用例。Okta工作流程和JamfPro这个使用OktaWorkflows和JamfPro进行苹果设备管理的J......
  • 【C++】STL 算法 ② ( foreach 循环中传入 函数对象 / Lambda 表达式处理元素 | forea
    文章目录一、foreach循环中传入函数对象/Lambda表达式处理元素1、foreach循环算法2、foreach循环中传入函数对象处理元素3、foreach循环中传入Lambda表达式处理元素4、Lambda表达式-匿名函数对象/仿函数一、foreach循环中传入函数对象/Lambda表达式处理......
  • 工作流程自动化:实现企业数字化转型的挑战与机遇
    1.背景介绍在当今的数字时代,企业数字化转型已经成为企业竞争力的重要组成部分。工作流程自动化是实现企业数字化转型的重要手段之一。在这篇文章中,我们将深入探讨工作流程自动化的核心概念、算法原理、具体实现以及未来发展趋势。1.1企业数字化转型的背景与意义企业数字化转型是指......
  • 物联网的行业趋势:医疗保健和自动化
    1.背景介绍物联网(InternetofThings,简称IoT)是指通过互联网将物体和日常生活中的各种设备与互联网联网相互连接,使得物体和设备能够互相传递信息,进行自动化控制和管理。随着物联网技术的不断发展和进步,它已经成为了现代社会中不可或缺的一部分。在医疗保健和自动化领域,物联网技术的......
  • 常用Python自动化测试框架有哪些?优缺点对比
    随着技术的进步和自动化技术的出现,市面上出现了一些自动化测试框架。只需要进行一些适用性和效率参数的调整,这些自动化测试框架就能够开箱即用,大大节省了测试时间。而且由于这些框架被广泛使用,他们具有很好的健壮性,并且具有广泛多样的用例集和技术来轻易发现微小的缺陷。以前,测......
  • 如何从零开始实现TDOA技术的 UWB 精确定位系统(3)
    ​ 这是一个系列文章《如何从零开始实现TDOA技术的UWB精确定位系统》第3部分。重要提示(劝退说明):Q:做这个定位系统需要基础么?A:文章不是写给小白看的,需要有电子技术和软件编程的基础Q:你的这些硬件/软件是开源的吗?A:不是开源的。这一系列文章是授人以“渔”,而不是授人以“鱼”。......
  • 使用Python+selenium实现第一个自动化测试脚本
    这篇文章主要介绍了使用Python+selenium实现第一个自动化测试脚本,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧最近在学web自动化,记录一下学习过程。此处我选用python3.6+selenium3.0,均用最新版本,以适应......
  • 30道python自动化测试面试题与答案汇总
    对于机器学习算法工程师而言,Python是不可或缺的语言,它的优美与简洁令人无法自拔,下面这篇文章主要给大家介绍了关于30道python自动化测试面试题与答案汇总的相关资料,需要的朋友可以参考下1、什么项目适合做自动化测试?关键字:不变的、重复的、规范的1)任务测试明确,需求不会频繁......
  • 学习python自动化——re正则
    re(正则)一、正则表达式作用正则表达式匹配指定规则的字符串二、re常用方法findall(pattern,string,flags=0):使用正则表达式,匹配所有符合条件的字符串,返回匹配到的所有子串,返回listpattern:正则表达式string:匹配的字符串flags=0:自定义的一些规则,比如不......