JMeter - ForEach Controller的变量值连接

时间:2018-02-05 09:57:08

标签: foreach jmeter concatenation string-concatenation beanshell

我在Jmeter中有这个方案:

>数据库提取(获取某些文件的查询 - 请注意,提取有一个绑定到它的变量)。    的> ForEach Controller (从DBExt运行文件并一次将它们存储在一个变量中)。     的>我现在要做的是是获取每个文件名并将它们连接在一个字符串中,以便我可以进一步使用它(使用SSH命令计算行数)。

我被困在这里。我尝试了各种BeanShell处理器和记录器但没有成功。我将不胜感激任何可能有用的提示或想法。谢谢!

稍后编辑:

这是我的数据库查询:enter image description here

这是查询结果:

enter image description here

我需要一个包含以下内容的变量:file1.dat file2.dat file3.dat ... lastfile.dat所以我可以将它放在SSH命令中并执行行计数(wc -l)。

1 个答案:

答案 0 :(得分:0)

我认为您甚至不需要ForEach控制器,您可以使用Groovy中的以下JSR223 Sampler代码将多个变量连接成一个(将其替换为ForEach控制器)

def concat = new StringBuilder()
vars.entrySet().each {var ->
    if (var.getKey().startsWith('foo')){
        concat.append(var.getValue())
    }
}
vars.put('concat',concat.toString())
  1. foo替换为您的JDBC变量前缀
  2. 连续值将以${concat}
  3. 的形式提供

    如果它不是您要找的东西,您可以使用${__V(foo_${bar})} foo_将{2}变量合并为一个变量,其中:{/ p>

    • bar是前缀
    • giorgos-topic1 giorgos-topic2 giorgos-topic3 ... 是后缀