上下文:希望在线程循环运行时生成唯一且不同的值。目前,它正在生成相同的值。
JSR223预处理器内的脚本,
String subscribeSchemaNamePreProcesser="agent-Perf-${__Random(1,99999,)}"
log.info("Schema Name --------------->"+subscribeSchemaNamePreProcesser)
vars.put("subscribeSchemaNamePreProcesser", subscribeSchemaNamePreProcesser)
当线程数超过 1(即 2 个线程 1 循环)运行时,它会产生不同的值
当循环数超过 1(即 1 个线程 2 循环)运行时,它会生成相同的值(想要修复它)
我错过的任何东西
不要将 JMeter 函数或变量内联到 Groovy 脚本中,它们将被缓存,并且只有第一次出现才会用于后续调用。
你需要更改此行:
String subscribeSchemaNamePreProcesser="agent-Perf-${__Random(1,99999,)}"
对此:
String subscribeSchemaNamePreProcesser = "agent-Perf-" + org.apache.commons.lang3.RandomUtils.nextInt(1, 99999)
更多信息:
感谢您让我知道这个问题,这个问题的另一个快速问题,我正在运行另一个具有相同配置的线程,我正在使用我通过此 JSR223 预处理器创建的值。当我在同一循环中运行下一个线程组时,我看到所有请求的相同值。任何线索如何解决它?