如何检查参数的值是否与值匹配" abc"或" xyz"在加特林。如何检查逻辑或&和
像
这样的东西.check(jsonPath($..name).is("abc" || "xyz")
Or
.check(jsonPath($..fname).is("abc") || .check(jsonPath($..lname).is("xyz")
答案 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)