[英]Gatling: Can ramping up of individual scenarios be done just like the users?
考慮一個使用加特林測試API的示例。 對於一些奇怪的要求,我必須為每個用戶獲取一個方案
var scenarioList // This is of type mutable list
我在此列表中添加了許多方案,因為我的請求正文因每個用戶而異,否則將無法處理該請求。此刻,此方案已配置了以下加特林模擬
Ex: scenarioList += scenario1. inject(rampUsers(1) over (1 minutes)
scenarioList += scenario2. inject(rampUsers(1) over (1 minutes)
scenarioList += scenario3. inject(rampUsers(1) over (1 minutes)
.
.
.
so on
現在,在調用所有這些方案時,如下所示在全局設置中
setUp(scenarioList: _*).assertions(
forAll.successfulRequests.percent.gte(90)
)
假設我有1000個用戶( scenarioList
大小為1000),這里的問題是所有1000個用戶將同時啟動,但我想增加這些用戶。 因此,問題來了,而不是並行運行這些方案。
這可能嗎 ? 如果沒有,還有其他方法可以遵循嗎? 當請求的主體發生變化時,我不能奢侈地與多個用戶一起運行相同的方案。 請告訴我。
我可以通過在方案中使用feeders
來解決此問題,因此無需創建多個方案。
使用feeders
加特林(Gatling)提供了用於參數化任何http請求的請求正文的選項。
代碼示例:
var randomSession = Iterator.continually(Map("randsession" -> ( req.replace("0000000000", randomStringGenerator.randomString(10)))))
val httpConf = http
.baseURL("http://localhost:5000")
.acceptHeader("text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8")
.userAgentHeader("Mozilla/4.0(compatible;IE;GACv10. 0. 0. 1)")
val scn = scenario("Activate")
.feed(randomSession)
.exec(http("activate request")
.post("/login/activate")
.body(StringBody("""${randsession}"""))
.check(status.is(200)))
.pause(5)
setUp(
scn.inject(atOnceUsers(5))
).protocols(httpConf)
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.