如何检查字符串是否存在于 Gatling Scala 的字符串列表中

how to check if string exist in list of strings in Gatling Scala

如何使用 [Gatling] 检查 ponkipong 是否出现在 activeidscheck - [Scala] ?

{
  "activeids": [
    "ironblossom",
    "draw_on",
    "ponkipong",
    "summer22",
    "morphimagus"
  ]
}

Have tried .check(jmesPath("activeids[?contains(@, 'ponkipong') == `true`]").transform(_.length >= 1).is(true)) but doesn't work.

Also not sure how to do this using jsonPath.



不过,我目前正在使用的解决方法是这样的。

.check(bodyString.saveAs("response_data"))
.check(
  checkIf((response: Response, session: Session) => {
    val dde = "ponkipong"
    val is_dde_active_not_present = if ((Json.parse(session("response_data").as[String].stripMargin) \ "activeids").as[Seq[String]].indexOf(dde) >= 0) false else true
    is_dde_active_not_present
  }) {
    // this check is to make forceful fail if checkIf fails
    jsonPath("$.activeids[*]").count.is(-1)
  }
)

但是,看起来不像是解决方案。

需要帮助以正确的方式做到这一点。

现在,我倾向于使用JMESPath whenever possible, as explained here

在 Scala 中:

jmesPath("contains(activeids, 'ponkipong')").ofType[Boolean].is(true)

在Java中(自 Gatling 3.7 起推荐):

jmesPath("contains(activeids, 'ponkipong')").ofBoolean().is(true)