未达到方法后加特林
gatling after method not reached
现在我很难使用自定义的加特林机进纸器,尽管它是圆形的。我收到此错误:
java.lang.IllegalStateException:进料器现在空了,停止引擎
我正在阅读这是默认行为。但是,我想确保每个用户使用来自馈线的不同 refurl:refUrlFeederBuffer。
此外,为什么 运行 没有使用我的 after 方法?无论模拟成功或失败,我都需要我的清理程序 运行。如果我不清理,我就无法重新开始测试!
var refUrlFeeder: Array [Map[String, String]] = Array()
before {
//create stuff and put the refUrls from it in a map
refUrlFeeder = refUrlFeeder :+ Map("refUrl" -> simpleUrl)
}
after {
// delete whatever I created in the before method
// THIS METHOD DOES NOT EXCUTE if the feeder is emptied
// I need it to execute regardless of errors during the scenario
}
object ImportRecords {
val someXml = "<some xml>"
val feeder = RecordSeqFeederBuilder(refUrlFeeder).circular
val update =
feed(feeder)
exec(http("Update stuff")
.put("${refUrl}")
.body(StringBody(someXml))
.asXML
.check(status.is(200))
)
}
val adminUpdaters = scenario("Admins who do updates").exec(ImportRecords.update) setUp(adminUpdaters.inject(atOnceUsers(1)).protocols(httpConf))
当送料器用完物品时,加特林停止整个引擎。这是例外情况,在例外本身中也有说明:
[error] java.lang.IllegalStateException: Feeder is now empty, stopping engine
Hook after
仅在模拟完成时调用。您可以在模拟中收到逻辑意义上的错误,但不会收到 开发人员错误 。当存在开发人员错误时不会调用 Hook,在本例中是这样。
只是 运行 out of feeder 是一个错误,因为它说你的 setUp
模拟部分与你提供的数据不相关,在这种情况下你的 feeder
。
顺便说一句。您的 setUp
模拟部分是什么样的?
编辑:只要看看你的代码结构,我猜(虽然没有看到整个模拟),你的 ImportRecords
的初始化发生在挂钩 before
被调用之前,因此你的 val feeder
包含空数组。使一个空数组循环将导致另一个空数组,因此当加特林试图从馈线中获取一个元素时,您将得到一个异常。尝试添加:
println(refUrlFeeder)
进入你的对象的初始化 ImportRecords
以查明是否是这种情况。
祝你好运
现在我很难使用自定义的加特林机进纸器,尽管它是圆形的。我收到此错误:
java.lang.IllegalStateException:进料器现在空了,停止引擎
我正在阅读这是默认行为。但是,我想确保每个用户使用来自馈线的不同 refurl:refUrlFeederBuffer。
此外,为什么 运行 没有使用我的 after 方法?无论模拟成功或失败,我都需要我的清理程序 运行。如果我不清理,我就无法重新开始测试!
var refUrlFeeder: Array [Map[String, String]] = Array()
before {
//create stuff and put the refUrls from it in a map
refUrlFeeder = refUrlFeeder :+ Map("refUrl" -> simpleUrl)
}
after {
// delete whatever I created in the before method
// THIS METHOD DOES NOT EXCUTE if the feeder is emptied
// I need it to execute regardless of errors during the scenario
}
object ImportRecords {
val someXml = "<some xml>"
val feeder = RecordSeqFeederBuilder(refUrlFeeder).circular
val update =
feed(feeder)
exec(http("Update stuff")
.put("${refUrl}")
.body(StringBody(someXml))
.asXML
.check(status.is(200))
)
}
val adminUpdaters = scenario("Admins who do updates").exec(ImportRecords.update) setUp(adminUpdaters.inject(atOnceUsers(1)).protocols(httpConf))
当送料器用完物品时,加特林停止整个引擎。这是例外情况,在例外本身中也有说明:
[error] java.lang.IllegalStateException: Feeder is now empty, stopping engine
Hook after
仅在模拟完成时调用。您可以在模拟中收到逻辑意义上的错误,但不会收到 开发人员错误 。当存在开发人员错误时不会调用 Hook,在本例中是这样。
只是 运行 out of feeder 是一个错误,因为它说你的 setUp
模拟部分与你提供的数据不相关,在这种情况下你的 feeder
。
顺便说一句。您的 setUp
模拟部分是什么样的?
编辑:只要看看你的代码结构,我猜(虽然没有看到整个模拟),你的 ImportRecords
的初始化发生在挂钩 before
被调用之前,因此你的 val feeder
包含空数组。使一个空数组循环将导致另一个空数组,因此当加特林试图从馈线中获取一个元素时,您将得到一个异常。尝试添加:
println(refUrlFeeder)
进入你的对象的初始化 ImportRecords
以查明是否是这种情况。
祝你好运