如何在 Gatling 中使用会话中的馈线和值

Posted

技术标签:

【中文标题】如何在 Gatling 中使用会话中的馈线和值【英文标题】:How to use feeder and value from session in Gatling 【发布时间】:2019-12-03 12:13:17 【问题描述】:

如何使用馈送器和会话中的值来形成有效负载。这可能吗?

scenario("check")
.feed(ids)
.exec(http("check")
  .post("/check")
  .header("X-Token", session => session("token").as[String])
  .body(StringBody(session => 
    """
       |
       |  "id": $id,
       |  "subId": $subId
       |  "addressId": """" + session("token").as[String] + """"
       |
    """.stripMargin
  ))

【问题讨论】:

你对那个代码有什么问题吗?看起来不正确的一件事是您应该用引号将标记字符串括起来。我还假设 ID 是数字的,所以其他一切看起来都很好。 @MateuszGruszczynski 是的。感谢您指出。更正了它。只是想知道是否可以同时使用 session + feeder。好像不是。 【参考方案1】:

将会话函数传递给 StringBody 意味着 gatling 表达式将不起作用。你可以传入一个嵌入了 EL 变量的字符串。

.body(StringBody("""
   |
   |  "id": $id,
   |  "subId": $subId
   |  "addressId": $token
   |""".stripMargin
))

【讨论】:

感谢 cmets James。只是想知道是否可以同时使用 session + feeder。好像不是。 @James Warr 你知道 Gatling 3.0 是否有一些变化?我很确定在 2.x 中,EL 表达式是在会话表达式之后评估的,并且可以同时使用两者。 据我所知没有。所有令人讨厌的构建器通常采用 Expression[String] (自动解析 EL 令牌)或会话函数(您必须使用 session("") )

以上是关于如何在 Gatling 中使用会话中的馈线和值的主要内容,如果未能解决你的问题,请参考以下文章

如何在 .Net 应用程序中查看所有存储的会话的 REDIS 键和值?

如何使用 Gatling 遍历目录中的所有文件?

宜兴联络柜中设备拓扑混乱原因分析

宜兴联络柜中设备拓扑混乱原因分析

如何将值输入到 Gatling 的 json 数组中的字段中?

如何从 cookie 中保存 XSRF 令牌并将其传递给 Gatling 的下一个请求标头中的服务器