Warm tip: This article is reproduced from serverfault.com, please click

jmeter-JSR223 预处理器在线程循环运行时生成相同的值

(jmeter - JSR223 Preprocessor generating the same value when the thread runs in loop)

发布于 2022-01-28 05:23:13

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

JSR223预处理器内的脚本,

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

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

在此处输入图像描述

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

在此处输入图像描述

在此处输入图像描述

我错过的任何东西

Questioner
Jyoti Prakash Mallick
Viewed
0
Dmitri T 2022-01-28 13:40:17

不要将 JMeter 函数或变量内联到 Groovy 脚本中,它们将被缓存,并且只有第一次出现才会用于后续调用。

你需要更改此行:

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

对此:

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

更多信息: