环境: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'
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实在令人不快!
正如我上面提到的那样,我环顾四周,反复试验并阅读了帮助信息,但我只是看不到自己在做什么错。
感谢您提供的任何提示/技巧!
终于找到答案了。
如果前面的ParameterName值的逗号和下一个ParameterName值之间有空格,则下一个ParameterName不包含在后续查询中