在开始整个模拟之前,我尝试检查我的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")
)
)
}
您能帮我找到一个好的方法吗?
提前感谢。
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