我想比较从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
}
答案 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