代码之家  ›  专栏  ›  技术社区  ›  Franz Wimmer

Gatling:如何解决“找不到impicit参数”?

  •  0
  • Franz Wimmer  · 技术社区  · 6 年前

    package package_name
    import io.gatling.core.Predef._
    import io.gatling.http.Predef._
    
    class PerformanceTest extends Simulation {
      private val httpConfiguration = http
        .baseURL(Configuration.baseUrl)
        .acceptEncodingHeader("gzip, deflate")
        .userAgentHeader(Configuration.userAgentName)
        .inferHtmlResources()
        .maxConnectionsPerHostLikeChrome
        .disableClientSharing
        .extraInfoExtractor(dumpSessionOnFailure)
    }
    

    其中配置是简单的 object Configuration { ... }

    Gatling不会编译测试,并声明此错误消息:

    [...]\performance-test\src\gatling\scala\package_name\performance\test\PerformanceTest.scala: 
    could not find implicit value for parameter configuration: io.gatling.core.config.GatlingConfiguration
      private val httpConfiguration = http
                                      ^
    one error found
    

    如何解决此错误?

    2 回复  |  直到 6 年前
        1
  •  1
  •   Franz Wimmer    6 年前

    解决方案非常简单:我将包名(而不是文件的位置)更改为 performance_test (它是 com.company.performance.test

        2
  •  0
  •   Dmytro Mitin    6 年前

    以下代码编译时没有错误:

    src/test/scala/package_name/PerformanceTest.scala

    package package_name
    
    import io.gatling.core.Predef._
    import io.gatling.core.session.Expression
    import io.gatling.http.Predef._
    
    object Configuration {
      val userAgentName: Expression[String] = "http://computer-database.gatling.io"
      val baseUrl: String = "Mozilla/5.0 (Windows NT 5.1; rv:31.0) Gecko/20100101 Firefox/31.0"
    }
    
    class PerformanceTest extends Simulation {
      private val httpConfiguration = http
        .baseURL(Configuration.baseUrl)
        .acceptEncodingHeader("gzip, deflate")
        .userAgentHeader(Configuration.userAgentName)
        .inferHtmlResources()
        .maxConnectionsPerHostLikeChrome
        .disableClientSharing
        .extraInfoExtractor(dumpSessionOnFailure)
    }
    

    生成.sbt

    name := "gatlingdemo"
    
    version := "0.1"
    
    scalaVersion := "2.12.6"
    
    libraryDependencies += "io.gatling" % "gatling-core" % "2.3.1"
    libraryDependencies += "io.gatling" % "gatling-http" % "2.3.1"
    

    下面是一个快速的开始: https://gatling.io/docs/2.3/quickstart/#gatling-scenario-explained

    其中配置是简单的 object Configuration {} .

    Configuration 不能只是 对象配置{} userAgentName baseUrl

        3
  •  0
  •   blackuprise    5 年前

    在我的例子中,我在模拟类中定义了如下变量

    val configuration = ConfigFactory.load()..
    

    导致了这个问题。。。带着同样的信息