在JMeter中解析API Json响应,并根据特定条件修改几个值来创建有效负载

d5vmydt9  于 2023-10-20  发布在  其他
关注(0)|答案(1)|浏览(91)

我尝试在JMeter中解析来自API 1的整个响应,并在有效负载中进行一些更改,然后将其传递给下一个API。
对于示例,我从API 1获取以下响应:
{“environments”:[ {“id”:“123”,“数据库”:[ {“environmentType”:“abc”,“dbName”:“DB1”,“dbSize”:10,“provisionType”:“无服务器”、“vCores”:2 },{“environmentType”:“abc”,“dbName”:“DB2”,“dbSize”:10,“provisionType”:“无服务器”、“vCores”:2 } ]] }
现在,我需要将配置类型修改为“provided”,并且仅当dbName为“DB2”时才将vCores修改为4,其余所有负载应保持不变。这个修改后的json payload必须作为API 2中的输入传递。
我尝试在JSR 223后处理器中使用以下库进行解析,但在准备API 2所需的请求时遇到了问题。

import groovy.json.JsonOutput
import groovy.json.JsonSlurper

需要一些帮助。

mm9b1k5b

mm9b1k5b1#

您可以添加一个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}访问
更多信息请参阅:

相关问题