Гатлинг: попробуйте проверить, что бэк-энда есть, прежде чем начинать симуляцию - PullRequest
0 голосов
/ 18 марта 2020

Я пытаюсь проверить, работает ли мой бэкэнд Spring Boot, прежде чем начинать всю симуляцию.

Думаю, я мог бы сделать это, используя doWhileDuring l oop.

Я пытался что-то вроде этого безуспешно:

doWhileDuring(
  condition = "${!isUp}",
  duration = 1 minute,
  counterName = "Wait for microservice to be up"
) {
  exec(
    http(
      requestName = "HealthCheck"
    ).get(
      url = "/actuator/health"
    ).check(
      bodyString.is(
        expected = """{"status":"UP"}"""
      ).saveAs("isUp")
    )
  )
}

Но способ сохранения переменной isUp может быть неправильным, и l oop не блокирует запуск Simulation.

Также пробовал следующее, но не работает:

  doWhileDuring(
    condition = "${!isUp.equalsIgnoreCase(\"UP\")}",
    duration = 1 minute,
    counterName = "Wait for microservice to be up"
  ) {
    exec(
      http(
        requestName = "HealthCheck"
      ).get(
        url = "/actuator/health"
      ).check(
        jsonPath("$.status").saveAs("isUp")
      )
    )
  }

Не могли бы вы помочь мне найти хороший способ сделать это?

Заранее спасибо.

1 Ответ

0 голосов
/ 19 марта 2020

Gatling EL - это не динамический c язык, а просто заполнители с несколькими дополнительными помощниками.

https://gatling.io/docs/current/session/expression_el

Единственные возможности Dynami c - это перечисленные встроенные функции. Использование ! как «not» не является одним из них.

Хотя этот вариант соответствует вашим потребностям.

"${foo.isUndefined()}"   // returns true if the session doesn't contains a `foo` attribute, false otherwise
...