2

我使用正则表达式提取器和 beanshell 脚本(如下所示)动态创建了参数。我正在使用创建参数Name = "pass_" + i
现在我需要从 CSV 文件中填充这些参数字段的值。我已经加载了一个 CSV 文件,并且登录变量包含第一行的值。以下代码仅填充 CSV 文件中的第一个值。我需要代码来遍历 CSV 文件并使用第一列中存在的下一个值填充参数字段。

int count = Integer.parseInt(vars.get("pass_matchNr"));
for(int i=1;i<=count;i++) { //regex counts are 1 based
sampler.addArgument(vars.get("pass_" + i),vars.get("login"));}
4

1 回答 1

4

尝试使用CSV 数据配置对象。您指向 CSV 的路径,然后可以轻松引用 Jmeter 变量中的每个 CSV 列。在每次迭代中,您的 Jmeter 变量将保存 CSV 中下一行的值。从这里你可以使用 vars.get("yourVar"); 将此 Jmeter 变量输入到您的 BeanShell 脚本中。

或者,如果您需要一次完成来自 CSV 的填充,则可以选择使用 CSV 数据配置对象并将您的第一列和第一行设置为 CSV 中找到的所有值的串联,例如'值A、值B、值C'。然后,您可以将此变量输入到您的 Jmeter 脚本中,并通过在 (',') 上进行拆分在 BeanShell 中对其进行解析。这将为您留下 CSV 中找到的所有值。

如果这 2 个选项不合适,最后一个选项是创建您自己的 Java 自定义方法,然后您可以将其输入到您的 BeanShell 脚本中。例如,您可以创建一个类来读取您的 CSV 文件并以您想要的格式返回一个字符串。有关在 Jmeter 中设置自定义函数的详细分步指南,请参阅本文。

于 2013-03-20T10:06:00.477 回答