Simulation never ends with hight number virtual users

I got stuck in a simulation with never ends with high number of virtual users. Also the percent progress end up a bit weird

My simulation setup:

setUp(
scn1.inject(splitUsers(15000) into (rampUsers(28) over (3 seconds)) separatedBy(2 second)).protocols(httpConf),
scn2.inject(splitUsers(15000) into (rampUsers(55) over (3 seconds)) separatedBy(2 second)).protocols(httpConf)
)

The summary report while executing:

---- Project-API ---------------------------------------------------------------
[###########################################################################]101%
waiting: 0 / active: -290 / done:15270
---- Project-API leaving connections opened ------------------------------------
[##########################################################################]100%
waiting: 0 / active: 0 / done:14960

Please provide a way to reproduce your issue.

Hi Stéphane!

Sorry for my delay I am really working hard to adopt Gatling as our load test tool.

Below is the script used which reproduces the isse.


class ProjectEventConsuming extends Simulation {

val projectUri = "https://project-api.domain.io"

val httpConf: HttpProtocolBuilder = http.baseURL(projectUri)
.userAgentHeader("Gatling/2.3.1 (Load Test Tool)")
.header("X-Application-Load-Test", "project-api-stage")

val refFromStageAsCSV: RecordSeqFeederBuilder[String] = csv("refs101.csv").circular

val scn1: ScenarioBuilder = scenario("project-API CLOSING CONN").feed(refFromStageAsCSV)
.exec(
sse("Open project API", "testClosingConnections")
.open("/v1/reference/${ref}")
.check(wsAwait.within(6 minutes).expect(Range.inclusive(1, 8)).regex("""Any(.*)Event"""))
)
.exec(
sse("Close project API call", "testClosingConnections")
.close()
)

val scn2: ScenarioBuilder = scenario("project-API").feed(refFromStageAsCSV)
.exec(
sse("project API", "test-NON-ClosingConn")
.open("/v1/reference/${ref}")
.check(wsAwait.within(9 minute).expect(Range.inclusive(1,8)).regex("""Any(.*)Event"""))
)

setUp(
scnOrderTracking2.inject(splitUsers(25000) into (rampUsers(48) over (2 seconds)) separatedBy(3 second)).protocols(httpConf),
scnOrderTracking1.inject(splitUsers(25000) into (rampUsers(75) over (3 seconds)) separatedBy(2 second)).protocols(httpConf)
)
}

The API being tested is just a simple SSE service which returns between 1 to 8 different events.
I hope this example could help to reproduce or figure out the issue (maybe my newbie knowledge in Gatling)

Thx.

-Rogerio

I really need a simulation that I can RUN on my side.
You can send me he actual url privately, but if you can’t, there’s nothing I can do.

Sorry but I have replaced almost all names which identifies the real project due disclosure information restrictions.
Anyway I appreciate your interest in help me and I really understand the need from your side to reproduce the issues.

BTW I have identified the need to increase the number of Hard- and Soft open files during my test execution. Is there any guidance to prepare machines to run heavy loading tests, maybe could be useful for many others in the same situation.

Again thx a lot.