我正在编写一个测试实用程序,我打算使用它来创建到主应用程序(一个基于Spring Integration的应用程序,它在基于JMS和SOAP的下游和上游服务中都有入口点)的人工流量。除了创建流量之外,我还希望能够判断应用程序是否正确响应(即,获取XML并与预定的预期值进行比较)。我有用于不同类型响应的基本XML,但也有一些动态值,它们基于我需要处理的情况,以便能够与基本源进行比较。一种解决方法是:使用String
Java类的replaceAll方法,根据需要操作源XML和目标XML,使其达到可以确定响应是否有效的逻辑点。我很想知道是否有任何XML实用程序框架可以提供更高级的功能来实现这一点?非常感谢
使用XSLT转换进行"替换"规范化,然后使用XPath 2.0 deep-equal()函数(可能在同一转换中)与引用结果进行比较。这实现了正确的XML比较语义,例如忽略不重要的空白,或任意区分,如单引号和双引号。
您可以为xml生成jaxb类,对其进行解组,然后检查感兴趣的属性。很可能您已经将这些类作为JMS和WS逻辑的dom对象,所以它们可能只需要位于顶部的@XMLRoot anotation。
为了更接近xml,您可以使用XPath来提取您期望的动态位。