如何修剪(前导和尾随空格) SoapUI/ReadyAPI 的断言部分中的变量?
Ex:
Input String : "Failure "
Output String : "Failure"
如何修剪(前导和尾随空格) SoapUI/ReadyAPI 的断言部分中的变量?
Ex:
Input String : "Failure "
Output String : "Failure"
使用修剪尾随空格。使用替换来摆脱空格。
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) 查看效果。
经过一番谷歌,我得到了 XSLT/XPath 方法,它在断言窗口中对给定变量进行空间修剪。
方法名称:规范化空间()
用法如下: normalize-space(//Results[1]/ResultSet[1]/Row[1]/PAYMNT_RQST.PAYMNT_STAT_CD[1])
normalize-space 函数折叠字符串中的空格。具体来说,它执行三个步骤:
谢谢
您现在正在使用“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 匹配中
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>
最好的办法是对此类或任何其他复杂操作使用脚本断言。但以上应该有帮助