jmeter var.putobject变量在其他jdbc请求中使用,但它被忽略

时间:2014-01-01 06:05:06

标签: jmeter

测试计划 线程组 JDBC连接 JSR223采样器 JDBC请求 结果树

将代码放入JSR223采样器:

int id = Integer.parseInt( vars.get("party_id") ); vars.putObject("id", new Integer(id));

然后在JDBC Request中使用id:

    select * from table where column = ? 
    Parameter Value: ${id}
    parameter Type: NUMBER

似乎忽略了JDBC请求,并且结果树中没有显示输出。

请帮助调查问题...

提前致谢

2 个答案:

答案 0 :(得分:0)

用户定义变量存储String但不存储Integer的值。我想知道JMeter控制台(日志)中是否有任何错误/警告。

将整数转换为String以将其放入UDV。 enter image description here

如果您希望它是一个整数,请指定$ {UDV}。如果要在SQL查询中将其作为varchar,请添加引号('$ UDV') enter image description here

enter image description here

答案 1 :(得分:0)

重现了你的问题,看起来JDBC Sampler不接受整数,只接受字符串。

我在jmeter.log中遇到以下错误,猜你也是:

  

2014/01/04 11:30:14错误 - jmeter.threads.JMeterThread:错误时   处理采样器'JDBC Request':java.lang.ClassCastException:   java.lang.Integer无法强制转换为java.lang.String

因此绝对不需要你的强制转换为整数。尝试将JSR223代码更改为以下内容:

vars.put("id", vars.get("party_id")); 

应该可以正常工作。

该位告诉MySQL哪个数据类型将变量绑定到ParameterType节。你需要在那里指定paratemer类型,而不是JSR223