我如何创建自己的具有扩展功能的exec函数?

问题描述 投票:1回答:1

所以我有很多加息休息调用函数,它们看起来或多或少像:

  val restCall = {
    exec(http("RestCall")
      .post("/restCall")
      .body(ElFileBody("json/body.json")).asJson
      .check(saveResponseToSession(status,bodyString,header))
    )
    .exec(session => {validateResponse(session)})
    .pause(Config.minDelayValue seconds, Config.maxDelayValue seconds)
  }

.check(saveResponseToSession(status,bodyString,header))

.exec(session => {validateResponse(session)})

.pause(Config.minDelayValue seconds, Config.maxDelayValue seconds)

这三个函数都在我所有的API调用上执行,对我来说,这意味着数百条代码复制行...

我正在寻找一种创建/覆盖.exec链函数的方法,该函数将在每个调用的末尾包含这三个函数。

因此,例如,上面的示例将如下所示:

  val restCall = {
    customExec(http("RestCall")
      .post("/restCall")
      .body(ElFileBody("json/body.json")).asJson)

但还将包括:

      .check(saveResponseToSession(status,bodyString,header))
    )
    .exec(session => {validateResponse(session)})
    .pause(Config.minDelayValue seconds, Config.maxDelayValue seconds)
  }

正如我在第一个示例中所示。

scala gatling
1个回答
0
投票
您可能只有一个功能,需要ChainBuilder运行,然后再运行验证和暂停步骤。

val restCall = { exec(http("RestCall") .post("/restCall") .body(ElFileBody("json/body.json")).asJson .check(saveResponseToSession(status,bodyString,header)) ) } def validateAndWait(chain: ChainBuilder) = exec(chain) .exec(session => {validateResponse(session)}) .pause(Config.minDelayValue seconds, Config.maxDelayValue seconds) def scn = scenario("action with validation").exec(validateAndWait(restCall))

最新问题
© www.soinside.com 2019 - 2024. All rights reserved.