2014-08-28 2 views
0

Je suis en train de simuler une réponse asynchrone sur une maquette de webservice. Le but est de répondre à un message d'accusé de réception synchrone, puis de renvoyer un message retardé à l'adresse replyTo. L'approche que j'ai sélectionnée utilise un service de simulation qui traitera l'accusé de réception, puis exécutera un scénario de test qui traitera le message traité dans le message replyTo. J'utilise OnRequest Script pour générer le message reconnu et AfterRequest Script pour exécuter le scénario de test qui va émuler le délai et la réponse à la réponse.L'accès à l'intérieur requestContent AfterRequest Script SoapUI

La question est quel objet script que je peux utiliser pour avoir accès au requestContent. J'ai vu des exemples d'utilisation:

def holder = new com.eviware.soapui.support.XmlHolder(mockRequest.requestContent) 

mais mockRequest instance n'est pas disponible sur AfterRequest, quel objet je peux utiliser au lieu d'avoir un support avec le contenu de la demande?

Répondre

0

Je ne trouve que

def holder = new com.eviware.soapui.support.XmlHolder(mockResult.getMockRequest().requestContent) 

faire l'affaire, mais maintenant je trouve que l'exécution d'un script de test en AfterRequest retarde retour la réponse synchrone, Pourquoi cela pourrait-il se produire? Le script d'AfterRequest n'est-il pas exécuté après la réponse du service de simulation? Dois-je exécuter explicitement quelque chose à Dispatch ou à OnRequest afin de remonter la réponse avant l'exécution du code AfterRequest?

-1

Je sais que c'est vraiment vieille question, mais je ne me fait face à la même question. Je n'ai aucune idée de la raison pour laquelle cela fonctionne, mais vous pouvez éviter le problème en accédant au contenu de la demande dans OnRequest, puis stocker les informations nécessaires dans le contexte et utiliser le contexte dans AfterRequest pour obtenir les informations dont vous avez besoin.