所以我有很多加息休息调用函数,它们看起来或多或少像:
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)
}
正如我在第一个示例中所示。
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))