You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Gatling中根据序列元素数量动态发送HTTP请求?

Gatling动态发送HTTP请求的问题解决

Gatling完全支持根据序列元素的数量动态发送HTTP请求,你的代码没达到预期是因为没有把处理后的序列存入Session,且foreach引用了错误的变量。

原代码的问题

  1. 你在exec闭包里定义的residents是局部变量,没有存到Gatling的Session中,后续的foreach根本无法访问这个变量。
  2. foreach的第一个参数需要是Session中存储序列的键名,而不是局部变量名。

修改后的代码

.exec { session =>
  // 处理字符串,生成URL序列
  val residents = session("residents").as[String]
    .split(",")
    .toSeq
    .map(f => f.replaceAll("\"", ""))
  // 将处理后的序列存入Session
  session.set("residentsList", residents)
}
// 遍历Session中的序列,每个元素存入"resident"变量
.foreach("${residentsList}", "resident") {
  exec(http("Request for resident URL")
    .get("${resident}") // 使用Session中的resident变量
  )
}

关键修改点

  • 在exec闭包的最后,通过session.set("residentsList", residents)把处理好的URL序列存入Gatling Session,这样后续步骤才能获取到。
  • foreach的第一个参数改为"${residentsList}"(Session中序列的键名),Gatling会自动遍历这个序列的每个元素,把当前元素存入"resident"变量。
  • HTTP请求里用${resident}(或者#{resident},两种写法都支持)引用遍历到的URL。

内容的提问来源于stack exchange,提问作者Debugger

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 05:34:55