我们有两个服务,一个接收消息,另一个告诉我们消息何时被处理。我试图在一次加特林测试中报道这一点。这是我到目前为止所做的,但我正在努力争取最后一点......
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”设置为某个东西,然后它就会退出循环。
有办法做到这一点吗?谢谢你的帮助。
答案 0 :(得分:0)
这是我最后使用的解决方案
.asLongAs(session => getResultCount(session) == 0) {
并添加了此方法:
def getResultCount(session: Session): Int = {
session("resultCount").asOption[String].map(_.toInt).getOrElse(0)
}