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

如何在JMeter中利用CSV测试数据生成自定义JSON请求负载?

一次性生成包含全部200个SKU的JSON请求负载方案

1. 添加JSR223 PreProcessor到目标请求前

通过Groovy脚本读取CSV所有SKU并构建JSON数组,操作步骤:

  • 右键目标请求 → 添加 → 前置处理器 → JSR223 PreProcessor
  • 在"脚本"框中粘贴以下代码:
// 替换为你的CSV实际路径
def csvPath = "C:\\Users\\..\\Documents\\testData.csv"
def csvFile = new File(csvPath)
def skuList = []

// 读取CSV内容(无表头时用这段,有表头看下方注意事项)
csvFile.eachLine { line ->
    // 去除每行首尾空格,避免无效数据
    def sku = line.trim()
    if (sku) {
        skuList.add(sku)
    }
}

// 构建符合需求的JSON结构(示例结构为{"skus": ["sku1", "sku2", ...]})
def jsonBuilder = new groovy.json.JsonBuilder()
jsonBuilder {
    skus skuList
}

// 将生成的JSON存入JMeter变量,供请求调用
vars.put("fullSkuPayload", jsonBuilder.toString())

2. 配置请求负载

在你的请求(如Dummy Sampler或HTTP请求)的Body区域,直接引用变量:

${fullSkuPayload}

关键注意事项

  • 如果CSV有表头,需要跳过第一行,修改脚本中的读取部分:
    def isFirstLine = true
    csvFile.eachLine { line ->
        if (isFirstLine) {
            isFirstLine = false
            return
        }
        def sku = line.trim()
        if (sku) {
            skuList.add(sku)
        }
    }
    
  • Windows路径需用双反斜杠\\转义,或者改用正斜杠/
  • 优先使用Groovy作为脚本语言(JMeter默认推荐,性能最优)
  • 若SKU包含引号、反斜杠等特殊字符,JsonBuilder会自动处理转义,无需手动操作

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 12:25:00