首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >一个Selenium框架来管理它们(或者一个积极维护的框架集合)

一个Selenium框架来管理它们(或者一个积极维护的框架集合)
EN

Stack Exchange QA用户
提问于 2019-11-01 14:27:30
回答 3查看 261关注 0票数 1

我正在寻找最通用的,最新的,开源的,用于测试自动化的selenium框架。或者至少有许多不同语言的框架。我感到惊讶的是,每个公司和每个测试自动化开发人员都在构建自己的框架。感觉就像一次又一次的重新发明轮子。就连戴夫·哈夫纳( Dave ) 笑话也谈到了每个人都想如何构建自己的房子。然而,在他在视频中提供的链接中,框架集合似乎很差(每种语言只有一个框架),至少对于java来说,已经过时了(2年前),只有6个贡献者,并且似乎受到版权保护。在测试自动化社区中,很多事情似乎都是事实上的标准。为什么不将其全部整合起来,并拥有一个由测试自动化开发人员实际维护的存储库。

对于这个问题,似乎没有太多的基于意见的观点:请提供您所知道、使用和相信的框架的链接。

EN

回答 3

Stack Exchange QA用户

发布于 2019-11-01 14:59:37

TL;DR:根本不需要一个框架。使用框架并不能加快速度,只会增加更多的复杂性。保持简单!

我构建的大多数“框架”类都是特定于领域的。例如,通过代码设置测试用户。在测试运行之前清理环境。

我不想把它称为一个框架,那样会使它比它更大。它不是一个可重用的工具/库链。我使用的测试样板是:

  • 单元测试工具
  • 简单的pageObjects类(用于视图、数据存储和API)
  • WebDriver

我有几个助手类,大多数测试项目都有这样的类:

  • environmentUnderTest设置(使相同的测试能够针对暂存、验收和生产运行)
  • WebDriver设置
  • 等候帮手
  • tempPath助手
  • 记录器

我喜欢让新项目有机地成长,从我所需要的最简单的东西开始。我想我可以在几个小时内建立一个基本的“框架”。

软件可能很复杂,团队很容易感到不知所措。为了使事情平静下来,并帮助处理极其复杂的问题,光电子能谱的一个口号是做最简单的事情,这可能是可行的。http://www.agilenutshell.com/simplest_事情

我看到其他部门都在努力做你建议的事情,创建了一个过度设计、而且往往过于宽泛的测试框架,所有团队和每个人都可以使用。创建一个通用的DSL。花了几个月的时间来建立一个完美的框架。我从来没见过它起作用。它使构建测试变得更加复杂,并包含了许多魔术,使得测试失败调试变得困难。如果你需要训练人们如何使用它,停下来想一想:)

对于设计而言,这可能意味着,如果下一次测试有必要的话,那就意味着从一些非常简单的东西开始,并在短时间内增加更多的复杂性。

我只是自动化测试,让一个框架出现,如果真的发生的话。如果它发生了,它是必要的,如果它没有,它不是。当我看到一个很好的抽象时,我每天都会像疯子一样复制代码,重构/重构我的测试。

Owh和这个XKCD当然要解释为什么不:

票数 1
EN

Stack Exchange QA用户

发布于 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中获得。但是你必须用你需要的方式来发展它。

票数 1
EN

Stack Exchange QA用户

发布于 2019-11-01 16:07:49

您可能对JDI轻型框架感兴趣。这似乎是从以前的JDI中积极地(或多或少地)维护和发展的,以前JDI有很多有用的工作人员,但据我所知,不再受支持。

票数 0
EN
页面原文内容由Stack Exchange QA提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

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

复制
相关文章

相似问题

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