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 Values
The following table lists what the nodeName and the nodeValue properties will return for each node type:

Node Type    nodeName returns    nodeValue returns
Document    #document    null
DocumentFragment    #document fragment    null
DocumentType    doctype name    null
EntityReference    entity reference name    null
Element    element name    null
Attr    attribute name    attribute value
ProcessingInstruction    target    content of node
Comment    #comment    comment text
Text    #text    content of node
CDATASection    #cdata-section    content of node
Entity    entity name    null
Notation    notation name    null
复制代码
复制代码
NodeType    Named Constant
1           ELEMENT_NODE
2           ATTRIBUTE_NODE
3           TEXT_NODE
4           CDATA_SECTION_NODE
5           ENTITY_REFERENCE_NODE
6           ENTITY_NODE
7           PROCESSING_INSTRUCTION_NODE
8           COMMENT_NODE
9           DOCUMENT_NODE
10          DOCUMENT_TYPE_NODE
11          DOCUMENT_FRAGMENT_NODE
12          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.XmlHolder

def 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=node.getFirstChild().getNodeValue();
                    }
                }
                
                
                
            }
        }
复制代码

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

posted @   高级测试开发网  阅读(365)  评论(0编辑  收藏  举报
编辑推荐:
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
了解开发资源最新动态:https://seniortesting.club
点击右上角即可分享
微信分享提示