【发布时间】: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