scala 如何在scearioBuilder中正确使用doSwitch

7ajki6be  于 6个月前  发布在  Scala
关注(0)|答案(1)|浏览(54)

下面的场景构建器不喜欢doSwitch中的变量${data}。导致错误:
预期的类型为:(Any,io.gatling.core.structure.链生成器).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))
            }
        }

字符串

ut6juiuv

ut6juiuv1#

在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))
            )

相关问题