2016-02-26 25 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