我有两个请求,第一个是GET,第二个是PUT。我应该从GET请求接收响应数据,稍微修改一下并发送PUT请求。到目前为止,我设法做了所有事情,除了修改响应数据。
JSON结构:
{
"property1" : 1,
"property2" : "2",
"innerPropery" : {
"innerProperty1" : "value1",
"innerProperty2" : "value2",
"innerProperty3" : "value3"
}
}
我应该更改innerProperty2。
谢谢!
答案 0 :(得分:4)
您可以在没有正则表达式提取器临时步骤的情况下执行此操作。
getForm
请求的子项groovy
;下拉将以下代码放入"脚本"面积:
import groovy.json.JsonBuilder
import groovy.json.JsonSlurper
def response = prev.getResponseDataAsString()
def json = new JsonSlurper().parseText(response)
def builder = new JsonBuilder(json)
builder.content.property2 = '2.1'
vars.put("response", builder.toPrettyString())
saveForm
请求中使用${response}
作为请求正文参考文献:
答案 1 :(得分:0)
我已经设法通过BeanShell PostProcessor完成了这项工作。首先,我添加了一个新的BeanShell PostProcessor:在getFrom上单击右键,添加 - >后处理器 - > BeanShell PostProcessor。之后,我打开了重新使用的BeanSChell,并在Script字段中编写了以下代码:
responseString = vars.get("response");
log.info("Received response: " + responseString);
responseString = responseString.replace("\"prop1\" : \"value2\"", "\"prop1\" : \"value2.1\"");
log.info("Response to send: " + responseString);
vars.put("modifiedResponse", responseString);
在参数字段中,我写道:
response
最后,我改变了PUT请求身体
${response}
到
${modifiedResponse}