我计划创建一个项目来开始软件测试自动化。对于这个任务,我考虑以下几点:
所以,我的问题是,在同一个项目中创建这三个项目是很好的做法,还是应该创建三个单独的项目?或者还有其他更好的解决方案吗?
其他公司是如何做到这一点的?
发布于 2018-10-23 13:10:00
我认为方法在很大程度上取决于以下几个因素:
如果是,我更喜欢使用API、UI和DB客户端创建一个项目。在这种情况下,您将能够使用API方法(通常比UI方法更快)将系统置于特定的状态中,并且只在使用UI客户端检查UI部件之后。此外,它不仅允许测试数据库本身,还允许使用DB客户端验证UI/API中的更改是否正确地传播到数据库中。因此,使用这种方法可以更好地涵盖端到端场景。
但是,如果最好使用您选择的后端测试语言不支持的专用工具(在JS或基于Spring的UI中)来测试UI,那么分离前端测试和后端测试的存储库可能是有益的。
例如,如果您希望使用行为驱动测试(BDT)作为前端,您可能希望将UI和API测试存储库分开,以便不考虑运行不同测试的包装器,并通过不混合这些范例来提高测试代码的可读性。
发布于 2018-10-23 07:27:49
这两种方法各有优缺点:
分离成多个项目意味着更好地分离关注点。您可以像这样以模块化的方式构建框架。其中,共享库被推入到某些版本控制工具,如Artifactory,并导入到每个单独的项目中。但是您还将花费更多的时间来管理配置、版本控制和依赖关系。
我更喜欢在不同目录中有一个包含多个项目的存储库。有时被称为“单回购”。Mono-repos使共享代码变得更容易,因为为项目的一部分编写的实用程序库可以被项目的其他部分使用。(它们只是位于不同的目录中)也具有更简单的git复杂性。还有更少把它扔到墙上的心态。如果您正在修改共享库并破坏其他框架,那么单元测试和集成测试就会失败。您还可以更容易地登入,因为新的团队成员只需要关注一个存储库,而不是下载多个存储库。
在单次回购中也存在一些扩展问题,但大多数项目都无法达到这个规模。
发布于 2018-10-23 10:10:32
让我向你展示我们的结构和优势。
初步注意:我们的测试框架可以作为NuGet包使用,用于实际的项目存储库中,如下面的一个。
https://sqa.stackexchange.com/questions/36136
复制相似问题