如何在 Gatling 中为相同的变量名提供随机数

How to feed random numbers for the same variable names in Gatling

如果你有一个 JSON,它有一个客户数组,其中每个客户都必须有一个唯一的客户编号,我如何用随机数来填充它:

    {
        "customers": [
            {
                "customerNo": "123",
                "Name": "Joe"
            },
            {
                "customerNo": "456"
                "Name": "Jane"
            },
        ]
    }

我认为这可能有效:

    {
        "customers": [
            {
                "customerNo": "${customerNo}",
                "Name": "Joe"
            },
            {
                "customerNo": "${customerNo}"
                "Name": "Jane"
            },
        ]
    }
    val customerNumber = Iterator.continually(
      Map("customerNumber" -> Random.nextInt(Integer.MAX_VALUE))
    )

然后添加:

    feed(customerNumber)

但这两种情况都使用相同的生成数字。

最干净的方法是传递一个函数,例如 Java:

StringBody(session ->
"""
{
  "customers": [
    {
      "customerNo": "%s",
      "Name": "Joe"
    },
    {
      "customerNo": "%s"
      "Name": "Jane"
    },
  ]
}""".formatted(Random.nextInt(Integer.MAX_VALUE), Random.nextInt(Integer.MAX_VALUE))
)