[转]Selenium私房菜系列1 -- Selenium简介

一.Selenium是什么?

Selenium是ThroughtWorks公司一个强大的开源Web功能测试工具系列,本系列现在主要包括以下4款:

1.Selenium Core:支持DHTML的测试案例(效果类似数据驱动测试),它是Selenium  IDE和Selenium  RC的引擎。

2.Selenium IDE:FireFox的一个插件,支持脚本录制。

3.Selenium RC:Selenium Remote Control。后续的系列文章我会主要针对Selenium RC展开介绍。

4.Selenium Grid:允许同时并行地、在不同的环境上运行多个测试任务,极大地加快Web应用的功能测试。

二.选择合适的Selenium工具

既然Selenium工具有4款这么多,那到底如何选择呢??我从"Selenium官网"这里找了一个表:

  Selenium IDE Selenium Remote Control Selenium Core Selenium Core HTA
浏览器支持 仅Firefox 很多 所有 仅IE
需要远程安装
支持 HTTPS/SSL 是*
支持跨域 是*
需要Java
将测试结果保存到磁盘
多语言支持 仅Selenese 很多 仅Selenese 仅Selenese

这里没有介绍Selenium Grid,但介绍了另外一个Selenium Core HTA,Selenium Core HTA其实是Selenium Core的额外模式,你只要Selenium Core配置稍加修改,即为HTA模式,Selenium Core HTA可以在IE最高安全等级(特权)下工作,这意味着它仅能在IE下工作,由于限制较大,下面将排除对Selenium Core HTA的讨论。

1.浏览器支持

(1).Selenium IDE仅可以在Firefox中工作。

(2).Selenium Remote Control支持很多浏览器,包括最常用的:firefox,ie,safari等N款浏览器。

(3).Selenium Core支持的浏览器是最广的,这点和它的实现有关。作为IDE和RC的引擎,Selenium Core几乎可以在任何浏览器中工作。

2.需要远程安装:是否需要在被测网站的服务端安装?

这里只有Selenium Core需要,这是出于同源策略的原因。这也是Selenium Core一个很大的限制,试问,如果你要测试Google.com,还得在google的服务器上装一个Selenium Core,那是多搞笑的一件事。

而Selenium IDE和Selenium Core HTA不会被同源策略所限制,因为他们对浏览器扩展了。

Selenium RC提供一个代码服务器来保证Selenium JS文件看似来自相同的远程服务器,从而符合同源策略;代理服务器欺骗浏览器,让它认为这里的确有像http://www.google.com/selenium/这样的目录。

3.支持HTTPS/SSL

这里不说了,都支持。Selenium RC在“是”后面加*因为它是在最近版本支持的,仅此而已。

4.需要Java:准确的说是需要JRE

这项只有Selenium RC需要,上面2中所说的“代理服务器”是一个Java程序,需在跑测试案例前启动。

5.将测试结果保存到磁盘

只有Selenium Core不能将任何测试结果写到磁盘上(因为它是用javascript写的,它不允许向磁盘写数据),其解决方案是当然你可以将测试结果发送到另外一台服务器保存。这也是Selenium Core的一大限制。

6.多语言支持

(1).Selenium IDE仅支持Selenium语言。

(2).Selenium RC支持很多语言,如:C#,Java,Python,Ruby等。

(3).Selenium Core也是仅支持Selenium语言。

Selenium语言的测试案例如下:

它的优点是:简单,用(Command,Target,Value)三种元素组成一个行为,并且有辅助录制脚本工具(如:Firefox IDE,Selenium Core等),不懂程序的测试人员都可以轻松地编写测试案例。

它的缺点是:Selenese有一些严格的限制:它没有条件(没有"if"表达式),并且它没有循环(没有"For"表达式)。这会使编写复杂的测试变得困难甚至不可能。

OK,现在我们来研究下到底该使用哪款工具开展测试!

(1).Selenium IDE支持并且只支持Firefox浏览器,支持的浏览器太少,而依附于Firefox也不便于日后开展自动化测试,但是,它的录制快捷好用!并且有代码转换功能,可以把Selenium语言测试案例转为C#,Java等语言的测试案例,我建议使用Selenium IDE + FireBug进行测试案例的编写,然后转为其他语言的测试案例后,再调用Selenium RC运行测试案例。

(2).Selenium Core,它的优点是编写测试案例简单,并且支持绝大多数的浏览器,但缺点也同样明显,Selenium Core需要远程安装,Selenese语言也限制了复杂案例的可能性,并且没有良好的外部扩展,这是些都会是致命的问题。因为一个款测试工具不可能100%满足你测试需求的,当它不能满足你测试需求时候,它必须有一个扩展机制可以让你可以使用其他的方式满足你需求,否则这款测试软件即使功能强大,也请三思慎用,否则当投入大量资源后才发现某些问题不能解决,那时候已经晚了,这是我的切身体会。

(3).Selenium RC是我推荐使用的工具,它支持很多浏览器,可以使用C#,Java等语言编写测试案例,易于维护,同时提供了很好的扩展性,所以后续的文档我会以Selenium RC作为默认的测试工具。

