我是 SoapUI 的新手,刚刚配置了一个非常简单的 MockService。是否可以操纵响应,以便针对特定请求动态构建响应的元素?
场景一:
要求:
<record>
<identifier>ID1</identifier>
</record>
回复:
<response>
<child1>child 1</child1>
</response>
场景二:
要求:
<record>
<identifier>ID2</identifier>
</record>
回复:
<response>
<child2>child 2</child2>
</response>
这是一个简单的测试,我不需要它做任何比上面更多的事情。我目前正在执行以下操作以产生我想要的结果,但由于我对此完全陌生,我相信有更好的选择:
回复:
<response>
${dynElement}
</response>
Groovy 脚本:
def groovyUtils = new com.eviware.soapui.support.GroovyUtils(context)
def holder = groovyUtils.getXmlHolder(mockRequest.requestContent)
def reqRef = String.valueOf(holder.getNodeValue("//identifier"))
def child1Text = "<child1>child 1</child1>"
def child2Text = "<child2>child 2</child2>"
if (reqRef == "ID1") {
context.setProperty("dynElement", child1Text)
} else if (reqRef == "ID2") {
context.setProperty("dynElement", child2Text)
}