在tryMax块尝试失败时将组状态设置为OK

时间:2019-05-23 00:01:35

标签: gatling scala-gatling

我有一个场景,使用“网上论坛”为我的应用页面上的操作建模。

我的一个要求是在模拟中使用生产数据的副本,但是此数据可能存在一些问题,例如缺少字段等。

为解决此问题,我将这些操作包装在tryMax块中,以便可以在第一次执行时捕获数据错误,然后从会话中删除有问题的数据并重试。 (在拨打电话之前无法验证数据)

问题在于,即使操作最终成功(报告显示两次执行,一个OK,另一个KO),包含的组也标记为KO。

所以我有类似...

group("group1") {
  tryMax(2) {
    exec(http("action1")
       .post("someURL")
       .body("${ids}")
       .check(
           checkIf((response: Response, session: Session) => response.status.code == 400) {
            jsonPath("$..failedIds").findAll.transform(
              (failed, session) => {
                session("ids").as[Seq[String]].diff(failed)
            ).saveAs("ids")
          },
          status.is(201)
       )
    )
  }  
}

这有效,因为执行了“ action1”,从“ ids”会话变量中提取了失败的id,然后重试并成功。但是我想在报告中将“ group1”标记为“ OK”-使用此解决方案是KO,这会误导我的目的。

我正在加特林3.1.1

1 个答案:

答案 0 :(得分:0)

这是加特林(Gatling)中的错误,将在3.2.0中修复,请参见https://github.com/gatling/gatling/issues/3738