У меня есть сценарий, использующий группы для моделирования действий на страницах моего приложения.
Одно из требований, которое у меня есть, - использовать копию производственных данных в моих симуляциях, но у этих данных могут быть проблемы, такие как отсутствие полей и т. Д., Которые требуются для некоторых действий.
Чтобы справиться с этим, я обернул эти действия в блок tryMax, чтобы я мог отловить ошибки данных при первом выполнении, затем удалить проблемные данные из сеанса и повторить попытку. (нет возможности проверить данные до совершения звонка)
Проблема в том, что даже если действие в конечном итоге завершается успешно (в отчетах показано 2 выполнения с одним ОК, другим КО), содержащая группа помечается как КО.
Так что у меня есть что-то вроде ...
group("group1") {
tryMax(2) {
exec(http("action1")
.post("someURL")
.body("${ids}")
.check(
checkIf((response: Response, session: Session) => response.status.code == 400) {
jsonPath("$..failedIds").findAll.transform(
(failed, session) => {
session("ids").as[Seq[String]].diff(failed)
).saveAs("ids")
},
status.is(201)
)
)
}
}
это работает, так как 'действие1' выполняется, извлекает ошибочные идентификаторы из переменной сеанса 'идентификаторы', пытается снова и успешно. Но то, что я хотел бы, чтобы «group1» отмечалась как «ОК» в отчетах - с этим решением это нокаут, который вводит в заблуждение от моих целей.
Я на Гатлинге 3.1.1