好吧,我会尝试详细解释差异。
Speaking about parallel testing, it better to use selenium grid.
Basic concept of selenium RC and selenium grid.
You can get into more details here http://selenium-grid.seleniumhq.org/how_it_works.html
关于的一些话硒网络驱动程序:
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 服务器
您可能需要也可能不需要 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 的 Web 浏览器实现,没有 GUI。对于任何语言绑定(java 除外),Selenium 服务器都需要使用此驱动程序。
Pros
- WebDriver 最快的实现
- 一个纯 Java 解决方案,因此它是独立于平台的。
- 支持JavaScript
Cons
- 模拟其他浏览器的 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 http://seleniumhq.org/docs/03_webdriver.html#htmlunit-driver
From HtmlUnit 文档 http://htmlunit.sourceforge.net/:
HtmlUnit 不是通用的单元测试框架。它是一种专门用于测试目的的模拟浏览器的方法,旨在在其他测试框架(例如 JUnit 或 TestNG)中使用。
So 总结Selenium和HtmlUnit的区别:
HtmlUnit 是一个基于 java 的 Web 浏览器实现,没有 GUI and 一种出于测试目的模拟浏览器的方法 and Selenium-WebDriver 使用每个浏览器对自动化的本机支持直接调用浏览器。我们可以看到,HtmlUnit 提供了没有 GUI 自动化可能性的 API,而 WebDriver 提供了内部浏览器自动化的可能性。
谈到移动自动化,
Selenium 还有一个 iPhone 驱动程序iPhone 驱动程序 wiki 文章 http://code.google.com/p/selenium/wiki/IPhoneDriver和安卓驱动程序Android 驱动程序 wiki 文章 http://code.google.com/p/selenium/wiki/AndroidDriver
也可以看看这个演示文稿 http://www.slideshare.net/operationmobile/automated-ui-testing-for-web-and-native-apps-on-ios-and-android-10261455
不幸的是,我无法向您提供我对移动驱动程序的工作经验评估,因为我处理网络自动化(无移动设备)。还知道Cucumber
(自动化工具)在移动自动化设备中很受欢迎。
看this https://github.com/cucumber/cucumber/wiki and this http://rhburrows.com/2010/11/04/testing-mobile-sites-with-cucumber/.
希望你现在能更清楚一点=)