如何验证soapUI中针对自定义XSD的部分响应?

时间:2012-01-17 15:42:23

标签: soapui

在soapUI Pro中,我想创建一个断言来验证针对自定义XSD的响应的指定XML节点。我知道存在架构合规性断言,但我想仅验证部分响应和自定义XSD(不是来自WSDL)。

2 个答案:

答案 0 :(得分:1)

需要脚本断言来加载部分响应并根据从文件加载的模式验证它:

import com.eviware.soapui.support.XmlHolder
import javax.xml.XMLConstants
import javax.xml.transform.stream.StreamSource
import javax.xml.validation.SchemaFactory

def holder = new XmlHolder( messageExchange.responseContentAsXml )
holder.namespaces["sam"] = "http://www.example.org/sample/"
def node = holder["XPath"]

def factory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI)
def schema = factory.newSchema(new StreamSource(new FileReader("path_to_XSD_file")))
def validator = schema.newValidator()
validator.validate(new StreamSource(new StringReader(node)))

答案 1 :(得分:0)

如果您收到了回复消息,请执行以下操作以仅验证响应的部分内容:

  • 切换到回复的表单视图。
  • 选择要检查的元素或节点。
  • 右键单击并选择所需的断言。

您可以选择完整的节点或特定元素和值。请点击此链接获取更多信息: soapUI: Validating XML Messages