2016-02-26 68 views
0

我有两种不同的webservice方法应该返回完全相同的XML文件的情况。如何明智地比较SoapUI中的两个XML文件?

现在,当我得到这两个回答,我使用XMLUnit框架,表明XPath位置+就像下面的代码中各个节点的差异比较这些XML文件:

XMLUnit.setIgnoreWhitespace(true); 
DetailedDiff diff = new DetailedDiff(XMLUnit.compareXML(firstXML,secondXML)); 
List<Difference> allDiifferences= diff.getAllDifferences(); 

for(Difference difference : allDiifferences){ 
    System.out.println(difference.getControlNodeDetail().getXpathLocation()+" ("+difference.getControlNodeDetail().getValue()+") /("+difference.getTestNodeDetail().getValue()+")"); 
} 

当我跑在了SoapUI测试我用

log.info 
log.error 

方法来显示在XMLs storred差异。

有没有更好的方法来显示这些差异?

+0

您需要为您解释“更好”的含义! – SiKing

+0

@SiKing我的目标是找到一个更好的解决方案来显示差异,然后将其记录到SoapUI的控制台。我在问这个问题,因为我为使用SoapUI的手动测试人员编写了代码,他们不喜欢使用它的控制台。因此我问了任何不同的方法。 – JMK

回答

1

XMLUnit适合您的用例。 ,或者您可以尝试使用JAXB将XML转换为Java对象的替代方法,然后编写自定义比较器。 (JAXB工具可以从你的DTD自动生成类)

3

我已经做了一些R & D关于这个,这是我可以告诉你,我尽我所能。 XMLUnit提供了最稳定和轻量级的工具,可以有效地找到两个xml文件之间的各种差异。当然,你可以自由选择一旦发现这些差异。

+0

类似的问题 - http://stackoverflow.com/questions/4727299/are-there-any-alternatives-to-xmlunit – SoorajSethumadhavan