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

如何在JMeter的POST请求中向JSON数组插入多个取值

问题根源

  1. 你最初的__CSVRead函数用法不符合需求:__CSVRead(${companyId}.csv,next)仅会将文件读取指针移动到下一行,你写的表达式仅会读取1次ID值,不会循环读取CSV文件的所有行,因此只能拿到第一个ID。
  2. 后续修改CSV为单行带引号格式的操作引发了JSON格式错误:CSV读取出来的内容自带双引号,直接塞入JSON数组后会出现嵌套引号、逗号被识别为字符串内容的问题,接口无法将带多余符号的字符串转为Int64类型,因此返回报错。

最优解决方案

直接使用JSR223预处理组件生成符合格式的ID数组,不需要修改原有CSV格式(保持每行一个ID的原始格式即可),操作步骤如下:

  1. 在发送POST请求的HTTP采样器前,新增JSR223预处理程序,语言选择groovy
  2. 填入以下代码:
// 读取对应用户的CSV文件
def csvFile = new File(vars.get("companyId") + ".csv")
def idList = []
// 逐行读取ID,自动跳过空行
csvFile.eachLine { line ->
    def id = line.trim()
    if (id) {
        idList.add(id as Long)
    }
}
// 直接生成符合JSON格式的数组字符串存入变量
vars.put("idsArrayStr", new groovy.json.JsonBuilder(idList).toString())
  1. 修改HTTP请求的JSON请求体,直接引用生成好的变量即可:
{"Ids": ${idsArrayStr}, ......}

该方案会自动处理所有格式问题,不需要手动拼接逗号、引号,生成的数组完全符合JSON规范,不会出现类型转换错误。


内容的提问来源于stack exchange,提问作者simón

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 11:54:03