SeleniumRC 就是使用程式语言编写脚本,通过Selenium RC服务器作为代理服务器去访问应用从而达到
测试的目的.由于Selenium RC不再需要依附Firefox,所以其可以在
其它更多的浏览器上进行测试,而这也是我们做WEB测试的一个比较重要的问题(解决了因为担心浏览器兼容问题而重要做测试的问题). RC的脚本由于是程序语言编写,所以更为灵活强大.并且它支持的语言极为丰富.所以RC是Selenium测试工具中的应用最广的.同时,它对测试人员编程水平要求也较高.下面将简介Selenium RC.
Selenium RC使用包括两部分,一是服务器,一是脚本.服务器则下载后即可使用,记得开始跑脚本时把服务器打开.它是一个已经打包好的
JAVA程序,运行 java -jar selenium-server.jar即可.要使用 selenium-rc ,启动这个server 是必须的。当然,启动的时候有一些参数,可以到其官方网站上参考.不过做一般的测试,不需要要额外的参数已经足够.
另一部分是脚本,就是我们要编写的了.它可以使用多种语言编写,如C#,ruby,java等,在这里我采用java.它可以在多个测试框架上应用,如junit/nunit, testng等,这里采用junit.在整个测试框架中,Selenium提供了封装好的selenium 接口与类,如果使用junit它还提供了封装好的测试类.下面将按步骤以一个简单的例子介绍基于junit3.0的测试框架用java语言在Ecplise平台上编写并运行脚本.
1>编写测试脚本.首先建立一个java project,记得要把junit3.0的包与selenium java(即是selenium-java-client-driver.jar) 包放到project中.然后建立一个类直接继承封装好的selenium测试类.脚本如下:
package com.xpg.study;
import com.thoughtworks.selenium.*;
// 继承测试类
public class DefaultTestCase extends SeleneseTestCase {
//实例化Selenium 类
Selenium selenium;
//覆盖setUp方法
public void setUp() throws Exception{
//实例化DefaultSelenium类,其它命令均是它的方法
selenium=new DefaultSelenium("localhost",4444,"*iexplore","http://www.baidu.com");
//启动selenium 创建一个新的session
selenium.start();
}
//覆盖teardown方法(在这里没有特别的设置)
public void tearDown()throws Exception{
selenium.stop();
}
//建立一个测试方法,里面是命令的集合了..
public void testBaidu()throws Exception{
//
DefaultTestCase
test=new DefaultTestCase();
//注意这里的selenium即是类中的已经启动的selenium,命令都是它的方法
selenium.open("http://www.baidu.com");
selenium.waitForPageToLoad("6000");
selenium.type("kw", "selenium");
selenium.click("sb");
Thread.sleep(3000);
assertTrue(selenium.isTextPresent("相关搜索"));
}
}
以上则是一个简单的用来测试百度网站的例子.当然一般情况下我们会将junit testCase放在专门的测试类中,这个测试类则直接继承SeleneseTestCase类,以更好的组织脚本也可达到重用的目的.
编写好脚本当然是试运行下了.首先得开户Selenium 服务器,用命令java -jar selenium-server.jar -multiWindow 即可打开. 这里加了个参数-multiWindow是为了在运行时应用运行的浏览器与Selenium 服务的浏览器分开. 打开服务器后即可运行脚本了. 最后脚本不出意外的话应该是Passed.
以上只是非常简单的一个selenium RC就用于测试的例子.要将selenium RC 很好地应用于测试则需要花点时间熟悉,研究下....