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

JMeter - Passing MULTIPLE values From 1 JDBC to Another JDBC

环境:JMeter v2.11,Oracle 12,JDK7

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

我的工作如下:

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 returns 2 appid's ('0001' and '0002') 因为它是结果 - 所以 {appid_1} = '0001'{appid_2} = '0002'

JDBCRequest_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

即 - 查询仅针对 variable/parameter {appid_1} 而不是 {appid_2} (这是第二个逗号分隔变量)执行- 谁能指出我做错了什么?

查询在 Oracle SQL Developer 中执行没有问题,所以我证明 SQL 没问题 - 而且我不擅长使用 JMeter!

正如我上面提到的 - 我环顾四周,反复试验,并阅读了帮助 - 但我就是看不出我做错了什么。

感谢 hints/tips 任何人可能有的!

终于找到答案了

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

  • 即在分隔参数名称的逗号之后不要有任何白色 space,而不是 '${appid_1}, ${appid_2}'(你可以看到有一个 space 分隔 ParameterName 值,指定 ${appid_1},${appid_2} 而不是 ParameterName 列表中的值 - 否则在此示例中 ${appid_2} 将不会包括在内。