我使用正则表达式提取器和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"));}
答案 0 :(得分:3)
尝试使用CSV data config object。您指向CSV的路径,然后可以轻松地引用Jmeter变量中的每个CSV列。每次迭代时,您的Jmeter变量将保存CSV中下一行的值。从这里你可以使用vars.get(“yourVar”);将此Jmeter变量提供给BeanShell脚本。
或者,如果您需要一次性完成CSV中的填充,则可以选择使用CSV数据配置对象,并将第一列和行设置为CSV中找到的所有值的串联例如'ValueA,ValueB,ValueC'。然后,您可以将此变量提供给Jmeter脚本,并通过对(',')进行拆分在BeanShell中解析它。这将为您留下CSV中的所有值。
如果这两个选项不合适,最后一个选项是创建自己的Java自定义方法,然后可以将其提供给BeanShell脚本。例如,您可以创建一个类来读取您的CSV文件并以您希望的格式返回一个字符串。有关在Jmeter中设置自定义功能的详细分步指南,请参阅this article.