jmeter 如何将JDBC结果传递给另一个线程

j2cgzkjk  于 2023-03-18  发布在  其他
关注(0)|答案(1)|浏览(173)

我来解释一下我的测试计划...
我有一个setUp Thread Group,它执行一个JDBC选择查询,并将记录存储在不同的变量中,如下所示。

然后,我将记录计数的总数传递给下一个线程组,以使用BeanShellAssert固定迭代次数。

${__setProperty(totalRecords,${UCID_#})}

现在我想把变量传递给下一个线程组,并在每次迭代中逐一使用这些值,如下所示。

${__V(UCID${__counter(TRUE,)})}

Setproperty在这种情况下不起作用。是否有其他可用的方法?
先谢了...

wixjitnu

wixjitnu1#

你只传递UCID_#值给下一个线程组。它可以用__P()函数访问,如

${__P(totalRecords,)}

从JMeter 3.1开始,建议使用JSR223元素和Groovy语言编写脚本,以下所有示例均采用Groovy
如果您想将以UCID开头的所有变量传递给另一个线程组,您需要采取稍微不同的方法:
1.在setUp线程组中,将JMeter变量转换为JMeter属性。可在JSR223Assert中使用的示例代码:

1.upto(vars.get('UCID_#') as int, {
    props.put('UCID_' + it, vars.get("UCID_$it"))
})
props.put('UCID_#', vars.get('UCID_#'))

1.在“正常”线程组中,使用JSR223采样器将它们转换回来

1.upto(props.get('UCID_#') as int, {
    vars.put('UCID_' + it, props.get('UCID_' + it))
})
vars.put('UCID_#', props.get('UCID_#'))

一旦你这样做了,你的__V()函数应该开始按预期工作。
更多信息:Using JMeter Variables With Multiple Thread Groups

相关问题