是否有可能迭代或循环使用"用户定义的变量" - 使用CSV数据集(WHILE-COUNTER-CSV数据集配置)设置可能吗?
我想为"用户定义变量"中包含的每个变量发出一个JDBC请求(Select Statement)。 - 设置。它适用于CSV文件,但我无法弄清楚如何循环变量集。这甚至可能吗?我有各种各样的场景,我想循环通过"用户定义的变量" - 设置。
答案 0 :(得分:4)
为了能够使用User Defined Variables迭代ForEach Controller,您只需遵循简单的命名约定,如:
var_1=someValue
var_2=someOtherValue
var_3=someMoreValue
但是,如果您想保留原始变量名称,可以创建一组额外的JMeter变量,ForEach Controller可以使用以下步骤使用这些变量:
假设您有以下用户定义变量:
并且您想在ForEach控制器中使用它们的值
在脚本的某处添加JSR223测试元素(采样器,前/后处理器等),并将以下代码放入其脚本"区域
import org.apache.jmeter.threads.JMeterVariables;
int counter = 1;
JMeterVariables tempVars = new JMeterVariables()
vars.entrySet().each { entry ->
def name = entry.getKey()
if (!name.equals("JMeterThread.last_sample_ok") && !name.equals("JMeterThread.pack") && !name.equals("START.HMS") && !name.equals("START.MS") &&
!name.equals("START.YMD") && !name.equals("TESTSTART.MS")) {
tempVars.put("tempVar_" + counter, entry.getValue())
counter++;
}
}
vars.putAll(tempVars);
脚本完成后,你应该还有3个JMeter变量
一旦拥有它们 - 您可以使用ForEach Controller配置如下:
因此,您将能够使用${current}
(或者您在"输出变量名称"中的任何内容;在JDBC请求中
请参阅Groovy Is the New Black文章,了解有关在JMeter测试中使用Groovy的更多信息。
答案 1 :(得分:-4)
您不能只在用户定义的变量列表中进行迭代。从安全角度来看,您不应该被允许这样做。
你应该坚持 csv 文件。
参考文献: