进纸测试中的进纸器值未更新

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

我是scala和gatling的新手。我正在尝试从Feeder获取值并将zip文件发布到service。但是$ {extensionId}未使用获取的值进行更新,而是保留为$ {extensionId}。如果我在这里错过了一些事情,请有人帮我知道。

          def installExtension() =
            exec(http("template - Install Extension")
              .post(url + "/v1/extensions")
              .basicAuth("jack", "password")
              .headers(namespaceHeader)
// using testUtils to get InputStream conte
              .body(InputStreamBody(TestUtils.toStream(hashMap.get("${extensionId}").getOrElse(null))))
              .check(status.is( 201)))


 class extmgrSimulations extends Simulation {

          val extensionIds = csv(s"${Configuration.dataDirectory}/extensionId.csv").circular


          val extMgrScenerio = scenario("extensionMgr - Scenario")
            .during(Configuration.duration) {
              exitBlockOnFail(
                group("load-test") {
                  exec(
                    pace(Configuration.paceFrom, Configuration.paceTo),
                    feed(extensionIds),feed(extensionIds)
                      randomSwitch(
                      50.00 -> group("Install and delete") {
                        exec(
                          extmgrChain.installExtension(),
                          extmgrChain.deleteExtension(),
                        )
                      },
                      50.00 -> extmgrChain.listExtension()
                    )
                  )
                }
              )
            }
scala gatling scala-gatling
1个回答
0
投票

这行不通。加特林EL(字符串中的$ {}语法)在任何地方都不起作用。在documentation中对此进行了说明。

警告

此表达式语言仅适用于传递给Gatling DSL方法的字符串值。在实例化Gatling模拟时,仅对此类字符串进行一次解析。

例如queryParam(“ latitude”,session =>“ $ {latitude}”)无效,因为参数不是String,而是返回String的函数。

此外,queryParam(“ latitude”,“ $ {latitude}”。toInt)不会,因为toInt会在将参数传递给queryParam方法之前发生。

这里的解决方案是传递一个函数:

session => session(“ latitude”)。validate [Int]。

© www.soinside.com 2019 - 2024. All rights reserved.