MeterSphere MeterSphere UI 测试中循环变量及流程控制的使用

MeterSphere · 2023年05月24日 · 4349 次阅读

MeterSphere 开源持续测试平台涵盖测试跟踪、接口测试、性能测试和 UI 测试等功能模块。MeterSphere 的 UI 测试模块基于 Selenium 浏览器自动化方案构建,内嵌高度可复用的测试脚本,测试团队无需复杂的代码编写即可开展低代码的自动化测试。

本期操作教程将结合 UI 测试中的实际场景,为大家介绍 MeterSphere 的 UI 测试模块中 “循环变量与流程控制” 的使用方法。其中包括通过变量来表示数据、存储用户输入的信息等,配合程序执行循环、判断等丰富的操作,让执行过程变得更加便捷和高效。以下就是在 MeterSphere 的 UI 测试模块实现上述场景的具体操作。

场景一:循环执行变量

在测试过程中,通常很多步骤需要输入多条测试数据来验证其不同的预期结果。通过变量定义测试数据,再使用循环操作将所有测试数据一次性执行完毕,可以大幅减少测试步骤。

  1. 设置变量

① 进入 UI 测试场景,点击 “场景变量” 入口;

② 以登录流程为例,设置一个登录用户名变量,第一个值输入错误的用户名 “u1”,第二个值输入正确的用户名 “admin”。变量类型支持字符串、数组、JSON、数值多种类型。

  1. 设置循环、引用变量

① 创建登录流程及对象元素;

② 在需要循环的步骤前添加流程控制器,选择 “ForEach 循环” 选项;

③ 将需要循环的步骤用鼠标拖拽到 ForEach 循环器的子级;

④ 在 ForEach 循环中设置输出的变量名称,并引用场景变量;

⑤ 在 “用户名” 步骤中,“输入内容” 处引用 ForEach 循环设置的变量;

⑥ 另外,可以适当地设置 ForEach 循环的间隔时间,即每次执行间的间隔时间。

  1. 执行测试流程

① 点击执行 “后端调试” 选项,可以在 “步骤结果” 选项卡中看到循环次数,通过查看截图也可以看到每次执行的变量是否正确:

用户名步骤 - 循环 1 截图:u1

用户名步骤 - 循环 2 截图:admin

登录步骤 - 循环 1 截图:登录失败

登录步骤 - 循环 2 截图:登录成功

最后,看一下使用本地调试的执行效果:

场景二:流程控制

测试过程中的判断几乎是无所不在的。如果条件满足,就执行某个操作;如果条件不满足,就执行另一个操作;或者什么也不做,等等。MeterSphere 的 UI 测试中也提供了使用 If、Elseif、Else 等多种指令来满足不同场景所需的流程控制能力。

还是以上面的登录场景为例,登录成功则执行 If 流程,登录失败则执行 Else 流程。这里同样需要将 If 和 Else 添加到 ForEach 循环中,以实现不同判断条件下的流程分支。

  1. If:满足条件,则执行里面的操作

① 首先,获取登录成功后的账号元素信息;

② 在 “登录” 步骤中的 “高级设置”→“后置操作”→“数据提取” 中,提取该元素信息以及设置变量(将提取的内容保存到变量中);

③ 设置 If 条件表达式,引用 ${name}变量(表达式为真,则执行里面的步骤)。

  1. Else:不满足 If 条件则执行

Else 指令配合 If 指令使用,将其添加在 If 指令后即可。

  1. 设置好 If 和 Else 流程后,点击调试按钮来执行场景,查看调试结果

① 执行第一遍循环时,使用的用户名为 “u1”,由于 “u1” 是一个错误的用户名,所以第一遍循环登录失败,不满足 If 条件,则第一遍循环会执行 Else 流程;

② 执行第二遍循环时,使用的用户名为 “admin”,这是一个正确的用户名,所以第二遍循环登录成功,满足 If 条件,则第二遍循环会执行 If 流程。

暂无回复。
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册