如何在Gatling中使用tryMax获取空白属性,注销并重新启动迭代?

时间:2018-04-24 13:45:17

标签: gatling

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

1 个答案:

答案 0 :(得分:0)

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

EX:

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,请使用{{ 1}}方法如:

optional

如果没有达到,检查不会失败,在这个例子中,我们搜索的元素不在响应中。