应上篇同学的要求,自己整合了一些关于Selenium rc的一些资料,供参考与互相学习。
Selenium 是 thoughtworks公司的一个集成测试的强大工具。希望大家能多多使用这样的强大的,免费的工具,来保证我们的质量。
Selenium 的文档现存的不少,不过都太简单了。使用Selenium的时候,我更多的是直接去看API文档,好在API不错,一个一个看,就能找到所需要的官方网站:http://www.openqa.org/selenium/
好,下面进入正题!
一、Selenium 的版本
在安装Selenium 之前我们应该根据具体情况选择什么版本,以及工具集的选择,目前Selenium工具集包括:Selenium Core、Selenimu IDE、Selenium Remote Control(selenium RC)、Selenium Grid。目前我们乐园这边只用到Selenium Remote Control(selenium RC)。
工具介绍
Selenium Core:一个用JavaScript开发的测试驱动引擎,用以驱动Selenimu IDE和Selenium Remote Control,同时也可部署在任意用户想要的应用服务器上。可以模拟用户在浏览器中的操作,比如:“点击按钮、输入文本框”等。
Selenium IDE:一个专门用于Firefox浏览器的插件,能够录制回放用户在Firefox中的行为,并把所记录的Selenese (Selenium Commands)转化为HTML/Java/C#/Python/Perl/Php/Ruby等语言脚本。
Selenium RC:一个C/S架构的web测试体系框架,在web浏览器与待测的web应用间架起代理服务器(Selenium server),Selenium Client端测试程序发起的请求通过代理服务器转发给web应用,web应用的返回结果直接返回给代理服务器,最后由代理服务器转发给client端测试程序。
Selenium Grid:基于Selenium RC的扩展工具,通过多Server的支持,Client端测试程序可以做到分布式部署。
selenium-core 是使用HTML的方式来编写测试脚本,你也可以使用 Selenium-IDE来录制脚本,但是目前Selenium-IDE只有 FireFox 版本。
二、下载
1.去官网下载:http://www.openqa.org/selenium/ 下载就可以了,记得选择selenium-rc 的版本。
2.另外需要学习一下Xpath的有关知识,有个教程:http://www.zvon.org/xxl/XPathTutorial/General_chi/examples.html,可以去这里学习下。
3.安装jdk,推荐jdk1.6。
三、配置与安装
1.Selenium RC的配置
Step1:确保已安装java运行环境,可以是JDK,也可以是其它集成开发环境,推荐JDK1.6。
Step2:将Selenium RC工具目录(server & client)部署到任一自定义的目录下,并将“selenium-X-client-driver-1.0.1”相关的路径添加到系统环境变量中,确保 Client测试程序在编译或运行时能连接到Selenium RC提供的驱动工具包。
2.Selenium IDE的安装(可以选择是否安装,目前乐园自动化测试并没有安装)
step1:下载安装FireFox浏览器。
step2:打开FireFox浏览器,按“工具-附件组件-获取添加组件”菜单顺序找到插件安装页面,在搜索栏输入“selenium ide”进行搜索,选择一个版本进行安装(即:选择“添加至FireFox”操作。
四、启动Selenium RC
Step1:cmd启动selenium-server.jar服务包,启动命令“java -jar selenium-server.jar”。
Step2:selenium-server.jar服务成功启动后,根据测试程序/脚本所用语言启动相应的编译运行环境。比如:若用java写的 client端测试程序,则要再启动一个java程序编译运行环境,如JDK1.6命令行环境;若用python写的client端测试脚本,则要再启动一个python解释运行环境,如python IDLE或直接在cmd环境输入“python ****.py”。若用PHP写的client端测试脚本,则要再启动一个PHP解释运行环境,如在cmd环境输入“php run.php”。
到这里,可能有的人会问:“Selenium IDE 好像并没有什么用处啊,为什么要有这个出来呢?”有存在必有存在的理由,下面我们说说Selenium IDE 在Selenium RC中的配合应用:
五、Selenium RC与Selenium IDE的配合使用
Selenium IDE比较适合做回归测试,selenium RC则可用于功能测试自动化。
Selenium IDE对使用Selenium RC的最大帮助可能在于:通过分析Selenium IDE的录制脚本,可以清楚地知道自己所采用的Format语言是如何去标记一个web元素和如何去操作它的。比如用python去打开一个连接,用 “sel.click(unicode("link=Widget技术为统一通信注入新活力"))”方法,如用java,则是 “selenium.click("link=Widget技术为统一通信注入新活力");”方法。
对于Selenium RC测试框架,个人认为主要有以下优势:
(1)Selenium RC工具server端作为测试服务代理实现了直接对web服务器的直接请求,使得测试程序的开发可在Client端完成,并可调用client端驱动包提供的针对代理server端的操作,这些操作集(API)根据web应用程序特点对httprequest等web应用倚赖的低层服务进行了封装,不用测试人员再费力去学习低层服务接口用法,上手门槛相对降低了。
(2)由于client端提供了丰富的测试驱动包,使得测试程序开发语言或脚本选择多样化,相应地对测试工程师的技能要求也就多样化了,在不追求测试运行环境统一的前提下,不同的测试工程师可以选择自己擅长的语言来编写测试脚本。