2015-02-23 47 views
0

我正在編寫一個測試實用程序,我打算用它來創建人工流量到主應用程序(基於Spring集成的應用程序,下游和上游都是基於JMS和SOAP服務的)。 除了創建流量之外,我還希望能夠判斷應用程序是否正確響應(即採用XML並與預定的預期值進行比較)。我爲不同類型的響應提供了基礎XML,但是有些動態值基於我需要操作的情況,以便能夠與基本來源進行比較。 解決此問題的一種方法:使用String Java類的replaceAll方法,其中我需要根據需要將源XML和目標XML操作到邏輯點,以確定響應是否有效。 我很想知道是否有任何XML實用程序框架提供了更高級的功能來實現這一目標? 非常感謝關於比較XML的方法的建議(而不是使用正則表達式與Java的字符串replaceAll)

+0

如果您試圖在測試中針對xml數據斷言,您可以嘗試使用xml匹配庫 – beresfordt 2015-02-23 23:12:18

回答

1

使用XSLT轉換進行「替換」規範化,然後使用XPath 2.0 deep-equal()函數(可能在同一個轉換中)與參考結果進行比較。這使正確的XML比較語義,例如忽略不重要的空白,或任意的區別,如單對雙引號。

1

您可以爲您的xml生成jaxb類,解組它,然後檢查感興趣的屬性。很有可能你已經有了這些類作爲你的JMS和WS邏輯的dom對象,所以也許他們只需要@XML根目錄。

爲了更貼近xml,您可以使用XPath來提取您期望的動態位。

相關問題