現在測試很多介面返回的型別是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...