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

JMeter实操:Thread Group-1获取JSON并修改后在Thread Group-2发送PUT请求

JMeter跨线程组传递并修改JSON的实现步骤

一、线程组1:获取原始JSON并全局存储

  • 添加HTTP请求(GET类型),填好目标接口地址和必要参数,确保能拿到示例中的JSON响应。
  • 用JSON Extractor提取完整响应:JSON Path Expression填$(匹配整个JSON),Reference Name设为originalJson,整个响应会存在这个变量里。
    或者直接用JSR223 PostProcessor写Groovy脚本存:
    def response = prev.getResponseDataAsString()
    vars.put("originalJson", response)
    
  • 线程组之间变量不共享,得把originalJson存到全局属性里,再加个JSR223 PostProcessor,脚本:
    props.put("globalJson", vars.get("originalJson"))
    

二、修改JSON内容

推荐在线程组2开头加JSR223 PreProcessor,读取全局JSON并修改:

// 解析全局存储的JSON
def jsonSlurper = new groovy.json.JsonSlurper()
def jsonObj = jsonSlurper.parseText(props.get("globalJson"))

// 按需修改字段,示例如下:
jsonObj.glossary.title = "modified glossary" // 修改顶层title
jsonObj.glossary.GlossDiv.GlossList.GlossEntry.ID = "NEW_SGML" // 修改嵌套ID
jsonObj.glossary.GlossDiv.GlossList.GlossEntry.GlossDef.GlossSeeAlso[0] = "HTML" // 修改数组元素

// 转成格式化字符串,存到线程组2的变量里
def modifiedJson = new groovy.json.JsonBuilder(jsonObj).toPrettyString()
vars.put("modifiedJson", modifiedJson)

Groovy处理嵌套JSON和数组都很灵活,按实际需求改字段就行。

三、线程组2:发送PUT请求

  • 添加HTTP请求(PUT类型),填好目标接口地址。
  • 请求体选Body Data,输入${modifiedJson},把修改后的JSON作为请求体发送。
  • 记得加HTTP Header Manager,设置Content-Type: application/json,保证接口能正确解析请求体。

四、调试验证

  • 每个步骤可以加Debug Sampler和View Results Tree,查看变量、属性的值,确认JSON修改正确。
  • 检查PUT请求的响应,验证接口是否正确处理了修改后的JSON。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 04:24:17