xml檔案對比或xml大字串對比方法(蠻精簡的)

2021-09-21 23:28:14 字數 957 閱讀 5091

現在測試很多介面返回的型別是xml的字串,當返回值為較小的值的時候。期望結果直接寫在**裡邊是靠普的。但是當返回結果相當大的時候,期望值儲存在**呢,以前我也做過直接寫在**裡,結果造成**行相當的長,幾乎乙個測試用例只能看見期望結果的資料了,自然不好。那麼如果存在檔案裡如何呢?可能會有這樣的問題存在檔案裡如何對比呢,採用文字內容對比嗎?總覺得不太靠普,至少xml特性沒能體現,譬如不能告訴我是哪個節點出錯了。

今天我發現xmlunit有這個功能(有點後知後覺,大家不要笑話);而且結合xml其他的jar包可以快速解決這個問題,而且**也很精簡,特貼**如下

public void tet() throws exception

這裡為了方便**展示沒有將actxmltext寫成大字串,實際上通常測試場景中這個代表呼叫介面返回值,**會是類似下面的**

webconversation conversation = new webconversation();

webrequest request = new postmethodwebrequest(url);

webresponse response = conversation.getresponse(request);

system.out.println(response.gettext());

string actxmltext = response.gettext();

測試結果錯誤會報如下內容,明確告訴你哪個節點出錯了:

junit.framework.assertionfailederror: org.custommonkey.xmlunit.diff

[different] expected text value 『16′ but was 『15′ – comparing 16 at /error_response[1]/code[1]/text()[1] to 15 at /error_response[1]/code[1]/text()[1]

xml檔案對比或xml大字串對比方法(蠻精簡的)

現在測試很多介面返回的型別是xml的字串,當返回值為較小的值的時候。期望結果直接寫在 裡邊是靠普的。但是當返回結果相當大的時候,期望值儲存在 呢,以前我也做過直接寫在 裡,結果造成 行相當的長,幾乎 乙個測試用例只能看見期望結果的資料了,自然不好。那麼如果存在檔案裡如何呢?可能會有這樣的問題存在檔案...

XML字串對比技巧二

之前都使用xmlunit來對比xml字串,今天發現當出現如下需求時,xmlunit無法滿足或者說有bug,特自己寫了對比方法。需求 需要對比如下xml字串,要求不對比其中的sign和time欄位,其他欄位都需要對比。elb wsi 001 1236586307734 822a379aec82755a...

XML字串對比技巧二

之前都使用xmlunit來對比xml字串,今天發現當出現如下需求時,xmlunit無法滿足或者說有bug,特自己寫了對比方法。需求 需要對比如下xml字串,要求不對比其中的sign和time欄位,其他欄位都需要對比。elb wsi 001 1236586307734 822a379aec82755a...