使用 Selenium 实现基于 Web 的自动化测试(1)Selenium 及其实现原理
 
- UID
- 1066743
|

使用 Selenium 实现基于 Web 的自动化测试(1)Selenium 及其实现原理
Selenium 及其实现原理Selenium 的主要功能包括:
1)测试与浏览器的兼容性:测试应用程序能否兼容工作在不同浏览器和操作系统之上。
2)测试系统功能:录制用例自动生成测试脚本,用于回归功能测试或者系统用例说明。
简而言之,Selenium 就是一款可以录制用户操作,帮助 Web 测试人员简化重复劳动的工具。
目前为止 Selenium 有两种版本:
- Selenium 1(Selenium RC,Remote Control):传统 Selenium 框架,支持多种编程语言脚本生成。但需要启动一个代理 Server 来处理用户与测试 Server 之间的通讯。
- Selenium 2(Selenium Webdriver):全新自动化接口,突破了 Selenium 1 的一些限制,剔除了中间 Server,但由于写这篇文章为止自动生成脚本工具对 Selenium 2 的支持还不好,适合熟悉 Selenium API 的手写 case 测试人员使用。
阅读本文读者可以学习到以下技能:
- 了解 Selenium 自动化测试框架的基本概念。
- 学会搭建应用 Selenium 自动化测试框架的环境。
- 搭建一个自集成的测试容器以持续测试 Selenium 测试用例。
本文着重介绍传统 Selenium 1 的原理及使用方法。接下来让我们看看 Selenium 是如何调用录制脚本并实现自动测试的。
Selenium 1 实现原理Selenium 引入了 Remote Control Server 这样一个代理 Server,JavaScript 脚本注入和与 Server 通讯都通过这个代理 Server 来进行。如下图所示:
图 1. Remote Control 模式运行流程 之所以引入这个代理 Remote Control Server 是因为“同源策略”的限制,通过这个代理服务器来“欺骗”远程 Server,达到使其以为是从同一个地方 load 代码以正确返回请求数据的效果。
流程说明:
- 客户端建立与 selenium-RC server 的连接。
- Selenium RC Server 启动一个浏览器(或是已经使用中),并注入 JS 代码
- 将 Selenese 代码传到客户端的 Selenium-Core 中。
- Selenium-Core 翻译并解析执行用户录制的操作。
- 让代理 Server 进行通讯
- Remote Control Server 负责跟远程 Web 应用服务器进行通讯。
- 操作完成,显示结果,并执行下一指令。
以上就是 Selenium Remote Control 的执行原理,接下来的章节中将一步步以图例加说明的方式快速说明如何使用 Selenium 来录制脚本,导入 Java 工程,然后定期维护工程。 |
|
|
|
|
|