我正在寻找最通用的,最新的,开源的,用于测试自动化的selenium框架。或者至少有许多不同语言的框架。我感到惊讶的是,每个公司和每个测试自动化开发人员都在构建自己的框架。感觉就像一次又一次的重新发明轮子。就连戴夫·哈夫纳( Dave ) 笑话也谈到了每个人都想如何构建自己的房子。然而,在他在视频中提供的链接中,框架集合似乎很差(每种语言只有一个框架),至少对于java来说,已经过时了(2年前),只有6个贡献者,并且似乎受到版权保护。在测试自动化社区中,很多事情似乎都是事实上的标准。为什么不将其全部整合起来,并拥有一个由测试自动化开发人员实际维护的存储库。
对于这个问题,似乎没有太多的基于意见的观点:请提供您所知道、使用和相信的框架的链接。
发布于 2019-11-01 14:59:37
TL;DR:根本不需要一个框架。使用框架并不能加快速度,只会增加更多的复杂性。保持简单!
我构建的大多数“框架”类都是特定于领域的。例如,通过代码设置测试用户。在测试运行之前清理环境。
我不想把它称为一个框架,那样会使它比它更大。它不是一个可重用的工具/库链。我使用的测试样板是:
我有几个助手类,大多数测试项目都有这样的类:
我喜欢让新项目有机地成长,从我所需要的最简单的东西开始。我想我可以在几个小时内建立一个基本的“框架”。
软件可能很复杂,团队很容易感到不知所措。为了使事情平静下来,并帮助处理极其复杂的问题,光电子能谱的一个口号是做最简单的事情,这可能是可行的。http://www.agilenutshell.com/simplest_事情
我看到其他部门都在努力做你建议的事情,创建了一个过度设计、而且往往过于宽泛的测试框架,所有团队和每个人都可以使用。创建一个通用的DSL。花了几个月的时间来建立一个完美的框架。我从来没见过它起作用。它使构建测试变得更加复杂,并包含了许多魔术,使得测试失败调试变得困难。如果你需要训练人们如何使用它,停下来想一想:)
对于设计而言,这可能意味着,如果下一次测试有必要的话,那就意味着从一些非常简单的东西开始,并在短时间内增加更多的复杂性。
我只是自动化测试,让一个框架出现,如果真的发生的话。如果它发生了,它是必要的,如果它没有,它不是。当我看到一个很好的抽象时,我每天都会像疯子一样复制代码,重构/重构我的测试。
Owh和这个XKCD当然要解释为什么不:

发布于 2019-11-01 17:44:49
我想你错过了“框架”的定义
https://smartbear.com/learn/automated-testing/test-automation-frameworks/框架由一些实践和工具组成,这些实践和工具旨在帮助QA专业人员更有效地进行测试。这些准则可以包括编码标准、测试数据处理方法、对象存储库、用于存储测试结果的过程或关于如何访问外部资源的信息。虽然这些不是强制性规则,而且测试人员仍然可以在不遵循它们的情况下编写脚本或记录测试,但是使用有组织的框架通常会带来额外的好处,否则就会被忽略。
所以测试框架不仅仅是文件夹结构,它定义了一个整体的过程、工具、规则、技术、编码标准等等。
它使代码的可维护性变得非常容易。一旦您有了一个高效的框架,您就可以以高效率并行编写代码。例如,您为下拉选择编写代码,而另一个工程师可以重用这些代码.
如果您没有一个有效的框架(命名约定和目录结构),那么工程师应该把他/她的精力浪费在找到已经找到的解决方案上。
这就是构建所有框架的方式,我们利用现有的框架并利用它来创建适合我们的项目和团队的框架。例如TestNG、机器人框架等。
用于UI测试的所有测试目录结构几乎是相似的。大多数的页面对象模型都是带有文件夹结构的,如util、公共、资源、报表等,我们只是根据不同的项目进行更改。
该框架取决于组织决策和项目复杂性。例如,该组织希望通过从VMS转移到容器来节省费用。他们希望在容器中运行selenium网格测试,而不是在VM中运行,或者有时决定使用云。
因此,您必须研究如何将测试框架准备好,以便将其放入CI/CD或交付额外的需求。
但在任何情况下,我们都会建立起一个基本的框架。
测试框架也是公司的专有资产,属于知识产权范畴。你不能和公众分享它,就像其他的源代码一样。
API解决方案已经存在,为什么我们不能有一个通用的解决方案来实现API,为什么我们不能复制粘贴一个公共API实现并在我们的项目中使用它呢?为什么要开发新的API?
或
为什么我们需要开发人员时,您可以简单地拥有一个公共存储库的组件,如链接,按钮,逻辑,算法等。你可以只是复制和重用它,那么为什么要重新发明车轮。
.
对于测试框架的开发,我们从一个基础开始,并根据我们的需要进行更改。我们不能只复制粘贴单个解决方案并使用它。因为事情变坏了,我们必须让它运转起来。
从基本框架开始,从错误中吸取教训,不断改进解决方案。
最重要的是,快速失败,这意味着您应该更快地认识到框架的低效率。分析缺点并快速进行更改,慢慢扩展测试套件,直到您对实现有信心为止。
框架取决于项目、预算、组织决策和许多这样的事情。正如前面提到的,框架不仅仅是目录结构。
关于目录结构的建议可以从GitHub或任何这样的开源repos中获得。但是你必须用你需要的方式来发展它。
发布于 2019-11-01 16:07:49
您可能对JDI轻型框架感兴趣。这似乎是从以前的JDI中积极地(或多或少地)维护和发展的,以前JDI有很多有用的工作人员,但据我所知,不再受支持。
https://sqa.stackexchange.com/questions/41405
复制相似问题