【问题标题】:Gatling: Access variables from saved "findAll" list in foreach loopGatling:从 foreach 循环中保存的“findAll”列表访问变量
【发布时间】:2020-04-27 08:55:16
【问题描述】:

我是 Gatling 和 Scala 的新手,我有一个关于如何访问上一个请求中保存为 findAll 的元素的快速而基本的问题。

以下代码中的正则表达式匹配多个按钮值。我最终想找到“最大”按钮值(我稍后会提出),并基于此在后续请求中使用该按钮。但是,我无法实际访问button_list 中的值。在终端中,当我尝试打印值时,这些值不会被替换,并且每个按钮都像这样打印:

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

这是产生这个的sn-p:

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

任何人有一个例子或知道我做错了什么? 谢谢!

【问题讨论】:

    标签: scala foreach gatling findall scala-gatling


    【解决方案1】:

    正如official documentation 中所解释的,加特林表达式语言并不是在任何地方都能神奇地工作的东西。它仅在将此类 String 传递给 Gatling DSL 方法时才有效,而不是在您自己的代码中。您必须使用Gatling Session API

    【讨论】:

    • 哇,谢谢!会试一试。 “高级教程”页面上根本没有提到这一点!我想知道我是否应该休息一下并阅读所有文档。不过小减速带 - Gatling 比 Loadrunner 更令人愉快
    • 嗯,很难让所有可能有用的知识都适合这 2 个教程。我们希望有一天能够重访。确实,花 1 小时阅读文档的其余部分会非常有益。谢谢你的好话!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-11
    • 1970-01-01
    • 1970-01-01
    • 2021-06-01
    • 2018-03-29
    相关资源
    最近更新 更多