一.Selenium是什么?
Selenium是ThroughtWorks公司一个强大的开源Web功能测试工具系列,本系列现在主要包括以下4款:
1.SeleniumCore:支持DHTML的测试案例(效果类似数据驱动测试),它是SeleniumIDE和SeleniumRC 的引擎。
2.SeleniumIDE:FireFox的一个插件,支持脚本录制。
3.SeleniumRC:SeleniumRemoteControl。后续的系列文章我会主要针对SeleniumRC展开介绍。
4.SeleniumGrid:允许同时并行地、在不同的环境上运行多个测试任务,极大地加快Web应用的功能测试。
二.选择合适的Selenium工具
既然Selenium工具有4款这么多,那到底如何选择呢??我从"Selenium官网"这里找了一个表:
Selenium IDE Selenium Remote Control Selenium CoreHTA
Control Core
浏览器支持 仅Firefox 很多 所有 仅IE
需要远程安装 否 否 是 否
支持HTTPS/SSL 是 是* 是 是
支持跨域 是 是* 否 是
需要Java 否 是 否 否
测试结果保存到磁盘是 是 否 是
多语言支持 仅Selenese 很多 仅Selenese 仅Selenese
这里没有介绍SeleniumGrid,但介绍了另外一个SeleniumCoreHTA,
SeleniumCoreHTA其实是SeleniumCore的额外模式,你只要SeleniumCore配置稍
加修改,即为HTA模式,SeleniumCoreHTA可以在IE高安全等级(特权)下工作,
这意味着它仅能在IE下工作,由于限制较大,下面将排除对SeleniumCoreHTA的讨论。
1.浏览器支持:
(1).SeleniumIDE仅可以在Firefox中工作。
(2).SeleniumRemoteControl支持很多浏览器,包括常用的:firefox,ie,safari等N款浏览器。
(3).SeleniumCore支持的浏览器是广的,这点和它的实现有关。
作为IDE和RC的引擎,SeleniumCore几乎可以在任何浏览器中工作。
2.需要远程安装:是否需要在被测网站的服务端安装?
SeleniumIDESelenium RemoteControl Selenium Core SeleniumCoreHTA浏览器支持仅Firefox很多所有仅
IE需要远程安装 否 否是否支持HTTPS/SSL是是*是是支持跨域是是*否是需要Java 否 是否否将测试结果保存到磁盘
是否是多语言支持 仅Selenese 很多 仅Selenese仅Selenese 这里只有SeleniumCore需要,这是出于同源策略的
原因。这也是SeleniumCore一个很大的限制,试问,如果你要测试Google.com,还得在google的服务器上装一个
SeleniumCore,那是多搞笑的一件事。 而SeleniumIDE和SeleniumCoreHTA不会被同源策略所限制,因为他们对
浏览器扩展了。 SeleniumRC提供一个代码服务器来保证SeleniumJS文件看似来自相同的远程服务器,从而符合同源
策略;代理服务器欺骗浏览器,让它认为这里的确有像http://www.google.com/selenium/这样的目录。