按一下消息,然后轮询结果

时间:2016-06-05 22:00:24

标签: scala gatling

我们有两个服务,一个接收消息,另一个告诉我们消息何时被处理。我试图在一次加特林测试中报道这一点。这是我到目前为止所做的,但我正在努力争取最后一点......

scenario("push message and poll for result")
  .feed(feeder)
  .group("push and check: group") {
    exec(http("push")
      .put("/create")
      .check(status.is(200))
    )
      .asLongAs(session => !session.contains("messageProcessed")) {
        exec(http("poll")
          .get("/poll")
          .check(status.is(200), jsonPath("$.results[0].resultCount").saveAs("resultCount"))
      }

  }

我的问题是resultCount最初会为零所以我想继续轮询直到它变成!= 0.当发生这种情况时,我想我可以将“messageProcessed”设置为某个东西,然后它就会退出循环。

有办法做到这一点吗?谢谢你的帮助。

1 个答案:

答案 0 :(得分:0)

这是我最后使用的解决方案

.asLongAs(session => getResultCount(session) == 0) {

并添加了此方法:

def getResultCount(session: Session): Int = {
    session("resultCount").asOption[String].map(_.toInt).getOrElse(0)
  }