2013-07-19 50 views
0

很難在標題中提出問題,所以我會試着解釋。數據庫插入腳本準備測試(記錄數據狀態?)

我需要爲已編寫的應用程序執行自動UI測試。這些應用程序有一個大量的測試數據庫加載了大量的數據。有時很難理解表之間的關係,因爲它們不是微不足道的,還有缺少外鍵(邏輯在Java應用程序中實現,某些邏輯在存儲過程中)。 問題是,我只能運行一次我的測試:完成後,一些數據被移動,一些數據被應用程序刪除。所以我需要準備腳本並在每次測試之前執行Insert Into語句。

是否可以使這樣的腳本準備更容易?當然,最好的解決方案是調查所有數據庫結構和依賴關係(或者查看Java中的應用程序邏輯),但這需要很長時間。我無法保存數據庫數據,並在完成測試後查找更改,因爲在SQL Developer中需要大量時間進行數據導出/導入。也許數據庫管理員有這樣做的另一個Oracle數據庫工具?

+0

一個可能的解決方案是編寫數據庫審計。通過這個,可以看到在數據庫中啓動了所有特定的查詢。搜索oracle審計和DBA_AUDIT_TRAIL以獲取額外信息。 – Karloss

回答

1

我建議你獲得並使用一個好的測試框架。他們通常是免費的。對於Java,標準是JUnit。對於PL/SQL,我喜歡utPlsql,但還有其他幾種可用的。使用測試框架,您可以在測試開始時將所需數據插入到數據庫中,運行測試並確保最終結果如預期一樣,然後清理數據,以便您可以再次乾淨地運行測試。這需要相當數量的編碼才能使其工作正常,但一次編碼要比多次手動執行相同的任務要容易得多。

分享和享受。

+0

感謝您的回覆。 你是完全正確的,最好先從空表開始,然後用DBUnit填充它們,然後在測試之後進行清理。正如你所提到的,問題在於設置的時間。此外,現在我不確定哪些表受我的測試影響(因此問題將保留 - 我需要長時間的數據庫和邏輯調查,但也許它只是一個解決方案)。 – Karloss

+0

鑑於你對所面臨的問題的描述,似乎編寫一些單元測試會非常有幫助。爲了進行手動測試,您將通過創建一些自動化單元測試所需的完全相同的過程,但是您不得不一遍又一遍地重複手動過程。祝你好運。 –

+0

同意單元測試的重要性。在這些情況下單元測試存在,它們是由程序員用mock編寫的,而不是真實的數據。也正如我所提到的,這些功能是以前實現的,所以不可能在編程之前或與編程並行地將時間倒轉並創建UI自動化測試。 – Karloss