最近想使用selenium进行WEB自动化测试,在网上搜索了许久,没找到有具体的配置,于是结合网上的资料再加上自己的尝试终于搭建好环境。于是,就想整理一篇文章,便于大家交流使用。
本文是参照官网的步骤进行的但也不完成相同。在这里我要讲的是 java 的环境的搭建。 我是通过MyEclipse10.0来搭建自己的环境的。
一、环境准备
- JDK;
- MyEclipse10.0;
- Junit 4 ,因为我使用的 MyEclipse10.0已经集成了Junit 4所以就不需要再安装插件了。需要的朋友可以到 https://github.com/KentBeck/junit/downloads 上进行下载;
- Firefox ,我使用的是 Firefox 13.0 ;
- selenium IDE, 打开 官网链接 http://seleniumhq.org/download/ 里面有Selenium IDE的下载链接,我下载的版本是1.9.0;
- Selenium RC ,打开 官网链接 http://seleniumhq.org/download/ 点击 previous releases 链接,找到Selenium RC 对应的下载源,下载你需要的版本,我下载的是selenium-remote-control-0.9.2-dist.zip,然后返回到 http://seleniumhq.org/download/ 页面,下载 Selenium Server,我下载的是selenium-server-standalone-2.25.0.jar,最后下载针对java语言的Seleniumlient Drivers,我下载的是 selenium-java-2.25.0.zip。
二、Selenium IDE
Selenium-IDE是用于selenium测试的一个集成测试工具,他被嵌套在firefox中,作为firefox的一个组件来使用。并且通过它,测试人员可以录制在web界面上的一切操作,并且进行编辑,调试和快速回放,就像用户在操作一样。
- Selenium IDE的安装
打开 firefox 浏览器,进入官方网址: http://seleniumhq.org/download/ 找到 selenium IDE 的下载链接, firefox 会有提示安装插件,点击安装即可。
- Selenium IDE的使用
打开 firefox 浏览器,点击“工具”,选择Selenium IDE,弹出如下页面:
点击红色按钮,开始录制脚本。录制完成后,点击红色的按钮,结束录制。
点击绿色的三角按钮回放录制的脚本。在运行脚本后,你会发现 IDE 表格的颜色发生了变化,运行前,脚本表格为白色,成功运行完毕后,表格为青色。其中还分为深青色和浅青色两种,浅青色表示: 动作成功;而深青色表示:判断正确。
需要注意的是,Base URL需要填写为你要测试的WEB应用的URL。
录制完脚本后,将脚本导出出为 junit 4 类型的代码,我这里保存为 LoginTest.java 并复制到项目中。
三、Selenium RC
Selenium RC可以使用高级语言来编写web页面测试脚本,编写的脚本可以运行在任何支持js的浏览器中。Selenium RC包括两部分:Selenium服务器和Selenium客户端程序。
- Selenium服务器。
能够自动的开启和关闭web浏览器。对于web的请求,它就像一个http代理,SeleniumServer通过向浏览器发出JavaScript调用实现对Html页面的全面追踪,并通过网络把执行结果返回给Selenium客户端 。另外,由于selenium服务器是用JAVA开发的,所以在搭建测试环境的时候,需要安装java的环境。
我们在环境准备过程中下载的selenium-server-standalone-2.25.0.jar即为服务端程序。
启动方式如下:
开始---运行---cmd,打开cmd定位到selenium-server-standalone-2.25.0.jar所在目录,输入:
java -jar selenium-server-standalone-2.25.0.jar
回车,服务就启动了。
服务启动后默认端口是4444。http://code.google.com/p/selenium/wiki/Grid2 这里讲解了如何启动服务修改默认端口等,在这里我就不说明了,如果需要大家可以到该wiki上查看。
- Selenium客户端程序。
Selenium客户端一般使用单元测试技术实现,通过判断返回的结果与预期是否一致来决定程序是否运行正确, selenium客户端测试程序可以使用java、php、.net等高级语言来编写。
搭建客户端环境需要引入两个jar包,一个位于我们之前下载的selenium-remote-control-0.9.2-dist.zip压缩包中,是该压缩包中selenium-java-client-driver-0.9.2文件夹内的selenium-java-client-driver.jar,另一个位于 selenium-java-2.25.0.zip压缩包中,是该压缩包中selenium-2.25.0 文件夹内的selenium-java-2.25.0.jar 。需要将这两个jar引入到我们的测试工程中,还需要引入JUnit对应的jar。
创建 JUnit test case文件,文件名为LoginTest和我们之前 导出的 junit 4 类型的代码名称相同,然后将 之前 导出 的代码复制到新创建的文件中即可。
代码内容如下:
import com.thoughtworks.selenium.*;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import java.util.regex.Pattern;
public class LoginTest extends SeleneseTestCase {
@Before
public void setUp() throws Exception {
selenium = new DefaultSelenium("localhost", 4444, "*iexplore",
"http://localhost:8080/portal");
selenium.start();
}
@Test
public void testLogin() throws Exception {
selenium.open("/portal/");
selenium.type("id=name", "13900000000");
selenium.type("id=password", "11");
selenium.type("id=rs", "1377");
selenium.click("id=btn1");
selenium.waitForPageToLoad("30000");
}
@After
public void tearDown() throws Exception {
selenium.stop();
}
}
最后在MyEclipse中运行LoginTest即可开始自动化测试。
此处需要注意在执行自动化测试的时候Selenium服务时启动的。