scenario step synchronization

I’ve observed that when a scenario has multiple steps, gatling seems to run one step at a time. I.e., it seems to wait until the last user finishes each step before moving to the next step. So if I have 100 concurrent users, there can be a delay of several seconds in the time from when the first user completes one step until it moves to the second step, because it’s waiting for all the other users to complete that step.

I’m just curious what the reasoning is behind this behavior and whether or not it is configurable?

(By configurable I mean that you could have each gatling user run through the scenario regardless of the other users running through it. This could mean, for example, that in a 3-step scenario, the first user might complete all three steps while the last user is still waiting for a response from the first step.)

What do you mean by “step”?
Are you talking about the injection steps (what you pass to the inject method)? If so, no, it doesn’t wait.

Hi Stephane, yes I’m talking about the injection steps (ChainBuilder values). If they don’t wait, then the behavior that I see is strange. You have examples where multiple users running through the same scenario are not synced as to which “step” they are on?

inject(step1, step2).

They’re sequential = step2 will start after all the users of step1 have been started, not after they’re done.