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

问题描述 投票:0回答:1

我正在尝试解析 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

需要一些帮助。

json jmeter beanshell jsr223
1个回答
0
投票

您可以添加一个 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}
的形式访问

更多信息:

© www.soinside.com 2019 - 2024. All rights reserved.