我有一个同事的任务,我对此有点怀疑。本质上,我有一个使用 Cucumber、Java、Selenium 和 JUnit 的前端测试框架。
我的同事试图说服我,我们可以使用数据库来设置所需的测试先决条件。例如,在运行这些测试之前,我需要一个特定的状态,但对我来说,数据库可以执行创建此状态的步骤似乎难以置信。我可能是错的,因为我对自动化测试还比较陌生。
有人可以给我一些关于这是否可能或值得追求的建议吗?
编辑:此先决条件的输出是需要在下一步开始之前创建的特定文件。
这些类型的测试是可能的,但最终创建和维护起来非常耗时。
一些问题:
您需要确保一个测试中所做的更改不会“渗透”到另一个测试中(例如,测试在运行 A、B 时通过,但在运行 B、A 时失败)。最好在测试设置期间创建测试记录,而不是改变其他测试使用的现有“共享”记录。
在这种情况下您很可能无法使用数据库事务和回滚,因为 UI 和测试工具(cucumber)将拥有自己的连接
如果直接在数据库上进行更改(例如通过 JDBC),您需要确保删除 UI 可能拥有的任何缓存。
您可能会发现维护此类测试的成本不值得这么麻烦。也许对你的 UI 进行一些“hello world”测试(例如,每个页面加载,显示一些数据)会给你一些维护起来不太昂贵的健全性测试