我正在尝试创建一个jmx来测试一些数据库条目。确切的查询事先是未知的,需要从多组查询中选择一种,我已在单独的预处理器单元中声明。
例如。其中一个查询是:
select * from ${table_name} where ${where_clause}
2D数组有两个条目,'表名'和'where子句'
所以,jdbc请求是CAT_ID_AS, DOG_ID_ST, DOG_TXT_REF
我已经设置了一个循环控制器,用于逐个遍历表,作为一个孩子我有jdbc sampler,它有csv表配置,它将包含select * from VLS_CATS_ASSOC where DOG_ID_ST = '${DOG_ID_ST}' and DOG_TXT_REF = '${DOG_TXT_REF}'
的数据。
目前,当我通过结果监听器看到我的请求时,我发现发送的查询是:
var myname = req.session.name; <------- dynamic
<a href="/upload?name=" + myname class="btn btn-info btn-md">
从输出中可以清楚地看出,第一级替换已经起作用,但不是第二级。
有人可以帮我吗?
编辑:添加测试计划的图像。 this answer
答案 0 :(得分:0)
不要在(我假设)BeanShell字符串中使用${CAT_ID_AS}
表示法:虽然它通常有效,但这是一个无证件且容易出错的功能。
合法的方式是vars.get("CAT_ID_AS")
vars
是测试计划中任何BeanShell部分中可用的预定义对象
所以你的代码看起来像
String[][] animals = new String[][]{ {"VLS_CATS_ASSOC","CAT_ID_AS = '" + vars.get("CAT_ID_AS") + "'"},
...等