3

我有这样的场景。

 private val feeder = Array(200, 404).map(e => Map("code" -> e)).random.circular

 private val search = scenario("search")
                          .feed(feeder)
                          .exec(http("search")
                          .get("/search/")
                          .headers(headers)
                          .check( if "${code}".equals(200) jsonPath("$.body").exists else jsonPath("$.exception").exists )

有没有办法可以实现这种条件检查。截至目前,观察到的行为是,“${code}”.equals(200)将始终返回 false。

4

2 回答 2

2

您可以访问session内部jsonPathcode手动从中提取

.check(jsonPath(session => 
      if (session("code").as[Int].equals(200)) "$.body" 
      else "$.exception"
).exists)
于 2018-03-23T18:14:07.287 回答
0

根据文档,有以下构造可以实现此目的:

// with a Gatling EL String condition that resolves a Boolean
.checkIf("#{bool}") {
  jsonPath("$..foo")
}
// with a function
.checkIf(session => session("key").as[String] == "executeCheck") {
  jsonPath("$..foo")
}
于 2022-02-16T06:47:46.143 回答