如何在大型项目中管理测试数据夹具以进行验收测试?

时间:2015-10-01 12:03:28

标签: java oracle selenium automation fixtures

假设我们拥有庞大而复杂的系统,其中包含大量数据和复杂的业务逻辑。

如何管理测试数据(Oracle DB)以便从已知状态开始快速,可靠地接受(Selenium等)测试?

由于规模和复杂性,测试应该:

  • 运行得非常快(1.在每个测试/套件之前快速恢复到已知的DB状态2.绝对不会在每个套件之前通过UI创建测试数据)
  • 基于使用UI创建的数据(没有直接INSERTS到数据库 - 风险重复的业务逻辑)
  • 拥有DB状态的多个版本/快照(具有相关数据的稳定用户组 - 以避免断言与通过持续自动化开发创建的新数据之间的冲突)

2 个答案:

答案 0 :(得分:9)

您所描述的内容称为Sandbox DB。对于每个新部署,您必须使用所需的数据提供/填充此DB,并在完成测试后删除它。

  

有几个DB状态版本/快照

Fresh Fixture patternPrebuilt Fixture pattern可以帮助您。你也可以查看Fixture Teardown patterns

在处理此类big-data-sandbox-strategies时,您可以找到一些注意事项。像调度,主数据存储库和监控。

要成功管理所有这些 - 必须使用CI服务器。既然您已经标记了JAVA,那么很好的选择是:

答案 1 :(得分:0)

我的理解是,您希望使用预定义数据运行测试用例,而不是直接从数据库中填充内容。

  1. 为每个版本创建数据库转储并存储它们
  2. 创建作业(例如:在CI上,Jenkins,Hudson,...作业),它使用所需的转储加载测试数据库。成功部署到测试服务器后,应自动触发此操作。
  3. 创建用于创建临时测试数据的模块/功能
  4. 运行测试用例(理想情况下,步骤2中作业的成功结果应该触发)