MeterSphere 开源持续测试平台的“接口测试”模块具有灵活的接口场景编排设计,模块覆盖了多种接口协议,可自由组合接口自动化测试场景,为接口测试带来方便快捷的体验。
其中,逻辑组件可以支持等待、循环、条件、事务这四种类型的控制器。测试人员在进行接口测试场景设计时,可以使用循环控制器控制多次执行接口测试操作,以减少重复性步骤。本文将为您讲解在 MeterSphere 平台中使用循环控制器进行次数循环、While 循环以及 ForEach 循环的具体操作方法。
1 前置操作
此场景适用于进行次数循环和While循环。
新增场景变量,类型选择 csv,上传对应的 csv 文件,点击预览 (场景中若想使用 csv 数据,可直接使用 ${id} 就能获取字段 id 的数据,每次只能获取一条)。
新建自定义脚本,选择 python 类型脚本,写入代码来读取 csv 数据的行数,再将其存储为 num 变量,以便后续接口引用。
2. 循环控制器
2.1 次数循环
循环次数写具体数值,此处可引用上一步骤自定义脚本中存储的 csv 行数变量。
可看到响应内容处,循环的次数与 csv 文件里的行数一致。
2.2 While 循环
While 循环条件,可引用上一步骤自定义脚本存储的 csv 行数变量,让其大于 0 进入循环控制器中
在循环控制器中的前/后置脚本对该变量减一后,重新赋值存储。
可看到响应内容处,循环的次数与 csv 文件里的行数一致。
2.3 ForEach 循环
对上述场景不适用,另外再重新新建场景。
2.3.1 设置场景变量为列表
新建场景变量,类型为列表,值为多个值
ForEach 遍历列表 id,打印每个 id 的值
可看到响应内容处,循环的次数与列表 id 的长度一样,且 id 值也一个个遍历出来了。
2.3.2 jsonpath 提取值为列表
jsonpath 提取返回值,勾选匹配多条,得到一个 groupId 数组
遍历上个接口提取到的 groupId 数组,并进行打印值
在响应内容处,可看到循环次数与 groudId 数组长度一致,且将数组每个值都打印出来了。