2012-05-05 38 views
1

我想比较从SOAP响应中获取的节点下的元素和JDBC请求的值。 我能够使用下面的groovy代码打印值,但没有比较相同,因为我不擅长编码。使用groovy比较SOAPUI中的SOAP响应和JDBC响应的元素值

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

我想比较基于来自两个响应的元素名称的值,而不管元素的顺序如何。 注意:仅在JDBC元素值不为null时进行比较。

DEF groovyUtils =新com.eviware.soapui.support.GroovyUtils(上下文)

DEF JMSHolder = groovyUtils.getXmlHolder( “SOAPTestStep#响应”)
DEF JDBCHolder = groovyUtils.getXmlHolder(“JDBC请求步骤#ResponseAsXml “)

DEF节点1 = JMSHolder.getDomNodes(” // NS0:研究[1]/“)
DEF节点2 = JDBCHolder.getDomNodes(” //行[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
}

回答

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