MeterSphere开源持续测试平台涵盖测试跟踪、接口测试、性能测试和UI测试等功能模块。MeterSphere的UI测试模块基于Selenium浏览器自动化方案构建,内嵌高度可复用的测试脚本,测试团队无需复杂的代码编写即可开展低代码的自动化测试。
本期操作教程将结合UI测试中的实际场景,为大家介绍MeterSphere的UI测试模块中“循环变量与流程控制”的使用方法。其中包括通过变量来表示数据、存储用户输入的信息等,配合程序执行循环、判断等丰富的操作,让执行过程变得更加便捷和高效。以下就是在MeterSphere的UI测试模块实现上述场景的具体操作。
场景一:循环执行变量
在测试过程中,通常很多步骤需要输入多条测试数据来验证其不同的预期结果。通过变量定义测试数据,再使用循环操作将所有测试数据一次性执行完毕,可以大幅减少测试步骤。
1. 设置变量
① 进入UI测试场景,点击“场景变量”入口;
② 以登录流程为例,设置一个登录用户名变量,第一个值输入错误的用户名“u1”,第二个值输入正确的用户名“admin”。变量类型支持字符串、数组、JSON、数值多种类型。
2. 设置循环、引用变量
① 创建登录流程及对象元素;
② 在需要循环的步骤前添加流程控制器,选择“ForEach循环”选项;
③ 将需要循环的步骤用鼠标拖拽到ForEach循环器的子级;
④ 在ForEach循环中设置输出的变量名称,并引用场景变量;
⑤ 在“用户名”步骤中,“输入内容”处引用ForEach循环设置的变量;
⑥ 另外,可以适当地设置ForEach循环的间隔时间,即每次执行间的间隔时间。
3. 执行测试流程
① 点击执行“后端调试”选项,可以在“步骤结果”选项卡中看到循环次数,通过查看截图也可以看到每次执行的变量是否正确:
用户名步骤-循环1截图:u1
用户名步骤-循环2截图:admin
登录步骤-循环1截图:登录失败
登录步骤-循环2截图:登录成功
最后,看一下使用本地调试的执行效果:
场景二:流程控制
测试过程中的判断几乎是无所不在的。如果条件满足,就执行某个操作;如果条件不满足,就执行另一个操作;或者什么也不做,等等。MeterSphere的UI测试中也提供了使用If、Elseif、Else等多种指令来满足不同场景所需的流程控制能力。
还是以上面的登录场景为例,登录成功则执行If流程,登录失败则执行Else流程。这里同样需要将If和Else添加到ForEach循环中,以实现不同判断条件下的流程分支。
1. If:满足条件,则执行里面的操作
① 首先,获取登录成功后的账号元素信息;
② 在“登录”步骤中的“高级设置”→“后置操作”→“数据提取”中,提取该元素信息以及设置变量(将提取的内容保存到变量中);
③ 设置If条件表达式,引用${name}变量(表达式为真,则执行里面的步骤)。
2. Else:不满足If条件则执行
Else指令配合If指令使用,将其添加在If指令后即可。
3. 设置好If和Else流程后,点击调试按钮来执行场景,查看调试结果
① 执行第一遍循环时,使用的用户名为“u1”,由于“u1”是一个错误的用户名,所以第一遍循环登录失败,不满足If条件,则第一遍循环会执行Else流程;
② 执行第二遍循环时,使用的用户名为“admin”,这是一个正确的用户名,所以第二遍循环登录成功,满足If条件,则第二遍循环会执行If流程。