2

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

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

就绪 API 断言弹出窗口

4

3 回答 3

10

使用修剪尾随空格。使用替换来摆脱空格。

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

于 2017-10-06T15:52:18.177 回答
1

经过一番谷歌,我得到了 XSLT/XPath 方法,它在断言窗口中对给定变量进行空间修剪。

方法名称:规范化空间()

用法如下: normalize-space(//Results[1]/ResultSet[1]/Row[1]/PAYMNT_RQST.PAYMNT_STAT_CD[1])

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

  1. 替换每个回车符 (#xD)、换行符 (#xA) 和制表符 (#x9)
  2. 带有单个空格的字符 (#x20) 折叠所有连续的
  3. 空格变成一个空格 删除所有前导和尾随空格

谢谢

于 2017-10-09T13:08:16.260 回答
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 匹配中

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>

最好的办法是对此类或任何其他复杂操作使用脚本断言。但以上应该有帮助

于 2017-10-08T08:56:28.170 回答