当线程在循环中运行时,JSR223 预处理器生成相同的值

JSR223 Preprocessor generating the same value when the thread runs in loop

上下文:希望在线程 运行 循环时生成唯一且不同的值。 目前它正在生成相同的值。

JSR223 预处理器内部脚本,

String subscribeSchemaNamePreProcesser="agent-Perf-${__Random(1,99999,)}"
log.info("Schema Name --------------->"+subscribeSchemaNamePreProcesser)
vars.put("subscribeSchemaNamePreProcesser", subscribeSchemaNamePreProcesser)

当运行线程数大于1时(即2个线程1个循环),它会产生不同的值

当运行 循环数超过 1(即 1 个线程 2 个循环)时,它生成相同的值(想要修复它)

我错过的任何东西

不要将 JMeter Functions or Variables 内联到 Groovy 脚本中,它们将被缓存并且只有第一次出现的才会用于后续调用。

您需要更改此行:

String subscribeSchemaNamePreProcesser="agent-Perf-${__Random(1,99999,)}"

给这个:

String subscribeSchemaNamePreProcesser = "agent-Perf-" + org.apache.commons.lang3.RandomUtils.nextInt(1, 99999)

更多信息: