JMeter JDBC - 每次测试执行使用表中的一行

问题描述

我使用 JDBC 请求从 sql 表中选择数据并在测试中使用它。 为了从表中获取值并插入到请求中,我使用 ForEach 控制器

enter image description here

但是当测试运行时,控制器在一次测试中从表中获取所有值并执行该表具有值的次数的事务。

enter image description here

我怎样才能每次测试只使用一个值并且每次测试只执行一次事务? 当我不使用 ForEach 控制器时,变量也不会使用,我在请求中只看到变量名:${variable}

我的调试采样器图片。变量名称已更改。

enter image description here

解决方法

使用 Debug SamplerView Results Tree 侦听器组合来检查 JDBC 请求采样器生成的变量,这样您就可以选择包含“有趣”值的变量。

使用以下模式生成变量:

variable_1=value from 1st row
variable_2=value from 2nd row
...
variable_#=number of rows returned by your query

有关详细信息,请参阅 Debugging JDBC Sampler Results in JMeter 文章。

因此,如果您想使用第一行中的值 - 使用 ${variable_1},第二行中 - ${variable_2},如果您想要一个随机值 - 使用 __V() 和 {{3 }} 函数组合,如 ${__V(variable_${__Random(1,${variable_#},)},)}。如果你想要别的东西 - 用你的“变量”显示调试采样器的输出,并指出你想如何在下一个请求中重新使用它们