Comment faire pour retourner la réponse dynamique SoapUI MockService
Je suis nouveau sur SoapUI et venez de configurer une très simple MockService. Est-il possible de manipuler la réponse de sorte que, pour une demande particulière de la réponse des éléments sont construites dynamiquement?
Scénario 1:
Demande:
<record>
<identifier>ID1</identifier>
</record>
Réponse:
<response>
<child1>child 1</child1>
</response>
Scénario 2:
Demande:
<record>
<identifier>ID2</identifier>
</record>
Réponse:
<response>
<child2>child 2</child2>
</response>
C'est pour un simple test et je n'ai pas besoin de faire plus que ce qui précède. Je suis actuellement en train de faire le suivant qui donne les résultats que je veux, mais depuis que je suis complètement nouveau à cela, je suis sûr qu'il existe de meilleures alternatives:
Réponse:
<response>
${dynElement}
</response>
Groovy script:
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)
}
Je pense que vous n'avez pas moyen de mettre des guillemets autour de child2Text dans la dernière ligne de l'exemple. Sinon, la variable child2Text n'est jamais lu.
oui désolé, une erreur. Je vais corriger
oui désolé, une erreur. Je vais corriger
OriginalL'auteur Ross | 2010-05-27
Vous devez vous connecter pour publier un commentaire.
Je le fais avec "réponses standardisées" et des requêtes xpath. Pour ce faire, vous serez mis en place une série d'expédition des gestionnaires dans la mockservice pour correspondre à requsts avec respones. Supposons que vous avez Request1, Request2, Response1, Response2. Utiliser la Requête "Match" méthode dispatch, pour correspondre à une expression XPATH. Sur ce match, le retour de la réponse désirée. c'est à dire si vous trouvez ID1 le xpath, le retour de la conserve Response1.
Aussi, la version PRO qui fait un excellent travail avec le XPATH, de sorte que vous n'avez pas à main code. c'est à dire qu'il peut regarder une réponse, cliquez sur la chose que vous voulez déclencher (dans votre cas, ID1), et il s'appuie l'expression XPATH pour vous. J'ai demandé une licence PRO, juste en fonction. Actuellement en attente de la budgétisation...
De l'OMI, beaucoup plus facile de commencer que de déterminer groovy.
Chris
OriginalL'auteur Chris Thornton
Au lieu de xpath, vous pouvez également utiliser XmlSlurper.
Sans vergogne arraché de cette question de l' réponses, s'il vous plaît ne pas me faire de mal.
OriginalL'auteur 0x89