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

如何在JMeter脚本中提取CSV内容并按指定格式传入文件上传请求体?

问题1:从CSV文件提取内容并传入JMeter请求体

1. 添加CSV数据配置元件

  • 在测试计划/线程组下,右键选择「添加」→「配置元件」→「CSV数据文件设置」
  • 核心配置:
    • 文件名:填写CSV文件的绝对路径,或相对JMeter bin目录的路径
    • 变量名称:按CSV列顺序定义变量名,例如assessment,componentId,centre,candidateNo(需和CSV表头一一对应)
    • 分隔符:默认逗号,若CSV用其他分隔符(如制表符)需修改
    • 编码:根据文件实际编码选择(如UTF-8)
    • 循环控制:若需遍历所有CSV行,勾选「在EOF处循环」

2. 在请求体中引用变量

  • 打开HTTP请求的「请求体」(或对应参数标签),用${变量名}直接引用,比如JSON格式的请求体:
{
  "assessment": "${assessment}",
  "componentId": "${componentId}",
  "centre": "${centre}",
  "candidateNo": "${candidateNo}"
}

3. 验证变量替换

  • 添加「查看结果树」元件,运行脚本后查看请求内容,确认变量已被CSV行数据正确替换

问题2:按指定格式上传多文件(含100行数据的CSV)

你给出的是multipart/form-data类型的文件上传请求,JMeter原生支持该格式,无需手动拼接边界和内容,操作步骤如下:

1. 配置HTTP请求为文件上传模式

  • 打开HTTP请求,切换到「文件上传」标签
  • 点击「添加」按钮,逐行配置文件信息:
    • 文件路径:填写文件的绝对/相对路径
    • 参数名称:必须与接口要求一致,即示例中的ctl00$ContentPlaceHolder1$fuSpreadsheet
    • MIME类型:填写text/csv(对应示例里的Content-Type)
    • 文件名:设置上传时显示的文件名(如File.csv,可固定或用变量动态生成)
  • 上传多个文件时,重复「添加」操作配置每个文件

2. 处理大文件(100行CSV)

  • JMeter默认支持大文件上传,只需确保文件路径正确即可
  • 若需动态生成文件内容(而非读取本地文件),可结合「CSV数据设置」+「BeanShell预处理程序」生成临时文件:
    • 示例BeanShell脚本(生成CSV内容并写入临时文件):
import java.io.FileWriter;

String csvContent = "Assessment,Component ID,Centre,Candidate No\n";
// 循环读取CSV数据拼接内容(示例取5行,可扩展至100行)
for (int i=0; i<5; i++) {
    csvContent += "${assessment},${componentId},${centre},${candidateNo}\n";
}
FileWriter writer = new FileWriter("dynamic_file.csv");
writer.write(csvContent);
writer.close();
vars.put("dynamicFilePath", "dynamic_file.csv");
  • 在「文件上传」的「文件路径」中引用${dynamicFilePath}即可

3. 自动处理请求边界

  • JMeter会自动生成类似------WebKitFormBoundaryCiwylbob4VrtpsP3的边界字符串,并自动添加Content-Type: multipart/form-data; boundary=自动生成的边界请求头,无需手动编写

4. 验证上传格式

  • 添加「查看结果树」,切换到「请求」标签查看「RAW」格式,确认请求内容与示例一致

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 13:01:55