Gatling: доступ к переменным из сохраненного списка «findAll» в цикле foreach - PullRequest
0 голосов
/ 27 апреля 2020

Я новичок в Gatling и Scala, и у меня, надеюсь, был быстрый и базовый c вопрос о том, как получить доступ к элементам, которые сохранены как из findAll в предыдущем запросе.

Регулярное выражение в приведенном ниже коде соответствует значениям нескольких кнопок. В конце концов я хочу найти значение кнопки «max» (кое-что, о чем я расскажу позже), и основываясь на этом, использовать эту кнопку в последующих запросах. Однако я не могу получить доступ к значениям в button_list. В терминале, когда я пытаюсь напечатать значения, значения не подставляются и буквально печатаются так для каждой кнопки:

Button ${count}: ${button}
Button ${count}: ${button}

Вот фрагмент кода, создающий это:

...
        .exec(http("click_ok")
            .post("www.foo.com")
            .headers(headers_0)
            .formParam("_flowExecutionKey", "${flow_execution_key}")
            .formParam("_eventId_submit", "${_eventId_submit}")
            .check(regex("""foo(.*?)bar""").findAll.saveAs("button_list"))).exitHereIfFailed
        .pause(1)
        .foreach("${button_list}", "button", "count") {
            exec(session => {
                println("Button ${count}: ${button}")
            session})
        }
...

Когда я вижу распечатку session в журналах, я вижу, что кнопки совпали, и сеанс содержит список, подобный следующему, поэтому я знаю, что есть успешные совпадения:

button_list -> List(c11/98/280, c11/98/390)

Любой есть пример или знаете что я делаю не так? Спасибо!

1 Ответ

0 голосов
/ 27 апреля 2020

Как объяснено в официальной документации , язык выражений Гатлинга не является чем-то магическим. Это работает только при передаче такой строки в метод Gatling DSL, а не в ваш собственный код. Вы должны использовать Gatling Session API .

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