2017-10-06 4 views
0

Comment couper (espaces avant et arrière) les variables dans la section d'assertion de SoapUI/ReadyAPI?Comment couper (espacer) les variables dans la section assertion de SoapUI?

Ex: 
Input String : "Failure " 
Output String : "Failure" 

Ready API Assertion Popup

+0

Voulez-vous dire couper ou supprimer les espaces de la valeur attribuée à un var? –

+0

Je veux dire enlever des espaces de la valeur assignée à une variable. –

+0

Pourriez-vous fournir les données de l'échantillon (sous forme de texte, pas d'image) et mentionner quel type d'affirmation utilisez-vous? Et le problème? Problème ni clair du résumé/description ni de vos commentaires de la réponse ci-dessous. – Rao

Répondre

1

Après un peu de google, j'ai obtenu la méthode XSLT/XPath qui permet d'ajuster l'espace des variables données dans la fenêtre Assertion.

Nom de la méthode: normaliser l'espace()

utilisation serait comme: normalize-space (// Résultats [1]/ResultSet [1]/Row [1] /PAYMNT_RQST.PAYMNT_STAT_CD [1]) La fonction normalize-space réduit les espaces dans une chaîne. Plus précisément, il effectue trois étapes:

  1. remplace chaque retour de chariot (#xD), saut de ligne (#xA), et l'onglet (# x9)
  2. caractère avec un seul espace (# x20) fractionne toutes consécutive
  3. espaces en un seul espace supprime tous les espaces avant et arrière

Merci

+1

Ce n'est pas une méthode Groovy, c'est une méthode XPath. – SiKing

+0

Vous avez raison. Je l'ai mis à jour. Je vous remercie –

1

Utilisez garniture pour les espaces de fin. Utilisez remplacer pour se débarrasser des espaces.

def trimExample = "Some string to be trimmed.  "; 
def trimmed = trimExample.trim(); 

def removeSpacesExample = "Some String To Lose All Spaces." 
def removedSpaces = removeSpacesExample.replace(' ', ''); 

Utilisez log.info (varName) pour voir l'effet.

+0

Ces méthodes ne fonctionnent pas dans la fenêtre contextuelle Assertion de ReadyAPI. –

+0

Cela a fonctionné pour moi dans une Script Assertion et Groovy Script.Je vais re-vérifier au travail le lundi, –

0

Vous utilisez 'Xpath Match' dès maintenant

Pourriez-vous essayer d'utiliser 'XQuery Match' à la place. découpe automatiquement l'espace

Réponse de l'échantillon où nous avons des espaces après « -1 5 » (donc nous allons essayer de supprimer les espaces

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> 
<soap:Body> 
    <ConversionRateResponse xmlns="http://www.webserviceX.NET/"> 
    <ConversionRateResult>-1  5 </ConversionRateResult> 
    </ConversionRateResponse> 
</soap:Body> 
</soap:Envelope> 

Insérez le code ci-dessous dans XQuery match

declare namespace soap='http://schemas.xmlsoap.org/soap/envelope/'; 
declare namespace ns1='http://www.webserviceX.NET/'; 


for $x in //ns1:ConversionRateResponse 
return <Result>{data($x/ns1:ConversionRateResult)}</Result> 

Voici le résultat, où vous pouvez voir des espaces derrière les 5 sont retirés

<Result>-1  5</Result> 

donc, pour votre exemple, le code sera comme ci-dessous dans un match XQuery

for $x in //ns:Results[1]/ns:Resultset[1]/ns:Row[1] 
return <Result>{data($x/ns:LM_ELEC_PAYMNT_PAYMNT.PLCY_STAT_CD[1])}</Result> 

La meilleure chose serait d'utiliser l'affirmation de script pour tel ou toute autre opération complexe. Mais ci-dessus devrait être utile

+1

Merci pour la réponse. J'ai une méthode simple comme je l'ai mentionné ci-dessous. Donc je n'ai pas pu essayer ça. Je suis sûr que cela aidera également à résoudre ce problème. –