You need to enable JavaScript to run this app. JMeter如何从CSV数据配置元件读取多行数据同时用于单个接口请求体
优惠活动
大模型
产品
解决方案
定价
更多

JMeter如何从CSV数据配置元件读取多行数据同时用于单个接口请求体

JMeter 单请求引用CSV多行数据构造JSON数组配置方案

方案说明

直接通过JSR223预处理脚本读取CSV文件并构造目标JSON格式,无需依赖默认CSV数据集配置的逐行读取逻辑,适配任意行数的拼接需求。

具体配置步骤

  • 第一步:在目标HTTP请求下添加JSR223 预处理程序,语言选择groovy
  • 第二步:将以下脚本填入预处理程序的脚本输入框,按需修改参数:
import groovy.json.JsonBuilder
import groovy.csv.CsvParser

// 替换为你的CSV文件实际路径,建议使用绝对路径避免读取失败
def csvFile = new File("C:/test/data.csv")
// 配置CSV表头、跳过首行表头,读取所有数据行
def csvRows = new CsvParser().parse(csvFile, header: ['Name','Pass','ID','a_ID','f_ID'], skipFirstLine: true)
def payloadList = []

csvRows.each { row ->
    // 按业务需求配置字段类型,数字类型不需要加引号,字符串类型直接取值即可
    def item = [
        Name: row.Name,
        Pass: row.Pass as Integer,
        ID: row.ID as Integer,
        a_ID: row.a_ID,
        f_ID: row.f_ID as Integer
    ]
    payloadList.add(item)
}
// 将生成的JSON数组存入变量,后续直接引用
vars.put("requestPayload", new JsonBuilder(payloadList).toString())
  • 第三步:配置HTTP请求的信息头,添加Content-Type字段,值为application/json
  • 第四步:将HTTP请求的请求体内容直接设置为${requestPayload}即可

特殊场景适配

如果你不需要单次请求发送CSV全部数据,而是每次固定发送N行(比如每次发3行),可以改用以下配置逻辑:

  1. 先添加CSV数据集配置,填写CSV路径、变量名Name,Pass,ID,a_ID,f_ID,设置「遇到文件结束符再次循环」为False,「遇到文件结束符停止线程」为True
  2. 在JSR223预处理程序中使用以下脚本:
import groovy.json.JsonBuilder
// 单次请求需要读取的行数
def linePerRequest = 3
def payloadList = []

(linePerRequest).times {
    def item = [
        Name: vars.get("Name"),
        Pass: vars.get("Pass") as Integer,
        ID: vars.get("ID") as Integer,
        a_ID: vars.get("a_ID"),
        f_ID: vars.get("f_ID") as Integer
    ]
    payloadList.add(item)
}
vars.put("requestPayload", new JsonBuilder(payloadList).toString())

注意事项

  • 字段类型转换需和实际业务保持一致,如果你的Pass/ID等字段是字符串格式,删除as Integer即可
  • Groovy脚本性能远高于BeanShell,不要修改脚本语言选项
  • 相对路径默认是相对于JMeter的bin目录,不确定路径的情况下优先使用绝对路径

内容的提问来源于stack exchange,提问作者Muhammad Ibraheem Ajmal

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.21 23:24:04