好吧,会尝试详细解释差异。
说到并行测试,最好使用 selenium 网格。硒 RC 和硒网格的基本概念。
您可以在此处了解更多详细信息
关于selenium webDriver 的一些话:
Selenium 2.0 的主要新特性是 WebDriver API 的集成。WebDriver 旨在提供更简单、更简洁的编程接口,同时解决 Selenium-RC API 中的一些限制。Selenium-WebDriver 是为了更好地支持动态网页而开发的,其中页面元素可能会更改而无需重新加载页面本身。WebDriver 的目标是提供一个设计良好的面向对象的 API,为现代高级 Web 应用程序测试问题提供改进的支持。
与 Selenium-RC 相比,WebDriver 如何“驱动”浏览器?
Selenium-WebDriver 使用每个浏览器对自动化的原生支持直接调用浏览器。这些直接调用的方式以及它们支持的功能取决于您使用的浏览器。本章稍后将提供有关每个“浏览器驱动程序”的信息。对于熟悉 Selenium-RC 的人来说,这与您习惯的完全不同。Selenium-RC 对于每个支持的浏览器都以相同的方式工作。它在浏览器加载时将 javascript 函数“注入”到浏览器中,然后使用其 javascript 在浏览器中驱动 AUT。WebDriver 不使用这种技术。同样,它使用浏览器内置的自动化支持直接驱动浏览器。
WebDriver 和 Selenium-Server
您可能需要也可能不需要 Selenium 服务器,具体取决于您打算如何使用 Selenium-WebDriver。如果您只使用 WebDriver API,则不需要 Selenium-Server。如果您的浏览器和测试都将在同一台机器上运行,并且您的测试只使用 WebDriver API,那么您不需要运行 Selenium-Server;WebDriver 将直接运行浏览器。将 Selenium-Server 与 Selenium-WebDriver 一起使用是有一些原因的。
- 您正在使用 Selenium-Grid 将测试分布在多台机器或虚拟机 (VM) 上。
- 您想要连接到具有特定浏览器版本的远程计算机,该版本不在您当前的计算机上。
- 您没有使用 Java 绑定(即 Python、C# 或 Ruby)并希望使用 HtmlUnit 驱动程序
Selenium-WebDriver 的驱动程序
WebDriver 是编写测试的关键接口的名称,但有几种实现。这些包括:
HtmlUnit Driver
这是目前最快最轻量级的WebDriver实现。顾名思义,这是基于 HtmlUnit。HtmlUnit 是一个基于 Java 的 WebBrowser 实现,没有 GUI。对于任何语言绑定(Java 除外),Selenium Server 都需要使用此驱动程序。
优点
- 最快的 WebDriver 实现
- 纯 Java 解决方案,因此它与平台无关。
- 支持 JavaScript
缺点
- 模拟其他浏览器的 JavaScript 行为(见下文)
HtmlUnit 驱动程序中的 JavaScript 没有一个流行的浏览器使用 HtmlUnit (Rhino) 使用的 JavaScript 引擎。如果您使用 HtmlUnit 测试 JavaScript,结果可能与那些浏览器有很大不同。当我们说“JavaScript”时,我们实际上是指“JavaScript 和 DOM”。尽管 DOM 是由 W3C 定义的,但每个浏览器在 DOM 的实现以及 JavaScript 与它的交互方式方面都有自己的怪癖和差异。HtmlUnit 有一个令人印象深刻的完整的 DOM 实现,并且对使用 JavaScript 有很好的支持,但它与任何其他浏览器没有什么不同:它与 W3C 标准和主要浏览器的 DOM 实现都有自己的怪癖和差异,尽管它模仿其他浏览器的能力。使用 WebDriver,我们必须做出选择;我们是否启用了 HtmlUnit 的 JavaScript 功能并冒着团队遇到问题的风险,这些问题只在那儿表现出来,或者我们是否知道有越来越多的网站依赖于 JavaScript,而禁用 JavaScript?我们采取了保守的方法,在使用 HtmlUnit 时默认禁用支持。随着 WebDriver 和 HtmlUnit 的每个版本,我们重新评估这个决定:我们希望在某个时候在 HtmlUnit 上默认启用 JavaScript。
要深入研究 webDriver 的设置,请参阅此
来自HtmlUnit 文档:
HtmlUnit 不是通用单元测试框架。它专门是一种模拟浏览器以进行测试的方法,旨在用于另一个测试框架,例如 JUnit 或 TestNG。
所以总结一下 Selenium 和 HtmlUnit 的区别:
HtmlUnit 是一个基于 java 的 WebBrowser 实现,没有 GUI和一种模拟浏览器以进行测试的方法,Selenium-WebDriver 使用每个浏览器对自动化的本机支持直接调用浏览器。我们可以看到 HtmlUnit 提供了没有 GUI 自动化可能性的 API,而 WebDriver 提供了内部浏览器自动化的可能性。
说到移动自动化,Selenium 还有一篇 iPhone Driver
iPhone Driver wiki 文章
和 Android Driver
Android Driver wiki 文章
另请参阅此演示文稿
不幸的是,当我处理网络自动化(非移动设备)时,我无法给你我对移动驱动程序的工作经验评估。也知道Cucumber
(自动化工具)在移动自动机中很流行。看到这个和这个。
希望它现在对你来说更清楚一点=)