使用渐变参数时,Gatling会出错

时间:2013-03-21 10:14:18

标签: scala performance-testing gatling

我根据文档使用参数作为我的渐变值,

val rampUpRate  = Integer.getInteger("ramp", 1)

setUp(
    scn.users(10).ramp(rampUpRate).protocolConfig(httpConf)
)

但是当我跑步时,我收到了一个错误:

09:57:35.695 [ERROR] c.e.e.g.a.ZincCompiler$ - /Gatling/user-files/simulations/clients/com/mydomain/www/stress/RecordedSimulation.scala:1088: overloaded method value ramp with alternatives:
  (duration: akka.util.Duration)com.excilys.ebi.gatling.core.scenario.configuration.ConfiguredScenarioBuilder <and>
  (duration: Long)com.excilys.ebi.gatling.core.scenario.configuration.Configured
ScenarioBuilder
 cannot be applied to (java.lang.Integer)

我认为在使用参数

之前我可以简单地转换为Long
val rampUpRate  = Integer.getInteger("ramp", 1)

setUp(
    scn.users(10).ramp((Long) rampUpRate).protocolConfig(httpConf)
)

但仍然存在错误:

09:57:35.695 [ERROR] c.e.e.g.a.ZincCompiler$ - /Gatling/user-files/simulations/clients/com/mydomain/www/stress/RecordedSimulation.scala:1088: \sanctuarySpa\com\sanctuaryspa\www\stress\RecordedSimulation.scala:1088:
value rampUpRate is not a member of object Long
10:05:34.915 [ERROR] c.e.e.g.a.ZincCompiler$ - scn1.users(10).ramp((Long) rampUpRate).protocolConfig(httpConf),

为什么要遵循文档或显式强制转换为长期的任何建议?

2 个答案:

答案 0 :(得分:2)

尝试使用rampUpRate.toLong投射到一个长(或更一般的投射rampUpRate.asInstanceOf[Long]

编译器将

(Long) rampUpRate视为尝试执行Long.rampUrRate(),例如将函数rampUpRate应用于object Long,因此出现错误消息

答案 1 :(得分:2)

这是我的错:维基页面不是最新的。 会发生的是,当方法采用scala Long时,您有一个java.lang.Integer。 java.lang.Long可以隐式转换为scala Long,但不能转换为java.lang.Integer。

正确的方法是val rampUpRate = java.lang.Long.getLong("ramp", 1L)

PS:我已经修好了文档。