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秒内触发多个请求时,仍然导致重复。
def getTxnId(): String = {
"PerfTest_" + System.currentTimeMillis().toString+ getrandomNo()
}
是否有其他解决方案可为每个请求生成唯一的ID,而与并发无关?
谢谢。
答案 0 :(得分:3)
这不起作用,因为在构建仿真时,您的getrandomNo
仅被调用一次。如果您不想传递值,但是希望在每次执行时执行一些代码,则必须传递FormLayout:
.header("txn-id", session => getrandomNo()+"_getart")