4

我有一个场景如下

foo=exec ()
    .exec()
    ...    //few more execs

wsOp=repeat(repeatCount){
    exec(
         ws("Send HeartBeat")
         .sendText("some Heartbeat format").exitHereIfFailed
    )
    exec(
         ws("Check HeartBeat")
         .check(wsAwait.within(500).until(1).regex("some regex"))).exitHereIfFailed
    )
    .pause(delay)
}
val foo=scenario("bar").exec(foo).exec(wsOp)

我一直在尝试使用 gatling 的 exitHereIfFailed 语句,但它并没有像我预期的那样工作。尽管 ws 发送或检查中的一些 ws 操作失败,但用户线程继续执行“wsOp”。

4

2 回答 2

4
It should be after exec

foo=exec ()
    .exec()
    ...    //few more execs

wsOp=repeat(repeatCount){
    exec(
         ws("Send HeartBeat")
         .sendText("some Heartbeat format")
    ).exitHereIfFailed
    exec(
         ws("Check HeartBeat")
         .check(wsAwait.within(500).until(1).regex("some regex")))
    ).exitHereIfFailed
    .pause(delay)
}
val foo=scenario("bar").exec(foo).exec(wsOp)
于 2014-11-19T07:48:23.480 回答
0

首先,exitHereIfFailed 是一个结构 DSL 元素(与 exec 级别相同),因此可以在 ws 操作上调用它,而您的代码甚至无法编译。

然后,exec(ws("Check HeartBeat")) 缺少前导点,因此它没有与前一个 exec 链接,导致 ws("Send HeartBeat") 被丢弃。

于 2014-10-13T08:57:32.503 回答