Loops 而循环在EOF之前停止线程

Loops 而循环在EOF之前停止线程,loops,csv,while-loop,jmeter,Loops,Csv,While Loop,Jmeter,我在一个CSV/txt文件中有100万条记录(只有一列没有标题),我正在通过CSV数据集配置进行迭代,并将其存储为一个变量。我还添加了while控制器来检查文件的结尾是否退出循环,并且在任何事务失败之前,它还会重试5次。所以我加了5的计数器 问题是,该逻辑正在工作,但仅适用于CSV/txt文件中的50305条目,它不会持续到EOF,不确定是什么错误,但每次都以相同的方式令人兴奋,一直持续到5035 你能帮我循环直到文件结束吗?这是因为我使用groovy重置了计数器吗 添加了屏幕截图 我建议稍微修

我在一个CSV/txt文件中有100万条记录(只有一列没有标题),我正在通过CSV数据集配置进行迭代,并将其存储为一个变量。我还添加了while控制器来检查文件的结尾是否退出循环,并且在任何事务失败之前,它还会重试5次。所以我加了5的计数器

问题是,该逻辑正在工作,但仅适用于CSV/txt文件中的50305条目,它不会持续到EOF,不确定是什么错误,但每次都以相同的方式令人兴奋,一直持续到5035

你能帮我循环直到文件结束吗?这是因为我使用groovy重置了计数器吗

添加了屏幕截图


我建议稍微修改您的场景,并使用2个While控制器,示例大纲:

  • ,条件:
    ${uuu javaScript(${myVar}”!=“”,)}

    • ,变量名-
      myVar
      在EOF上循环-
      false
      ,在EOF上停止线程-
      false
    • ,条件:
      “${myVar}”!=“”
      • 你的取样器
      • 如果是控制器,则条件
        ${JMeterThread.last_sample_ok}“==“false”
      • 而控制器,条件<代码>${javaScript(${counter}<4&&“${JMeterThread.last_sample_ok}==”false“,)}
        • :开始
          1
          ,递增
          1
          ,参考名称:
          计数器
        • 你的取样器
  • 在主100万“while”循环之后需要执行的任何其他采样器

参考资料:


为什么要使用While循环直到结束。在CSV数据集配置中,选择EOF上的Recycle为False和/或EOF上的Stop Thread为True。此配置将一直运行到结束。请让我知道它是否有效。当配置提供一个值时,它将一直运行到EOF,并在到达结束时更新配置以结束循环。但我添加了我使用while逻辑在失败的情况下重试同一个HTTP采样器5次。基本上,我必须读取一个文件,将输入传递给HTTP sample,如果采样器失败,它必须在标记失败之前最多重试同一个HTTP请求5次。如果第二次重试成功,它也应该通过并向前移动。我不能使用${JMeterThread.last_sample_ok}“==”false”,因为HTTP请求总是提供200,因为它只生成cookie id。在我的情况下,我必须传递一个cookie id,并且在响应头中我应该收到相同的cookie id。因此我将条件修改为${uJavaScript(“${myvar}”!=“${myvar1}”)&&${counter3}<4,}在while循环中.myvar1是从if条件样本响应头捕获的。使用此逻辑,HTTP采样器始终重试5次。首先是if条件,然后是while条件中的4次,这使所有${myvar}”!=“${myvar1}”)条件始终为true,但情况并非如此。