Значение фидера не обновляется в тесте Гатлинга - PullRequest
0 голосов
/ 23 марта 2020

Я новичок в scala и набираюсь опыта. Я пытаюсь получить значения из фидера и отправить почтовый файл в сервис. но $ {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()
                    )
                  )
                }
              )
            }

1 Ответ

0 голосов
/ 24 марта 2020

Это не может работать. Gatling EL (синтаксис $ {} в строках) волшебным образом нигде не работает. Это объясняется в документации .

Предупреждение

Этот язык выражений работает только со строковыми значениями, передаваемыми в методы Gatling DSL. Такие строки анализируются только один раз, когда создается экземпляр имитации Гатлинга.

Например, queryParam ("latitude", session => "$ {latitude}") не будет работать, потому что параметр не является String , но функция, которая возвращает String.

Кроме того, queryParam ("latitude", "$ {latitude}". toInt) не будет, потому что toInt произойдет до передачи параметра в метод queryParam.

Решением здесь было бы передать функцию:

session => session ("широта"). Validate [Int].

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...