2017-10-06 71 views
0

如何在SoapUI/ReadyAPI的斷言部分修剪(前導和尾隨空格)變量?如何修剪(空間)在SoapUI的斷言部分的變量?

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

Ready API Assertion Popup

+0

你的意思修剪或分配給VAR值刪除空格? –

+0

我的意思是從分配給變量的值中刪除空格。 –

+0

你介意提供樣本數據(文本形式,而不是圖片),並提及您使用的是什麼樣的斷言?這個問題呢?從摘要/描述或從您的意見下面的答覆中都不清楚。 – Rao

回答

1

經過一些谷歌後,我得到了XSLT/XPath方法,它在斷言窗口中對給定變量進行空間裁剪。

方法名稱:正常化空間()

用途將是這樣的: 正常化空間(//結果[1] /結果集[1] /列[1] /PAYMNT_RQST.PAYMNT_STAT_CD [1])

規格化空間函數摺疊字符串中的空格。具體地,它執行三個步驟:

  1. 替換每個回車符(#xD),換行(#xA)和標籤(#X9)
  2. 字符用一個空格(#X20)摺疊所有連續
  3. 空間爲單個空格刪除所有前導和尾隨空格

感謝

+1

這不是一個Groovy方法,這是一個XPath方法。 – SiKing

+0

你說得對。我更新了它。謝謝 –

1

使用修剪的尾隨空格。 使用替換來擺脫空格。

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

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

使用log.info(varName)查看效果。

+0

這些方法在ReadyAPI中的斷言彈出窗口中不起作用。 –

+0

它在腳本斷言和Groovy腳本中爲我工作。我將在週一重新檢查工作, –

0

您正在使用「Xpath的比賽」截至目前

你可以嘗試使用「XQuery的比賽」來代替。它會自動修剪空間,我們以後「-1 5」有空間

樣品響應(所以我們會盡量把空格去掉

<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> 

把下面的代碼中的XQuery比賽

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> 

以下是結果,你可以看到空格後面的5被刪除

<Result>-1  5</Result> 

因此對於您的示例代碼就會像下面一個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> 

的最好的事情是使用腳本斷言這種或任何其他複雜的操作中。但上面應該是有幫助的

+1

感謝您的回覆。我有一個簡單的方法,正如我在下面提到的。所以不能試試這個。我相信這也有助於解決這個問題。 –