JMeter ForEach Controller重写输出变量名称吗?

时间:2019-01-30 18:50:16

标签: jmeter

在线程组中使用JMeter ForEach Controller时,我定义了一个变量开始索引,例如:fetch('/api-url', { method: 'POST', body: JSON.stringify({ checked: event.currentTarget.checked }), mode: "same-origin", credentials: "same-origin", headers: { "Content-Type": "application/json" } }).then(res => res.text()).then(function(response) { console.log(response); }); ,每个线程不同,并且输出变量名称为res.json()。随后是日志记录采样器,我可以看到${startFrom}按预期传递,并且每个线程都不同,但是所有线程都具有相同的currentFile

我希望每个线程都有一个不同的startFrom,因为它们应该从不同的索引开始。我在做什么错,如何使每个线程都具有正确的currentFile

-编辑-

我所试图做的实际上是:获取从FTP中的所有文件在一个线程,然后分割文件成批所以每个线程拉我在一个线程获取这些文件的等量。我将添加简短的修改以显示我的问题。

显示此问题的示例:

currentFile

当调试显示不同的currentFile值时,为什么每个线程在日志中都显示正在复制每个文件?我很可能会滥用某些东西,但是呢?

1 个答案:

答案 0 :(得分:1)

我无法复制您的问题:

  1. 假设定义了以下JMeter Variables

    proofOwner
  2. 以及以下ForEach Controller配置

    enter image description here

  3. JMeter从__threadNum()函数指定的偏移量开始,直到:

    • 用户1迭代所有变量
    • 用户2仅迭代第二个和第三个变量
    • 用户3仅获得第3个变量

      enter image description here

假设以上所有条件

  • 您对ForEach Controller的工作方式的理解不正确
  • 或者您的foo_2=bar foo_3=baz foo_4=qux 变量值对于所有线程都是相同的,您可以使用Debug Sampler
  • 对其进行仔细检查。

还请注意Directory Listing Config插件,如果您需要有条件地遍历文件夹中的文件-使用起来可能会容易得多。