У меня есть сценарий, при котором я отправляю запрос GET, который иногда может возвращать 404, и я не хочу сообщать об этом как об ошибке в окончательных отчетах.
Кроме того, если этот запрос выполнен успешно, мне нужно извлечь несколько значений из ответа json.
Как правило, эти 2 действия, которые я хочу использовать, работают нормально, когда используются независимо, т.е.
извлечение нескольких значений 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