Gatling version: 3.11.3 (must be up to date)
I read the guidelines and how to ask a question topics.
I provided a SSCCE (or at least, all information to help the community understand my topic)
I copied output I observe, and explain what I think should be.
Hi, I have a weird use case that leads to different results, take an example that I have 1000 Users data in a csv file, with a workflow that contains 1 API call only, then I configure this workload:
private val scenario = scenario
.inject(
rampConcurrentUsers(0).to(100).during(50),
constantConcurrentUsers(100) during (10 minutes))
.throttle(reachRps(5) in (5 seconds),holdFor(10 minutes))
.protocols(httpconf.httpProtocol)
With this scenario, when I hit 5 minutes timestamp, it will return a Premature Close error, I understand this as target server cannot handle this much load. But then I reduce down to 30 users as this:
private val scenario = scenario
.inject(
rampConcurrentUsers(0).to(30).during(30),
constantConcurrentUsers(30) during (10 minutes))
.throttle(reachRps(5) in (5 seconds),holdFor(10 minutes))
.protocols(httpconf.httpProtocol)
No premature close error found, I am really not sure why there is such a difference between these two scenario, so I hope for a brief explaination many thanks
Edit: After some experiments, I notice that if QPS is too low comparing to the users load (as example above) then a lot of users will be connected but hanging, and when it reaches deadline (10 seconds) then it will be terminated thus return in a premature close. I may not understand this correctly, so any help would be welcomed