décembre 17, 2021

SoapUI Common Assertions

Dans les deux articles précédents, nous avons couvert les détails des Assertions spécifiques aux tests, qui ne s’appliquaient qu’à un type spécifique de cas de test ou de service Web testé. Toutes les assertions mentionnées dans l’article  » Assertions Spécifiques au Test SoapUI : Services REST  » ne sont applicables qu’aux WebServices REST et toutes les assertions mentionnées dans l’article  » Assertions Spécifiques au Test SoapUI : Services SOAP » ne sont applicables qu’aux WebServices SOAP. Maintenant, SoapUI fournit également quelques autres assertions, qui s’appliquent à la fois aux services SOAP et REST et sont connues sous le nom d’Assertions communes SoapUI. Dans cet article, nous comprendrons l’utilisation de toutes ces affirmations courantes en couvrant les détails sous les rubriques suivantes:

  • Quelles sont les Assertions de contenu de propriété courantes dans SoapUI ?
    • Qu’est-ce que l’assertion Contient dans SoapUI?
    • De plus, qu’est-ce qui ne contient pas d’assertion dans SoapUI?
    • Qu’est-ce que l’assertion XPath dans SoapUI ?
    • Qu’est-ce que XQuery Match Assertionin SoapUI ?
  • De même, quelles sont les assertions courantes de Conformité, de Statut et de norme dans SoapUI ?
    • Que sont les assertions de codes d’état HTTP fournies par SoapUI ?
    • De plus, quelles sont les assertions de conformité de schéma dans SoapUI ?
  • Quelles sont les assertions SLA courantes dans SoapUI?

Comme toutes ces assertions sont applicables aux services SOAP et REST, nous utiliserons les informations suivantes pour valider toutes ces assertions:

  • Le projet REST créé à l’aide de l’URI: « http://bookstore.toolsqa.com/BookStore/v1/Books » et le projet SOAP créé en utilisant WSDL: « http://bookstore.toolsqa.com/BookStoreService.wsdl » selon les détails mentionnés dans l’article « SoapUI: Travailler avec des projets. »
  • Vous pouvez vous référer à l’exemple de sortie du projet REST de l’article « Assertions spécifiques au test SoapUI : Services REST », et à l’exemple de sortie du projet SOAP de l’article  » Assertions spécifiques au test SoapUI: Services SOAP ».

Quelles sont les Assertions de contenu de propriété courantes dans SoapUI ?

Comme nous le savons déjà, les Assertions de contenu de propriété valident le contenu de la réponse reçue. SoapUI fournit plusieurs assertions de contenu applicables aux requêtes SOAP et REST. Voyons dans les sections ci-dessous, comment nous pouvons utiliser ces assertions?

Qu’est-ce que l’assertion Contient dans SoapUI?

L’assertion Contains recherche l’existence d’un jeton de chaîne dans la valeur de la propriété.

Considérons un scénario selon lequel dans le service de librairie, nous devons vérifier si un livre avec le nom d’auteur « Richard E. Silverman » existe?Suivons les étapes mentionnées ci-dessous pour valider la même chose en utilisant l’assertion « Contient »:

  1. Tout d’abord, accédez à la boîte de dialogue Ajouter une assertion. Après cela, cliquez sur l’assertion « Contient » sous la catégorie d’assertion « Contenu de la propriété », comme indiqué ci-dessous:

 Comment Ajouter Contient AssertionCommon pour SOAP et REST dans SoapUI

  1. Deuxièmement, cliquez sur le bouton « Ajouter », et il affichera la boîte de dialogue « Contient l’assertion », comme indiqué ci-dessous:

 Contient une boîte de dialogue d'assertion dans SoapUI

  1. Troisièmement, entrez le nom de l’auteur « Richard E. Silverman » dans la section « Contenu ». C’est la chaîne de recherche que vous souhaitez valider dans la réponse du service Web.

  2. Quatrièmement, dans la boîte de dialogue ci-dessus, vous verrez également deux cases à cocher. Ils sont:

  • Ignorer la casse: Si vous cochez la case Ignorer la casse, cela validera la chaîne en ignorant la casse. Supposons que vous tapiez « richARD E. SilVerMan » dans la zone de texte du contenu et que vous cochez la case « Ignorer la casse en comparaison ». De plus, il ignorera la casse et ne vérifiera que la valeur de la chaîne saisie.

 IgnoreCase Contient une assertion dans SoapUI

