首页 > 解决方案 > 带有doIf条件的加特林foreach循环

问题描述

我有一个 ChainBuilder 对象链要执行。

在其中一个中,我得到了一个"id"。然后我得到一个任务列表并尝试遍历它们以找到我需要完成的任务。

但是当我这样做时,它会显示Type mismatch Expected: ChainBuilder Found: B

val processTask: ChainBuilder = getTasks
  .foreach("${tasks}", "task") {
    doIfEquals("${task.id}", "${id}") {
      exec(completeTask)
    }
  }

def getTasks: HttpRequestBuilder = {
  http("Get tasks")
    .get(tasksUrl)
    .check(jsonPath("$[*]").saveAs("tasks"))
  }

如何使用条件正确循环列表?

标签: scalagatlingscala-gatling

解决方案


.foreach is a ChainBuilder method and you're trying to invoke it from a HttpRequestBuilder so it can't compile.

val processTask = exec(getTasks)
  .foreach("${tasks}", "task") {
    doIfEquals("${task.id}", "${id}") {
      exec(completeTask)
    }
  }

推荐阅读