每个加特林请求中的唯一ID

时间:2020-07-17 19:29:34

标签: gatling scala-gatling

  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,而与并发无关?

谢谢。

1 个答案:

答案 0 :(得分:3)

这不起作用,因为在构建仿真时,您的getrandomNo仅被调用一次。如果您不想传递值,但是希望在每次执行时执行一些代码,则必须传递FormLayout

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