如何在 scearioBuilder 中正确使用 doSwitch

问题描述 投票:0回答:1

我下面的场景构建器不喜欢 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))
            }
        }
scala gatling
1个回答
0
投票

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))
            )
© www.soinside.com 2019 - 2024. All rights reserved.