我是SoapUI的新手,剛剛配置了一個非常簡單的MockService。是否可以操縱響應,以便針對特定請求動態構建響應的元素?如何在SoapUI中返回動態響應MockService
方案1:
請求:
<record>
<identifier>ID1</identifier>
</record>
響應:
<response>
<child1>child 1</child1>
</response>
方案2:
請求:
<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)
}
我想你不是故意在示例的最後一行中將child_Text放在雙引號中。否則,變量child2Text永遠不會被讀取。 – 0x89 2010-11-23 19:17:39
對不起,一個錯誤。我會更正 – Ross 2010-11-24 06:42:27