最近想使用selenium进行WEB自动化测试,在网上搜索了许久,没找到有具体的配置,于是结合网上的资料再加上自己的尝试终于搭建好环境。于是,就想整理一篇文章,便于大家交流使用。
本文是参照官网的步骤进行的但也不完成相同。在这里我要讲的是 java 的环境的搭建。 我是通过MyEclipse10.0来搭建自己的环境的。
一、环境准备
二、Selenium IDE
Selenium-IDE是用于selenium测试的一个集成测试工具,他被嵌套在firefox中,作为firefox的一个组件来使用。并且通过它,测试人员可以录制在web界面上的一切操作,并且进行编辑,调试和快速回放,就像用户在操作一样。
打开 firefox 浏览器,进入官方网址: http://seleniumhq.org/download/ 找到 selenium IDE 的下载链接, firefox 会有提示安装插件,点击安装即可。
打开 firefox 浏览器,点击“工具”,选择Selenium IDE,弹出如下页面:
点击红色按钮,开始录制脚本。录制完成后,点击红色的按钮,结束录制。
点击绿色的三角按钮回放录制的脚本。在运行脚本后,你会发现 IDE 表格的颜色发生了变化,运行前,脚本表格为白色,成功运行完毕后,表格为青色。其中还分为深青色和浅青色两种,浅青色表示: 动作成功;而深青色表示:判断正确。
需要注意的是,Base URL需要填写为你要测试的WEB应用的URL。
录制完脚本后,将脚本导出出为 junit 4 类型的代码,我这里保存为 LoginTest.java 并复制到项目中。
三、Selenium RC
Selenium RC可以使用高级语言来编写web页面测试脚本,编写的脚本可以运行在任何支持js的浏览器中。Selenium RC包括两部分: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客户端测试程序可以使用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服务时启动的。