并行执行多个场景的最佳做法是什么?例如,30%的用户执行scenario1和70%的用户scenario2。
代码是否以正确的方式进行,或者是否更好地让一个方案执行REST调用?
class MySimulation extends Simulation {
val userIdsData = csv(userIdsCSV).queue
...
val scenario1 = scenario("Scenario 1")
.feed(userIdsData)
.get(...)
val scenario2 = scenario("Scenario 2")
.feed(userIdsData)
.get(...)
.post(...)
setUp(scenario1.inject(rampUsers(30) over (ramp seconds))
.protocols(HttpConfig.value(baseURL)),
scenario2.inject(rampUsers(70) over (ramp seconds))
.protocols(HttpConfig.value(baseURL))
)
}
答案 0 :(得分:11)
无论你做什么都绝对没问题。
您运行设置的方式将会看到请求并行运行。
答案 1 :(得分:6)
Gatling将并行运行SetUp中的每个项目,因为场景中定义的每个项目都将运行sequentially。正如您从链接中看到的那样
用户的注射配置文件的定义是使用 注射方法。该方法将注入序列作为参数 将按顺序处理的步骤。
因此,您的上述代码将并行运行+ python UT/utreport.py -configfile /grid/0/jenkins/.ssh/hwx_secrets.conf -dbName 2.5-maint -version HDP-2.5.1.0 '(Erie-M10' 'Azure)' -OS Linux usage: utreport.py [-h] -configfile CONF_FILE -dbName DBNAME -version VERSION -OS OS utreport.py: error: unrecognized arguments: (Erie-M10 Azure) Build step 'Execute shell' marked build as failure [INFO] HipChat notification sent to the following rooms: RE-notifications Finished: FAILURE
和scenario01 ramp to 30 over x seconds
。
答案 2 :(得分:0)
您也可以尝试以下代码。
scenario1.inject(rampConcurrentUsers(0) to (6) during(10),constantConcurrentUsers(6) during(60 seconds))
,
scenario2.inject(rampConcurrentUsers(0) to (4) during(10),constantConcurrentUsers(4) during(60 seconds))