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
相关产品推荐
相关产品推荐

