understanding assertions soapui soapui tutorial 5
Nous avons travaillé sur les bases de SoapUI comme créer des projets, ajouter WSDL, envoyer une demande et recevoir des réponses et générer des ressources de test pour les accompagner jusqu'à présent.
Dans ce 5e tutoriel SoapUI, nous apprendrons tout sur les assertions dans SoapUI. Nous vous recommandons fortement de suivez la série complète de formations SoapUI sur cette page pour apprendre toutes ces fonctionnalités de base.
Ce que vous apprendrez:
- Introduction aux assertions
- Travailler avec différents types d'assertions dans SoapUI
- Conclusion
- lecture recommandée
Introduction aux assertions
Comme pour tout test, nous devons comparer ce que nous voulons que le système fasse et ce qu'il fait réellement, pour arriver à une certaine validation ou assertion, ce que l'on appelle dans le contexte des services Web. En tant que testeurs, peu importe que nous exécutions 1000 ou même millions d'étapes de test, mais pour nous, la comparaison des résultats est ce qui détermine le résultat d'un test.
Par conséquent, nous passerons tout cet article à comprendre comment nous pouvons faire cela avec SoapUI, bien que les services Web puissent être affirmés manuellement. En outre, une assertion manuelle prend du temps lorsqu'il y a plusieurs réponses et réponses avec des données volumineuses. Les affirmations de SoapUI sont excellentes pour surmonter ces lacunes.
Assertions SOAPUI comparer les parties / l'ensemble du message de réponse au résultat attendu. Nous pouvons ajouter une variété d'assertions fournies par SoapUI à n'importe quelle étape de test. Chaque type d'assertion cible des validations spécifiques sur la réponse telles que le texte correspondant, la comparaison de XPATH ou nous pourrions également écrire des requêtes en fonction de nos besoins.
Lorsque les étapes de test sont exécutées, les assertions associées reçoivent la réponse pour les étapes de test respectives. Si une réponse échoue, l'assertion correspondante sera traitée et l'étape de test correspondante sera marquée comme échouée. Cette notification peut être affichée dans la vue du scénario de test. En outre, nous pouvons trouver les étapes de test ayant échoué dans le journal d'exécution des tests. L'écran d'assertion de l'exemple d'étape de test se présente comme suit:
Dans l'image ci-dessus, certaines des étapes de test ont échoué et certaines d'entre elles ont réussi. La raison est l'affirmation.
Comme nous l'avons vu précédemment, si la condition d'assertion n'est pas remplie avec les résultats attendus, le résultat est ECHEC.
Travailler avec différents types d'assertions dans SoapUI
Voyons maintenant comment travailler avec différents types d'assertions comme:
- Contient et ne contient pas d'assertions
- Correspondance XPath et
- Assertions de correspondance XQuery.
Tout d'abord, nous avons besoin d'un emplacement de schéma WSDL valide.
Suivez les étapes ci-dessous:
Étape 1. Créer un nouveau projet SOAP en appuyant sur CTRL + N et suivez les étapes. Après avoir créé le projet, SOAPUI génère la liste des interfaces et les requêtes correspondantes.
Étape 2. Pour ajouter la suite de tests à ce projet, procédez comme suit:
- Faites un clic droit sur le nom de l'interface MedicareSupplierSavon
- Cliquez sur Générer la suite de tests option du menu contextuel
- Cliquez sur OK dans la fenêtre ci-dessous qui apparaît:
- Dans la fenêtre contextuelle suivante, vous devez entrer le nom de la suite de tests souhaitée et cliquez sur OK
- SOAPUI PRO générera la suite de tests avec les requêtes dans le panneau du navigateur.
- Sous la suite de tests, vous verrez certaines des étapes de test avec l'étape de requête SOAP.
Étape 3. Pour exécuter cette suite de tests, double-cliquez sur l'étape de requête et spécifiez la valeur d'entrée à l'emplacement respectif. Par exemple, ouvrez GetSupplierByCity demander et entrer New York entre les balises de la ville.
- Démarrez cette demande en cliquant sur l'icône RUN - cela recevra la réponse.
- Ajoutons maintenant des affirmations. Pour cela, cliquez sur le Assertions onglet présent en haut des onglets du journal.
- En cliquant avec le bouton droit, un menu contextuel apparaîtra avec quelques options de base liées aux assertions comme ci-dessous:
# 1) Contient une assertion
Cliquez sur l'option Ajouter une assertion ou cliquez dessus dans la barre d'outils - Ajouter une assertion apparaît à l'écran avec différents types d'assertions.
1. Cliquez sur Contenu de la propriété catégorie de la liste - les types d'assertions associés et leur description sont affichés
2. Cliquez sur Contient assertion et cliquez sur le bouton Ajouter
3. Voici la fenêtre de configuration des assertions. Ici même, nous devons spécifier la condition attendue en fonction de la réponse.
Par exemple est, laisse moi entrer New York texte dans ce champ de texte. Ignorer la casse en comparaison la case à cocher ignorera même si la valeur attendue est en majuscules ou en minuscules.
4. Exécutez maintenant la suite de tests et vérifiez les résultats. Comme vous l'avez vu dans la fenêtre de la suite de tests, le vert indique l'exécution réussie et le rouge indique l'échec.
# 2) Ne contient pas d'assertion
Nous pouvons utiliser l'assertion «ne contient pas» pour valider les demandes dans des scénarios négatifs. On peut utiliser GetSupplierByZipCode demande d'apprendre cela.
Ouvrez l'onglet de demande en double-cliquant dessus. Dans la demande d'entrée, saisissez le code postal non valide à l'emplacement approprié, tel que 10029 . Exécutez cette demande maintenant. Vérifiez les données de réponse qui contiennent les détails du fournisseur pour le code postal donné - regardez l'image ci-dessous:
(Cliquez sur l'image pour une vue agrandie)
L'assertion «ne contient pas», elle est surlignée en vert lorsqu'elle est exécutée avec succès.
Dans la fenêtre de configuration, nous avons configuré avec une valeur attendue positive comme ci-dessous:
Il renvoie true si la valeur conditionnelle attendue n'est pas trouvée et renvoie false si la valeur attendue est trouvée dans le message de réponse.
De même, nous pouvons modifier la condition et exécuter à nouveau la demande. Il génère les résultats en conséquence.
# 3) Assertion de correspondance XPath
L'assertion de correspondance XPath est un peu différente en ce sens qu'elle affirmera la réponse en utilisant les données de réponse réelles.
Par exemple , si nous avons un service Web d'authentification de connexion qui authentifiera les informations d'identification de l'utilisateur et enverra l'accusé de réception au client avec un type de données booléen qui peut être TRUE ou FALSE sous la forme de XML.
Comme vous le savez, les documents XML sont construits par des balises. Ainsi, lorsque vous spécifiez la valeur attendue dans la configuration, elle doit être sous la forme de XML.
meilleures applications de téléchargement de mp3 pour Android
Essayons de faire ça:
Ajoutez une autre assertion pour le GetSupplierByCity demander. Dans la fenêtre Ajouter une assertion, cliquez sur l'icône Contenu de la propriété catégorie puis cliquez sur Correspondance XPath affirmation.
La fenêtre ci-dessous s'affiche:
La section supérieure est la partie déclaration et la section inférieure est la partie résultat attendu.
Lorsque nous cliquons sur le Déclarer option, nous obtiendrons des scripts de déclaration générés automatiquement comme ci-dessous:
declare namespace soap = ’http: //schemas.xmlsoap.org/soap/envelope/’;
declare namespace ns1 = ’http: //www.webservicex.net/’;
Dans les scripts ci-dessus, la première ligne indique la réponse qui doit être des données XML et des balises SOAP incluses. Dans la ligne suivante, toute la réponse sera attribuée ou copiée dans le ns1 variable d'espace de noms lors de l'exécution. Si nous voulons filtrer des données particulières de l'ensemble de la réponse, nous devons ajouter le script suivant.
// ns1: SupplierData (1)
Comme vous le savez, si vous exécutez le GetSupplierByCity demande, il produira la réponse qui contient la liste des données personnelles du fournisseur appartenant à La ville de New York .
Ici, nous avons utilisé Match XPath expression pour extraire les détails personnels du fournisseur spécifique de la réponse groupée. Pour cela, nous avons utilisé un ns1 variable. Cliquez maintenant sur le Sélectionnez à partir d'un courant bouton.
Ensuite, SOAPUI génère le résultat suivant:
0127051883 KMART CORP 250 W 34TH ST NEW YORK NY 10119 0002 (212)760-1242 04
Veuillez vous référer à cette capture d'écran:
Ici, dans les données de réponse, vous ne pouvez voir qu'une seule donnée personnelle du fournisseur. En fonction du nombre présent à l'intérieur des chevrons, la sortie sera générée.
Jusqu'à présent, il s'agit de choisir la partie de la réponse requise, comment pouvons-nous / utilisons-nous Match XPath affirmation?
Allons-y: Cliquez sur le bouton Enregistrer une fois que vous êtes d'accord avec la réponse.
Au départ, si vous aviez exécuté ce service après avoir configuré l'assertion de correspondance XPath sans changement, le résultat sera une réponse réussie, l'état surligné en vert.
Mais modifions le paramètre d'entrée dans la demande d'entrée en quelque chose qui est une ville non valide - 'XYZ ou ABC'. Exécutez la requête et vérifiez les résultats ainsi que l'état de l'assertion. Nous obtiendrons une réponse d'échec et une indication d'état rouge pour l'assertion. Parce que nous avions déjà spécifié que les données du fournisseur particulier doivent être présentes dans la réponse de service dans la configuration du résultat attendu et lorsque le nom de la ville est invalide, ce fournisseur est clairement absent.
C'est ainsi que nous pouvons affirmer la réponse XML à l'aide de l'assertion d'expression XPath Match. Je suis d'accord pour dire que c'est assez simple au départ, mais si vous essayez avec différentes réponses de service, vous aurez une bien meilleure idée.
Nous pouvons également utiliser des fonctions d'agrégation dans l'expression XPath Match. Ils sont Sum, Min, Max, Count et Avg.
Par exemple , si nous voulons connaître le nombre total de fournisseurs qui comptent dans les résultats attendus, écrivez le script suivant.
count (// ns1: SupplierData) et ça revient 536 Par conséquent. N'oubliez pas que toutes les fonctions d'agrégation doivent être en minuscules.
# 4) Assertion de correspondance XQuery
Ceci est légèrement similaire à l'assertion XPath Match. Comme nous l'avons vu dans la configuration d'assertion XPath Match, il y aura deux sections - déclaration et résultat attendu.
- Ajouter une assertion XQuery Match pour la demande
- Dans la fenêtre de configuration, cliquez sur déclarer et écrivez le script suivant
- Cliquez maintenant Sélectionnez dans le courant bouton
- SOAPUI génère la réponse pour le script
L'expression XQuery prend également en charge l'expression XPath Match, mais elle possède sa propre syntaxe de script qui ne peut pas être utilisée dans l'assertion de correspondance XPath.
Par exemple :
Nous verrons un exemple pour récupérer toutes les réponses des données du fournisseur à l'aide de l'expression XQuery. Regardez cet exemple de capture d'écran pour mieux comprendre.
Script réel:
declare namespace soap='http://schemas.xmlsoap.org/soap/envelope/'; declare namespace ns1='http://www.webservicex.net/'; { for $x in //ns1:SupplierData return $x }
Il existe d'autres fonctions intégrées disponibles à utiliser dans l'expression XQuery. Elles sont où, commander par, pour, retourner etc.
Conclusion
Eh bien, ce sont les affirmations les plus couramment utilisées pour vous.
Le point à souligner ici est que: Les affirmations sont les plus importantes pour prédire avec précision le résultat attendu des services Web. C’est la raison pour laquelle c’est l’une des clés fonctionnalités de SOAPUI PRO .
Tutoriel suivant : Dans le prochain tutoriel, nous deviendrons groovy avec les bases du script et plus encore…
Veuillez rester connecté. Comme toujours, vos commentaires, questions et suggestions sont les bienvenus.
lecture recommandée
- Comment effectuer des tests basés sur les données dans SoapUI Pro - Tutoriel SoapUI # 14
- 15+ didacticiels SoapUI: le meilleur outil de test d'API de services Web
- Tutoriels Eclipse détaillés pour les débutants
- Comment utiliser les propriétés dans SoapUI Groovy Script - Tutoriel SoapUI # 7
- 7 Caractéristiques importantes de SoapUI et SoapUI Pro - Tutoriel 2
- Utilisation des propriétés SoapUI - Tutoriel SoapUI # 8
- 4 Caractéristiques importantes de SoapUI Pro pour le public professionnel - Tutoriel SoapUI # 12
- Processus de téléchargement et d'installation SoapUI étape par étape - Tutoriel SoapUI # 3