【发布时间】: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)
这种情况下是否可以使用群组?它是如何完成的。
【问题讨论】: