好吧,会尝试详细解释差异。
谈到并行测试,最好使用 selenium 网格。
硒 RC 和硒网格的基本概念。
您可以了解更多详情here
关于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 驱动程序
这是目前最快、最轻量级的 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 的设置,请参阅 this
来自HtmlUnit documentation:
HtmlUnit 不是一个通用的单元测试框架。它专门是一种模拟浏览器以进行测试的方法,旨在用于其他测试框架,例如 JUnit 或 TestNG。
所以总结一下 Selenium 和 HtmlUnit 的区别:
HtmlUnit 是一个基于 java 的 WebBrowser 实现,没有 GUI 和 一种模拟浏览器用于测试目的的方法 和 Selenium-WebDriver 使用直接调用浏览器每个浏览器对自动化的原生支持。 我们可以看到 HtmlUnit 提供了 API,而没有 GUI 自动化的可能性,而 WebDriver 提供了内部浏览器的自动化可能性。
谈到移动自动化,
Selenium 也有一个 iPhone 驱动程序
iPhone Driver wiki article
和安卓驱动
Android Driver wiki article
另见this presentation
不幸的是,由于我处理网络自动化(非移动),因此我无法向您提供我对移动驱动程序的工作经验评估。还知道Cucumber(自动化工具)在移动自动化中很受欢迎。
见this 和this。
希望你现在更清楚一点 =)