JMeter解析API响应并修改指定字段后传递至后续API
JMeter 修改JSON响应并传递到下一个API的解决方案
你可以通过以下完整的JSR223 PostProcessor脚本来实现需求:
import groovy.json.JsonSlurper import groovy.json.JsonOutput // 获取API 1的响应内容 def response = prev.getResponseDataAsString() // 解析JSON为Groovy对象 def slurper = new JsonSlurper() def json = slurper.parseText(response) // 遍历environments和databases列表,定位目标数据库 json.environments.each { env -> env.databases.each { db -> if (db.dbName == "DB2") { // 修改指定字段值 db.provisionType = "provisioned" db.vCores = 4 } } } // 将修改后的对象转换为JSON字符串 def modifiedJson = JsonOutput.toJson(json) // 可选:格式化JSON方便查看 modifiedJson = JsonOutput.prettyPrint(modifiedJson) // 存储到JMeter变量,供API 2调用 vars.put("modifiedPayload", modifiedJson)
配置步骤:
- 在API 1的请求节点下添加JSR223 PostProcessor,粘贴上述代码
- 在API 2的请求体中,使用
${modifiedPayload}引用生成的变量 - 确认字段名与API响应完全匹配(注意大小写敏感)
排查要点:
- 若API 2请求异常,通过View Results Tree查看PostProcessor的执行日志,或添加Debug Sampler检查
modifiedPayload变量的内容 - 出现语法错误时,检查脚本的括号、引号是否闭合,确保JMeter使用的Groovy版本兼容
内容的提问来源于stack exchange,提问作者Kaushlendra Jha
相关产品推荐
相关产品推荐

