推送消息然后轮询结果
Push a message and then Poll for a result
我们有两个服务,一个接收消息,另一个告诉我们消息何时被处理。我正试图在加特林测试中涵盖这一点。这是我到目前为止所拥有的,但我正在为最后一点而苦苦挣扎..
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" 设置为某个值,然后它就会退出循环.
有办法吗?感谢您的帮助。
这是我最后使用的解决方案
.asLongAs(session => getResultCount(session) == 0) {
并添加了这个方法:
def getResultCount(session: Session): Int = {
session("resultCount").asOption[String].map(_.toInt).getOrElse(0)
}
我们有两个服务,一个接收消息,另一个告诉我们消息何时被处理。我正试图在加特林测试中涵盖这一点。这是我到目前为止所拥有的,但我正在为最后一点而苦苦挣扎..
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" 设置为某个值,然后它就会退出循环.
有办法吗?感谢您的帮助。
这是我最后使用的解决方案
.asLongAs(session => getResultCount(session) == 0) {
并添加了这个方法:
def getResultCount(session: Session): Int = {
session("resultCount").asOption[String].map(_.toInt).getOrElse(0)
}