首页 > 解决方案 > 如何在 Gatling 中使用 tryMax 获取空白属性,注销并重新开始迭代?

问题描述

我知道我可以使用 tryMax 重新启动场景并使用 .exists() 来验证属性是否存在。我如何将两者结合在一起?

标签: gatling

解决方案


如果你在 tryMax 中检查了一个 exec 并且检查失败,它将从 tryMax 块的开头再次尝试。

前任:

val TestScenarioThatRestartsOnFail: ScenarioBuilder = scenario("ScenarioNameHere")
.tryMax(2) {
  exec(
    http("zzzz")
      .get("zzz")
      .check(xxxx)
  )
  .exec(
    http("zzzz")
      .get("zzz")
      .check(xxxx)
  )
}

所以基本上任何在整个 tryMax{} 块中失败的检查都会使整个块再次运行。

如果您需要重试不同请求的不同次数,您还可以链接多个 tryMax 块

val TestScenarioThatRestartsOnFail: ScenarioBuilder = scenario("ScenarioNameHere")
.tryMax(2) {
  exec (
    http ("zzzz")
    .get ("zzz")
    .check (xxxx)
  )
}.tryMax(2) {
  exec(
    http("zzzz")
    .get("zzz")
    .check(xxxx) 
  )
}

如果您遇到“可选”的检查,因此它们有时可能会失败,但您不想为这些检查触发 tryMax,请使用以下optional方法:

.check(regex("/admin-ng/login.[^\"]*.css").find.optional.saveAs("login_css"))

如果不满足,这不会使检查失败,在这个例子中,我们搜索的元素不在响应中。


推荐阅读