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

如何在JMeter中动态将CSV文件数据传入JSON请求体?

在JMeter中通过CSV动态生成复杂JSON请求体

1. 准备CSV测试数据文件

根据测试需求创建CSV文件(例如test_data.csv),每行对应一个完整的JSON请求体。注意CSV字段需用双引号包裹,内部的双引号要转义为两个双引号,示例格式如下:

"{""rejectedData"": [{""bi"": ""20200624061722601"", ""r"": ""413450"", ""h"": ""HUL-1000067687"", ...}], ""pointAdjustedBillsInfo"": [...]}"
"{""rejectedData"": [{""bi"": ""测试值2"", ""r"": ""413451"", ...}], ...}"

如果需要拆分JSON的各个顶级数组单独维护,可将每个数组的JSON字符串作为CSV的一列,表头对应字段名:

rejectedData,pointAdjustedBillsInfo,pointsReversalInfo,pointsEarnedInfo
"[{""bi"": ""20200624061722601"", ...}]", "[{""bi"": ""20200624061722601"", ...}]", "[{""bi"": ""20200624061722601"", ...}]", "[{""bi"": ""20200624061722601"", ...}]"

2. 配置CSV数据读取元件

在JMeter线程组下添加CSV Data Set Config元件,配置参数:

  • 文件名:填写CSV文件的绝对路径或相对路径(例如./test_data.csv)
  • 文件编码:选择UTF-8
  • 变量名称:如果是单行完整JSON,填写REQUEST_BODY;如果是拆分字段,填写对应表头名称(例如rejectedData,pointAdjustedBillsInfo,pointsReversalInfo,pointsEarnedInfo)
  • 分隔符:单行完整JSON时留空,拆分字段时用逗号,
  • 允许带引号:勾选(确保CSV中的双引号能被正确解析)
  • 循环控制:根据测试场景选择,例如“下一行”实现按行遍历数据,“循环”则重复使用数据

3. 修改HTTP请求体为动态引用

方式1:直接引用完整JSON变量

在HTTP请求的Body Data中,直接写入CSV定义的变量:

${REQUEST_BODY}

方式2:拼接拆分的数组字段

如果使用拆分字段的CSV格式,在Body Data中拼接JSON结构,引用对应变量:

{
    "rejectedData": ${rejectedData},
    "pointAdjustedBillsInfo": ${pointAdjustedBillsInfo},
    "pointsReversalInfo": ${pointsReversalInfo},
    "pointsEarnedInfo": ${pointsEarnedInfo}
}

4. 验证请求体生成结果

添加查看结果树元件,运行测试后检查每个请求的请求体,确认CSV中的数据已正确动态加载到JSON中。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 17:11:16