【问题标题】:How do i iterate through CSV in jmeter creating new thread我如何在 jmeter 中迭代 CSV 创建新线程
【发布时间】:2019-12-09 00:38:57
【问题描述】:

我正在尝试提出 jmeter 设置,我想在其中读取具有 200000 行的整个 csv 文件,并且我想遍历每行创建新线程,因为我正在使用 JSR223 预处理器,该预处理器需要新线程来删除空请求正文中的参数。由于某种原因,当我使用 while 循环时,只有第一个测试通过,其余测试失败,因为 JSR223 预处理器继续读取前一个线程。我也未选中缓存的已编译脚本(如果可用),但仍然没有运气。我还想补充一点,当我明确地将线程数指定为 200000 中的 100 时,我的所有 100 次测试都会通过,因为它每次都会读取新线程。下面是我的设置截图:

这失败了 -

通过了 -

我正在使用的 JSR223 预处理器脚本:

def request = new groovy.json.JsonSlurper().parseText(sampler.getArguments().getArgument(0).getValue())
def newRequest = evaluate(request.inspect())
request.body.each { entry ->
    if (entry.getValue().equals('')) {
        newRequest.body.remove(entry.getKey())
    }
}
sampler.getArguments().removeAllArguments()
sampler.addNonEncodedArgument('', new groovy.json.JsonBuilder(newRequest).toPrettyString(), '')
sampler.setPostBodyRaw(true)

使用while控制器时的控制台日志

【问题讨论】:

    标签: multithreading jmeter jsr223


    【解决方案1】:

    替换这个:

    sampler.getArguments().removeAllArguments()
    

    作者:

    def arguments = new org.apache.jmeter.config.Arguments();
    sampler.setArguments(arguments);
    

    如果您想正确学习 jmeter,book 会帮助您。

    【讨论】:

      【解决方案2】:

      不看就无法提供全面的答案:

      1. 你的While Controller 条件节
      2. CSV 文件的前 3 行
      3. 您的CSV Data Set Config 设置
      4. 您的HTTP Request 采样器参数或正文

      仔细检查以下内容:

      1. 比较 While 控制器下第一个和第二个请求的 HTTP 请求采样器主体
      2. 源自 CSV 数据集配置的 JMeter 变量(您可以使用 Debug Sampler 和查看结果树侦听器组合检查它们)
      3. Enable debug logging for the While Controller,可能是它没有按照您的预期进行,可以通过在 log4j2.xml 文件中添加下一行来完成:

        <Logger name="org.apache.jmeter.control.WhileController" level="debug" />
        

      【讨论】:

      • 我道歉,但我不知道该怎么办。我尝试了你提到的一切。对于 1. 我尝试检查请求采样器,第一个请求有请求正文,第二个请求在 while 控制器下有空请求正文。 2. 对于DS,它甚至没有出现在VRT 3. 我在上面添加了截图
      • 我的 CSV 非常大,即使行非常大,所以无法在这里分享。但是我确实尝试了 log.info("---->"+request) 并且我能够看到从每个 CSV 行填充的请求。带来很多麻烦的行是 -> sampler.getArguments().removeAllArguments().
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-14
      • 1970-01-01
      • 2018-03-21
      • 1970-01-01
      • 1970-01-01
      • 2021-07-21
      相关资源
      最近更新 更多