我正在尝试使用contains运行一个断言但遇到问题。我在SOAPUI Pro中使用groovy编写了下面的代码
def pieceid = context.expand( '${OneDX#ResponseAsXml#//Results[1]/ResultSet[1]/Row[1]/PIECEID[1]}' )
def TrackingNumber = context.expand( '${OneDX#ResponseAsXml#//Results[1]/ResultSet[1]/Row[1]/TRACKINGNUMBER[1]}' )
assert {!TrackingNumber.contains(Pieceid)}
跟踪号码是907598985733,Pieceid是1820480 ....因此,Pieceid不在跟踪号码中。但是,当我运行脚本时,它会通过。你知道我做错了吗
答案 0 :(得分:1)
在这种情况下看起来像一个微不足道的问题。
的变化:
ResponseAsXml
替换为Response
{ .. }
语句中删除了assert
,并引入了( .. )
Pieceid
,这也是不可用的 - 不正确的情况。您可以使用已更改的groovy script
代码段
def pieceid = context.expand( '${OneDX#Response#//Results[1]/ResultSet[1]/Row[1]/PIECEID[1]}' )
def trackingNumber = context.expand( '${OneDX#Response#//Results[1]/ResultSet[1]/Row[1]/TRACKINGNUMBER[1]}' )
log.info "Tracking number is $trackingNumber and Piece Id is $pieceid"
assert (!trackingNumber.contains(pieceid)), "Tracking number contains Pieceid"
您也应该能够在日志中看到这两个变量的数据。
我还建议您不要在xpath
中使用索引。了解可能由该工具自动生成。原因是如果节点的顺序不同,那么将破坏现有的断言以供以后的测试执行。