私は 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>
グルーヴィーなスクリプト:
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)
}