如何检查字符串是否存在于 Gatling Scala 的字符串列表中
how to check if string exist in list of strings in Gatling Scala
如何使用 [Gatling] 检查 ponkipong
是否出现在 activeids
中 check - [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)
如何使用 [Gatling] 检查 ponkipong
是否出现在 activeids
中 check - [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)