运行Selenium GUI测试后回滚数据库

时间:2015-11-03 09:56:35

标签: java selenium rollback gui-testing gui-test-framework

我在Java Web应用程序中使用Selenium GUI测试。 由于这些测试实际上是客户端,我们如何在运行测试后回滚数据库?

4 个答案:

答案 0 :(得分:1)

我的猜测是你无法“回滚”数据库,因为Web应用程序通常会在请求之间提交事务。

您需要实现自己的自定义回滚。也许您可以为每个测试创建一个新用户,并在测试后删除该用户所做的任何更改。或者您可能希望实现command pattern

您可能还会发现级联删除有用

答案 1 :(得分:1)

你所追求的是Fixture Teardown Patterns。因为您需要跟踪测试中创建的所有资源,并在拆解期间自动销毁/释放它们。我显然不了解您的框架,但对于这种情况

  

运行测试后回滚数据库

一个好的候选人是Inline Teardown。它包括在结果验证后立即在测试方法结束时的拆卸逻辑。像这样:

enter image description here

答案 2 :(得分:1)

最近我参加了关于docker的演讲。演讲者正在创建一个带有mysql数据库的docker容器,用于演示目的。我立即考虑如何使用它进行集成测试,因为您可以轻松地创建一个干净的数据库实例。

我正在搜索是否已经有一些最佳做法,并在网站上找到了这些做法

我正在评估如何整合这个,但我相信这是我(希望你)正在寻找的东西。 工作流程将是:

  1. 测试执行
  2. 从空白
  3. 的图像启动docker容器
  4. 使用主数据填写数据库(如有必要)
  5. 运行测试
  6. 远离码头工人集装箱

答案 3 :(得分:0)

感谢您的建议。 我决定使用mysqldump来达到这个目的。在Ant中,备份并在每次批处理测试之前和之后恢复测试数据库。