前言: 总感觉自己的Selenium用的很溜,很熟悉了,现在发现比较零碎,不是那么的系统,所以想要总结下Selenium相关的知识点,作为回顾总结;然后就想写一系列的,从零开始,不知道是不是能够坚持在业余时间内总结完Selenium一系列的知识点。
目录
Selenium是什么?
谁开发了Selenium?
同源政策问题
Selenium RC的诞生
Selenium Grid的诞生
Selenium IDE的诞生
WebDriver的诞生
Selenium 2 的诞生
为什么叫Selenium呢?
Selenium IDE简介
Selenium RC简介
WebDriver简介
Selenium Grid
关于浏览器和环境支持的注意事项
Selenium与QTP(现在的UFT)的比较
Selenium优于QTP的优点
QTP优于Selenium的优点
总结:
Selenium是什么?
Selenium是一个免费的(开源)自动化测试组件,适用于跨不同浏览器和平台的Web应用程序。它非常类似于HP Quick Test Pro (QTP现在叫UFT),只是Selenium侧重于自动化基于Web的应用程序。使用Selenium工具进行的测试通常称为Selenium测试。
Selenium不仅仅是一个工具,而是一套软件,每个软件都满足组织的不同测试需求。它有四个组成部分:
- Selenium集成开发环境(IDE)
- Selenium远程控制 (RC)
- WebDriver
- Selenium Grid
目前,Selenium RC和WebDriver被合并到一个框架中,形成Selenium 2;Selenium 1是指Selenium RC。
谁开发了Selenium?
由于Selenium是不同工具的集合,所以它也有不同的开发人员。下面是对Selenium项目做出显著贡献的关键人物。
这就是为什么在Selenium RC之前,测试人员需要安装Selenium Core(一个Javascript程序)和一个包含被测试的Web应用程序的web服务器的本地副本,以便它们属于同一个域。
Selenium RC的诞生
Selenium IDE简介
Selenium集成开发环境(IDE)是Selenium套件中最简单的框架,也是最容易学习的框架。它是一个Firefox插件,您可以像使用其他插件一样轻松地安装它。然而,由于它的简单性,Selenium IDE只应该用作原型工具。如果您想创建更高级的测试用例,您将需要使用Selenium RC或WebDriver,现在已经没人再使用这个东西了。
优劣势如下图:
Selenium RC简介
Selenium RC长期以来一直是整个Selenium项目的旗舰测试框架。这是第一个允许用户使用他们喜欢的编程语言的自动化web测试工具。从2.25.0版开始,RC可以支持以下编程语言:
优劣势如下:
WebDriver简介
Web驱动程序在很多方面都比Selenium IDE和Selenium RC更好。它实现了一种更加现代和稳定的方法来自动化浏览器的操作。与Selenium RC不同,WebDriver不依赖Javascript实现自动化。它通过直接与浏览器通信来控制浏览器。
所支持的语言与Selenium RC中的语言相同:
优劣势如下图:
Selenium Grid
Selenium Grid是一个与Selenium RC一起使用的工具,可以在不同的机器和不同的浏览器上同时运行并行测试。意味着同时并行执行多个测试用例。
特性:
- 支持在多个浏览器和环境中同时运行测试。
- 极大的节省了时间。
- 利用hub-and-nodes(中心和节点)的概念。Hub充当连接到它的每个节点的Selenium命令的中心源。
关于浏览器和环境支持的注意事项
由于架构上的差异,Selenium IDE、Selenium RC和WebDriver支持不同的浏览器和操作环境。
| Selenium IDE | WebDriver |
支持浏览器 | Mozilla Firefox | Internet Explorer 6~11,32位 和62位; Microsoft Edge 12.10240及以上版本(支持部分正在开发的一些功能); Firefox 3.0+ Google Chrome 12.0+ Opera 11.5+ Android - 2.3+适用于手机和平板(设备和模拟器) iOS 3+适用于手机(设备和模拟器),3.2+适用于平板电脑(设备和模拟器) HtmlUnit 2.9+ |
操作系统 | Windows, Mac OS X, Linux | 以上浏览器可以运行的所有操作系统。 |
注:Selenium WebDriver是Selenium RC的继承者,Selenium RC已被SeleniumHQ正式宣布弃用。
Selenium与QTP(现在的UFT)的比较
Quick Test Professional(QTP)是一种专有的自动化测试工具,在2006年被惠普收购之前,它曾属于Mercury Interactive公司。Selenium工具套件比QTP有许多优点,具体如下所示:
Selenium优于QTP的优点
Selenium | QTP |
开源,免费使用,免费 | 商业的 |
高扩展性 | 有限的附加组件 |
可以在不同的浏览器上运行测试 | 只能在Firefox、IE和Chrome中运行测试 |
支持多种操作系统 | 只能在Windows中使用 |
支持移动设备 | QTP支持移动应用程序测试自动化(iOS和Android)使用HP解决方案称为- HP移动中心 |
可以在最小化浏览器的情况下执行测试吗 | 需要使测试中的应用程序在桌面上可见 |
可以并行执行测试 | 只能顺序执行,但使用质量中心,这又是一个付费产品。 |
QTP优于Selenium的优点
QTP | Selenium |
可以同时测试Web和桌面应用程序 | 只能测试Web应用程序 |
附带一个内置的对象存储库 | 没有内置的对象存储库 |
自动化速度比Selenium更快,因为它是一个功能齐全的IDE。 | 自动化速度较慢,因为它没有本地IDE,而且只有第三方IDE可以用于开发 |
数据驱动测试更容易执行,因为它有内置的全局和本地数据表。 | 数据驱动测试更麻烦,因为您必须依赖编程语言的功能来为测试数据设置值 |
可以访问浏览器中的控件(如收藏夹栏、地址栏、后退和前进按钮等)。 | 无法访问被测试Web应用程序之外的元素 |
提供专业的客户支持 | 没有提供官方用户支持。 |
具有将测试数据导出到本机外部的功能 | 没有将运行时数据导出到本机外部的功能 |
建立参数化支持 | 参数化可以通过编程实现,但是很难实现。 |
测试报告是自动生成的 | 不支持生成测试/bug报告。 |
虽然很明显,QTP具有更高级的功能,但是Selenium在三个主要方面超过了QTP:
- 成本(因为Selenium是完全免费的)
- 灵活性(因为Selenium可以支持多种编程语言、浏览器和平台)
- 并行测试(这是QTP能够做到的,但只有使用质量中心)
总结:
整个Selenium工具套件由四个组件组成:
- Selenium IDE,一个Firefox插件,您只能在创建相对简单的测试用例和测试套件时使用它。
- Selenium RC,也称为Selenium 1,它是第一个允许用户使用编程语言创建复杂测试的Selenium工具。
- WebDriver是一个新的突破,它允许您的测试脚本直接与浏览器通信,从而从操作系统级别控制它。
- Selenium Grid也是一个工具,它与Selenium RC一起用于跨不同的浏览器和操作系统执行并行测试。
- Selenium RC与WebDriver合并形成Selenium 2,现已经更新到了Selenium 3 和Selenium 4。
- Selenium在成本和灵活性方面比QTP更有优势。它还允许您并行地运行测试,而不像在QTP中,您只允许顺序地运行测试。