代码之家  ›  专栏  ›  技术社区  ›  gyc

加特林用户顺序注入

  •  0
  • gyc  · 技术社区  · 8 年前

    我有一个场景要用不同的用户负载进行测试。

      val reports1 = createScenario("rep1")
      val reports2 = createScenario("rep2")
      val reports3 = createScenario("rep3")
    
      def createScenario(name: String) : ScenarioBuilder = {
        val newScenario = scenario(name)
        .exec(
          sse("My Scenario")
            .open("/endpoint")
            .headers(config.header))
        .exec(sse("close").close())
    
        newScenario
      }
    
      setUp(
        reports1.inject(
          atOnceUsers(1),
          nothingFor(2 minutes),
          atOnceUsers(10),
          nothingFor(5 minutes),
          atOnceUsers(50)
        ),
        reports2.inject(
          atOnceUsers(1),
          nothingFor(2 minutes),
          atOnceUsers(10),
          nothingFor(5 minutes),
          rampUsers(50) over(50 seconds)
        ))
        .protocols(http.baseURL(config.url))
    

    当我运行这个时,注入是并行的。

    我可能可以将所有的用户注入合并到一个块中,并用pause()分隔,但这似乎不是一个好的解决方案。

    1 回复  |  直到 8 年前
        1
  •  1
  •   Mateusz Gruszczynski    8 年前

    注入不是并行完成的,场景是并行完成的。这就是Gatling的工作原理——所有场景都作为参数传递给了一个 setUp() 调用总是并行执行的,如果您希望它们按顺序运行,那么每个场景应该在单独的模拟类中。另外,您的示例没有任何意义,因为您运行的两个场景名称不同,如果您可以提供真实的示例,我可能会推荐其他的方案。

    推荐文章