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

如何在JMeter的JSON请求中追加字段?批量处理10K JSON文件

问题描述

我们有一个存储了10K个JSON请求载荷的文件,需要通过JMeter逐个发送这些请求,但在发送前要为每个JSON追加指定字段。

追加前的JSON格式:

{
  "data": [{
    "type": "articles",
    "id": "1",
    "attributes": {
      "title": "JSON:API paints my bikeshed!",
      "body": "The shortest article. Ever."
    },
    "relationships": {
      "author": {
        "data": {"id": "42", "type": "people"}
      }
    }
  }],
  "included": [
    {
      "type": "people",
      "id": "42",
      "attributes": {
        "name": "John"
      }
    }
  ]
}

追加后的目标格式(需添加"Gender": "Male"字段):

{
  "data": [{
    "type": "articles",
    "id": "1",
    "attributes": {
      "title": "JSON:API paints my bikeshed!",
      "body": "The shortest article. Ever."
    },
    "relationships": {
      "author": {
        "data": {"id": "42", "type": "people"}
      }
    }
  }],
  "included": [
    {
      "type": "people",
      "id": "42",
      "attributes": {
        "name": "John",
        "Gender": "Male"
      }
    }
  ]
}
实现方案

1. 加载JSON文件

使用JMeter的CSV Data Set Config组件读取存储JSON的文件:

  • 将组件添加到线程组下
  • 填写Filename为你的JSON文件路径
  • 设置Variable Names为payload(用于存储每行读取到的JSON内容)
  • 把Delimiter设为\n(假设每个JSON单独占一行,若文件是其他分隔方式需对应调整)
  • 勾选Allow quoted data,避免JSON中的引号干扰读取逻辑

2. 修改JSON内容

在HTTP请求前添加JSR223 PreProcessor,选择Groovy作为脚本语言(Groovy处理JSON性能更优),写入以下代码:

// 读取原始JSON内容
def originalPayload = vars.get("payload")
// 解析JSON为可操作的对象
def json = new groovy.json.JsonSlurper().parseText(originalPayload)

// 遍历included数组,为people类型的对象追加Gender字段
json.included.each { item ->
    if (item.type == "people") {
        item.attributes.Gender = "Male"
    }
}

// 将修改后的JSON转为字符串,存入变量
def modifiedPayload = new groovy.json.JsonBuilder(json).toPrettyString()
vars.put("modifiedPayload", modifiedPayload)

3. 配置HTTP请求

在HTTP请求的Body Data中引用修改后的变量:

${modifiedPayload}

这样JMeter就会逐个读取JSON文件中的内容,完成字段追加后再发送请求。如果你的JSON结构有变化,只需调整Groovy代码中对应的字段路径即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 02:37:48