加特林:在开始模拟之前尝试检查后端是否已启动

问题描述 投票:0回答:1

在开始整个模拟之前,我尝试检查我的Spring Boot后端是否已启动。

我想我可以使用doWhileDuring循环来这样做。

我尝试过类似的尝试,但没有成功:

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变量的方法可能不是正确的方法,并且循环并没有锁定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")
      )
    )
  }

您能帮我找到一个好的方法吗?

提前感谢。

scala spring-boot gatling spring-boot-actuator scala-gatling
1个回答
0
投票

Gatling EL不是动态语言,而只是占位符以及一些其他帮助器。

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

唯一的动态功能是列出的内置功能。不能将!用作“ not”之一。

虽然这很适合您的需求。

"${foo.isUndefined()}"   // returns true if the session doesn't contains a `foo` attribute, false otherwise
© www.soinside.com 2019 - 2024. All rights reserved.