2017-10-09 83 views
1

我是一名編程初學者,目前我正在執行依賴groovy腳本的SOAP UI測試。下面我想斷言,一切政策內DTO包含正確的價值觀:如何迭代JSON中的DTO來執行斷言?

{ 
    "policies": [ 
      { 
     "xx": 28, 
     "xxxxx": 41, 
     }, 
      { 
     "xx": 31, 
     "xxxxxx": 41, 
     }, 
      { 
     "xx": 34, 
     "xxxxx": 41, 
     }, 
      { 
     "xx": 37, 
     "xxxxx": 41, 
     } 
    ] 
    } 

現在我知道如何執行斷言通過簡單地包括json.policies.xx[0]json.policies.xx[1]等但這似乎有點長篇大論。我假設有一個更好的方法,通過迭代政策中的DTO來確保xxx是正確的,並且xxxxx是正確的。我的問題是,有人能給我一個例子讓我知道如何編碼嗎?

import groovy.json.JsonSlurper 
def response = messageExchange.response.responseContent 
def json = new JsonSlurper().parseText(response) 

assert json.policies.xx[0].toString() = '28' 
assert json.policies.xx[1].toString() = '31' 
assert json.policies.xx[2].toString() = '34' 
assert json.policies.xx[3].toString() = '37' 

assert json.policies.xxxxx[0].toString() = '41' 
assert json.policies.xxxxx[1].toString() = '41' 
assert json.policies.xxxxx[2].toString() = '41' 
assert json.policies.xxxxx[3].toString() = '41' 

謝謝

回答

1

您可以簡化您的斷言一行,如:

import groovy.json.JsonSlurper 
def response = messageExchange.response.responseContent 
def json = new JsonSlurper().parseText(response) 

def policies = [[xx: 28, xxxxx: 41], [xx: 31, xxxxx: 41], [xx: 34, xxxxx: 41], [xx: 37, xxxxx: 41]] 

assert json.policies == policies