一尘不染

JMeter-将多个值从1个JDBC传递到另一个JDBC

jmeter

环境:JMeter v2.11,Oracle 12,JDK 7

我需要将2个值从一个JDBC
Request采样器传递到另一个。尽管我可以看到两个值都已成功传递,但我已经关注了先前的帖子和Jmeter帮助,但是第二个JDBC
Request采样器查询并未使用第二个变量值。

我的工作如下:

Thread Group: Number of Users-->1, Loop Count-->1
-JDBC Request_1: select appid from (select appid from tableZ order by appid desc) where rownum<= 2;    
VariableName: appid

JDBC Request_2: select A.date, B.appid, A.status from tableA A
inner join TableB on A.id = B.id
where A.status in ('Start', 'End')
and B.appid in (?,?); 
ParameterName: ${appid_1}, ${appid_2}, ParameterType: VARCHAR, VARCHAR

JDBC Request_1返回2 appid's ('0001' and '0002')它的结果-所以{appid_1} = '0001'{appid_2} = '0002'

JDBC Request_2请求如下:

select A.date, B.appid, A.status from tableA A
inner join TableB on A.id = B.id
where A.status in ('Start', 'End')
and B.appid in (?,?)
0001, 0002
VARCHAR, VARCHAR

因此,您可以看到这里的变量似乎已成功地从JDBC
Request_1传递到Request_2(注意上面的值‘0001,0002’),但是Request_2执行并且响应如下:

DATE        APPID   NODENAME
2015-03-20  0001    Start
2015-03-20  0001    End

也就是说-查询仅针对变量/参数{appid_1}而不是{appid_2}(这是第二个逗号分隔的变量)执行-有人可以建议我做错了吗?

查询在Oracle SQL Developer中执行没有问题,因此我证明了SQL很好-而且使用JMeter实在令人不快!

正如我上面提到的那样,我环顾四周,反复试验并阅读了帮助信息,但我只是看不到自己在做什么错。

感谢您提供的任何提示/技巧!


阅读 345

收藏
2020-07-24

共1个答案

一尘不染

终于找到答案了。

如果前面的ParameterName值的逗号和下一个ParameterName值之间有空格,则下一个ParameterName不包含在后续查询中

  • 即,逗号后的逗号之间没有任何空格,以分隔参数名称,因此代替了’$ {appid_1},$ {appid_2}’(您可以在其中看到一个分隔ParameterName值的空格,请指定$ {appid_1},$ {appid_2 },而不是ParameterName列表中的值-否则,在此示例中,将不包括$ {appid_2}。
2020-07-24