介绍
Selenium 是一套用于 Web 应用程序的开源测试工具,可以跨多个平台和浏览器使用。 Selenium 由四种不同的工具组成,每种工具都提供不同的测试能力。
Selenium 测试套件的组成部分
- Selenium 集成开发环境 (IDE)
- 硒网格
- 网络驱动程序
- 硒 RC
“同源”政策问题
“同源”策略问题是 Web 应用安全框架中的一个重要前提。 根据该准则,浏览器只允许在单个域内执行 JavaScript。 “来源”的特征是主机名、端口号和 URI 方案的混合。 简而言之,该指令禁止位于 abc.com 页面上的恶意 JavaScript 获取对位于 xyz.com 上不同网页上的机密数据的访问权限。
我们在这里只提到“同源”策略问题,因为由于 Selenium 的核心语言是基于 JavaScript 的,它最初需要安装在与运行测试相同的域中,这导致了问题。 后来通过使用代理解决了这个问题。
Selenium IDE 简介
Selenium IDE 或集成开发环境允许我们记录、编辑和调试测试。 它既可以作为 Firefox/Chrome 可以像任何其他浏览器插件一样轻松安装的插件。 由于其简单性,Selenium IDE 只能用作具有 Selenium RC 和 WebDriver 功能的原型设计工具。
查看表
优点 | 缺点 |
Selenium 非常易于使用和安装 | 不是为生产测试原型而设计的 |
需要HTML和DOM知识, 但不需要其他编程语言 | 开发为原型工具 |
Selenium IDE 可以将测试导出到 Selenium RC 和 WebDriver 工具 | 不支持条件操作和迭代 |
Selenium IDE 内置了帮助选项以及测试结果报告模块 | 与 Selenium RC 和 WebDriver 相比,测试执行速度较慢 |
Selenium IDE 还提供对扩展的支持 |
Selenium RC 简介
Selenium RC 是整个 Selenium 项目的基石测试框架。 它是第一个允许用户使用首选编程语言的自动化 Web 测试工具。 从 2.25.0 版本开始,Selenium RC 支持以下编程语言:
- 爪哇
- C#
- PHP
- Python
- Perl
- 红宝石
查看表
优点 | 缺点 |
跨浏览器和跨平台 | 安装比IDE复杂 |
可以执行循环和条件操作 | 用户必须具备编程知识 |
可以支持数据驱动测试 | 需要 Selenium RC 服务器才能运行 |
已经成熟完整的API | API 包含冗余和混乱的命令 |
可以轻松支持新的浏览器 | 浏览器交互不太现实 |
执行速度比 IDE 快 | 它可以提供不一致的结果并使用 JavaScript |
执行速度比 WebDriver 慢 |
WebDriver简介
Selenium WebDriver 证明自己在许多方面都优于 Selenium IDE 和 Selenium RC。 它可以实现更现代和更稳定的方法来自动化浏览器的操作。 它不依赖 JavaScript 实现自动化,而是通过直接与浏览器通信来控制浏览器。 它还支持与 Selenium RC 相同的语言:
- 爪哇
- C#
- PHP
- Python
- Perl
- 红宝石
查看表
优点 | 缺点 |
比 Selenium RC 更简单的安装 | 安装比 Selenium IDE 更复杂 |
直接与浏览器通信 | 需要编程知识 |
浏览器交互更真实 | 不能轻易支持浏览器 |
不需要单独的组件,例如 RC 服务器 | 没有用于记录运行时消息和生成测试结果的内置机制 |
比 IDE 和 RC 更快的执行时间 |
Selenium Grid 简介
当与 Selenium RC 一起使用时,Selenium Grid 允许同时跨不同的机器和浏览器同时进行测试。
硒网格的特点:
- Selenium Grid 使多个测试可以同时在不同的浏览器和环境中运行。
- Selenium Grid 在节省时间方面非常具有成本效益。
- Selenium Grid 还利用了集线器和节点的想法。 集线器充当基于 Selenium 的命令的中心位置,分散到与其连接的每个节点。
既然我们已经概述了 Selenium 是什么、它的用途以及它使用的流行工具是什么,我们将在此停止。 在我们的下一篇文章中,我们将介绍每个单独工具的安装、它们的使用方式,以及 Selenium 与其主要竞争对手 QTP(HP Quick Test Pro)之间的比较,现在称为 Micro Focus Unified Functional Testing(或 UFT)。
想要更多信息?
我们可以提供多个用例示例,Selenium 可以帮助您在多个环境中对应用程序进行单元测试。