首页 > 代码库 > SoapUI Pro Project Solution Collection-XML assert

SoapUI Pro Project Solution Collection-XML assert

in soapui the XML object used here is from  org.w3c.dom package

so you need to read this article carefully before we can use xml object very well.

http://www.w3schools.com/dom/

http://www.w3schools.com/dom/dom_nodetype.asp

Node Types - Return ValuesThe following table lists what the nodeName and the nodeValue properties will return for each node type:Node Type    nodeName returns    nodeValue returnsDocument    #document    nullDocumentFragment    #document fragment    nullDocumentType    doctype name    nullEntityReference    entity reference name    nullElement    element name    nullAttr    attribute name    attribute valueProcessingInstruction    target    content of nodeComment    #comment    comment textText    #text    content of nodeCDATASection    #cdata-section    content of nodeEntity    entity name    nullNotation    notation name    null
NodeType    Named Constant1           ELEMENT_NODE2           ATTRIBUTE_NODE3           TEXT_NODE4           CDATA_SECTION_NODE5           ENTITY_REFERENCE_NODE6           ENTITY_NODE7           PROCESSING_INSTRUCTION_NODE8           COMMENT_NODE9           DOCUMENT_NODE10          DOCUMENT_TYPE_NODE11          DOCUMENT_FRAGMENT_NODE12          NOTATION_NODE

from the soapui you can assert your response xml from the below way:

image

the default provide script as below:

import com.eviware.soapui.support.XmlHolderdef holder = new XmlHolder( messageExchange.responseContentAsXml )holder.namespaces["ns1"] = "http://ws.cdyne.com/WeatherWS/"def node = holder.getDomNode( "//ns1:GetCityForecastByZIPResponse[1]" )assert node != null

in the instance ,it provide these objects we can use:

XmlHolder holder=new XmlHolder("");                Node[] nodes=holder.getDomNodes("xpath");                for(int k=0;k<nodes.length;k++){            NodeList nodelist=nodes[k].getChildNodes();            for(int j=0;j<nodelist.getLength();j++){                                Node node=nodelist.item(j);                Log.info("node type :"+node.getNodeType());                Short type=node.getNodeType();                if(type==Node.ELEMENT_NODE){                    String nodename=node.getNodeName();                    int csize=node.getChildNodes().getLength();                    String nodevalue=null;                    if(csize>0){                        nodevalue=http://www.mamicode.com/node.getFirstChild().getNodeValue();>

use the above groovy script to assert the response xml content as you want .hope this save your time .

SoapUI Pro Project Solution Collection-XML assert