关于oracle:JMeter-将多个值从1个JDBC传递到另一个JDBC

JMeter - Passing MULTIPLE values From 1 JDBC to Another JDBC

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

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

我的工作方式如下:

1
2
3
4
5
6
7
8
9
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请求如下:

1
2
3
4
5
6
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执行且响应如下:

1
2
3
DATE        APPID   NODENAME
2015-03-20  0001    Start
2015-03-20  0001    End

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

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

如上所述,我环顾四周,反复试验并阅读了帮助-但我只是看不到自己在做什么错。

感谢任何人可能拥有的任何提示/技巧!


最终得出答案。

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

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