每个Gatling请求中的唯一ID


def getrandomNo(): String = {
return ((rnd.nextDouble() * (1000000.0)).toLong).toString
}
scenario("scn getart).during(test_duration minutes) {
exec(actionBuilder = http("req getart")
.post(apiurl)
.header("txn-id", getrandomNo()+"_getart")
.body(apibody)
}

在上面的代码示例中,尝试为每个请求生成唯一的txn id。然而,观察到它正在重复使用相同的数字,从而导致重复。此外,我还尝试使用以下内容根据当前时间生成,当1秒内触发1个以上请求时,仍然会导致重复。

def getTxnId(): String = {
"PerfTest_" + System.currentTimeMillis().toString+ getrandomNo()
}

有没有其他解决方案可以为每个请求生成唯一的id,而不考虑并发性?

提前谢谢。

这不起作用,因为在构建仿真时只调用getrandomNo一次。如果你不想传递一个值,而是想在每次执行时执行某段代码,那么你必须传递一个函数:

.header("txn-id", session => getrandomNo()+"_getart")

最新更新