Scala 逻辑操作的Gatling检查,如and&;或

Scala 逻辑操作的Gatling检查,如and&;或,scala,gatling,Scala,Gatling,如何检查参数值是否与gatling中的值“abc”或“xyz”匹配。如何检查逻辑Or和(&And) 差不多 .check(jsonPath($..name).is("abc" || "xyz") Or .check(jsonPath($..fname).is("abc") || .check(jsonPath($..lname).is("xyz") 或 加特林支票还有一点不尽如人意。我遇到了一个类似的问题,我需要检查服务器头是否为Apache或未定义。我发现了一种使用转换的解决方法,如下所

如何检查参数值是否与gatling中的值“abc”或“xyz”匹配。如何检查逻辑Or和(&And)

差不多

.check(jsonPath($..name).is("abc" || "xyz")

Or

.check(jsonPath($..fname).is("abc") || .check(jsonPath($..lname).is("xyz")


加特林支票还有一点不尽如人意。我遇到了一个类似的问题,我需要检查服务器头是否为Apache或未定义。我发现了一种使用转换的解决方法,如下所示:

.check(header(HttpHeaderNames.Server)
  .transformOption(n => if (n.contains("Apache")) None else n)
  .notExists)
尝试为您的问题设计类似的解决方案。我认为它是有效的,但它似乎非常粗糙:

.check(
  jsonPath("$..fname").optional.saveAs(fnameOrLname),
  jsonPath("$..lname").optional.saveAs(fnameOrLname))
.check(status
  .transform((_, s) => s(fnameOrLname).asOption[String]
  .filter(_.nonEmpty)
  .map(_ => 0))
  .exists)

谢谢Nikoyay,它返回false,如果其中一个值不满足,测试将失败。就像fname是abc,lname是def,那么我的测试用例需要通过。它在检查逗号时是否执行逻辑and或or?
.check(header(HttpHeaderNames.Server)
  .transformOption(n => if (n.contains("Apache")) None else n)
  .notExists)
.check(
  jsonPath("$..fname").optional.saveAs(fnameOrLname),
  jsonPath("$..lname").optional.saveAs(fnameOrLname))
.check(status
  .transform((_, s) => s(fnameOrLname).asOption[String]
  .filter(_.nonEmpty)
  .map(_ => 0))
  .exists)