我正在尝试学习SoapUI,但我没有找到任何关于如何从Rest GET请求到Rest POST请求执行传输属性的好指南。
我从REST GET请求返回了以下有效负载
{
"a":"a",
"b": { "b1":"b1", "b2":"b2" },
"c":"c"
}
我想获取此JSON并删除c,然后将其余内容提交给POST请求。我想张贴
{
"a":"a",
"b": { "b1":"b1", "b2":"b2" },
}
我试图在SoapUI中做所有这些,但没有成功。我可以通过在source属性中说RseponseAsXML并且目标属性是Request来获取单个值。然后我使用命令//*:a
。但它只会返回该值。
我不希望这是xml,我正在严格使用JSON。 谢谢。
答案 0 :(得分:1)
如果您想操纵JSON响应以在其他TestStep
中使用,则更容易使用groovy TestStep
而不是Transfer testStep
。因此,使用以下代码创建groovy TestStep
并操纵响应:
import groovy.json.JsonSlurper
import groovy.json.JsonOutput
// get the response using the name of your test step
def response = context.expand('${REST Test Request#Response}')
// parse response
def jsonResp = new JsonSlurper().parseText(response)
// remove "c" element
jsonResp.remove("c")
// parse json to string in order to save it as a property
def jsonAsString = JsonOutput.toJson(jsonResp)
log.info jsonAsString // prints --> {"b":{"b1":"b1","b2":"b2"},"a":"a"}
// save the json response without "c" in a testCase property
testRunner.testCase.setPropertyValue('json_post',jsonAsString)
使用上面的代码解析响应,删除c
元素并保存为testCase
中的属性,然后在REST POST中,您可以使用以下代码获取新的JSON:< / p>
${#TestCase#json_post}
希望这有帮助,