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 翻译并解析执行用户录制的操作。
原文转自:http://www.uml.org.cn/Test/201707182.asp