2017-10-06 70 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

感谢您的回复。我有一个简单的方法,正如我在下面提到的。所以不能试试这个。我相信这也有助于解决这个问题。 –