我遇到了发送GET请求的情况,该请求有时可以返回404,并且我不想在最终报告中将其报告为错误。 另外,如果该请求成功,则需要从json响应中提取多个值。
通常,当我独立使用时,我想使用的那两个动作对我来说很好
从响应中提取多个json值:
jsonPath("$..usrn").saveAs("usrn"),
jsonPath("$..street_descriptor").saveAs("street_descriptor"),
....
)
处理404s:
status.saveAs("responseStatus"),
checkIf(session => session("responseStatus").as[Int] == 200) {
substring(usualHeader).exists
},
checkIf(session => session("responseStatus").as[Int] == 404) {
substring(errorHeader).exists
}
但是,当我尝试将这两个动作组合在一起时,我能够执行的操作(可以编译并实际提取数据)遵循以下代码。 但是我觉得没有这种重复就可以完成
.check(
status.saveAs("responseStatus"),
checkIf(session => session("responseStatus").as[Int] == 200) {
jsonPath("$..usrn").saveAs("usrn")
},
checkIf(session => session("responseStatus").as[Int] == 200) {
jsonPath("$..street_descriptor").saveAs("street_descriptor")
},
...
checkIf(session => session("responseStatus").as[Int] == 404) {
substring("404 error").exists
}
我正在使用加特林3.0.3
答案 0 :(得分:1)
您可以使用可选检查
.check(
status.in(200, 404),
jsonPath("$..usrn").optional.saveAs("usrn"),
jsonPath("$..street_descriptor").optional.saveAs("street_descriptor")
)