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

能否通过Gatling脚本实现文件本地下载?

Gatling脚本实现文件下载到本地磁盘

Gatling完全支持将文件下载到本地磁盘,你之前脚本执行成功但未生成文件,是因为默认情况下Gatling仅校验HTTP响应的状态码、头信息等元数据,不会自动将响应体写入本地磁盘。要实现文件持久化,需要手动捕获响应内容并执行写入操作。

实现示例代码

import io.gatling.core.Predef._
import io.gatling.http.Predef._
import java.nio.file.{Files, Paths}

class FileDownloadSimulation extends Simulation {
  val httpProtocol = http
    .baseUrl("https://your-target-domain.com") // 替换为文件所在的基础域名

  val scn = scenario("Download and Save File")
    // 发起下载请求,捕获响应字节流
    .exec(http("Fetch Target File")
      .get("/download/path/your-file.pdf") // 替换为实际文件的下载路径
      .check(bodyBytes.saveAs("downloadedBytes")))
    // 将捕获的字节流写入本地文件
    .exec(session => {
      val fileContent = session("downloadedBytes").as[Array[Byte]]
      val savePath = Paths.get("/your/local/save/path/your-file.pdf") // 替换为本地保存路径
      Files.write(savePath, fileContent)
      session
    })

  setUp(scn.inject(atOnceUsers(1))).protocols(httpProtocol)
}

关键注意事项

  • 确保本地保存路径具备写入权限,否则会抛出IO异常
  • 若下载超大文件,直接加载整个响应到内存可能导致内存溢出,建议结合Scala的流操作实现分块写入
  • 脚本执行后,可检查Gatling日志排查是否存在路径错误、权限不足等问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 01:05:46