Donc, l’assertion passera car les caractères de la chaîne sont les mêmes si nous ignorons la casse.

  • Expression régulière : Si vous souhaitez valider la sortie sur la base d’une expression régulière, vous pouvez cocher cette case, puis spécifier votre expression régulière dans la section Contenu. SoapUI suit les modèles d’expression régulière spécifiés par Oracle Par exemple, si nous voulons valider que la réponse du service de livre contient « O’Reilly » dans la réponse, vous pouvez spécifier « .O’Reilly. » en tant qu’expression régulière dans la section Contenu, comme indiqué ci-dessous:

 Expression régulière dans l'assertion Contain dans SoapUI

Ainsi, nous pouvons valider l’existence d’une chaîne dans la réponse du WebService en utilisant l’assertion Contains, et nous pouvons l’utiliser à la fois pour les Webservices SOAP et REST.

Qu’est-ce qui ne contient pas d’assertion dans SoapUI?

Contrairement à l’assertion Contient, l’assertion Ne contient pas recherche l’inexistence d’une chaîne dans la valeur de la propriété. De plus, cette assertion passera si la réponse ne contient pas la valeur spécifiée.

Supposons ; nous voulons valider qu’il n’y a pas de Livre avec le titre « Livre Groovy » dans la réponse du service de librairie, nous pouvons utiliser cette assertion pour valider la réponse de l’API de LibrAirie.

Suivons les étapes mentionnées ci-dessous pour valider la même chose en utilisant l’assertion « Ne contient pas »:

  1. Tout d’abord, accédez à la boîte de dialogue Ajouter une assertion et cliquez sur l’assertion « Ne contient pas » sous la catégorie d’assertion « Contenu de la propriété », comme indiqué ci-dessous:

 Comment ajouter ne contient pas d'assertionCommon pour SOAP et REST dans SoapUI

  1. Deuxièmement, cliquez sur le bouton « Ajouter », et il affichera la boîte de dialogue « Assertion NotContains », comme indiqué ci-dessous:

  2. Troisièmement, entrez le nom de la chaîne « Groo Book » dans la section « Contenu ». C’est la chaîne de recherche que vous souhaitez valider qui n’existe pas dans la réponse du service Web.

Remarque: Les deux cases à cocher (Ignorer la casse & RegEx) fonctionnent ici de la même manière, comme elles l’étaient avec l’assertion Contains.

  1. Quatrièmement, en cliquant sur le bouton « OK », l’assertion sera exécutée par rapport à la réponse du service Web et affichera le résultat, comme indiqué ci-dessous:

 Ne contient Pas de Configuration d'assertion dans SoapUI

  1. Ainsi, tant que la chaîne n’est pas présente dans la réponse du service cible, l’assertion passera.

Qu’est-ce que l’assertion de correspondance XPath dans SoapUI ?

L’assertion de correspondance XPath vous permet d’utiliser une expression XPath pour sélectionner le contenu du nœud spécifique de la réponse cible et le comparer à la valeur attendue.

Supposons que vous souhaitiez valider que l’ISBN du premier livre présent dans la réponse de l’API BookStore n’est pas null. Nous pouvons rapidement valider la même chose en utilisant l’assertion XPath.

Suivons les étapes mentionnées ci-dessous pour valider la même chose en utilisant l’assertion « XPath Match:

  1. Tout d’abord, accédez à la boîte de dialogue Ajouter une assertion. Après cela, cliquez sur l’assertion « XPath Match » sous la catégorie d’assertion « Contenu de la propriété », comme indiqué ci-dessous:

 Comment ajouter XPath Match AssertionCommon pour SOAP et REST dans SoapUI

  1. Deuxièmement, cliquez sur le bouton « Ajouter », et il affichera la boîte de dialogue « Configuration de correspondance Xpath », comme indiqué ci-dessous:

 Configuration d'assertion de correspondance Xpathcommon pour SOAP et REST dans SoapUI

Où,

  • Déclarer: Cliquer sur ce bouton récupère et remplit automatiquement l’espace de noms. Si vous êtes sûr des détails de l’espace de noms, vous pouvez le taper manuellement, sinon cliquez simplement sur le bouton « Déclarer » et il remplira les détails de l’espace de noms comme indiqué ci-dessous:

    • L’espace de noms du service SOAP sera renseigné, comme indiqué ci-dessous:

 Déclaration d'espace de noms pour le service SOAP dans l'assertion de correspondance Xpath dans SoapUI

  • De même, l’espace de noms du service REST sera rempli, comme indiqué ci-dessous:

 Déclarer un espace de noms pour le service REST dans l'assertion de correspondance Xpath dans SoapUI

Après avoir déclaré l’espace de noms, nous pouvons spécifier XPATH du nœud souhaité dans la section Expression XPath.

  • Vous pouvez spécifier un exemple de XPATH « //ns1:BooksResult/ns1:Books/ns1:CustomBookModel/ns1:Isbn » pour le service SOAP comme indiqué ci-dessous:

 Spécifier XPath pour un service SOAP dans SoapUI

De même, vous pouvez spécifier un exemple de XPATH « //ns1:books//ns1:e/ns1:isbn » pour le service REST comme indiqué ci-dessous:

 Spécification de XPath pour un service REST dans SoapUI

Notez l’utilisation de l’espace de noms ns1 dans les deux cas. Pour accéder aux nœuds, l’utilisation de l’espace de noms est obligatoire.

  • Sélectionner à partir du courant: En cliquant sur ce bouton, il sélectionnera automatiquement la valeur du nœud comme mentionné ci-dessus dans la section Résultat attendu, qui est isbn dans le cas ci-dessus. De plus, il sélectionnera la valeur du nœud isbn comme « 9781449325862 ». Si vous ne souhaitez pas sélectionner automatiquement la valeur en cliquant sur ce bouton, vous pouvez même saisir le résultat attendu manuellement.
  • Test: En cliquant sur le bouton « Test », vous pouvez tester la sortie, si l’assertion passe, elle affichera l’alerte de succès ci-dessous :

 Alerte de message de réussite du test de correspondance Xpath dans SoapUI

Ou si l’assertion échoue, elle génère une erreur et affiche une boîte de dialogue, comme indiqué ci-dessous:

 Erreur de test XpathMatch

  • Cases à cocher facultatives : La section Résultat attendu fournit également des cases à cocher, ce qui fournit une aide supplémentaire pour valider l’assertion. Comprenons les détails de ces cases à cocher:
  • Autoriser la case à cocher Générique: Si la valeur que nous voulons valider change dynamiquement dans la réponse cible, nous pouvons utiliser des caractères génériques pour valider la réponse. Supposons, si nous considérons que l’isbn du 1er livre se termine toujours par « 862 », alors nous pouvons utiliser le caractère générique * « 862 », ce qui validera que l’isbn se termine toujours par « 862 ». Il apparaîtra dans la section Résultat attendu comme:

 Autoriser la correspondance XPath générique dans SoapUI

  • Case à cocher Ignorer le préfixe de l’espace de noms: Si nous voulons ignorer le préfixe de l’espace de noms lors de la validation de la réponse, nous pouvons le faire en cochant cette case.
  • Ignorer la case à cocher des commentaires XML: si nous voulons ignorer les commentaires dans la réponse, nous pouvons y parvenir en cochant cette case.
  • Après avoir exploré toutes les options ci-dessus, cliquez sur le bouton Enregistrer pour enregistrer l’assertion. Il passera comme l’assertion et obtiendra l’Isbn attendu comme « 9781449325862 ». Par conséquent, il affichera la sortie de l’échantillon comme suit:

 AssertionCommon de correspondance Xpath pour la vue SOAP et RESToutput dans SoapUI

Qu’est-ce que l’Assertion de correspondance XQuery dans SoapUI?

La correspondance XQuery est assez similaire à l’assertion XPath, à la seule différence qu’elle utilise une expression XQuery et la compare au résultat attendu.

Considérons un scénario supposons que vous souhaitiez valider tous les « Titres » des Livres disponibles dans la réponse, quel que soit l’ordre dans lequel ils existent. Vous pouvez écrire une simple XQuery et vous êtes prêt à partir.

Suivons les étapes mentionnées ci-dessous pour valider la même chose en utilisant l’assertion « XQueryMatch:

  1. Tout d’abord, accédez à la boîte de dialogue Ajouter une assertion. Après cela, cliquez sur l’assertion « XQuery Match » sous la catégorie d’assertion « Contenu de la propriété », comme indiqué ci-dessous:

 Comment ajouter XQuery Match AssertionCommon pour SOAP et REST dans SoapUI

  1. Deuxièmement, cliquez sur le bouton « Ajouter », et il affichera la boîte de dialogue « Configuration de correspondance XQuery », comme indiqué ci-dessous:

 Configuration d'assertion de correspondance Xquery Commune pour SOAP et REST dans SoapUI

Où,

  • Expression XQuery: Il s’agit de l’expression XQuery que vous devez spécifier pour extraire la valeur de la réponse du service Web. Par exemple, pour obtenir le titre de tous les livres, nous pouvons spécifier l’expression XQuery comme suit:
<Result>{for$z in //*:CustomBookModelreturn (<Title>{data($z/*:Title)}</Title>)}</Result>

Dans l’extrait de code ci-dessus:

  • <Result> est la balise dans laquelle stockera le résultat en fonction de la réponse XQuery. De plus, il peut s’agir de n’importe quelle balise basée sur le choix de l’utilisateur.
  • De plus, nous itérons la réponse en utilisant la boucle for, etzz est n’importe quelle variable, qui obtiendra la valeur de <CustomBookModel>.
  • //. spécifie la racine du modèle CustomBookModel, vous pouvez également naviguer en utilisant l’espace de noms, puis en spécifiant l’espace de noms au lieu de ** »//. ».***
  • En plus de ce qui précède, la fonction « return » renverra la valeur de la balise <Title>.
  • De plus, la fonction « data » renvoie les données de chaque balise de titre de la balise <CustomBookModel>.

2) Sélectionnez parmi courant: Cliquez sur le bouton pour sélectionner la valeur actuelle de la réponse selon la XQuery mentionnée.

3) Résultat attendu: Après avoir cliqué sur le bouton « Sélectionner à partir du courant », il retournera tous les titres de la réponse du service. Vous pouvez également spécifier le résultat attendu manuellement.

4) Cliquer sur le bouton « Test » affichera la réponse au succès, comme indiqué ci-dessous:

 Assertion de correspondance Xquery réussie dans SoapUI

  1. En cliquant sur le bouton « OK », vous verrez l’exécution valide de l’assertion.

Quelles sont les Assertions courantes de Conformité, de statut et de norme dans SoapUI ?

Comme les assertions courantes fournies par SoapUI dans la section « Contenu des propriétés », il fournit également certaines assertions dans la catégorie « Conformité, Statut et Standard », qui sont communes aux Webservices SOAP et REST. Comprenons les détails de toutes ces assertions dans les sections suivantes:

Que sont les assertions de codes d’état HTTP fournies par SoapUI?

Comme nous le savons tous, les codes d’état HTTP indiquent si une requête HTTP est terminée ou non. Tous ces codes de réponse sont généralement répartis dans les catégories suivantes:

1 1xx : Informatif : Ces codes d’état représentent la réception de la demande et son traitement.
2 2xx: Succès : Ces codes d’état indiquent que l’action a été reçue, traitée et acceptée avec succès.
3 3xx: Redirection: Ces codes d’état indiquent qu’une action supplémentaire est requise pour compléter la demande.
4 4xx : Erreur client : Ces codes d’état indiquent que la requête contient une syntaxe incorrecte ou qu’il y a un problème avec notre requête.
5 5xx : Erreur du serveur : Ces codes d’état indiquent qu’il existe une erreur côté serveur, ce qui signifie que le serveur n’a pas répondu à une demande valide.

Pour la validation de ces codes d’état, SoapUI fournit quelques assertions. Comprenons les détails de ces affirmations dans les sections suivantes:

Qu’est-ce qu’une assertion de codes d’état HTTP valide dans SoapUI ?

Cette assertion valide que le code de réponse HTTP renvoyé par le service Web se trouve dans la liste des codes HTTP attendus.

Considérons un scénario selon lequel pour l’API BookStore, nous voulons valider que le code de réponse renvoyé est toujours 200 ou 201. Nous pouvons utiliser l’assertion « Codes d’état HTTP valides » pour valider la même chose.

Suivons les étapes mentionnées ci-dessous pour valider la même chose en utilisant l’assertion « Codes d’état HTTP valides »:

  1. Accédez à la boîte de dialogue Ajouter une assertion et cliquez sur l’assertion  » Codes d’état HTTP valides  » sous la catégorie d’assertion  » Conformité, état et Norme « , comme indiqué ci-dessous:

 Comment ajouter un code d'état HTTP valide assertionCommon pour SOAP et REST dans SoapUI

  1. Cliquez sur le bouton « Ajouter », et il affichera la boîte de dialogue « Configuration d’assertion des codes d’état HTTP valides », comme indiqué ci-dessous:

 configurationsCommon valide d'assertion de code d'état HTTP pour SOAP et REST dans SoapUI

  1. Dans la section « Spécifier les codes », mettez les valeurs 200, 201. Vous pouvez spécifier un code unique ou une liste de codes séparés par des virgules. Cliquer sur le bouton « OK » validera les codes d’état HTTP par rapport à la dernière réponse du service.

Qu’est-ce qu’une assertion de codes d’état HTTP non valide dans SoapUI ?

Contrairement à l’assertion « Codes d’état HTTP valides », l’assertion « Codes d’état HTTP non valides » valide que la liste « Codes attendus » ne contient pas le code d’état HTTP renvoyé par le service Web.

Considérons un scénario selon lequel pour l’API BookStore, nous voulons valider que le code de réponse renvoyé n’est pas 401. Nous pouvons utiliser l’assertion « Codes d’état HTTP non valides » pour valider la même chose.

Suivons les étapes mentionnées ci-dessous pour valider la même chose en utilisant l’assertion « Codes d’état HTTP non valides »:

  1. Accédez à la boîte de dialogue Ajouter une assertion et cliquez sur l’assertion  » Codes d’état HTTP non valides  » dans la catégorie d’assertion  » Conformité, état et Norme « , comme indiqué ci-dessous:

 Comment spécifier un code d'état HTTP invalide assertionCommon pour SOAP et REST dans SoapUI

  1. Cliquez sur le bouton « Ajouter », et il affichera la boîte de dialogue « Configuration d’assertion des codes d’état HTTP non valide », comme indiqué ci-dessous:

 Configurations d'assertion de code d'état HTTP non valides Communes à SOAP et REST dans SoapUI

  1. Dans la section « Spécifier les codes », mettez les valeurs 401. Vous pouvez spécifier un code unique ou une liste de codes séparés par des virgules. Cliquer sur le bouton « OK » validera l’inexistence des codes d’état HTTP par rapport à la dernière réponse du service.

Remarque : Nous pouvons appliquer ces assertions aux points de terminaison SOAP et REST.

Quelles sont les assertions de conformité de schéma dans SoapUI ?

En dehors des codes d’état, dans SoapUI, nous pouvons également valider le message de réponse par rapport à la définition dans le WSDL (SOAP) ou le WADL (REST) du service cible testé.

Considérons un scénario que nous voulons vérifier rapidement si la réponse SOAP que nous obtenons est conforme au WSDL ou non ?

Suivons les étapes mentionnées ci-dessous pour valider la même chose en utilisant l’assertion « Conformité du schéma »:

  1. Accédez à la boîte de dialogue Ajouter une assertion et cliquez sur l’assertion  » Conformité du schéma  » sous la catégorie d’assertion  » Conformité, statut et Norme « , comme indiqué ci-dessous:

 Comment ajouter une AssertionCommon de conformité de schéma pour SOAP et REST dans SoapUI

  1. Cliquez sur le bouton  » Ajouter  » et la boîte de dialogue  » Configuration de l’assertion de conformité du schéma  » s’affichera, comme indiqué ci-dessous:

  2. Dans la boîte de dialogue de configuration, il remplit automatiquement le WSDL, qui a créé le projet, mais si vous souhaitez spécifier un autre WSDL, vous pouvez également le mettre à jour. Cliquez sur OK pour continuer.

 Vue de réponse des Assertions de conformité de schéma dans SoapU

  1. Si la réponse est conforme selon le schéma mentionné, vous verrez la réponse réussie, comme indiqué ci-dessus. Vous verrez l’erreur chaque fois que la dernière réponse n’est pas conforme au schéma WSDL.

Remarque: De même, vous pouvez valider la réponse du service REST par rapport à un WADL spécifié.

Quelles sont les assertions SLA courantes dans SoapUI?

Comme nous le savons tous, un Accord de niveau de service (SLA) est généralement appelé accord entre un fournisseur de services et un client. L’accord peut être classé selon diverses caractéristiques convenues telles que la disponibilité, la qualité, le temps de réponse, etc. SoapUI fournit la fonctionnalité permettant de valider le temps de réponse d’un service spécifique.

Considérons un scénario hypothétique selon lequel le temps de réponse convenu pour le service Web de la librairie est inférieur à 4 secondes. Nous pouvons valider la même chose dans SoapUI en utilisant les catégories d’assertion « SLA ».

Suivons les étapes mentionnées ci-dessous pour valider la même chose en utilisant l’assertion « Response SLA »:

  1. Accédez à la boîte de dialogue Ajouter une assertion et cliquez sur l’assertion « Réponse SLA » sous la catégorie d’assertion « SLA », comme indiqué ci-dessous:

 Comment ajouter une assertionCommon SLA de réponse pour SOAP et REST dans SoapUI

  1. Cliquez sur le bouton « Ajouter », et il affichera la boîte de dialogue « Configuration de l’assertion SLA de réponse », comme indiqué ci-dessous:

 Configurer l'assertionCommon SLA pour SOAP et REST dans SoapUI_0

  1. Spécifiez la durée maximale (en ms) pendant laquelle le service s’attend à renvoyer la réponse. Pour notre scénario, nous avons spécifié 4000 ms. Cliquez sur le bouton OK pour ajouter l’assertion. Il affichera le résultat du test, comme indiqué ci-dessous:

 Vue de réponse d'assertion SLA dans SoapUI

  1. Comme nous pouvons le voir dans la capture d’écran ci-dessus, comme le temps de réponse du service était de 1374 ms, il était donc sous le SLA mentionné de 4000 ms et a abouti à une affirmation réussie.

Points à retenir

  • SoapUI fournit un large éventail d’assertions qui peuvent être appliquées aux services Web SOAP et REST.
  • De plus, peu d’assertions courantes sont Contain, Not Contain, Xpath et XQuery Match, qui sont utilisées pour la validation de la réponse du contenu du service Web.
  • De plus, un autre ensemble d’assertions communes fournies par SoapUI est utilisé pour la validation des Codes d’état HTTP et du Schéma de la réponse des services Web.
  • De plus, SoapUI fournit également une assertion SLA qui peut être utilisée pour la validation du temps de réponse des services SOAP et REST.

Passons à l’article suivant où nous approfondirons davantage pour comprendre comment nous pouvons implémenter certaines assertions avancées en utilisant des « Assertions de script » dans SoapUI.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.