在 Gatling 中构建动态检查

Build dynamic checks in Gatling

我希望动态验证响应正文。我有一个端点,根据用户权限,returns 不同的主体。例如:

user: a
{
   "one": "a",
   "two": "b"
}

user: b
{
   "one": "a",
   "three": "c"
}

我知道我可以使用 jsonPath 以这种方式验证一个 json 字段是否存在:

http("Request")
  .get(url)
  .header(user_a_token)
  .check(jsonPath("one").exists)
  .check(jsonPath("two").exists)
  .check(jsonPath("three").notExists)

但是,我想让它可配置,使用馈线或类似的东西:

http("Request")
  .get(url)
  .header(user_token)
  // iterate a list of Strings with the json field names

想法?

我终于找到了一个方法来处理这个需求。

首先,您需要定义一个检查列表:

val jsonPathChecks: List[HttpCheck] = List(jsonPath("one").exists, jsonPath("two").exists, jsonPath("three").exists)

然后使用它:

http("Request")
  .get(url)
  .header(user_token)
  .check(jsonPathChecks: _*)

_* 运算符负责让奇迹发生。