Non blocking requests

Hi folks,

First off, Gatling is a great tool - I’m really enjoying using it - thank you Gatling Team!

I was wondering if there’s a way to configure my scenario to fire off (some) http requests in a non blocking fashion. Meaning that if the following scenario is run:

var scn = scenario("Test Blocking") .exec(http("1").get("/?b=1")) .execNonBlocking(http("2").get("/?b=1").check(jsonPath("$..message").exists)) .exec(http("3").get("/?b=2")) .exec(http("4").get("/?b=1")) .execNonBlocking(http("5").get("/?b=3")) .exec(http("6").get("/?b=4")) .exec(http("7").get("/?b=1")) .exec(http("8").get("/?b=5"))

(using this imagined DSL “execNonBlocking” addition) when request “2” gets sent, request “3” gets sent immediately after, without waiting for a response from “2”, but “2” still gets a check (jsonPath) eventually.
Is anything like this possible?


Thanks for your kind words.

The thing was asynchronous flow, be it resources, websockets, sse and polling, is that they live in different state spaces, and you need to reconciliate state at some point, ie you have to define your “eventually”. And more than that, you probably want to be notified of when “eventually” happen.

So no, it’s not currently possible.

This is more of an API design issue. Ideas welcome.

Thanks for the reply - I see what you mean by the “eventually” and how it becomes a non trivial problem.