加特林scala扩展失败,找不到证据参数的隐式值

时间:2019-01-17 16:00:23

标签: scala gatling

尝试使用整洁的扩展方法运行gatling 3.0.2,我在gatling 2.2.x之前已经使用过很多次了

implicit class Extensions(val scenario: ScenarioBuilder) extends AnyVal {
def injectDefaults: PopulationBuilder =
  scenario.inject(
    rampUsersPerSec(RAMP_USER_PER_SEC) to LOAD_FACTOR during (RAMP_UP_TIME seconds),
    constantUsersPerSec(LOAD_FACTOR) during (DURATION seconds)
  )

}

但是它不再编译,失败并显示:

 could not find implicit value for evidence parameter of type 
 io.gatling.core.controller.inject.InjectionProfileFactory[Product with Serializable with io.gatling.core.controller.inject.open.OpenInjectionStep]
  scenario.inject(

有人知道为什么吗?

1 个答案:

答案 0 :(得分:0)

我自己找到了解决方案,但缺少一些隐式导入。这是完整的代码示例:

import io.gatling.core.Predef.{constantUsersPerSec, rampUsersPerSec,_}
import io.gatling.core.structure.{PopulationBuilder, ScenarioBuilder}

import scala.concurrent.duration._

object Config {    
  val LOAD_FACTOR: Double = 50
  var RAMP_UP_TIME: Int = 10
  val RAMP_USER_PER_SEC = 0.1


  implicit class Extensions(val scenario: ScenarioBuilder) {
    def injectDefaults: PopulationBuilder =
      scenario.inject(
        rampUsersPerSec(RAMP_USER_PER_SEC) to LOAD_FACTOR during (RAMP_UP_TIME seconds),
        constantUsersPerSec(LOAD_FACTOR) during (DURATION seconds)
      )
  }

}