MeterSphere接口自动化系列之Sql前后查询依赖场景

本文讨论了在IT场景中,如何处理需要多次查询数据并进行依赖性比较的问题,包括循环控制、SQL查询中使用循环变量、计数器的应用以及结果比较的断言。作者提供了实际案例,展示了如何在源数据表中根据结果表条件进行循环查询,并解决计数器初始值问题。
摘要由CSDN通过智能技术生成

一、使用场景

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

二、实际场景实例

本文的场景如下:

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

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字段数据和源数据算数运算结果进行比较断言。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值