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

在JMeter中从CSV读取多值填充POST请求的FilterData JSON数组

从CSV读取多值填充FilterData JSON数组的实现方案

核心逻辑是先读取CSV文件中所有ContractorId转为列表,再直接赋值给FilterData字段即可,以下是不同常用工具的具体实现:

Postman 实现

  • 准备CSV文件,第一行表头为contractorId,每行对应一个ID值,示例格式:
contractorId
LoadTest92
LoadTest93
LoadTest94
  • 打开对应请求的Pre-request Script标签,写入如下代码:
// 读取CSV全量数据提取所有ID
const csvData = pm.iterationData.values.all();
const idList = csvData.map(item => item.contractorId);
// 更新请求体的FilterData字段
const body = JSON.parse(pm.request.body.raw);
body.FilterData = idList;
pm.request.body.raw = JSON.stringify(body);
  • 运行Collection Runner时选择对应CSV文件,即可自动将所有ID填充为FilterData数组。

JMeter 实现

  • 添加CSV Data Set Config元件,配置对应CSV文件路径,变量名设置为contractorId,Delimiter设为\n,Recycle on EOF设为False,Stop thread on EOF设为True。
  • 添加JSR223 PreProcessor前置处理器,写入如下代码:
// 读取所有ID转为列表
def idList = []
new File("你的CSV文件绝对路径").eachLine { line, lineNum ->
    // 跳过第一行表头
    if (lineNum > 1) {
        idList.add(line.trim())
    }
}
// 转为JSON数组存入变量
vars.put("filterData", new groovy.json.JsonBuilder(idList).toPrettyString())
  • 请求体中FilterData字段直接引用变量即可:"FilterData": ${filterData}

Python 脚本实现

  • 先安装依赖:pip install requests pandas
  • 示例代码如下:
import requests
import pandas as pd

# 读取CSV提取所有ID
df = pd.read_csv("你的CSV文件路径.csv")
contractor_ids = df["contractorId"].tolist()

# 构造请求体
payload = {
    "ABC": "ITBK1",
    "Code": "AH01001187",
    "ScheduleDate": "${startTo}",
    "FilterType": 2,
    "FilterData": contractor_ids
}

# 发送POST请求
resp = requests.post("你的接口请求地址", json=payload)
print(resp.status_code, resp.json())

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 06:09:03