【问题标题】:Parallel execution of multiple scenarios并行执行多个场景
【发布时间】:2017-04-19 14:40:51
【问题描述】:

并行执行多个场景的最佳做法是什么?例如,30% 的用户执行场景 1,70% 的用户执行场景 2。

下面的代码是正确的方式还是最好有一个场景与 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))

  )

}

【问题讨论】:

    标签: gatling


    【解决方案1】:

    Gatling 将并行运行 SetUp 中的每个项目,而场景中定义的每个项目将运行 sequentially。从链接中可以看到

    用户的注入配置文件的定义是通过 注入法。该方法将一系列注入作为参数 将按顺序处理的步骤。

    所以你上面的代码将并行运行scenario01 ramp to 30 over x secondsscenario02 ramp to 70 over y seconds

    【讨论】:

      【解决方案2】:

      你也可以试试下面的代码。

      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))
      

      【讨论】:

        【解决方案3】:

        无论你在做什么都是绝对好的。

        按照您运行设置的方式,您将看到请求是并行运行的。

        【讨论】:

        • scenario("Scenario Name").exec(Search.search, Browse.browse, Edit.edit) 组成的场景是否并行运行?还是三个组件会依次执行?
        • @Sergio 并行运行而不是按顺序运行。
        • 谢谢。什么时候应该使用上面的习语进行并行执行,什么时候应该使用不同的“用户”,这仍然有点令人困惑,如:setUp(users.inject(atOnceUsers(1), admin.inject(atOnceUsers(1)).protocols(httpConf)) 你能澄清一下吗?
        • 在场景之前和之后进行一次性 POST 请求怎么样 - stackoverflow.com/questions/63386159/… - 我根本没有收到 POST 请求 - 我什至如何调试
        猜你喜欢
        • 2020-06-08
        • 1970-01-01
        • 1970-01-01
        • 2022-12-05
        • 1970-01-01
        • 1970-01-01
        • 2020-09-09
        • 2017-05-26
        • 2022-01-17
        相关资源
        最近更新 更多