【问题标题】:gatling after method not reached未达到方法后的加特林
【发布时间】:2016-03-02 18:16:13
【问题描述】:

现在我在使用自定义加特林喂食器时遇到了困难,尽管它是圆形的。我收到此错误:

java.lang.IllegalStateException: Feeder 现在是空的,正在停止引擎

我正在阅读这是默认行为。但是,我想确保每个用户都使用来自 feeder 的不同 reurl: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("执行更新的管理员").exec(ImportRecords.update) setUp(adminUpdaters.inject(atOnceUsers(1)).protocols(httpConf))

【问题讨论】:

    标签: scala gatling


    【解决方案1】:

    当进纸器用完物品时,加特林会停止整个引擎。例外情况本身也说明了例外情况:

    [error] java.lang.IllegalStateException: Feeder is now empty, stopping engine
    

    Hook after 仅在模拟完成时调用。您可以在模拟中收到逻辑意义上的错误,但不会收到开发人员错误。当存在开发人员错误时,不会调用 Hook,在这种情况下就是这样。

    只是用完馈线是一个错误,因为它表示您的模拟部分 setUp 与您提供的数据不相关,在这种情况下是您的 feeder

    顺便说一句。你的setUp 部分的模拟是什么样子的?

    编辑:只看你的代码结构,我猜(虽然没有看到整个模拟),你的 ImportRecords 的初始化发生在钩子 before 被调用之前,因此你的 val feeder 包含空数组。使一个空数组循环将导致另一个空数组,因此当 Gatling 尝试从 feeder 中获取一个元素时,您会遇到异常。尝试添加:

    println(refUrlFeeder)
    

    初始化你的对象ImportRecords,看看是否是这种情况。

    祝你好运

    【讨论】:

    • 谢谢!我会试试然后回复你。我将我的 setUp 添加到上面的代码中。我绝对同意你的看法,我怀疑有些东西没有被初始化。
    • 旁注:在 2.2 中,将调用 after 块,即使 feeder 运行为空。
    • 哦!谢谢你让我知道!我认为这很有意义,届时将引入 2.2。
    • Teliatko,非常感谢。这确实是正在发生的事情。上面的代码封装在一个名为 MySimulation 的类中,该类扩展了 Simulation。我基本上将 before() 视为 MySimulations 的构造函数或 Junit 的 @BeforeClass。我现在意识到 before 是在执行实例化场景之前执行的。如果我错了,请纠正我。不管你把我送到了解决这个问题的正确道路上,所以我接受了答案。如果我是正确的,我想知道在 Gatling to a BeforeClass 中是否有一个等效的概念。
    • 很高兴听到这个消息:)。关于课前课,不,我不知道什么。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多