正如topic你引,即加特林會用火,避免測試目標系統的請求的線程數是不是併發用戶數的說明。它是實現細節。
Gatling在底層使用Akka並異步發出請求。這種異步性意味着Gatling正在使用一些線程來觸發所有請求。如果您想了解更多信息,請參閱gatling-akka-defaults.conf。它使用Akka Default Dispatcher,它使用fork-join池和aprox。 CPU核心數量* 2個線程(在100%不確定,請參閱doc)。
正如已經在引用的主題中提到的,問題是你是什麼意思的「用戶」?。
據我所知,你的目標是讓你的系統有2500個併發用戶。加特林是否會使用2或1000個線程來實現這一點並不重要。
所以,如果你想2500個併發用戶(每秒),很容易只寫:
setUp(
scn.inject(constantUsersPerSec(2500) during(3600))
)...
如果您在另一方面想2500組不同人羣(這是國際海事組織不希望),你可以做到這一點同樣,通過:
// `scn` have to be function, while scenarios should havce distinct name
def scn(name: String) = scenario(name)
.exec(
http("root").get("/")
)
setUp(
(for {
i <- 0 until 2500 // desired 2500
} yield {
scn(s"Test $i").inject(
rampUsers(1) over (3600)
)
}).toList // setUp can accept List[PopulationBuilder]
)
人羣應該被用來注入不同的情景或在同一時間以自己的速度和持續時間的不同類型的用戶。例如,參見Advanced Tutorial, Step 2。它們不是爲了模擬併發用戶。你可以直接從代碼中看到這個解決方案是可能的,但是很麻煩。