2012-05-05 8 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要求ステップ#1 ResponseAsXml ")

DEFノード1 = JMSHolder.getDomNodes(" // NS0:研究[1]/")
DEF NODE2 = JDBCHolder.getDomNodes(" //行[1]/
「)

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

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

答えて

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