2016-02-25 52 views
-2

我試圖運行與包含斷言但遇到問題。我已經寫在下面用Groovy的代碼在soapUI中,使用斷言與包含在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是不是在跟蹤號碼。但是,當我運行它通過的腳本。你知道我在做什麼錯嗎

+6

'{!TrackingNumber.contains(Pieceid)}'是一個閉包。它總是如此(非空)。刪除{} –

+0

如果您記錄這些變量,它會顯示什麼?例如'log.info'$ pieceid $ TrackingNumber「' – Rao

+0

我修改了查詢並添加了loginfo: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) log.info「$ pieceid $ TrackingNumber」.................但是它仍然通過,沒有信息記錄從2月26日星期五開始09:41:02 GMT 2016:信息:。我附上了一些屏幕截圖信息 – csman

回答

1

在這種情況下看起來像一個微不足道的問題。

變化:

  • Response
  • 更換ResponseAsXmlassert語句中刪除{ .. },並推出(..)
  • 長相,你用不正確的變量,即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中使用索引。瞭解這可能是由該工具自動生成的。原因是,如果節點的排列順序不同,那麼將會破壞您現有的斷言,以便以後執行測試。

+0

排序感謝您的幫助和建議球員:-) – csman

+0

@csman,你會介意接受它作爲答案,如果解決? – Rao