一、使用场景

        需要多次查询数据,并对查询结果进行比较,查询的前后存在依赖,多条记录循环处理。

二、实际场景实例

本文的场景如下:

        先查询结果表信息,根据结果表的字段作为条件,用于后续源数据查询语句的条件,并根据源数据算术运算后的结果和结果表的实际结果进行比较。

1. 实际结果数据查询

从结果表中查询出order_no字段信息用于后续查询件,pre_amount字段用于后续比较。

2. 源数据查询

以结果表的order_no的字段为条件,在源数据表中,循环查询原始数据。

难点:

  • 如何进行循环控制?

        使用场景用例的循环控制器,选择次数循环。

        获取sql查询结果行数:${列名_#}  ,本场景中实际变量是:${order_no_#} 

  • 如何在sql查询条件中使用前一步骤结果列单行作为变量赋值?

        获取sql查询结果(按列存储的方式): ${列表名_n}

        例如:获取第一行的order_no值:${order_no_1}

  • 如何在循环控制器中,获取循环次数具体值?

        使用计数器:${__counter(,)}  , 从1开始。

        存在的问题,在第一次循环时,计数器输出结果为2,导致第一行的order_no无法取到、且最后一行取值越界。

        解决方案:前置脚本中处理计数值,并设置为场景变量,用于后续引用。

  • 如何在循环控制器中使用前一步骤的查询结果列作为sql查询语句的条件?

        分析:单行查询条件,需要${order_no_行号}的格式。

        解决方案:使用${__V(变量名)}函数,结合计数器,生成变量名表达式,本例中                ​​​​​${__V(order_no_${count})}。随着每一次循环,其结果对应${order_no_1}、${order_no_2}...实际的列字段值。

3. 结果比较断言

对实际结果pre_amount字段数据和源数据算数运算结果进行比较断言。

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