📜  软件工程 | Selenium:一种自动化工具

📅  最后修改于: 2022-05-13 01:56:59.688000             🧑  作者: Mango

软件工程 | Selenium:一种自动化工具

Selenium是用于 Web 应用程序的自动化工具和便携式软件测试工具。还提供了一种特定于测试领域的语言,可以使用编程语言编写测试用例,包括 C#、 Java、Perl、 PHP、 Python、Ruby、Scala、Groovy。它不支持诸如 Silverlight JavaFX 和 Flex\Flash 之类的 RIA(Rich Internet Application)技术。 Selenium不是一个单一的工具。它是一个软件产品套件,由以下组件组成:

硒自动化工具

历史: Selenium由 Jason Huggins 于 2004 年在 ThoughtWorks 开发。一段时间后,他在 ThoughtWorks 开发一个内部/Web 应用程序,他注意到他可以自动测试他的应用程序,而不是手动测试他的应用程序。他开发了一个 JavaScript 程序来测试他的 Web 应用程序,使他能够自动重新运行测试。他称他的程序为“JavaScriptTestRunner”。一段时间后,该工具被开源并重命名为Selenium Core。
Selenium遥控器由 Paul Hammant 开发。开发Selenium RC 背后的原因是使用Selenium核心的测试人员必须在他们的本地计算机上安装整个被测应用程序和 Web 服务器,因为同源策略有一些限制。为了克服这个限制,Paul Hammant 做出了一个决定,并开发了一个服务器来充当 HTTP 代理来欺骗 Web 浏览器,因此认为Selenium Core 和正在测试的 Web 应用程序来自同一个域。
Selenium IDE 由日本的 Shinya Kasatani 开发。它是作为 Firefox 插件/插件实现的,现在我们可以在每个 Web 浏览器上使用Selenium IDE。 2006 年,他将Selenium IDE 提供给了Selenium项目。
Selenium Grid 由 Philippe Hanrigou 于 2008 年开发。它是一个服务器,允许测试使用在远程机器上运行的 Web 浏览器实例。它提供了在远程 Web 浏览器上运行测试的能力,这有助于将测试负载分配到多台机器上,从而节省大量时间。它允许跨不同平台和操作系统执行并行测试。作为开源,Grid 为Selenium RC 提供了与私有 Google 云类似的功能。 Pat Lightbody 已经制作了一个名为“HostedQA”的私有云系统,并将其出售给 Gomez, Inc.。
Selenium WebDriver 由 Simon Stewart 于 2006 年开发。WebDriver 自动化和控制由 Web 浏览器启动。它不依赖 JavaScript 实现自动化。它通过与浏览器通信直接控制浏览器。它是第一个可以从操作系统级别控制浏览器的跨平台测试框架。
2009 年,整个Selenium团队在一次会议后决定将Selenium RC 和 WebDriver 这两个项目合并,并称之为Selenium 2.0。

Selenium IDE:最初Selenium IDE(集成开发环境)是作为 Firefox 插件/插件实现的,现在它可以在每个 Web 浏览器上使用Selenium IDE。它提供记录和回放功能。该图显示了Selenium IDE。

硒化

优点:

  • 它是一个开源工具。
  • 提供基础,用于扩展。
  • 它提供多浏览器支持。
  • 使用Selenium IDE 时不需要编程语言经验。
  • 用户可以设置断点和调试。
  • 它提供记录和回放功能。

缺点:

  • 没有支持迭代和条件操作。
  • 执行很慢。
  • 它没有任何 API。
  • 它不提供任何错误处理机制。

Selenium RC: RC 代表远程控制。它允许程序员使用不同的编程语言进行编码,例如 C#、 Java、Perl、 PHP、 Python、Ruby、Scala、Groovy。该图显示了远程控制服务器的工作原理。

s

优点:

  • 它支持所有网络浏览器。
  • 它可以执行迭代和条件操作。
  • 与 IDE 相比,执行速度更快。
  • 它具有内置的测试结果生成器。
  • 它支持数据驱动的测试。
  • 它有一个成熟完整的API。

缺点:

  • 需要编程语言知识。
  • 它不支持 IOS/Android 测试。
  • 在执行方面它比Selenium Webdriver 慢一点。
  • 它不支持录制和播放功能。
  • 复杂的配置。

Selenium Web Driver: Selenium Web Driver 自动化和控制由 Web 浏览器启动。它不依赖 JavaScript 实现自动化。它通过与浏览器通信直接控制浏览器。该图显示了 Web 驱动程序如何作为驱动程序和绑定之间的接口工作

硒网络驱动程序

优点:

  • 它直接与网络浏览器通信。
  • 执行速度更快。
  • 它支持监听器。
  • 支持IOS/Android应用测试。
  • 安装比Selenium RC 更简单。
  • 纯面向对象。

缺点:

  • 它需要编程知识。
  • 没有用于生成测试结果文件的内置机制。

Selenium Grid:基本上,它是一个服务器,允许测试使用在远程机器上运行的 Web 浏览器实例。它提供了在远程 Web 浏览器上运行测试的能力,这有助于将测试负载分配到多台机器上,从而节省大量时间。它允许跨不同平台和操作系统执行并行测试。

硒网格

Selenium Grid 是 HUB 和节点的网络。每个节点都使用特定的配置向 HUB 注册,并且 HUB 知道节点上可用的浏览器。当针对特定浏览器 [具有所需功能对象] 的请求到达 HUB 时,如果 HUB 找到与请求的 Web 浏览器匹配的内容,则将调用重定向到该特定网格节点,然后双向建立会话并执行开始。