跳到主要内容

测试流程控制条件

你可以在测试场景中新增流程控制条件(循环、判断、等待、分组)等。进一步满足了更复杂的测试场景/流程配置的使用,最终借助自动化测试功能解决复杂场景的测试工作。

分组

当测试流程中多个步骤存在相关联关系时,可以进行归类并放入到同一个分组中。通过对测试步骤的分组,让测试场景具备更好的可读性和操作性。

示例: 将查看详情宠物详情、修改宠物信息、再次查看详情等步骤归类成分组。

  1. 点击底部的按钮「添加步骤」,并选择「分组」。

  2. 将要归类的步骤,拖到分组步骤下或在分组中直接添加步骤。

    分组

ForEach 循环

在 ForEach 循环中,可以根据设定的某数组内的元素个数,循环执行编排内的全部步骤,循环次数等于数组内的元素个数。还支持提取当前循环的元素值以及当前循环的索引值。

ForEach 使用示例

有两个接口分别是获取宠物信息列表获取单个宠物详情。我们的需求是查询在宠物列表中的刚刚新添加进来的宠物详情,按照以下操作即可使用 ForEach 循环在自动化测试中编排出这个场景。

  1. 循环外的第一步是先请求获取宠物信息列表接口,获取到实际的列表数据。一般这种情况接口内是会有一个数组涵盖多个宠物的基本信息,例如宠物 ID、名称。

    ForEach 循环

  2. 设置 ForEach 循环,在循环上设置数组的来源是上一步的响应结果中的宠物信息数组部分。在本例中,写上 data[*].id 可以提取 data 里的全部 id 值作为一个数组。

    ForEach 循环设置

  3. 在循环内设置“获取宠物信息”接口请求,并且在此接口设置请求参数 ID 中使用 ForEach 循环(element)里的元素值进行请求。

    ForEach 循环内设置

  4. 若从列表中返回了 3 个宠物信息(数组内有 3 个元素),那么你可以在测试报告中看到“获取宠物信息列表”接口执行了 3 次,每次实际请求的宠物 ID 值是对应“获取单个宠物详情”真实返回的 3 个元素内的 ID 值。

    ForEach 循环执行结果

运行“测试报告”后,可以在详情内看到实际请求的值和响应数据相一致。

ForEach 循环执行结果详情

当前循环 element

系统自动将 ForEach 循环中设置的数组中的元素提取出来保存在此处指定的变量中。例如:{{$.1.element.data.name}}。每次循环开始时,会基于当前循环的数组素更新这个变量的实际值。如果元素是个对象,可以通过使用 JSONPath 来提取对象中的某个子级字段。


可以使用“动态值”功能可视化插入循环元素。


当前循环 element

除了可以通过动态值交互框进行可视化提取外,同样支持使用变量表达式


如果你需要在自定义脚本中获取此变量后进一步处理,可以使用例如pm.variables.get("$.1.element")来获取当前循环元素的实际值。


在自定义脚本界面右边有提供代码片段可以快速插入获取变量脚本。

获取当前循环元素变量

当前循环 index

当前循环的索引值,会保存在此变量中。例如:{{$.1.index}}。第一次循环开始时,这个索引值为 0,之后每次循环开始时会 +1 更新值。


可以通过“动态值”交互框进行可视化提取,也同样支持使用变量表达式


如果你需要在自定义脚本中获取此变量后进一步处理,可以使用例如pm.variables.get("$.1.index")来获取当前循环元素的实际值。

For 循环

当测试步骤需要重复执行时,可以指定相应的循环次数重复执行。在循环的附加设置中,支持添加“中断条件”和“遇到错误时”的循环异常处理选项。

使用示例

宠物店 IT 管理员登录宠物库存管理后台,将今日出售的 10 个宠物的在售状态自动批量变更为已售出。

  1. 点击底部的按钮“添加步骤”,并选择“循环”。

  2. 在循环次数中输入 10 次。

    For 循环

  3. 将和宠物信息有关的接口拖入该条件下内框中,或直接在该条件下直接添加测试步骤。

    For 循环内添加步骤

当前循环 index

当前循环的索引值,会保存在此变量中。例如:{{$.1.index}}。第一次循环开始时,这个索引值为 0,之后每次循环开始时会 +1 更新值。


可以通过“动态值”功能可视化插入循环元素。

当前循环 index

如果你需要在自定义脚本中获取此变量后进一步处理,可以使用例如pm.variables.get("$.1.index")来获取当前循环元素的实际值。


在自定义脚本界面右边有提供代码片段可以快速插入获取变量脚本。

获取当前循环 index 变量

条件分支

当测试流程中存在多条件判断时,可以通过添加条件分支(If 语法)来区分流程执行的步骤。即当判断配置的条件满足时,该判断条件下的子步骤才会执行, 相反子步骤则会被跳过。

示例:宠物店店主根据昨日宠物出售情况,若判断为售出,将该宠物的出售状态设置为“已售出”。否则( else ),查询在售中列表。

    1. 点击底部的按钮「添加步骤」,并选择「条件分支」。
    1. 在 lf 条件后面的输入框填写请求接口得到的变量 saleStatus ,然后选择条件"等于",最后输入比较数值为 true。(当销售状态判断为 true 的时候,则更改宠物信息为「已售出」)
    1. 将鼠标悬浮在该条件分支操作拦会出现「+ Else 」,点击并新增「出售中的宠物列表」步骤(否则,即查询在售中的宠物列表。)。
    1. 将测试步骤拖入到相应的条件分支中。

image-20210825164712369

等待

当测试流程中某个步骤需要执行后需要等待一段时间时,比如 A 步骤需要等待若干时间后再执行 B 步骤,可以通过新增等待条件来解决。

示例:模拟用户查看宠物详情,浏览 1000ms 后,将该宠物详情信息中的浏览状态进行更新。

    1. 点击底部的按钮「添加步骤」,并选择「等待」。
    1. 输入需要等待的时间 1000(单位毫秒)。

image-20210825164712369