使用相同的路径

时间:2017-11-15 10:18:33

标签: xml groovy soapui

在我的SoapUI响应中,我有一个重复自己的XML结构。例如:

  <b:quote-data>
    <b:quote-data>
      <b:premium>4.66</b:premium>
    </b:quote-data>
    <b:quote-data>
      <b:premium>5.6</b:premium>
    </b:quote-data>
    <b:quote-data>
      <b:premium>7.58</b:premium>
    </b:quote-data>
  </b:quote-data>

我目前有断言用于断言第一个高级字段中的值。我不明白如何使多个断言匹配所有三个字段。

// get the xml response
def response = messageExchange.getResponseContent() 
// parse it
def xml = new XmlSlurper().parseText(response)
// find your node by name
def node = xml.'**'.find { it.name() == 'premium' }
// assert 
assert node.toString().matches("4.66")

有没有办法跳过第一个字段来资产第二个字段?

1 个答案:

答案 0 :(得分:2)

使用findAll获取所有&#39;溢价&#39;节点并迭代节点列表:

    def nodelist = xml.'**'.findAll{ it.name() == 'premium' } 
    def assertions = [4.66, 5.6, 7.58]
    def i=0
    // assert  
    for (node in nodelist) assert node.toString().matches(assertions[i++].toString())