加特林:如何解决"cannot find impicit parameter"?
Gatling: How to solve "cannot find impicit parameter"?
我有这个加特林机模拟:
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
如何解决这个错误?
以下代码编译无误:
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)
}
build.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
Where Configuration is a simple object Configuration {}
.
Configuration
不能只是object Configuration {}
,应该包含userAgentName
和baseUrl
.
解决方案很简单,令人沮丧:我将包名(不是文件的位置)更改为 performance_test
(之前是 com.company.performance.test
)。现在代码可以完美编译。
在我的例子中,我在模拟中定义了如下变量 class
val configuration = ConfigFactory.load()..
导致问题的原因...具有相同的消息
我有这个加特林机模拟:
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
如何解决这个错误?
以下代码编译无误:
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)
}
build.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
Where Configuration is a simple
object Configuration {}
.
Configuration
不能只是object Configuration {}
,应该包含userAgentName
和baseUrl
.
解决方案很简单,令人沮丧:我将包名(不是文件的位置)更改为 performance_test
(之前是 com.company.performance.test
)。现在代码可以完美编译。
在我的例子中,我在模拟中定义了如下变量 class
val configuration = ConfigFactory.load()..
导致问题的原因...具有相同的消息