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 :