并行执行多个场景

时间:2016-12-05 08:48:23

标签: gatling

并行执行多个场景的最佳做法是什么?例如,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))

  )

}

3 个答案:

答案 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: FAILUREscenario01 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))