2012-12-17 10 views
5

Mam aplikację delphi, która bazuje na SQLite3, silniku DB, który jest reklamowany jako odporny na awarie.Automatyzacja testów: Jak symulować awarię zasilania/awarię urządzenia?

Do tej pory udało mi się sprawić, że cała moja aplikacja była odporna na awarie, ale teraz muszę przeprowadzić symulację brutalnego restartu/awarii zasilania maszyny.

Oczywiście byłoby szalone/niepraktyczny brutalnie restartować maszyny 100 razy/dziennie tylko do przeprowadzenia tego testu, więc ...

Zastanawiam się, czy istnieje sposób, aby symulować awarię zasilania za pomocą VirtualBox (lub coś podobne) programowo/w sposób zautomatyzowany?

Każda inna metoda/myśl byłaby bardziej niż oczekiwana, moim celem jest upewnienie się, że dane moich użytkowników nigdy nie są uszkodzone.

PS. To pytanie jest dla systemu Windows XP lub nowszego

+2

Pisanie aplikacja odporna na awarie to wysokie zamówienie;) Aby odpowiedzieć na twoje pytanie: Tak, dość łatwo zautomatyzować wyłączanie maszyny wirtualnej - na przykład przekazując argumenty do kontrolera VM zgodnie z jego dokumentacją. Dla VirtualBox, który byłby VBoxManage controlvm czasownik, jak opisano tutaj: http://www.virtualbox.org/manual/ch08.html – Anthill

Odpowiedz

7

Running to na hoście wirtualnym polu powinno wystarczyć

VBoxManage controlvm (vmname) Reset/zakończenia

VBoxManage controlvm (vmname) Reset ma takie same działa na wirtualnym komputerze , naciskając przycisk "Resetuj" na prawdziwym komputerze: zimny restart maszyny wirtualnej, który ponownie uruchomi system gościa ponownie. Stan maszyny wirtualnej nie jest wcześniej zapisywany , a dane mogą zostać utracone. (Jest to równoważne wybraniu „Reset” pozycję w menu „Maszyna” GUI).

VBoxManage controlvm (vmname) poweroff ma taki sam wpływ na wirtualnym urządzenia jako wyciągając kabel zasilający na prawdziwy komputer. Ponownie stan maszyny wirtualnej nie zostanie wcześniej zapisany, a dane mogą zostać utracone. (Ten jest równoważne wybraniu „Zamknij” pozycję w menu „Maszyna” z GUI lub naciskając przycisk zamykania tego okna, a następnie wybierając „Wyłącz urządzenia” w oknie dialogowym.)

Powiązane problemy