这是我在使用Selenium中的一些经验,供大家参考。
一、版本说明
目前,Selenium有四个版本,Selenium IDE、Selenium Core、Selenium RC、Selenium Core HTA。Selenium Core需要在远程服务器上安装,不支持跨域,且仅支持selenese语言。Selenium Core HTA仅支持IE浏览器,selennese语言。Selenium IDE和Selenium RC(Remote Control)都支持跨域,不需要在远程安装,它们各自有一些无可比拟的优点,简单介绍如下:
Selenium IDE
优点:
它能够嵌入到浏览器中(但它是一个完整的测试工具);可以直接操作页面进行录制/回放,比较直观;可以保存成不同语言的版本,如java、python、PHP、C#、perl等。
缺点:
目前只支持Firefox(最新版本可以支持Firefox3了)。另外,它仅支持selenese语言。
Selenium RC
优点:
支持目前几乎所有的浏览器,包括firefox、IE、Opera等;支持多种语言,IDE中生成的所有语言他都支持,可以使用这些语言进行编程;同时,RC支持两种框架JUnit和TestNG,借助JUnit可以生成多种不同形式的结果文档,TestNG目前也备受推崇,因为他支持多线程,对Selenium Grid支持比较好,如果有需要以后可以研究一下,这里我们用JUnit。
缺点:
对firefox3支持不太好,需要进行相关配置,目前使用firefox2;
鉴于我们的实际情况,Selenium IDE直观的页面录制及SeleniumRC支持Java语言等优点,所以采用了Selenium IDE + Selenium RC + Java + JUnit + Ant这样一个框架进行测试。使用Ant+JUnit是为了测试自动化及更好的输出测试报告。
二、安装
以下是我在window下使用selenium进行测试需要安装的软件(注:使用的版本是我测试成功的版本):
●FireFox2
●JDK6:
●Selenium IDE 1.0 beta2:
●Selenium RC1.0
●Ant1.7.1
●JUnit4.5
●Firebug(可选)
1.FireFox2:
安装FireFox2浏览器,因为Selenium RC对FireFox3支持不太好,目前我用的是FireFox2。有兴趣的可以一起研究以下Selenium RC对FireFox3的支持。
2.JDK 6:
JDK是seleniu服务器运行的前提,也是使用java语言编程必不可少的。最好安装比较新的版本,低版本可能会与其它软件不兼容,我用的是JDK6。安装过程相信大家都比较熟悉,注意配置好环境变量。
3.Selenium IDE 1.0 beta2
官方网站:http://selenium-ide.openqa.org/download.jsp
安装过程比较简单,下载最新安装软件,文件扩展名为.xpi,直接将该文件拖到FireFox浏览器中,按提示进行即可,安装完成后重启浏览器,就可以在工具选项中看到Selenium IDE选项,点击,即可打开Selenium IDE。
4.Selenium RC1.0
官方网站:http://selenium-rc.openqa.org/download.html
Selenium RC的框架及原理可以查阅网站上的相关文档。不需要安装,window下直接解压.zip文件到指定的目录即可,我这里解压到E:\。解压后要把selenium-server-1.0-beta-1 和selenium-java-client-driver-1.0-beta-1文件夹下的jar包添加到CLASSPATH中去。
●selenium-server-1.0-beta-1中的jar包主要是启动selenium服务器使用;
●selenium-java-client-driver-1.0-beta-1下的jar包主要是用java编写测试用例使用。
5.Ant1.7.1
官方网址:http://ant.apache.org/
直接解压缩就可以。如果已安装过的,可以不安装,注意一下版本就行。使用ant主要是为了与CruiseControl的结合,实现自动化测试。
注意:
●配置好ANT_HOME、PATH环境变量
●一定要使用1.7.0以上的版本,因为低版本的ant对junitreport任务的支持不是很好,还需要下载xalan包等,配置比较麻烦。
6.JUnit4.5
官方网址:http://www.junit.org/
直接解压缩即可
注意:将JUnit下的jar包加到CLASSPATH中去,运行junit框架时使用。
7.FireBug(可选)
这个工具功能比较强大,我个人挺喜欢的,他是FireFox的附件,直接嵌入到FireFox中,对FireFox绝对支持,可以帮助我们从不同角度分析页面中的代码,而且直观易读。
可以安装用一下,下载网址:http://getfirebug.com/
三、Selenium IDE + Selenium RC + Java + JUnit + Ant 执行过程
下面以一个简单的例子说明一下这一框架的具体测试实现过程。
用例描述:打开www.google.cn页面,查找“hello world”字符串。
主要的执行过程我把它分成4步:
1.录制脚本(Selenium IDE)
1)打开Selenium IDE,在Base URL栏中输入地址www.google.cn;
2)在录制按钮(右侧红色圆点)被按下的情况下,在FireFox浏览器中打开www.google.cn页面,并查找hello world,进入hello world页面。
3)录制完成后选择“文件”——Export Test Case As——Java Selenium RC。导出为java文件。
注意:
●可以在“工具”-“选项”对话框中设置记录的内容,例如判断打开页面的标题等。
●Selenium IDE生成的是html格式的文件,通过html运行,可以查看其它语言格式。
●Selenium IDE是一个完整的测试软件,可以编写测试用例,执行,生成报告等。
2.修改脚本
如果要使用JUnit框架运行生成的测试用例,需要修改源文件中的部分内容。
如下图红色部分,修改内容包括(主要是2、3步):
1)第一行pakage,可以删除不用,也可以重新设置打包;
2)引入import junit.framework.*;
3)把测试类的基类SelenseTestCase改为TestCase;
4)在需要填入网址的地方输入正确的网址。可以修改setUp函数为图中所示。设置服务器地址、端口号(默认为4444),浏览器,网址等。
5)添加main函数。
3.编写build.xml
主要内容包括:
1)编译生成的java文件
使用javac编译java文件:javac NewTest.java
2)启动selenium服务
命令:java –jar selenium-server.jar
由于测试用例的执行前提必须是selenium服务的启动,我使用start命令在新窗口中启动selenium服务,同时需要用到一个 3)执行测试用例,并输出报告 这里我用junit框架调用类文件,执行测试用例,参见下面的代码,当然,可以使用java直接执行等其它方式执行,但为了自动生成测试报告,所以使用了Ant的 junit task参见:http://ant.apache.org/manual/OptionalTasks/junit.html junitreport task参见:http://ant.apache.org/manual/OptionalTasks/junitreport.html 4)停止selenium服务 具体代码如下: dest="result.txt" ignoreerrors="true" /> 直接在当前目录中执行ant,即可看到服务启动及测试执行的过程,测试过程是在IE中进行的。 最终的目录结构为: ——src(源文件) ——NewTest.java ——report(所有测试结果) ——html(html结果) ——build.xml 以上是以Selenium IDE + Selenium RC + Java + JUnit + Ant这个框架为例,介绍了使用selenium的一些基本方法及一些个人体会,希望能帮助大家快速入门。可能有些不足的地方,欢迎大家批评指正。Selenium是一个比较复杂的软件,同时也是一个成长中的软件,需要长时间的、深入的研究,希望以后能和大家一起讨论,共同分享研究成功。下载本文
4.运行
四、写在最后——类文件和框架文件