如何通过 "User Defined Variable" - 使用 JMeter 设置 iterate/loop?
How to iterate/loop through a "User Defined Variable" - set with JMeter?
是否有可能迭代或循环 "User Defined Variables" - 像使用 CSV 数据集(WHILE-COUNTER-CSV 数据集配置)一样设置?
我想为 "User Defined Variables" - 集合中包含的每个 变量触发 JDBC 请求(Select 语句)。它适用于 CSV 文件,但我不知道如何遍历变量集。这可能吗?我有各种场景,我想循环 "User Defined Variables" - set.
您不能只在用户定义的变量 列表中进行迭代。从安全的角度来看,你不应该被允许这样做。
你应该坚持 csv 文件。
参考文献:
为了能够迭代 User Defined Variables with ForEach Controller 您只需要遵循简单的命名约定,例如:
var_1=someValue
var_2=someOtherValue
var_3=someMoreValue
- 等等
但是,如果您想保留原始变量名称,您可以创建一组额外的 JMeter 变量,ForEach 控制器可以使用以下步骤使用这些变量:
假设您有以下用户定义变量:
并且您想在 ForEach 控制器中使用它们的值
在脚本的某处添加 JSR223 测试元素(采样器、Pre/Post 处理器等)并将以下代码放在其 "Script" 区域
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 控制器:
因此您将能够使用 ${current}
(或您在 JDBC 请求
中放入 "Output variable name" 的任何内容
请参阅 Groovy Is the New Black 文章以了解有关在 JMeter 测试中使用 Groovy 的更多信息。
是否有可能迭代或循环 "User Defined Variables" - 像使用 CSV 数据集(WHILE-COUNTER-CSV 数据集配置)一样设置?
我想为 "User Defined Variables" - 集合中包含的每个 变量触发 JDBC 请求(Select 语句)。它适用于 CSV 文件,但我不知道如何遍历变量集。这可能吗?我有各种场景,我想循环 "User Defined Variables" - set.
您不能只在用户定义的变量 列表中进行迭代。从安全的角度来看,你不应该被允许这样做。
你应该坚持 csv 文件。
参考文献:
为了能够迭代 User Defined Variables with ForEach Controller 您只需要遵循简单的命名约定,例如:
var_1=someValue
var_2=someOtherValue
var_3=someMoreValue
- 等等
但是,如果您想保留原始变量名称,您可以创建一组额外的 JMeter 变量,ForEach 控制器可以使用以下步骤使用这些变量:
假设您有以下用户定义变量:
并且您想在 ForEach 控制器中使用它们的值
在脚本的某处添加 JSR223 测试元素(采样器、Pre/Post 处理器等)并将以下代码放在其 "Script" 区域
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 控制器:
因此您将能够使用
中放入 "Output variable name" 的任何内容${current}
(或您在 JDBC 请求
请参阅 Groovy Is the New Black 文章以了解有关在 JMeter 测试中使用 Groovy 的更多信息。