Hi,
I am trying gatling only for 1 day now and I am pretty impressed by its nice API.
I am currently writing a simple websocket test with only 1 client sending a bunch of requests to the server and waiting for exactly 1 response for each of those requests.
I came up with this version using a non-blocking check because i want to avoid the coordinated ommision problem.
`
.repeat(50000, "i") {
exec(ws("Send GetUserSessionRequest")
.sendText( """{"messageType": "request.getUserSession","payload": {"requestId": "${i}"}}""")
.check(wsListen.within(2 seconds).until(1).jsonPath("$.payload.requestId").is("${i}"))
)
.pause(3 milliseconds, 30 milliseconds)
}
`
Basically I want to send a lot of requests with very short pause times inbetween and I expect a response for each of those requests.
Unfortunatly this does not work (when running gatling it tells me that some checks did not succeed in time when the next check was defined), most likely because of the same problem as described here: https://groups.google.com/forum/#!topic/gatling/vr6GknCI7r4
My questions are:
- Do I need to use wsListen If I do not want to block gatling from sending the next request? or can I also use wsAwait? (my primary concern is again the coordinated omission problem)
- Is gatling buffering inbound messages? If this is not the case, how would duplex protocols like websockets be checked without blocking the sender? (For me it looks like wsAwait is blocking gatling from sending the next message)
- Are there already some plans for extending the Websocket API? Maybe I can help.