Правильный синтаксис для .transform в скрипте Гатлинга - PullRequest
0 голосов
/ 24 апреля 2020

Внимание! Я не Java кодер. Я думаю, что мне не хватает необходимого гена.

У меня есть вызов Гатлинга, который захватывает StateToken, необходимый для аутентификации.

.exec(http("00_Access_Site_10")
        // This exec captures the stateToken parameter
        .get("https://sso-cert.johndeere.com/login/login.htm?fromURI=%2Fapp%2Fjohndeerecert_dealerpathcert_1%2Fexkcj9qb4cfudNvLR1t7%2Fsso%2Fsaml")
        .header("Accept:", "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3")
        .header("Accept-Encoding:", "gzip, deflate, br")
        .header("Accept-Language:", "en-US,en;q=0.9")
        .header("Sec-Fetch-Site:", "none")
        .header("Sec-Fetch-Mode:", "navigate")
        .header("Sec-Fetch-User:", "?1")
        .check(regex(""""(?<=stateToken":")(.*)(?=","help)""").saveAs("StateToken"))
        //.check(bodyString.saveAs(key = "responseBody"))
      )

Это работает, за исключением того, что захваченная строка StateToken содержит символы которые должны быть преобразованы, т.е. \ 2D должен быть дефисом ("-").

Это:

  .check(regex(""""(?<=stateToken":")(.*)(?=","help)""").saveAs("StateToken"))
  .transform("{StateToken}" => str.replace("\\x2D","-"))

Не работает.

Спасибо.

1 Ответ

1 голос
/ 25 апреля 2020

transform принимает функцию с одним единственным параметром, который является исходным извлеченным значением, и возвращает преобразованный результат. Таким образом, правильный синтаксис:

  .transform(str => str.replace("\\x2D","-"))

Тогда преобразование не в нужном месте:

.check(
  regex(""""(?<=stateToken":")(.*)(?=","help)""")
  .transform(str => str.replace("\\x2D","-"))
  .saveAs("StateToken")
)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...