我正在尝试解析 JMeter 中 API 1 的整个响应,并对有效负载进行一些更改,然后将其传递给下一个 API。
对于实例,我从 API 1 获取以下响应:
{ “环境”:[ { “id”:“123”, “数据库”:[ { “环境类型”:“abc”, “数据库名称”:“DB1”, “数据库大小”:10, “provisionType”:“无服务器”, “vCore”:2 }, { “环境类型”:“abc”, “数据库名称”:“DB2”, “数据库大小”:10, “provisionType”:“无服务器”, “vCore”:2 } ] } ] }
现在,仅当 dbName 为“DB2”时,我需要将配置类型修改为“已配置”,将 vCore 修改为 4,其余所有有效负载应保持不变。此修改后的 json 有效负载必须作为 API 2 中的输入传递。
我尝试使用以下库在 JSR223 后处理器中进行解析,但在准备 API 2 所需的请求时遇到问题。
import groovy.json.JsonOutput
import groovy.json.JsonSlurper
需要一些帮助。
您可以添加一个 JSR223 PostProcessor 作为返回上述 JSON 的请求的子项,并将以下代码放入“脚本”区域:
def json = new groovy.json.JsonSlurper().parse(prev.getResponseData())
json.environments.each { environment ->
environment.databases.each { database ->
if (database.dbName == "DB2") {
database.vCores = 4
database.provisionType = "provisioned"
}
}
}
vars.put('payload', new groovy.json.JsonBuilder(json).toPrettyString())
生成的有效负载可以在需要时以
${payload}
的形式访问
更多信息: