我应该使用哪种Selenium工具?
考虑如下功能矩阵:
| |
Selenium
IDE |
Selenium
Remote Control |
Selenium
Core |
Selenium
Core HTA |
| 浏览器支持 |
仅Firefox |
很多 |
所有 |
仅IE |
| 需要远程安装 |
否 |
否 |
是 |
否 |
| 支持 HTTPS/SSL |
是 |
是* |
是 |
是 |
| 支持跨域 |
是 |
是* |
否 |
是 |
| 需要Java |
否 |
是 |
否 |
否 |
| 将测试结果保存到磁盘 |
是 |
是 |
否 |
是 |
| 多语言支持 |
仅Selenese |
很多 |
仅Selenese |
仅Selenese |
* = Selenium RC中实验性的支持
浏览器支持:Selenium IDE仅可以在Firefox中工作。Selenium Remote Control直接支持Firefox和IE,此外还支持手动配置很多其它浏览器。Selenium Core几乎可以在任何浏览器中工作,因为它是纯粹的JavaScript。Selenium Core HTA可以在IE最高安全等级(特权)下工作,这意味着它仅能在IE下工作。
需要远程安装:Selenium Core需要在被测试应用程序(Application Under Test, AUT)的网站内安装,因为 同源安全策略
,一个阻止进行跨网站脚本访问的安全策略。那意味着你不能坐在那里写一个Selenium Core测试而运行在google.com;如果要那样做,你需要在google.com安装Selenium Core。如果你不能/不会在你的被测应用程序AUT上面安装Selenium Core,不能保证它在AUT相同的服务器上公开可见,那么Selenium Core可能不适合你。
同源安全策略不会限制Selenium IDE,因为它作为Firefox扩展实现;它对于Selenium Core HTA也无效,因为它运行于IE的最高安全级别(特权)上。Selenium RC通过提供一个代理服务器来保证Selenium JS文件看似来自相同的远程服务器,从而符合同源策略;代理服务器欺骗浏览器,让它认为这里的确有像http\://www.google.com/selenium/这样的目录。
支持HTTPS/SSL:最新版本的Selenium Remote Control的代理服务器可以支持HTTPS网站(当前所指版本为0.9.0),但是这个支持还是实验性的。参考使用试验性的浏览器加载器
支持跨域:同源策略意味着测试一个服务器/域不能操作另外一个服务器/域。这意味着Selenium Core不能处理跨多个不同域的应用程序。
Selenium RC可以处理切换域的问题,但是这个支持是实验性的。参考使用试验性的浏览器加载器获取更多信息。
需要Java:Selenium Core和Selenium IDE直接在浏览器中运行。Selenium RC需要安装Java(运行代理服务器)。注意,虽然Selenium RC需要Java,你也可以用.NET、Perl、Python和Ruby编写你的RC测试,但是你需要Java来运行代理。
将测试结果保存到磁盘:Selenium Core不能将任何测试结果写到磁盘上(因为它是用javascript写的,它不允许向磁盘写数据),当然你可以将测试结果发送到另外一台服务器保存。(你 可以 通过Selenium COre HTA保存测试结果。)Selenium Remote Control提明确供支持运行测试并用多种语言讲测试结果写入磁盘的功能;它还可以为Selenium Core结果处制理服务器。Selenium IDE是一个Firefox扩展,所以当然支持将测试结果存盘。
语言支持:Selenium Remote Control允许你用任何语言写测试,包括Java、.NET、Pertl、Python和Ruby。(你还可以为其它语言添加测试的支持。)Selenium IDE和Selenium Core仅支持使用"Selenese"测试, 一种简单的脚本语言。Selenese有一些严格的限制:它没有条件(没有"if"表达式),并且它没有循环(没有"For"表达式)。这会使编写复杂的测试变得困难甚至不可能。
一般说来选择那个版本比较好呢,对于测试?
Selenium Remote Control?Selenium core