Assertions dans SoapUI: Scripts, XQuery, Types XPath

โšก Rรฉsumรฉ intelligent

Assertions dans SoapUI Ce sont les points de contrรดle qui dรฉterminent si une rรฉponse de service Web est correcte, transformant une requรชte qui s'exรฉcute simplement en un test qui rรฉussit ou รฉchoue rรฉellement sur un contenu rรฉel et vรฉrifiable.

  • (I.e. Catรฉgories: Contenu de la propriรฉtรฉ, conformitรฉ/statut/normes, script, SLA, JMS et sรฉcuritรฉ.
  • โ˜‘๏ธ Contient : Confirme l'existence d'une chaรฎne de caractรจres dans la rรฉponse, avec prise en charge des expressions rรฉguliรจres.
  • โœ… Ne contient pas : Confirme l'absence d'une chaรฎne de caractรจres, utile pour les jetons d'erreur et les champs divulguรฉs.
  • ๐Ÿงช Correspondance XPath : Dรฉclarez d'abord l'espace de noms, puis ciblez un nล“ud et comparez sa valeur.
  • ๏ธ Correspondance XQuery : Valide les ensembles de nล“uds rรฉpรฉtitifs qui nรฉcessiteraient autrement des centaines de vรฉrifications XPath.
  • (I.e. Scรฉnario: Groovy Les assertions gรจrent les rรฉponses dynamiques et la logique de configuration ou de nettoyage.
  • ๐Ÿ” Dรฉpannage: La plupart des erreurs sont dues ร  un espace de noms incorrect et ร  une syntaxe utilisant un point au lieu de deux-points.

Assertions dans SoapUI

Qu'est-ce qu'une assertion ?

L'affirmation signifie l'acte d'affirmer ou de dรฉclarer quelque chose. Il peut รฉgalement รชtre interprรฉtรฉ comme un point de contrรดle ou un point de validation.

Lorsqu'une requรชte est envoyรฉe ร  un serveur web, une rรฉponse est reรงue. Il est nรฉcessaire de vรฉrifier si cette rรฉponse contient les donnรฉes attendues. Pour ce faire, on utilise des assertions. Sans assertion, un test prouve seulement que le service a rรฉpondu, et non qu'il a rรฉpondu correctement. C'est pourquoi chaque assertion est essentielle. Test d'API devrait en porter au moins un.

Types d'affirmation

Il existe diffรฉrentes maniรจres de formuler une rรฉponse ; toutefois, nous nous concentrerons sur les plus courantes. SoapUI types d'assertions lors de la validation d'une rรฉponse. Ci-dessous figurent les catรฉgories disponibles dans la version Open Source de SoapUI.

  1. Contenu de la propriรฉtรฉ
  2. Norme de statut de conformitรฉ
  3. scรฉnario
  4. Contrat de niveau de service
  5. JMS
  6. Sรฉcuritรฉ

La boรฎte de dialogue regroupe chaque assertion sous ces catรฉgories, comme le montre la capture d'รฉcran ci-dessous.

Les catรฉgories d'assertions รฉnumรฉrรฉes dans le SoapUI Ajouter une boรฎte de dialogue d'assertion
Types d'assertions dans SoapUI

Outre les fonctionnalitรฉs mentionnรฉes ci-dessus, la version Pro dispose รฉgalement d'une assertion JDBC intรฉgrรฉe permettant de vรฉrifier si le service Web a correctement mis ร  jour la base de donnรฉes.

Note de version : actuel SoapUI La documentation mentionne รฉgalement une JDBC catรฉgorie (ร‰tat JDBC et Dรฉlai d'attente JDBC) aux cรดtรฉs des catรฉgories ci-dessus, et une Contenu du message assertion au sein du contenu de la propriรฉtรฉ pour une comparaison XML plus riche. L'รฉdition commerciale appelรฉe ici ยซ Pro ยป est maintenant vendue sous le nom de ReadyAPI par SmartBear, les libellรฉs des menus dans les versions plus rรฉcentes peuvent donc diffรฉrer, mรชme si le comportement des assertions reste le mรชme.

Contient une assertion

Recherche l'existence de la chaรฎne spรฉcifiรฉe. Il prend รฉgalement en charge les expressions rรฉguliรจres.

Nous continuerons avec le mรชme exemple du tutoriel prรฉcรฉdent avec une requรชte WSDL comme http://www.dneonline.com/calculator.asmxSi vous n'avez pas encore rรฉalisรฉ ce projet, suivez les รฉtapes suivantes. crรฉation d'un projet, d'une suite de tests et d'un cas de test d'abord.

ร‰tape 1 : Par dรฉfaut, il nโ€™y a pas dโ€™assertions.

  1. Le nombre d'assertions est affichรฉ dans l'onglet Assertions.
  2. Pour ajouter une nouvelle assertion, cliquez sur le bouton ยซ Ajouter une nouvelle assertion ยป.

SoapUI L'onglet Assertions n'affiche aucune assertion et le bouton Ajouter une nouvelle assertion est prรฉsent.

ร‰tape 2: Maintenant,

  1. Sรฉlectionnez la catรฉgorie d'assertion.
  2. Sรฉlectionnez le type d'assertion.
  3. Cliquez sur ยซ Ajouter ยป

Ajouter une boรฎte de dialogue d'assertion avec la catรฉgorie et le type d'assertion sรฉlectionnรฉs

ร‰tape 3 : Vรฉrifions si la chaรฎne ยซ 46 ยป figure dans la rรฉponse. Cliquez sur ยซ OK ยป.

Remarque : Nous pouvons รฉgalement ignorer la casse et ajouter une expression rรฉguliรจre.

Contient une boรฎte de dialogue de configuration d'assertion avec la valeur 46 saisie

ร‰tape 4 : Dรจs son ajout, une assertion est immรฉdiatement exรฉcutรฉe et indique si elle est VALIDE ou INVALIDE.

L'onglet Assertions signale l'assertion Contient comme VALIDE

ร‰tape 5 : Supposons maintenant que nous modifions le contenu de ยซ Contient lโ€™assertion dans ยป. SoapUIPassez ร  '47' et voyez ce qui se passe.

Modification du contenu de l'assertion ยซ Contient ยป de 46 ร  47

ร‰tape 6 : Lโ€™assertion est exรฉcutรฉe et le rรฉsultat est renvoyรฉ ร  lโ€™utilisateur. Comme la chaรฎne ยซ 47 ยป est absente de la rรฉponse, lโ€™assertion a รฉchouรฉ.

L'onglet Assertions signale l'assertion ยซ Contient ยป comme ayant รฉchouรฉ.

Ne contient pas d'assertion

Son homologue fonctionne ร  l'inverse : il recherche l'absence de la chaรฎne spรฉcifiรฉe et prend รฉgalement en charge les expressions rรฉguliรจres.

ร‰tape 1 : Aprรจs avoir cliquรฉ sur le bouton ยซ Ajouter de nouvelles assertions ยป,

  1. Sรฉlectionnez la catรฉgorie d'assertion.
  2. Sรฉlectionnez le type d'assertion โ€“ Dans ce cas, ยซ NE contient PAS ยป
  3. Cliquez sur ยซ Ajouter ยป

Ajouter une boรฎte de dialogue d'assertion avec la sรฉlection ยซ NE CONTIENT PAS ยป

ร‰tape 2 : Vรฉrifions si la chaรฎne ยซ intA ยป figure dans la rรฉponse. Saisissez la chaรฎne ยซ FromCurrency ยป et cliquez sur ยซ OK ยป.

Boรฎte de dialogue ยซ Ne contient pas l'assertion ยป avec la chaรฎne FromCurrency saisie

ร‰tape 3 : Dรจs quโ€™une assertion est ajoutรฉe, elle est exรฉcutรฉe et son rรฉsultat sโ€™affiche. Nous avons ajoutรฉ deux assertions jusquโ€™ร  prรฉsent ; elles sont donc toutes deux exรฉcutรฉes et leur rรฉsultat est affichรฉ.

L'onglet Assertions affiche les rรฉsultats ยซ Contient ยป et ยซ Ne contient pas ยป.

ร‰tape 4 : Modifions maintenant le contenu de lโ€™assertion ยซ Ne contient pas ยป et observons le rรฉsultat. Nous allons vรฉrifier lโ€™absence de la chaรฎne ยซ AddResult ยป.

Boรฎte de dialogue ยซ Assertion de non-contenu ยป vรฉrifiant la prรฉsence du jeton AddResult

ร‰tape 5 : La chaรฎne ยซ AddResult ยป est effectivement prรฉsente dans la rรฉponse, par consรฉquent lโ€™assertion ยซ NOT Contains ยป รฉchouera comme indiquรฉ ci-dessous.

L'assertion ยซ Ne contient pas ยป รฉchoue car AddResult est prรฉsent.

Assertion de correspondance XPath

La correspondance de chaรฎnes รฉtant imprรฉcise, l'assertion suivante cible un seul nล“ud. Elle utilise une expression XPath pour sรฉlectionner le nล“ud cible et ses valeurs. XPath, est un langage de requรชte XML permettant de sรฉlectionner des nล“uds dans un document XML.

ร‰tape 1 : Aprรจs avoir cliquรฉ sur le bouton ยซ Ajouter de nouvelles assertions ยป,

  1. Sรฉlectionnez la catรฉgorie d'assertion.
  2. Sรฉlectionnez le type d'assertion โ€“ Dans ce cas, ยซ XPath Match ยป
  3. Cliquez sur ยซ Ajouter ยป

Ajouter une boรฎte de dialogue d'assertion avec correspondance XPath sรฉlectionnรฉe

ร‰tape 2 : Ajouter XPath. La fenรชtre sโ€™ouvre.

Avant d'ajouter un SoapUI En XPath, il est nรฉcessaire de dรฉclarer l'espace de noms. Un espace de noms XML est un ensemble de noms, identifiรฉs par une rรฉfรฉrence URI (Uniform Resource Identifier), utilisรฉs dans les documents XML comme noms d'รฉlรฉments et d'attributs. Le mรชme principe s'applique ร โ€ฆ SoapUI Assertion XPath.

Pour dรฉclarer un espace de noms XML, il suffit de cliquer sur le bouton ยซ Dรฉclarer ยป, qui se chargera du reste ; sinon, nous pouvons รฉgalement dรฉclarer manuellement un espace de noms.

Aprรจs avoir dรฉclarรฉ l'espace de noms, nous devons faire rรฉfรฉrence au XPath en utilisant l'espace de noms crรฉรฉ.

En cliquant sur le bouton ยซ Dรฉclarer ยป, deux espaces de noms s'affichent, car nous avons deux URI. L'un d'eux est le schรฉma. URL et l'autre correspond au service web proprement dit URLIl est nรฉcessaire d'utiliser l'espace de noms rรฉel oรน se trouve le service web, et non l'espace de noms du schรฉma, lors de l'utilisation de XPath. Les lignes dรฉclarรฉes apparaissent en haut de la zone XPath, comme illustrรฉ ci-dessous.

Espaces de noms SOAP et NS1 dรฉclarรฉs dans la fenรชtre d'assertion XPath

dรฉclarer l'espace de noms soap='http://schemas.xmlsoap.org/soap/envelope/';

dรฉclarer l'espace de noms ns1='http://tempuri.org/';

Fenรชtre d'assertion XPath immรฉdiatement aprรจs avoir cliquรฉ sur Dรฉclarer

ร‰tape 3 : Nous devons maintenant saisir le XPath du nล“ud XML que nous devons valider.

//ns1:AddResult Nous donne la valeur du nล“ud compris entre & et ns1 correspond ร  l'espace de noms dรฉclarรฉ qui pointe vers 'http://tempuri.org/'

Aprรจs avoir entrรฉ le XML, nous devons cliquer sur ยซ Sรฉlectionner ร  partir du courant ยป afin que la valeur de la rรฉponse actuelle soit rรฉcupรฉrรฉe pour une comparaison ultรฉrieure.

Expression XPath saisie avec Sรฉlectionner ร  partir de la sรฉlection actuelle

ร‰tape 4 : Jusquโ€™ร  prรฉsent,

  1. Aprรจs avoir dรฉclarรฉ les espaces de noms, nous sommes entrรฉs dans le nล“ud XPath du XML que nous devons valider.
  2. Nous devons cliquer sur ยซ Sรฉlectionner ร  partir du courant ยป pour faire de la valeur actuelle la valeur attendue.
  3. La valeur actuelle est affichรฉe ร  l'utilisateur et nous pouvons la modifier si nรฉcessaire.
  4. Cliquez sur ยซ Enregistrer ยป.

Configuration de la correspondance XPath affichant la valeur attendue et le bouton Enregistrer

ร‰tape 5 : Lโ€™assertion ajoutรฉe dans SoapUI s'affichera comme indiquรฉ ci-dessous.

L'onglet Assertions affiche l'assertion de correspondance XPath ajoutรฉe.

Assertions de script

Cette technique d'assertion est la plus utilisรฉe car elle est extrรชmement difficile ร  gรฉrer et ร  maintenir des centaines d'assertions.

SoapUI utilise soit Groovy Script ou Javascรฉnario pour les assertions de script. La technique de script est adoptรฉe pour le dรฉveloppementping un cadre de test pour SOAP. Les assertions de script sont utilisรฉes dans les circonstances suivantes.

  • Le script permet ร  l'utilisateur d'effectuer certaines opรฉrations avant et aprรจs l'exรฉcution d'un cas de test, grรขce aux mรฉthodes de configuration (setup) et de nettoyage (teardown). La configuration est une procรฉdure exรฉcutรฉe avant l'exรฉcution d'une mรฉthode particuliรจre (par exemple, la crรฉation et l'initialisation d'un objet), tandis que le nettoyage est une procรฉdure exรฉcutรฉe aprรจs l'exรฉcution de la mรฉthode (par exemple, la destruction des objets et le nettoyage de la mรฉmoire). Cette fonctionnalitรฉ n'est pas disponible pour les autres types d'assertions et ne peut รชtre implรฉmentรฉe que par le biais du code.
  • Il permet aux utilisateurs d'ouvrir/fermer un projet, d'initialiser ou de nettoyer les paramรจtres liรฉs au projet et รฉgalement de travailler avec des variables d'environnement, ce qui est trรจs utile lors de la crรฉation de scripts.
  • Cela nous aide ร  affirmer un contenu de rรฉponse dynamique.
  • Les assertions de script sont utilisรฉes pour crรฉer des assertions dรฉfinies par l'utilisateur qui ne sont PAS prรฉdรฉfinies par SoapUI.

Pour dรฉmontrer une assertion de script dans SoapUINous utiliserons le WSDL de la calculatrice, le cas de test ยซ Add ยป que nous avions crรฉรฉ prรฉcรฉdemment.

ร‰tape 1 : La procรฉdure dโ€™ajout dโ€™un script Groovy est identique ร  celle des autres assertions, ร  ceci prรจs que lโ€™assertion nโ€™est pas prรฉdรฉfinie. Il sโ€™agit dโ€™une assertion dรฉfinie par lโ€™utilisateur, offrant une plus grande flexibilitรฉ que les assertions intรฉgrรฉes.

Sรฉlectionnez l'รฉtape de test ร  laquelle l'assertion doit รชtre ajoutรฉe.

ร‰tape de test sรฉlectionnรฉe dans le SoapUI navigateur avant d'ajouter une assertion

Cliquez sur le bouton ยซ Ajouter une assertion ยป comme indiquรฉ ci-dessous.

Bouton Ajouter une assertion dans la barre d'outils des assertions de l'รฉtape de test

ร‰tape 2 : Sรฉlectionnez maintenant la catรฉgorie Assertion.

  1. Dans ce cas, il s'agit de Script.
  2. Sรฉlectionner SoapUI Assertion de script et aucun sous-type associรฉ.
  3. Cliquez sur ยซ Ajouter ยป.

Ajouter une boรฎte de dialogue d'assertion avec la catรฉgorie Script sรฉlectionnรฉe

ร‰tape 3 : La boรฎte de dialogue de script sโ€™ouvre, dans laquelle lโ€™utilisateur pourra รฉcrire un script personnalisรฉ pour valider la rรฉponse XML.

Vide SoapUI boรฎte de dialogue de l'รฉditeur d'assertions de script

ร‰tape 4 : ร‰crivons maintenant un script Groovy pour valider le taux de conversion. Le script est joint ci-dessous avec les commentaires intรฉgrรฉs. Il est recommandรฉ dโ€™avoir des connaissances enโ€ฆ Java Scรฉnario ou Groovy Script avant dโ€™essayer dโ€™รฉcrire votre propre script.

//Define Groovy Utils and holder for validating the XML reponse content
def groovyUtils = new com.eviware.soapui.support.GroovyUtils(context)
def holder = groovyUtils.getXmlHolder(messageExchange.responseContent)

//Define the NameSpace
holder.namespaces["ns1"] = "http://tempuri.org/"

//Get the Value of the Node 'AddResult' and assign to a variable
def addResult = holder.getNodeValue("//ns1:AddResult")

//print the value of the result in the Output panel
log.info "The result value for integers is " + addResult

//Comparing the value to print 'Pass' or 'Fail'
if(addResult=="46")
{ log.info "Pass" }
else
{ log.info "fail"}
  1. Cliquez sur le bouton ยซ Exรฉcuter ยป pour dรฉclencher l'exรฉcution.
  2. La sortie du script est affichรฉe dans le volet Sortie. Il a imprimรฉ ร  la fois la valeur de conversion ainsi que le rรฉsultat final (rรฉussite ou รฉchec).
  3. Les informations affichรฉes indiquent ยซ Assertion de script rรฉussie ยป. Cliquez sur OK.

Remarque : La fenรชtre contextuelle d'information finale s'affichera toujours avec le message ยซ Assertion de script rรฉussie ยป tant que le script est syntaxiquement correct. Cela n'a aucune corrรฉlation avec votre affirmation dans le script.

Le volet de sortie de l'assertion de script affiche la valeur du rรฉsultat et le succรจs.

cliquez sur OK

ร‰tape 5 : Lโ€™onglet Assertion affiche maintenant toutes les assertions que nous avons ajoutรฉes pour cette suite de tests, avec le statut de chacune dโ€™elles.

L'onglet Assertions liste toutes les assertions ajoutรฉes ร  la suite de tests.

ร‰tape 6: maintenant

  1. Sรฉlectionnez la suite de tests dans l'arborescence du navigateur
  2. Cliquez sur le bouton ยซ Exรฉcuter ยป
  3. Les rรฉsultats seraient affichรฉs pour lโ€™ensemble de la suite de tests.

Rรฉsultats de l'exรฉcution de la suite de tests aprรจs l'exรฉcution de toutes les assertions

Assertion de correspondance XQuery

Elle utilise une expression XQuery pour sรฉlectionner le contenu de la propriรฉtรฉ cible. Nous avons besoin d'une rรฉponse XML beaucoup plus volumineuse pour mieux comprendre l'assertion XQuery. SoapUIImportons un autre fichier WSDL, comme indiquรฉ ci-dessous : http://www.webservicex.net/medicareSupplier.asmx?WSDL

ร€ noter: Les points de terminaison de dรฉmonstration publics de webservicex.net utilisรฉs dans ce tutoriel ne sont plus accessibles de maniรจre fiable ; les captures dโ€™รฉcran de requรชtes et de rรฉponses ci-dessous sont donc conservรฉes ร  titre dโ€™exemple. Tout WSDL renvoyant un ensemble de nล“uds rรฉpรฉtitifs dรฉclenchera lโ€™assertion XQuery de maniรจre identique.

ร‰tape 1 : Faites un clic droit sur le projet existant et sรฉlectionnez ยซ Ajouter WSDL ยป.

Menu contextuel (clic droit) sur le SoapUI projet affichant Ajouter WSDL

ร‰tape 2 : La boรฎte de dialogue Ajouter un WSDL sโ€™ouvre. Laissez les autres options par dรฉfaut et cliquez sur le bouton ยซ OK ยป.

Ajouter une boรฎte de dialogue WSDL avec les options d'importation par dรฉfaut

ร‰tape 3 : Toutes les opรฉrations sont listรฉes comme indiquรฉ ci-dessous.

Les opรฉrations WSDL des fournisseurs Medicare sont rรฉpertoriรฉes dans l'arbre de navigation.

ร‰tape 4 : Ajoutons maintenant un Cas de test au sein de la mรชme suite de tests que nous avions crรฉรฉe pour Tests le convertisseur de devises.

Nouvelle option TestCase dans la suite de tests existante

ร‰tape 5 : Saisissez le nom du cas de test et cliquez sur le bouton ยซ OK ยป.

Saisie du nom du cas de test dans la boรฎte de dialogue Nouveau cas de test

ร‰tape 6 : Le cas de test est crรฉรฉ comme indiquรฉ ci-dessous.

Cas de test nouvellement crรฉรฉ dans le SoapUI arbre du navigateur

ร‰tape 7 : Ajoutez une nouvelle รฉtape de test de type ยซ Requรชte de test SOAP ยป comme indiquรฉ ci-dessous.

Ajouter un menu รฉtape avec l'option ยซ Demande de test SOAP ยป sรฉlectionnรฉe

ร‰tape 8 : Saisissez le nom de lโ€™รฉtape de test. Par exemple : ยซ Fournisseur_par_Ville ยป, ce qui serait plus explicite. Cliquez sur ยซ OK ยป.

Nommer la nouvelle รฉtape de test Supplier_by_City

ร‰tape 9: Sรฉlectionnez le Operation que nous souhaitons valider. Dans ce cas, il s'agit de ยซ MedicareSupplierSoap -> GetSupplierByCity ยป. Cliquez sur ยซ OK ยป.

Sรฉlection de l'opรฉration GetSupplierByCity pour l'รฉtape de test

ร‰tape 10 : Saisissez le nom du cas de test et cliquez sur ยซ OK ยป.

Confirmation du nom de la requรชte de test SOAP

ร‰tape 11 : Le schรฉma XML de la requรชte sโ€™affichera comme indiquรฉ ci-dessous.

Modรจle XML de requรชte GetSupplierByCity gรฉnรฉrรฉ

ร‰tape 12 : Maintenant, recherchons toutes les informations sur les fournisseurs pour la ville de ยซ New York ยป.

Pour ce faire, ajoutez les lignes suivantes ร  votre code.

<GetSupplierByCity xmlns="http://www.webservicex.net/">

<City>New York</City>

</GetSupplierByCity>

WSDL ci-dessous URL โ€“ http://www.webservicex.net/medicareSupplier.asmx?op=GetSupplierByCity

Requรชte XML modifiรฉe avec New York comme valeur de la ville

ร‰tape 13 : Aprรจs lโ€™exรฉcution du test, nous obtenons la rรฉponse ci-dessous.

Rรฉponse GetSupplierByCity contenant des enregistrements de fournisseurs rรฉpรฉtรฉs

ร‰tape 14 : Supposons que nous devions valider tous les numรฉros de fournisseur. Nous ne pouvons pas utiliser dโ€™assertions XPath, car il nous en faudrait des centaines. Lโ€™utilisation de XQuery est donc inรฉvitable dans ce cas.

XQuery Assertion nous aide ร  valider un groupe de rรฉponses XML de nature rรฉpรฉtitive.

Nล“uds SupplierData rรฉpรฉtitifs sur lesquels XQuery va itรฉrer

ร‰tape 15 : Cliquez maintenant sur ยซ Ajouter une assertion ยป.

  1. Sรฉlectionnez la ยซ Catรฉgorie d'assertion ยป โ€“ Contenu de la propriรฉtรฉ dans ce cas.
  2. Sรฉlectionnez le type d'assertion comme ยซ Assertion XQuery ยป
  3. Cliquez sur ยซ Ajouter ยป.

Assertion XQuery sรฉlectionnรฉe dans la catรฉgorie Contenu de la propriรฉtรฉ

ร‰tape 16 : Comme pour lโ€™assertion XPath, nous devons dรฉclarer lโ€™espace de noms.

  1. Cliquez sur le bouton ยซ Dรฉclarer ยป pour autoriser automatiquement SoapUI Pour dรฉclarer l'espace de noms, cliquez sur le bouton ยซ Dรฉclarer ยป. Une fenรชtre contextuelle s'affichera avec le message ยซ Dรฉclarez plutรดt l'espace de noms ร  partir du schรฉma ยป. Cliquez sur ยซ Oui ยป pour continuer, comme indiquรฉ ci-dessous.
  2. Pour rรฉcupรฉrer tous les numรฉros de fournisseur, nous devons รฉcrire une requรชte XPath et nous la placerons dans < SupplierNumber> et Mots clรฉs.
  3. Cliquez sur ยซ Sรฉlectionner ร  partir du courant ยป qui s'exรฉcutera ร  partir de la rรฉponse actuelle.
  4. En cliquant sur ยซ Sรฉlectionner parmi les fournisseurs actuels ยป, tous les numรฉros de fournisseur s'affichent.
  5. Cliquez sur ยซ Enregistrer ยป.

Dรฉclarer l'espace de noms ร  partir de la fenรชtre contextuelle de confirmation du schรฉma

Remarque : En cliquant sur le bouton ยซ Dรฉclarer ยป, vous pourriez obtenir des rรฉsultats diffรฉrents. URLBien que cette dรฉclaration d'espace de noms soit utilisรฉe, c'est l'espace de noms de l'emplacement rรฉel du service Web qui sera pris en compte pour le codage.

L'expression XQuery finale, avec ses dรฉclarations d'espace de noms, ressemble ร  ceci.

// Namespace declaration
declare namespace soap='http://schemas.xmlsoap.org/soap/envelope/';
declare namespace ns1='http://www.webservicex.net/';
declare namespace x = '';

// Placing the result in Myresult Tags

{
// Iterating through all the supplier number
for $x in //ns1:GetSupplierByCityResponse/ns1:SupplierDataLists/ns1:SupplierDatas/ns1:SupplierData

//Return all the Supplier number within โ€˜SupplierNumberโ€™ Tags.
return {data($x/ns1:SupplierNumber)}
}

Fenรชtre d'expression XQuery listant chaque numรฉro de fournisseur

ร‰tape 17 : Lโ€™assertion XQuery est exรฉcutรฉe et affiche le rรฉsultat final dans le panneau ยซ Assertion ยป, comme illustrรฉ ci-dessous. Nous avons ainsi ajoutรฉ avec succรจs une assertion XQuery permettant de valider toutes les informations relatives aux numรฉros de fournisseur. Ces informations seront comparรฉes aux valeurs rรฉelles ร  chaque envoi dโ€™une requรชte au serveur web.

Remarque : Les valeurs rรฉelles ne seront pas affichรฉes. Si toutes les valeurs rรฉelles sont identiques ร  celles des valeurs attendues, alors il affiche VALIDE, sinon il affichera ยซ ร‰chec ยป.

Panneau Assertions affichant le rรฉsultat de l'assertion XQuery

Quand utiliser lโ€™assertion intรฉgrรฉe ?

Les options de pointage et de clic ainsi que les options scriptรฉes รฉtant toutes deux abordรฉes, la question pratique est de savoir laquelle choisir.

  • Lorsqu'une rรฉponse est courte, elle peut รชtre validรฉe ร  l'aide de l'une de ces assertions intรฉgrรฉes.
  • Nous pouvons รฉgalement utiliser l'assertion intรฉgrรฉe si la rรฉponse envoyรฉe depuis le serveur Web est toujours de nature statique. S'il est dynamique, nous ne pourrons pas l'affirmer ร  l'aide d'assertions intรฉgrรฉes.
  • Lorsque l'utilisation d'assertions intรฉgrรฉes telles que les assertions Time out et les assertions de sรฉcuritรฉ devient inรฉvitable.
  • Les assertions intรฉgrรฉes conviennent assez bien pour une utilisation unique oรน les tests n'ont pas besoin d'รชtre rรฉpรฉtรฉs.

Options d'assertions

Les assertions crรฉรฉes peuvent รชtre mieux contrรดlรฉes ร  l'aide du panneau de contrรดle mis en รฉvidence ci-dessous.

panneau de contrรดle de la boรฎte ร  outils Assertions dans SoapUI

Les assertions crรฉรฉes permettent aux testeurs de configurer les รฉlรฉments suivants ร  partir de la boรฎte ร  outils d'assertions.

Option Description
Icรดne d'affirmation de dรฉplacer vers le haut L'assertion sรฉlectionnรฉe monte dans l'ordre.
Icรดne de dรฉplacement de l'assertion vers le bas L'assertion sรฉlectionnรฉe descend dans l'ordre.
Supprimer l'icรดne d'assertion Supprime l'assertion sรฉlectionnรฉe
Configurer ou modifier l'icรดne d'assertion Reconfigurez/modifiez l'assertion sรฉlectionnรฉe.

Vous trouverez ci-dessous les fonctionnalitรฉs disponibles exclusivement dans la version Pro de SoapUI, maintenant expรฉdiรฉ sous forme de ReadyAPILa version Pro nous permet รฉgalement de regrouper les assertions afin d'ajouter une couche de validation supplรฉmentaire aux assertions crรฉรฉes.

  • ET: Toutes les assertions sont รฉvaluรฉes comme des assertions VALIDES, ce qui entraรฎnera la rรฉussite du groupe.
  • OU: Au moins une des assertions au sein du groupe doit รชtre VALIDE pour qu'une condition de groupe Rร‰USSIE soit รฉtablie.
  • La version Pro permet รฉgalement Clonage d'assertionsCette option permet aux testeurs d'autoriser la copie d'une assertion vers une autre รฉtape de test, que ce soit dans le mรชme projet ou dans un projet diffรฉrent.
  • Activer/Dรฉsactiver les assertions : cette option permet dโ€™activer ou de dรฉsactiver toute assertion, groupรฉe ou non. Une assertion dรฉsactivรฉe est grisรฉe et ne sera pas exรฉcutรฉe lors de lโ€™exรฉcution dโ€™un test.
  • Dissocier les assertions groupรฉes : les assertions groupรฉes peuvent รชtre dissociรฉes si les testeurs le souhaitent.

Liste complรจte des mรฉthodes disponibles dans diffรฉrents types d'assertions

Le tableau ci-dessous rassemble toutes les assertions mentionnรฉes ci-dessus, regroupรฉes par catรฉgorie dans laquelle elles apparaissent dans la boรฎte de dialogue Ajouter une assertion.

Mรฉcanisme d'affirmation Description
CONTENU DE LA PROPRIร‰Tร‰
Inclus Recherche l'existence de la chaรฎne spรฉcifiรฉe. Il prend รฉgalement en charge les expressions rรฉguliรจres.
Ne contient pas Recherche la non-existence de la chaรฎne spรฉcifiรฉe. Il prend รฉgalement en charge les expressions rรฉguliรจres.
Correspondance XPath Utilise l'expression XPath pour sรฉlectionner le nล“ud cible et ses valeurs.
Correspondance XQuery Utilise une expression XQuery pour sรฉlectionner le contenu de la propriรฉtรฉ cible.
Conformitรฉ, statut, normes
HTTP Tรฉlรฉcharger toutes les ressources Valide le document HTML aprรจs le tรฉlรฉchargement et il est valable pour toute propriรฉtรฉ contenant du HTML.
Statut HTTP invalide Codes Vรฉrifie si la rรฉponse HTML contient un code d'รฉtat qui ne figure pas dans la liste des codes dรฉfinis.
Pas de dรฉfaut SOAP Vรฉrifie si le dernier message reรงu n'est pas une erreur SOAP. Il est trรจs รฉvident que cela ne s'applique qu'aux รฉtapes de test SOAP.
Conformitรฉ au schรฉma Vรฉrifie si le dernier message reรงu est conforme ร  la dรฉfinition de schรฉma standard WSDL ou WADL. Convient aux รฉtapes de test SOAP et REST.
Dรฉfaut SAVON Vรฉrifie si le dernier message reรงu est une erreur SOAP. C'est l'inverse des assertions de faute ยซ PAS SOAP ยป.
Rรฉponse SOAP Vรฉrifie si la derniรจre rรฉponse reรงue est une rรฉponse SOAP valide et est valable uniquement pour les รฉtapes de demande de test SOAP.
Statut HTTP valide Codes Vรฉrifie si la rรฉponse HTML contient un code d'รฉtat figurant dans la liste des codes dรฉfinis. C'est l'inverse d'un code d'รฉtat HTTP invalide. Codes' Assertion.
Demande d'adressage WS Vรฉrifie si la derniรจre demande reรงue contient les en-tรชtes WS-Addressing appropriรฉs.
Rรฉponse d'adressage WS Vรฉrifie si la derniรจre rรฉponse reรงue contient les en-tรชtes WS-Addressing appropriรฉs.
Statut de sรฉcuritรฉ WS Valide si le dernier message reรงu contient des en-tรชtes WS-Security valides et est valable uniquement pour les requรชtes SOAP.
scรฉnario
Assertion de script Permet aux utilisateurs d'exรฉcuter un script personnalisรฉ pour effectuer des validations dรฉfinies par l'utilisateur.
Contrat de niveau de service
Rรฉponse SLA Valide si le temps de rรฉponse de la derniรจre rรฉponse reรงue รฉtait dans la limite dรฉfinie.
JMS
Statut JMS Vรฉrifie si la requรชte JMS de l'รฉtape de test s'est exรฉcutรฉe avec succรจs et est valable pour les รฉtapes de test avec un point de terminaison JMS.
Expiration du dรฉlai JMS Vรฉrifie si la rรฉponse JMS d'une รฉtape de test n'a pas pris plus de temps que la durรฉe spรฉcifiรฉe.
Sรฉcuritรฉ
Exposition ร  des informations sensibles Vรฉrifie si le message de rรฉponse n'expose pas d'informations sensibles sur le systรจme cible. Nous pouvons utiliser cette assertion pour les รฉtapes de test REST, SOAP et HTTP.

Tร‰Lร‰CHARGEZ LE PROJET SOAPUI CONTENANT LES ASSERTIONS CI-DESSUS

Erreurs courantes et dรฉpannage

La plupart des รฉchecs d'assertion tracNous en revenons ร  un petit nombre d'erreurs, alors vรฉrifiez-les avant de rรฉรฉcrire une expression.

  • Utilisez l'espace de noms correct. L'espace de noms doit รชtre le URL oรน se trouve le service web.
  • Si une erreur est levรฉe lors du dรฉveloppementping Dans une assertion de script, utilisez 'log.info' pour afficher le contenu des variables.
  • Si vous n'obtenez pas le rรฉsultat souhaitรฉ, vรฉrifiez si une entrรฉe valide est transmise dans la requรชte.

Par exemple, dans un convertisseur de devises, si vous saisissez ยซ x ยป comme valeur non entiรจre pour ยซ intA ยป, le systรจme renvoie le code d'erreur ยซ SOAP-Client ยป, indiquant un problรจme avec le paramรจtre transmis par le client. La requรชte contenant la valeur invalide est affichรฉe en premier.

SoapUI La requรชte a transmis une valeur non entiรจre invalide pour intA.

La rรฉponse renvoie le code d'erreur au lieu d'un rรฉsultat, comme indiquรฉ ci-dessous.

Le code d'erreur du client SOAP a รฉtรฉ renvoyรฉ dans le SoapUI รฉditeur de rรฉponses

Assurez-vous d'utiliser la syntaxe correcte lors de l'utilisation d'assertions XPath et XQuery. N'utilisez PAS le point (.) ร  la place du deux-points (:) dans l'assertion ci-dessus. La syntaxe correcte est //namespace:Tagname et NON //namespace.tagname. En cas d'erreur, vous risquez d'obtenir le message ยซ Aucune correspondance dans la rรฉponse actuelle ยป mรชme si le nom de la balise est correct.

Aucune correspondance dans la rรฉponse actuelle. Erreur due ร  une syntaxe XPath incorrecte.

FAQ

N'importe quel nombre. SoapUI applique chaque assertion associรฉe ร  une รฉtape de test d'รฉchantillonneur aprรจs son exรฉcution, et l'รฉtape est marquรฉe comme ayant รฉchouรฉ dans la vue du cas de test si ne serait-ce qu'une de ces assertions รฉchoue.

Il compare un message XML ร  un document attendu, nล“ud par nล“ud, de sorte que certains champs peuvent รชtre ignorรฉs ou faire correspondre de maniรจre approximative au lieu de traiter l'ensemble de la charge utile comme une simple chaรฎne de caractรจres.

Open source SoapUI Couvre le contenu de la propriรฉtรฉ, la conformitรฉ, les scripts, les SLA, JMS et la sรฉcuritรฉ. ReadyAPI ajoute un groupeping, le clonage, les vรฉrifications JDBC et l'activation ou la dรฉsactivation du contrรดle.

Les modรจles d'IA lisent un exemple de rรฉponse et suggรจrent des expressions XPath ou XQuery, proposent des valeurs limites et signalent les champs qui changent ร  chaque exรฉcution, rรฉduisant considรฉrablement le travail manuel d'รฉcriture des espaces de noms et des expressions.

Oui. Copilot saisie semi-automatique GroovyCode standard pour Utils et XmlHolder. Exรฉcutez toujours le script en premier, car un script syntaxiquement valide renvoie ยซ Assertion de script rรฉussie ยป quelle que soit votre comparaison.

Oui. Les champs de contenu des assertions prennent en charge l'expansion des propriรฉtรฉs, de sorte que la valeur attendue peut รชtre extraite d'une propriรฉtรฉ de projet ou de cas de test plutรดt que d'une valeur littรฉrale, ce qui permet de rรฉutiliser une assertion dans diffรฉrents environnements.

Une assertion ayant รฉchouรฉ marque son รฉtape de test comme ayant รฉchouรฉ dans la vue du cas de test et inscrit une entrรฉe FAILED correspondante, avec le dรฉtail de l'รฉchec, dans le journal d'exรฉcution des tests en bas de la fenรชtre.

Contient, ne contient pas, correspondance XPath, correspondance XQuery, SLA de rรฉponse, script, codes d'รฉtat HTTP valides et invalides, exposition des informations sensibles et conformitรฉ du schรฉma par rapport ร  un WADL ou ร  un schรฉma infรฉrรฉ.

Rรฉsumez cet article avec :