2、 RC工作原理
从上一节中知道,Selenium Server在测试过程中负责控制浏览器的行为,在Selenium架构中主要承担三个角色,启动<Launcher>浏览器、充当浏览器请求时的HTTP代理<Proxy>,提供Selenium Core。由于Selenium Core本身是由JavaScript编写,需要在浏览器端执行,又由于同源策略的问题,作为RC工作的引擎,理论上它需要在AUT服务器端进行安装。为了解决同源策略问题,在SServer中,提供了一个HTTP代理用以保证来自Selenium的JS文件看似来自于AUT的远程服务器,从而能够在打开AUT的浏览器标签页内正常执行。
在实际的测试过程中,需要有测试用例<Test Cases>、浏览器、Selenium RC、被测Web Application等模块,各部分的关系如图2.7所示:
图2.7 测试实例模块图
使用Selenium RC进行Web自动化测试,需要准备Selenium RC运行环境、编写测试用例脚本、安装RC支持的浏览器、能访问的待测应用程序<AUT>。Selenium RC工具提供多种高级语言支持,测试人员可以选择熟悉的语言编写测试用例驱动程序,测试用例通过调用相应的语言驱动接口,完成与Selenium Server之间的通信。
基于Selenium的测试属于非侵入的,即测试人员无需修改被测Web应用的任何代码,也无需操作被测Web服务器,因此可对远程任何一个Web应用进行自动测试,如baidu,google等。
基于Selenium的Web应用测试也存在缺陷,主要是测试用例的描述,底层Selenese是数据驱动或表驱动的,高层需要采用高级编程语言来实现,如JUnit,Python等。
3、 一个使用RC的具体例子
首先搭建Java环境,打开eclipse sdk工具(下载地址见参考文献[32])。
第一步:创建一个项目,点击菜单new--project,如下图2.8:
图2.8 创建一个项目
第二部:导入需要的包,右键点击创建的项目,选择Build Path--Add External Archives。导入需要的包完成后如图2.9:
图2.9 导入需要的包
Junit-4.10.jar :在下载的junit 4压缩包里。下载地址见参考文献[35]。
Selenium-java-client-driver.jar:在下载的selenium-remote-control-1.0.3文件夹下。selenium-remote-control-1.0.3 下载地址见参考文献[31]。
Selenium-server.jar:在下载的selenium-remote-control-1.0.3文件夹下。
第三步:把录制的脚本导出为junit 4类型的代码,导出代码见上面2.1.1介绍Selenium IDE导出脚本,我这里保存为test.java并复制到我的项目中Src文件夹下的com.test包中,如图2.10:
图2.10 test.java
第四步:下面要启动服务。开始---运行---cmd 打开命令提示符。定位到…selenium-remote-control-1.0.3\selenium-server-1.0.3>目录下。输入:java -jar selenium-server.jar 回车。服务就启动了。如图2.11:
图2.11 启动服务
最后,下面在eclipse是运行,test.java程序。将自动调用的浏览器开始运行脚本了,运行结果和前面录制过程一致,该例子就到此结束。
Selenium工具相比目前其他测试工具,具有高扩展、跨平台、多浏览器支持的特点。表2.2[37]列出了Selenium各组件所支持的浏览器和操作系统平台。
表2.2 Selenium组件支持平台
Selenium 组件 浏览器 功能 运行平台
Selenium IDE Firefox 2、3、3.x 录制/回放测试用例 Windows、Linux、 Mac
IE 6、7、8 通过Selenium RC 扩展,执行测试用例 Windows
Safari 2、3、4 Windows、Mac 基于FitNium的Web关键字驱动的测试(5):http://www.youerw.com/jisuanji/lunwen_8907.html