【问题标题】:Groups of Feeders and Requests in Gatling ScenarioGatling 场景中的馈线组和请求组
【发布时间】:2021-01-09 16:42:33
【问题描述】:

我有不同的请求,我用这种模式分别测试:

feed(feeder)
      .exec(
        firstRequest,
        secondRequest
      )

现在我有一个测试,首先需要另一个具有相同模式的测试:

测试1 > 测试2

为了实现这一点,我创建了一个案例类并像这样启动它:

case class FilCall(startMsg: String, testData: Seq[TestData])

def setupScenario(filCalls: FilCall*): SetUp = {

  lazy val filCallTests = filCalls.map { filCall =>
    val feeder: Seq[Map[String, Any]] =
      filCall.testData.map(oneFeed) // create one Feeder

    group(filCall.startMsg) {
      feed(feeder.iterator)
        .exec(
          start(filCall.startMsg),
          checkResult(..)
        )
     }
   }


   def scn = scenario(getClass.getSimpleName)
     .exec(getToken)
     .exec(filCallTests: _*)


   setUp(scn.inject(withUsers(filCalls.size)))
     .protocols(http)
}

这适用于一个 FilCall,但会抛出多个:

17:58:57.338 [ERROR] i.g.a.Gatling$ - Run crashed
java.lang.IllegalStateException: Feeder is now empty, stopping engine
    at io.gatling.core.action.SingletonFeed$$anonfun$receive$1.applyOrElse(SingletonFeed.scala:67)

这种情况下是否可以使用群组?它是如何完成的。

【问题讨论】:

    标签: scala gatling


    【解决方案1】:

    当您使用带有默认队列策略的 feeder 实例(其中记录只能使用一次)并且您尝试提取的记录多于它包含的记录时,这是预期的错误,请参阅doc

    【讨论】:

    • 谢谢,但是我创建了多个 Fe​​eder,这是否意味着您在一个场景中只能拥有一个 Feeder?
    • 没有。这意味着每个馈送器至少需要包含与您尝试从中提取的记录一样多的记录。
    • 您有如何使用多个 Fe​​eder 的示例吗?如前所述 - 它适用于一个 - 但一旦我有多个我就会遇到问题。
    • 你没有在听。我是在告诉您在 Feeder 中添加更多记录。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-23
    • 1970-01-01
    相关资源
    最近更新 更多