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

发布于 2023年05月24日

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

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

场景一:循环执行变量

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

1. 设置变量

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

图1-ubjt.png

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

图2-quad.png

2. 设置循环、引用变量

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

图3-tmcs.png

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

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

图4-amyp.png

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

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

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

图5-muse.png图6-ckqy.png

3. 执行测试流程

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

图7-rmom.png

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

图8-vlux.png

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

图9-vkbq.png

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

图10-pplg.png

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

图11-pvio.png

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

图12动图修改.gif

场景二:流程控制

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

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

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

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

图13-rlkc.png

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

图14-kmwn.png

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

图15-zbwn.png

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

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

图16-nzjj.png

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

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

图17-hnft.png

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

图18-txyw.png