2016-04-21 1 views
0

J'utilise SOAP UI Pro pour l'automatisation des tests et je suis nouveau pour ça. J'utilise cet outil pour l'API Rest API. J'ai envoyé une demande de service POST et obtenu une réponse par exemple: identifiant unique, prénom, nom de famille. Maintenant, j'envoie une autre requête GET avec les paramètres d'entrée comme prénom, nom de famille de ma précédente requête POST (en utilisant l'étape de transfert de propriété) et en réponse j'ai un autre identifiant unique (réponse de GET).Comment comparer les valeurs de la réponse de deux requêtes différentes dans l'interface utilisateur SOAP en utilisant groovy?

Mon exigence est de comparer ces deux identifiants uniques à partir de ces deux réponses différentes en utilisant groovy et mark test pass ou fail basé sur le résultat. S'il vous plaît aider.

+0

Utilisez-vous du savon/repos (xml ou json) api? – Rao

+0

J'utilise repos (json) api –

+0

Pourquoi avez-vous besoin d'utiliser Groovy? Une telle assertion est traitée nativement dans SoapUI. – SiKing

Répondre

2

Vous pouvez accéder aux propriétés que vous souhaitez comparer et exécuter et assert en vérifiant la condition requise dans script groovy.

Votre commentaire dans votre question que vous utilisez une étape mais de transfert de propriété vous n'avez pas dit où vous stockez vos résultats en raison je suppose par exemple que vous stockez les valeurs dans TestCase propriétés :

// you've to use the name of the property you set in the property transfer step 
def fn = testRunner.testCase.getPropertyValue('firstName_firstResponse') 
def fn2 = testRunner.testCase.getPropertyValue('firstName_secondResponse') 
assert fn == fn2, "THE FIRST NAME AREN'T EQUALS" 

Dans le script groovy testStep contexte que vous avez un objet testRunner que vous pouvez utiliser pour accéder testCase, testSuite ... puis obtenir la propriété désirée.

Une autre approche possible est de faire la même chose, mais d'obtenir les propriétés directement à partir du response de votre testStep et effectuer XPath, à faire, vous pouvez donc utiliser le suivre le script groovy:

def fn = context.expand('${TestStepName_1#response#*://firstName}') 
def fn2 = context.expand('${TestStepName_2#response#*://firstName}') 
assert fn == fn2, "THE FIRST NAME AREN'T EQUALS" 

Comme testRunner l'objet context est déjà sur le contexte de groovy testStep. La notation utilisée dans context.expand est ${Test Step Name#response#XPath}.

Espérons que cela aide,

+0

Merci albciff, génial bro! Vous m'a sauvé. Et oui, je sauvegardais les valeurs précédentes dans le fichier de propriétés de test. Merci encore une fois. Je ne sais pas pourquoi ma question est '-1'. –

+0

@Python_Novice sympa de vous aider. Je ne fais pas le vote en bas mais est probablement dû aux détails manquants (je devine juste), essaye de mettre à jour votre réponse avec son, peut-être alors le downvoter vient encore une fois annuler l'action ... sinon au moins dans le futur peut-être que d'autres utilisateurs trouveront votre question utile et l'augmenteront ':)' – albciff