首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在一个项目中同时创建UI和API测试项目是一种良好的/行业实践吗?

在一个项目中同时创建UI和API测试项目是一种良好的/行业实践吗?
EN

Stack Exchange QA用户
提问于 2018-10-23 06:37:45
回答 4查看 4.5K关注 0票数 6

我计划创建一个项目来开始软件测试自动化。对于这个任务,我考虑以下几点:

  1. UI级测试(使用页面对象模型)
  2. API测试
  3. 数据库测试

所以,我的问题是,在同一个项目中创建这三个项目是很好的做法,还是应该创建三个单独的项目?或者还有其他更好的解决方案吗?

其他公司是如何做到这一点的?

EN

回答 4

Stack Exchange QA用户

回答已采纳

发布于 2018-10-23 13:10:00

我认为方法在很大程度上取决于以下几个因素:

1.用于API、UI和DB测试的语言/技术是否相同?

如果是,我更喜欢使用API、UI和DB客户端创建一个项目。在这种情况下,您将能够使用API方法(通常比UI方法更快)将系统置于特定的状态中,并且只在使用UI客户端检查UI部件之后。此外,它不仅允许测试数据库本身,还允许使用DB客户端验证UI/API中的更改是否正确地传播到数据库中。因此,使用这种方法可以更好地涵盖端到端场景。

但是,如果最好使用您选择的后端测试语言不支持的专用工具(在JS或基于Spring的UI中)来测试UI,那么分离前端测试和后端测试的存储库可能是有益的。

2.用于前端和后端测试的测试方法是否相同?

例如,如果您希望使用行为驱动测试(BDT)作为前端,您可能希望将UI和API测试存储库分开,以便不考虑运行不同测试的包装器,并通过不混合这些范例来提高测试代码的可读性。

票数 2
EN

Stack Exchange QA用户

发布于 2018-10-23 07:27:49

这两种方法各有优缺点:

分离成多个项目意味着更好地分离关注点。您可以像这样以模块化的方式构建框架。其中,共享库被推入到某些版本控制工具,如Artifactory,并导入到每个单独的项目中。但是您还将花费更多的时间来管理配置、版本控制和依赖关系。

我更喜欢在不同目录中有一个包含多个项目的存储库。有时被称为“单回购”。Mono-repos使共享代码变得更容易,因为为项目的一部分编写的实用程序库可以被项目的其他部分使用。(它们只是位于不同的目录中)也具有更简单的git复杂性。还有更少把它扔到墙上的心态。如果您正在修改共享库并破坏其他框架,那么单元测试和集成测试就会失败。您还可以更容易地登入,因为新的团队成员只需要关注一个存储库,而不是下载多个存储库。

在单次回购中也存在一些扩展问题,但大多数项目都无法达到这个规模。

谷歌在Mono-Repos上

票数 5
EN

Stack Exchange QA用户

发布于 2018-10-23 10:10:32

让我向你展示我们的结构和优势。

初步注意:我们的测试框架可以作为NuGet包使用,用于实际的项目存储库中,如下面的一个。

仓库

  • 解决方案A(后端代码)
    • 这里有多少个项目
    • 单元测试(也由开发人员编写)

  • 解决方案B(测试代码)
    • API测试项目
    • UI测试项目

优势

  • 测试和后端代码可以一起进行分支和版本化。
  • 以这种方式为单独的项目和/或解决方案设置构建定义很容易--您将减少构建时间并避免不必要的构建(如果只更改测试代码,则不需要后端构建)。
  • 如果单个存储库/项目需要一个包更新(为了测试其他地方无法使用的新特性),您可以这样做,因为每个测试项目都是在其自己的存储库中隔离的。
票数 2
EN
页面原文内容由Stack Exchange QA提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://sqa.stackexchange.com/questions/36136

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档