环境:JMeter v2.11,Oracle 12,JDK 7
我需要将一个JDBC Request sampler中的2个值传递给另一个。我已经关注了之前的帖子和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时很垃圾!
正如我上面提到的 - 我已经浏览过,试验和错误,并阅读帮助 - 但我只是看不出我做错了什么。
感谢任何人可能提供的任何提示/提示!
答案 0 :(得分:1)
终于找到了答案。
如果前面的ParameterName值的逗号与下一个ParameterName值之间有空格,则下一个ParameterName不包含在后续查询中