我下面的场景构建器不喜欢 doSwitch 中的变量 ${data}。 结果错误:
预期类型为:(任何、io.gadling.core.struct.ChainBuilder) .doSwitch("${data}")
是什么导致了这个问题?
val builder: ScenarioBuilder = scenario("Test")
.repeat(3) {
pace(10.seconds)
.feed(new DataFeeder())
.exec { session =>
val data = session("data").as[String]
println(s"data: $data")
session
}
.doSwitch("${data}") {
// Define cases for different data values
case "P1" =>
exec(myFunc(1000000))
case "P2" =>
exec(myFunc(2000000))
}
}
在 doSwitch 的文档中,您有以下代码示例
doSwitch("#{myKey}")( // beware: use parentheses, not curly braces! "foo" -> exec(http("name1").get("/foo")), "bar" -> exec(http("name2").get("/bar")) )
其中第二个参数位于括号
( )
之间,而不是大括号 { }
之间。代码中的注释说不要使用花括号。
意思是当你这样做的时候
.doSwitch("${data}") {
// Define cases for different data values
case "P1" =>
exec(myFunc(1000000))
case "P2" =>
exec(myFunc(2000000))
}
您使用花括号,然后添加
case
,后跟一个值,然后 =>
(而不是 ->
),最后添加 exec(...)
你的应该类似于
.doSwitch("${data}") (
// Define cases for different data values
"P1" -> exec(myFunc(1000000))
"P2" -> exec(myFunc(2000000))
)