使用groovy比较SOAPUI中SOAP响应和JDBC响应的元素值

时间:2012-05-05 03:34:34

标签: xml groovy compare

我想比较从SOAP响应和JDBC请求获取的节点下的元素值。 我可以使用下面的groovy代码打印这些值,但无法进行比较,因为我不太擅长编码。

注意:两个响应中的元素名称相同但顺序不同。

我想根据两个响应中的元素名称比较值,而不管元素的顺序如何。 注意:仅在JDBC元素值不为空时进行比较。

  

def groovyUtils = new com.eviware.soapui.support.GroovyUtils(context)

     

def JMSHolder = groovyUtils.getXmlHolder(“SOAPTestStep#Response”)
  def JDBCHolder = groovyUtils.getXmlHolder(“JDBC Request step#ResponseAsXml”)

     

def node1 = JMSHolder.getDomNodes(“// ns0:Study [1] / ”)
     def node2 = JDBCHolder.getDomNodes(“// Row [1] /
”)

     

node1.each {
     log.info it.QName.getLocalPart()
     log.info it.firstChild.nodeValue
     }

     

node2.each {
    log.info it.QName.getLocalPart()
     log.info it.firstChild.nodeValue
    }

1 个答案:

答案 0 :(得分:0)

请参阅此脚本,也许会对您有所帮助

def groovyUtils = new com.eviware.soapui.support.GroovyUtils( context )
def holder = groovyUtils.getXmlHolder( "Request#Request" );
def holder2 = groovyUtils.getXmlHolder("Responses#ResponseAsXml")

def stringList=[]
def stringList2=[]

for( node in holder['//name] )
{  
  stringList =stringList+node 
}


for( node2 in holder2['//name'] )
{ 
  stringList2 =stringList2+node2 
    if (node2 in stringList ) assert true
    else assert null
}


log.info "Request>" + stringList
log.info "result>"+ stringList2