Gatling检查逻辑操作和&或者

时间:2016-12-11 03:00:17

标签: scala gatling

如何检查参数的值是否与值匹配" abc"或" xyz"在加特林。如何检查逻辑或&和

这样的东西
.check(jsonPath($..name).is("abc" || "xyz")

Or

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

2 个答案:

答案 0 :(得分:1)

.check(jsonPath("$..name").in("abc" , "xyz")

或者

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

答案 1 :(得分:0)

加特林支票还有一点不足之处。可能对您来说太迟了,但是我遇到了类似的问题,需要检查服务器头是Apache还是未定义。我发现了使用这样的转换的解决方法:

.check(header(HttpHeaderNames.Server)
  .transformOption(n => if (n.contains("Apache")) None else n)
  .notExists)

试图为您的问题设计类似的解决方案。我认为它可行,但似乎很hacky:

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