jmeter中的嵌套参数替换问题

时间:2017-04-26 21:04:38

标签: jmeter

我正在尝试创建一个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

1 个答案:

答案 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") + "'"}, ...等