1
我用我的SOAP UI腳本看到了一些不尋常的東西。我只是想執行的斷言,即用數據是正確的,所以我寫了這個代碼如下:如何通過groovy訂購json輸出?
import com.eviware.soapui.support.GroovyUtils
import groovy.json.JsonOutput
import groovy.json.JsonSlurper
def response = messageExchange.response.responseContent
def json = new JsonSlurper().parseText(response)
def jsonFormat = (response).toString()
def policies = [
[x: 28, xxx: 41, xxxxx: 1, name: 'Individual 18-50', aaa: true],
[x: 31, xxx: 41, xxxxx: 1, name: 'Individual 51-60', aaa: true],
[x: 34, xxx: 41, xxxxx: 1, name: 'Individual 61-75', aaa: true],
[x: 37, xxx: 41, xxxxx: 1, name: 'Individual 76-85', aaa: false]
]
log.warn json.policies
log.error policies
assert json.policies == policies
當我看log.warn和log.error信息,它會顯示不正確的JSON響應因爲它首先顯示「isActive」字段。
log.warn json.policies
顯示此:
[{aaa=true, xx=28, xxxxx=1, name=Individual 18-50, xxxx=41}, {aaa=true, x=31, xxxxx=1, name=Individual 51-60, xxx=41}, {aaa=true, x=34, xxxxx=1, name=Individual 61-75, xxx=41}, {aaa=true, x=37, xxxxx=1, name=Individual 76-85, xxx=41}]
log.error policies
顯示此:
[{x=28, xxx=41, xxxxx=1, name=Individual 18-50, aaa=true}, {x=31, xxx=41, xxxxx=1, name=Individual 51-60, aaa=true}, {x=34, xxxx=41, xxxxxx=1, name=Individual 61-75, aaa=true}, {x=37, xxx=41, xxxxx=1, name=Individual 76-85, aaa=false}]
如何我必須按正確的順序內的json.policies
顯示的DTO,使其按照正確的順序顯示爲政策?
另一個不尋常的事情是,我運行了10次測試用例,並且這個斷言檢查的測試步驟已經超過10次。它應該永遠不會通過,就好像你比較最後的DTO作爲policies
的結尾,它顯示isActive
爲假其中最後一個在json.policies
中的活動爲爲真。
Json地圖沒有訂單 –
@ oh ok那麼,我可以問一下,它有時會如何通過,並失敗了斷言?有沒有我在代碼中做了不正確的事情? –
因爲有時它會以正確的順序出現,而其他的不是。您不能依賴訂單 –