时间: 2024-10-15 18:34:06

[转]Selenium私房菜系列1 -- Selenium简介的相关文章

Selenium私房菜系列9 -- Selenium RC服务器命令行参数列表【VV】

使用示例: java -jar selenium-server.jar [-interactive] [options] -port <nnnn>: selenium服务器使用的端口号(默认 4444) -timeout <nnnn>: 我们放弃前(超时)所等待的秒数 -interactive: 进入交互模式.参考教程获取更多信息 -multiWindow: 进入被测试网站都在单独窗口打开的模式,并且selenium支持frame -forcedBrowserMode <br

Selenium私房菜系列4 -- Selenium IDE的使用【QQ】

前面说过,Selenium IDE是Firefox的一个插件,是可以进行脚本录制以及案例转换,所以Selenium IDE+Firebug会成为你日后写测试案例的两大助手(IE下可以使用Selenium Core+IEDevelperToolBar). Selenium IDE下载:http://seleniumhq.org/download/ Firebug下载:https://addons.mozilla.org/firefox/addon/1843 下面将演示Selenium的使用: 1.

Selenium私房菜系列3 -- Selenium API参考手册【ZZ】

大家在编写测试案例想查阅Selenium API说明时,可以查阅本文,否则请跳过! (注:这里API版本比较老,新版本的Selenium的API在这里不一定能找到.) Selenium API说明文档(转载自:http://wiki.javascud.org/display/springs/SeleniumRefrence) Commands (命令) Action对当前状态进行操作失败时,停止测试 Assertion校验是否有产生正确的值 Element Locators指定HTML中的某元素

Selenium私房菜系列7 -- 深入了解Selenium RC工作原理(2)【II】

继续前一篇的问题,为什么Selenium RC中的Selenium Server需要以这种代理服务器的形式存在?其实,这和浏览器的“同源策略”(The Same Origin Policy)有关. 一.什么是同源策略  同源策略,它是由Netscape提出的一个著名的安全策略,现在所有的可支持javascript的浏览器都会使用这个策略. 为什么需要同源策略,这里举个例子:    假设现在没有同源策略,会发生什么事情呢?大家知道,JavaScript可以做很多东西,比如:读取/修改网页中某个值.

Selenium私房菜系列8 -- 玩转Selenium Server【OO】

本篇主要是想更进一步介绍Selenium Server的工作原理,这次我们从Selenium Server的交互模式开始. 在<第一个Selenium RC测试案例>中,我们以命令“java -jar selenium-server.jar”启动了Selenium Server,其实在启动Selenium Server时,我们还可以加上各种参数(具体的参数请参考<Selenium RC服务器命令行参数列表>), 而开启Selenium Server交互模式的命令为“java -ja

Selenium私房菜系列2 -- XPath的使用【ZZ】

在编写Selenium案例时,少不免是要用到XPath的,现在外面关于XPath使用的参考资料很多,下面我直接转一篇关于XPath使用的文档.如果对XPath不熟悉请参考下文,你不需要去百度/Google搜索关于XPath的资料,因为下面的内容已经足够你写测试时使用,如果你已熟悉XPath,本章大可忽略跳过. xpath的语法 (转载自:http://www.cnblogs.com/jianjialin/archive/2009/02/01/1382056.html XPath 是XML的查询语

Selenium私房菜系列6 -- 深入了解Selenium RC工作原理(1)【QQ】

前一篇已经比较详细讲述了如何使用Selenium RC进行Web测试,但到底Selenium RC是什么?或者它由哪几部分组成呢?? 一.Selenium RC的组成: 关于这个问题,我拿了官网上的一幅图来说明这个问题. Selenium RC主要由两部分组成: (1).Selenium Server: Selenium Server负责控制浏览器行为,总的来说,Selenium Server主要包括3个部分:Launcher,Http Proxy,Selenium Core.其中Seleniu

Selenium自动化测试环境搭建Eclipse+Selenium+Junit+TestNG

1.安装JDK JDK1.7 下载路径:http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html 一路猛击‘下一步’,OK.安装完成后配置环境变量: JAVA_HOME = E:\Java\Java\jdk1.7.0_15 PATH = %JAVA_HOME%\bin CLASSPATH = .;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.j

鸟哥的 Linux 私房菜(服务器) 第三章 局域网络架构简介 第四章 连上 Internet

鸟哥的 Linux 私房菜(服务器) 第三章 局域网络架构简介 第四章 连上 Internet [TOC] 3.1 局域网络的联机 3.1.1 局域网络的布线规划 3.1.1-1 Linux 直接联网-与 PC 同地位 3.1.1-2 Linux 直接联网-与一般 PC 分开网域 3.1.1-3 Linux 直接联网-让 Linux 直接管理 LAN 3.1.1-4 Linux 放在防火墙后-让 Linux 使用 Private IP 3.2 本书使用的内部联机网络参数与通讯协议 3.2.1 联