Jestem nowym użytkownikiem SoapUI i właśnie skonfigurowałem bardzo prostą usługę MockService. Czy możliwe jest manipulowanie odpowiedzią, aby dla konkretnego żądania elementy odpowiedzi były dynamicznie budowane?Jak zwrócić odpowiedź dynamiczną w SoapUI MockService
Scenariusz 1:
Zapytanie:
<record>
<identifier>ID1</identifier>
</record>
Response:
<response>
<child1>child 1</child1>
</response>
Scenariusz 2:
Zapytanie:
<record>
<identifier>ID2</identifier>
</record>
Response:
<response>
<child2>child 2</child2>
</response>
Jest prostego testu i nie muszę go zrobić więcej niż powyższe. Jestem obecnie robi co następuje który daje wyniki, które chcę, ale ponieważ jestem zupełnie nowy w tym jestem pewien, że są lepsze alternatywy:
Response:
<response>
${dynElement}
</response>
Groovy skrypt:
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)
}
Myślę, że nie chciałeś umieścić podwójnego cudzysłowu wokół child2Text w ostatnim wierszu przykładu. W przeciwnym razie zmienna child2Text nigdy nie zostanie odczytana. – 0x89
przepraszam, pomyłka. Poprawię – Ross