Selenium WebDriver与RC的差异
什么是Selenium WebDriver?
Selenium WebDriver 是用于测试Web应用程序的API的开源集合。Selenium WebDriver工具,它还允许执行跨浏览器测试。
WebDriver还能够使用编程语言在创建测试脚本时使用。现在可以使用条件运算就像If-Then-Else或Switch-Case。还可以像Do-While执行循环操作。
WebDriver支持以下编程语言
- Java语言
- .NET
- PHP
- Python
- Perl
- Ruby
Selenium RC与WebDriver的区别
在2006年9月WebDriver出现之前,还有另一个,自动化工具称为Selenium RC。WebDriver和Selenium RC都具有以下功能:
- 使用编程语言设计测试脚本。
- 在不同的浏览器上运行测试。
那么它们有什么不同呢?来讨论一下。
1. 架构
WebDriver的架构比Selenium RC的架构简单。
- 它从操作系统级别控制浏览器
- 只需要编程语言的IDE(其中包含Selenium命令)和一个浏览器。
Selenium RC的架构要复杂得多
- 在可以开始测试之前,首先需要启名为SeleniumRemote Control(RC)Ser ver的单独应用程序
- Selenium RC服务器充当Selenium命令和浏览器之间的“中间人”
- 当开始测试时,Selenium RC服务器“注入”一个 名为Selenium Core的JavaScript程序 添加到浏览器中。
- 注入后,Selenium Core将开始接收RC服务器从测试程序转发的指令。
- 当接收到指令时, Selenium Core将把它们作为Javascript命令执行。
- 浏览器将服从Selenium Core的指令,并将其响应转发给RC服务器。
- RC服务器将接收浏览器的响应,然后向显示结果。
-
RC服务器将从测试脚本获取下一条指令,以重复整个周期。
2. 速度
WebDriver比Selenium RC更快,因为它直接与浏览器对话,使用浏览器自己的引擎来控制它。
Selenium RC速度较慢,因为它使用名为Selenium Core的Javascript程序。直接控制浏览器的是这个Selenium Core。
3. 现实生活中的互动
Webdriver以一种更现实的方式与页面元素交互。例如,如果正在测试的页面上有一个禁用的文本框,则WebDriver确实不能像真人那样在其中输入任何值。
Selenium Core,就像其他的JavaScript代码,可以访问禁用的元素。
4. API接口
Selenium RC的API更为成熟,但包含冗余且经常令人困惑的命令 。例如,大多数情况下,测试人员会感到困惑,不知道是使用type还是typeKeys。更糟的是, 不同的浏览器也会以不同的方式解释这些命令!
Webdriver的API比Selenium RC的API简单。它不包含冗余和模糊的命令。
5. 浏览器支持
Webdriver可以支持HtmlUnit浏览器。HtmlUnit被称为“Headless”,因为它是一个看不见的浏览器--它没有GUI。
HtmlUnit浏览器是一个非常快的浏览器,因为不需要花费时间来等待页面元素加载。这加快了测试执行周期。由于它对用户是不可见的,因此只能通过自动手段进行控制。
Selenium RC不支持无头HtmlUnit浏览器。它需要一个真正的、可见的浏览器来操作。
WebDriver的局限性
WebDriver不能很容易地支持新浏览器
WebDriver在操作系统级别运行。所以, 必须给WebDriver团队相当长的时间来弄清楚那个新流程然后才能在下一个WebDriver版本中实现它。
然而,这取决于WebDriver的开发团队是否应该支持新浏览器。
6.测试结果的支持
Selenium RC具有内置的测试结果生成器
Selenium RC自动生成测试结果的HTML文件 。报告的格式是由R预先设定的看下面这份报告的示例。
WebDriver没有自动生成测试结果文件的内置命令。必须依赖IDE的输出窗口,或者使用编程语言的功能自行设计报告并将其存储为文本、HTML等。
总结
- WebDriver是用于测试Web应用程序的工具 跨不同浏览器使用不同的编程语言。
- 现在可以进行功能强大的测试,因为WebDriver 允许使用编程语言 根据选择来设计测试。
- WebDriver是 比Selenium RC更快因为它的架构更简单。
- 网络驱动程序 直接与浏览器对话 而Selenium RC需要RC服务器的帮助才能做到这一点。
- WebDriver的API更简明扼要比SeleniumRC的要好。
- 网络驱动程序 可以支持HtmlUnit 而Selenium RC则不能。
- WebDriver的唯一缺点是:
- 它不能很容易地支持新浏览器 ,但SeleniumRC可以。
- 它没有内置命令 用于自动生成测试结果。
本文摘自:https://zhuanlan.zhihu.com/p/382698608
发表评论: