Установка статуса группы на ОК, если попытка в блоке tryMax не удалась - PullRequest
0 голосов
/ 23 мая 2019

У меня есть сценарий, использующий группы для моделирования действий на страницах моего приложения.

Одно из требований, которое у меня есть, - использовать копию производственных данных в моих симуляциях, но у этих данных могут быть проблемы, такие как отсутствие полей и т. Д., Которые требуются для некоторых действий.

Чтобы справиться с этим, я обернул эти действия в блок 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

1 Ответ

0 голосов
/ 23 мая 2019

Это ошибка в Gatling, которая будет исправлена ​​в 3.2.0, см. https://github.com/gatling/gatling/issues/3738

...