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返回其结果的
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}。