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

时间:2015-03-20 15:26:59

标签: oracle jdbc jmeter

环境: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时很垃圾!

正如我上面提到的 - 我已经浏览过,试验和错误,并阅读帮助 - 但我只是看不出我做错了什么。

感谢任何人可能提供的任何提示/提示!

1 个答案:

答案 0 :(得分:1)

终于找到了答案。

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

  • 即。逗号分隔parm名称后没有任何空格,而不是'$ {appid_1},$ {appid_2}'(你可以看到有一个空格分隔ParameterName值,指定$ {appid_1},$ {appid_2}而是作为ParameterName列表中的值 - 否则在此示例中将不包括$ {appid_2}。