2010-03-29 7 views
1

J'utilise actuellement édition SoapUI gratuit 3.2-beta 2. Et j'ai un problème bizarre avec une affirmation Xpath:SoapUI & Xpath: affirmation pour un simple noeud

Je cela en réponse:

(...) Et j'utilise ce XPath pour affirmer que le "niveau" avec id = '2' est dans la réponse:

Expression Xpath;

//*:niveau[@id='2'] 

Et le résultat attendu est:

<mod0911:niveau id="2" libelle="Immatriculation" ordre="0" taille="0"/> 

Mais je ce message d'erreur: comparaison XPathContains a échoué, attendant [], réelle était [null]

Mais si je tente cette :

exists(//*:niveau[@id='2']) 

Et le résultat attendu est: Vrai Ça marche !!?

Mais cette syntaxe est assez difficile à lire & maintenez & Je voudrais utiliser la 1ère syntaxe (j'ai essayé d'ignorer l'espace de noms, les ajouter ... ne fonctionne toujours pas).

Des idées?

Cordialement

Répondre

1

Le XPath que vous déclarez est exécuté en fait contre le XML dans la réponse. Ensuite, il compare le texte dans "Résultat attendu".

Je ne suis pas sûr à 100% de ce que vous essayez de faire. Compte tenu de cette réponse:

<root> 
    <a> 
    <b id="2" /> 
    </a> 
    <c> 
    </c> 
</root> 

Si vous mettez cela dans le "Declare": //b[@id=2], il fonctionnera que XPath contre le XML. Ce XPath (non testé) ne doit sélectionner que l'élément <b>.

Ensuite, votre "Résultat attendu" devrait être: <b id="2" />.

0

Donnez un petit tour à la version pro, et vous verrez qu'il est équipé d'un expert xpath. Avec une demande d'échantillon présente, vous pouvez simplement choisir la valeur que vous recherchez et cela générera le xpath et vous montrera la valeur. Très sympa. Copiez/collez le xpath dans la version gratuite et vous êtes tous ensemble. Ou, si vous êtes comme moi, poussez plus fort pour que votre patron achète la version Pro pour vous.

2

Vous pouvez utiliser l'outil FirstObject XML Editor pour générer le Xpath. Il générera automatiquement le XPath pour votre sélection comme vous le faites dans soapUI Pro et vous pourrez ensuite utiliser ce Xpath dans votre version sans soapui.

0

Vous devez inclure les balises XML non seulement la valeur du nœud.

Si vous modifiez votre attente de [] à <nodeName id=2 /> cela devrait fonctionner.

Questions connexes