如何在SoapUI的断言部分修剪(空格)变量?

时间:2017-10-06 15:07:36

标签: groovy soapui ready-api

如何修剪(前导和尾随空格)SoapUI / ReadyAPI断言部分中的变量?

phantomjs.exe --web-security=no script.js

Ready API Assertion Popup

3 个答案:

答案 0 :(得分:1)

使用trim作为尾随空格。 使用replace来摆脱空间。

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)查看效果。

答案 1 :(得分:1)

在谷歌之后,我得到了XSLT / XPath方法,该方法在Assertion窗口中对给定变量进行空格修剪。

方法名称:normalize-space()

用法如下: 正常化空间(//结果[1] /结果集[1] /列[1] /PAYMNT_RQST.PAYMNT_STAT_CD [1])

normalize-space函数折叠字符串中的空格。具体来说,它执行三个步骤:

  1. 替换每个回车符(#xD),换行符(#xA)和制表符(#x9)
  2. 单个空格的字符(#x20)折叠所有连续的
  3. 空格分隔到一个空格中删除所有前导和尾随空格
  4. 由于

答案 2 :(得分:0)

您正在使用' Xpath Match'截至目前

您可以尝试使用' XQuery Match'代替。它会自动修剪空间

示例响应,我们在' -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 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>

下面是结果,你可以看到5后面的空格被移除

<Result>-1       5</Result>

因此,对于您的示例,代码将如下面的XQuery Match

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>

最好的方法是使用脚本断言进行此类或任何其他复杂操作。但上面应该会有所帮助