我想使用 Selenium 来测试 Web 应用程序,但为了成功完成测试,必须针对已知状态的数据库运行测试。
Selenium 测试的记录和运行不属于本网站的范围,因此我仅寻求有关如何在每次测试执行后最好地恢复数据库的建议。
一些细节:
- 当前数据库大小为 30GB,但只需要恢复约 4GB
- 数据库是运行在 Windows Server 2003 上的 Oracle 11g 标准版
- 需要恢复 6 个不同架构中的数据
理想情况下,应该对该过程进行脚本化,以便可以通过计划任务频繁且自动地重新执行。
答案1
最简单、最快捷的方法是将数据库放在使用 ZFS 的 OpenSolaris 机器上,并在启动 Oracle 之前执行 ZFS 快照。
由于您已经支付了 Windows Oracle 许可证,因此实现此目的的最佳方法是设置 Nexenta 服务器并使用 iSCSI 将 ZFS 作为普通 Windows 文件系统进行访问。要记住的关键是不要在 Oracle 运行时创建或恢复快照。
快照和恢复几乎是即时的。
如果您看到 Illumos 这个名字,那就是新名称 OpenSolaris。
答案2
答案3
我将用 expdp 包装一个 shell 脚本来导出架构,并用 impdp 再次导入它。在运行测试用例之前,请导出数据库,并自动执行 selenium 测试,让它们执行运行后的 shell 脚本,该脚本将执行 impdp(或旧版 Oracle 的 imp)命令行以恢复数据库。
这就是我们在测试中所做的事情。