没有命名空间
问题描述:
XPath的说法如何让我的XPath断言我的XML响应,如果没有URL在其声明的命名空间,同样会去脚本断言没有命名空间
<data contentType="image/png" contentLength="1143">iVBORw0KGgAEAAA0vr3J9P0uQmCC</data>
这是我得到的
答
在SOAPUI可以使用XPath
即使有该节点上没有命名空间的定义(您的命名空间中的<data>
元素的父节点可能定义)。在你的问题目前还不清楚你想要做什么,因此,例如,如果你想查询contentLenght
属性的值您<data>
元素,您可以使用后续XPath
来获取值:
//data/@contentLength
如果你有一个测试步骤要求在响应<data>
,当你问你想和断言在常规测试步骤可以与后续的代码做到这一点:
def content = context.expand('${YourTestRequestName#response#//data/@contentLength}')
log.info content
assert content.equals("1143"), "ASSERT FAIL"
相反,如果你有XML内容的字符串你可以这样做:
def data = '<data contentType="image/png" contentLength="1143">iVBORw0KGgAEAAA0vr3J9P0uQmCC</data>'
def xmlHolder = new com.eviware.soapui.support.XmlHolder(data)
def contentLength = xmlHolder.getNodeValue("//data/@contentLength")
log.info contentLength
assert content.equals("1143"), "ASSERT FAIL"
最后,如果你有一个测试步骤请求时,它也有可能使这个添加XPath Match
断言在您的测试步骤的要求,你可以在后续图像中看到:
希望这可以帮助,
答
一个父元素可能有申报命名空间,并且向下流到孩子。
在一个简单的XPath断言,您可以使用“任何”命名空间://*:data
,它没有声明。
@albcliff当我们提取像$ {步骤#回应#// * [本地名称()= “血红素”] //}节点它提取命名空间以及例如名称 www.udzial.com 当原始值没有此响应中的mr –
2018-02-07 06:53:55