我想在我的web應用程序上自動執行測試,並使用postgresql。有誰知道如何在postgresql數據庫上定義還原點並恢復到以前的狀態? 我聽到了一些關於時間點恢復的信息,但我不知道這是我需要的。提前使用postgresql連接的應用程序進行測試自動化
0
A
回答
0
首先,不要在生產數據庫上這樣做。
正確的方法是使用事務處理他們的價值。在postgres中,你甚至可以使用保存點(你可以回滾到)來嵌套它們。
test=# create table foo (foo_id serial primary key, bar varchar);
NOTICE: CREATE TABLE will create implicit sequence "foo_foo_id_seq" for serial column "foo.foo_id"
NOTICE: CREATE TABLE/PRIMARY KEY will create implicit index "foo_pkey" for table "foo"
CREATE TABLE
test=# begin; insert into foo (bar) values ('test');
BEGIN
INSERT 0 1
test=# savepoint sp1;
SAVEPOINT
test=# insert into foo (foo_id, bar) values (1, 'test');
ERROR: duplicate key value violates unique constraint "foo_pkey"
test=# rollback to sp1;
ROLLBACK
test=# select * from foo;
foo_id | bar
--------+------
1 | test
test=# -- note that you're still in a transaction
如果這不適合(由於軟件的限制或其他原因),你可以始終保持你的數據庫的幾個轉儲在其中您可以輕鬆地恢復文件;和/或有一個腳本,可以將生產數據庫自動轉儲到本地測試數據庫中。另外,一定要記住要在版本控制中保留模式更改(或者最低限度使用一些.sql文件);在使用測試數據庫開發新的功能後,可以輕鬆更新生產數據庫。
PITR主要用於熱備份/備份目的。
0
PITR
由於是爲在線備份方案,它意味着不中斷操作,然後能夠恢復在災難發生時的數據,而不是用於測試應用程序創建備份。數據的恢復不在線,而且相當複雜。
我認爲測試的正確方法是讓數據庫可以輕鬆地垃圾並從標準備份中恢復,然後您可以在自動化中使用標準備份/恢復腳本重複測試。否則,另一種測試方法是使用事務。您將進行的每個測試都將包含在執行測試後回滾的事務中。
BEGIN;
SELECT ...
INSERT ...
UPDATE ...
DELETE ...
<Here go queries to check if everything is alright, setting the test result>
ROLLBACK
相關問題
- 1. 使用Ruby Selenium Web驅動程序進行測試自動化
- 2. 自動化Web應用程序單擊手勢進行測試
- 3. 使用JUnit進行自動化測試
- 4. 使用Selenium IDE進行自動Web應用程序測試
- 5. 使用TFS進行自動應用程序測試
- 6. 應用程序測試自動化
- 7. USSD應用程序自動化測試
- 8. WPF應用程序測試自動化
- 9. 如何使用VS 2010進行自動化Web應用程序測試
- 10. 使用自動測試進行測試
- 11. 使用WxWidgets開發的應用程序的自動化測試
- 12. 上傳應用程序進行beta測試iTunes連接
- 13. 自動化命令行應用程序的集成測試
- 14. 概念驗證應用程序是否應該進行自動化測試?
- 15. 使用Selenium和NUnit進行UI自動化測試測試執行順序
- 16. 如何爲iOS應用程序進行自動測試?
- 17. iTunes連接IAP測試應用程序
- 18. 使用html5移動應用程序進行多元測試
- 19. PHP:使用MVC應用程序進行測試驅動開發
- 20. 測試自動化程序
- 21. 功能在Ruby web應用程序中進行自動化測試切換
- 22. OpenGL應用程序的自動測試
- 23. 應用程序的自動OS測試?
- 24. 使用C#在桌面應用程序自動化測試中使用Visual Studio中的Selenium C#進行Web自動化測試有多類似?
- 25. 兩個移動應用程序的通信測試自動化
- 26. 如何使用GUI應用程序執行自動測試?
- 27. 使用Visual Studio測試項目進行迴歸測試,自動啓動/調試應用程序
- 28. Web應用程序自動化測試的過程同步
- 29. 使用播放列表進行自動化測試的訂購測試用例
- 30. 在Java中更改測試用例進行自動化測試
是的,生病嘗試。 DBA告訴我恢復相同的轉儲文件非常簡單快捷。 謝謝。 – Danmaxis 2008-11-14 13:33:50
如果沒有辦法在postgresql上設置還原點(比如oracle),我會通過你的回答。 – Danmaxis 2008-11-14 13:36:16