使用Selenium进行验收测试

上一篇 / 下一篇  2012-03-26 15:22:26 / 个人分类:Selenium

d#oT;_YRL4i0使用Selenium进行验收测试

ns+p$d2G J__|8g0

$Q[/B"]@:s)~y0T0 51Testing软件测试网4nNm]rdG

[u[+T~e ]0作者: 未知    来源: 网络转载

@~t*WO6}%L od051Testing软件测试网&Q-wm]MS


,J!E(D%gjKOk"_7P(N0概述51Testing软件测试网u2N:f&Pp:^(x9g;{y

51Testing软件测试网7^h4j'F'[/osP I

        我们公司是没有正规的测试人员的,对一个模块而言,功能是否完成都是由开发人员手工测试。项目后期经常发生这样的情况,开发人员更改一个BUG,自已测试表示通过,但是发到客户那却发现,BUG是改好了,以前正常工作的功能却不能工作了。对一个模块来讲,更改一个部分的代码,可能会造成连锁反应,如果要保证不会造成其他功能不受影响,必须进行全面的测试,这在项目后期,频繁更改BUG时,肯定是不现实的。 鉴于这种状况,考虑将Selenium引入到项目中。51Testing软件测试网 }7D-C3d.C N

51Testing软件测试网5n8W]KWBjs^G

 

8PKP&G"^)H-QP0

&r3^Onllp[0        Selenium是ThoughtWorks公司开发的一套基于WEB应用的验收测试工具,直接运行在浏览器中,模拟客户操作。51Testing软件测试网 E&b)k:J0c

51Testing软件测试网$Y cn(zS4x;xo~c#ki

 

)\(ce8hT@0

,M5Ho5eN5R,c7i0        Selenium抽象出一系列命令来模块用户操作,比如open命令表示打开一个URL,click命令表示点击某个按钮。Selenium实际上将这些命令转化成实际的HTTP请求在浏览器中运行。

^%m1V3L&V-]051Testing软件测试网p:E8n uF2gBiU|(B Z


K~4F gK/m-YQ0        具体支持哪些命令可以参见SpringSide的翻译。

pr a.L d051Testing软件测试网(Y |9A0G4A`2PG9vlv

51Testing软件测试网/zy!eZ3Q2F|:c{
Selenium IDE

:xqo7_B u}0E I0

wH;t.U1{0
O$x XuTT0        Selenium IDE是基于FIREFOX浏览器的一个插件,提供GUI界面来运行Selenium测试。Selenium IDE提供脚本录制功能,可以将用户在浏览器中执行的操作记录下来,生成各种形式的脚本,可以将这些脚本保存供以后使用。

1?8r&avNi0

j} |!Q[0BL_3Es0
H J)k:fJ Q0        安装Selenium IDE的步骤如下:

f/B8f-]F0

Rz+Rd$M,JR.R%L v0        *从www.openqa.org/selenium-ide/download.action下载Selenimu IDE(这是一个XPI后缀的文件)。
VRLa/U-j0        *启动FIREFOX浏览器,打开刚才下载的文件。
Qx5x {`8[eT!S Y0        *重启FIREFOX浏览器,在工具菜条下应该就可以看到Selenium IDE菜单项

uB+h r~\#MU0

YT*[/G/m7v ZSRmy V0Selenium RC
LYR!f0X!DZ0        Selenium Remote Control是一个测试工具,允许使用任何语言编写自动化的WEB UI测试用例。这个工具提供一个Selenium Server可以启动,停止和控制任何浏览器,这个服务器使用AJAX直接和浏览器进行交互,可以使用HTTP GET/POST请求向Selenium Server发送命令。这意味着可以使用任何编程语言向Selenium Server发送HTTP请求来自动化Selenium测试。为了简化这个过程Selenium提供各主流语言的包装对象,对于JAVA来说,是DefaultSelenium类。51Testing软件测试网R1Umj e

^"Xhv3{0 51Testing软件测试网P j%XwFf.l H

,N$PG+y6|6C4wNS0        虽然Selenium提供简单的基于HTML TABLE的方式编写测试,考虑到开发人员对JAVA代码更熟悉一些,而且通过代码编写的测试,很容易通过ANT脚本和单元测试一起自动运行。下面的过程讲述如何使用JAVA编写Selenium测试。51Testing软件测试网'C,{'p m dOGM T

51Testing软件测试网 }Rw \"Wjo

下载51Testing软件测试网 p!^!a'? k4t~9L
        从www.openqa.org/selenium-rc/download.action下载Selenium RC相关文件,假定解压缩后的目录为HOME51Testing软件测试网r]`4y(gi G(V

51Testing软件测试网M OW,w8a VA\(@


U9o2J o:^U:b p~im0启动服务器51Testing软件测试网 s VV OeI S.r
        Selenium Server是用JAVA实现的,相应的库文件在HOME/server/selenium-server.jar。运行如下代码从命令行启动:

)B$C,]qhY f051Testing软件测试网m5j0wE@{}3M6]

 51Testing软件测试网Y`5Y!f AP {rc

51Testing软件测试网Xig |2pj

java 代码51Testing软件测试网!T:QsV7E0t
java -jar selunium-server.jar  

W}Te%s_5P0

6`/T(CU0K }i[0
\8~Y7uu ^qn,U([0        命令行中也可以提供一些选项设置,具体的选项设置参见www.openqa.org/selenium-rc/options.html。如果要进行自动化测试,可以在ANT脚本中启动。51Testing软件测试网&c$xte}h'B8U

UQ*aX0`&J0编写测试用例51Testing软件测试网tx)H7r+x{]!g
        要编写Selenium测试用例,首先必须交HOME/java/selenium-java-client-driver.jar文件加载到类路径中。然后编写一个JUNIT的单元测试,要构建一个Selenium,包括如下步骤:

F2Yu!Nb@ N*W0

I y,{ vS(YN3u P]"r051Testing软件测试网@oe)Fii)a
        *构建一个Selenium实例51Testing软件测试网 @,@ ns2P9e B1jF
        *启动Selenium实例51Testing软件测试网 W#U&_FY;e8^
        *执行Selenium命令,并验证结果。要执行一个命令是通过调用Selenium实例的方法来完成的,具体有哪些命令可以参见JAVADOC
4B9H fwvWO0        *关闭Selenium实例

-d3[#{Z8k051Testing软件测试网.N]?XaU6[ A


#B ~0IW7]}0        如下是一个示例,用来测试www.google.com,查找selenium,期望结果中包含"OpenQA: Selenium"。51Testing软件测试网#Wk'N'zl

51Testing软件测试网7\Qd4mSI

51Testing软件测试网t1C,NS]^)gy;Y
java 代码51Testing软件测试网J x d'fP S1g
package com.thoughtworks.selenium;   
#dXa6mo!{0  
7q1We+`?} Pt0import junit.framework.*;   51Testing软件测试网Y/Ml!VT
  51Testing软件测试网 V|"SP4H]1Pq ]
import org.openqa.selenium.server.*;   51Testing软件测试网 k6D~-iZJ;M%Z
  51Testing软件测试网1u!ZY$] |Qp
public class GoogleTest extends TestCase   
`F7VPI6h%r@0{   
3LN\ri8n.]0   private Selenium selenium;   
9p6g fGL_bW0  51Testing软件测试网;}6a;J4m$AAQ
   public void setUp() throws Exception {   
8I|TKe"kB$e0        String url = "http://www.google.com";   
-p)\0C h+d"d0       selenium = new DefaultSelenium("localhost", SeleniumServer.getDefaultPort(), "*firefox", url);   
DVZkO2d@0       selenium.start();   
.o'{4UV+iAi-GS0    }   
FN|^{+S0      
#^&Dj P3c3w4|0   protected void tearDown() throws Exception {   51Testing软件测试网 B_2thTut(]2J;O.T
       selenium.stop();   51Testing软件测试网;P*K#bh1M s;X
   }   51Testing软件测试网7LI+Zv)h g(i
      
rc-Yd4t&Gh0   public void testGoogleTestSearch() throws Throwable {   51Testing软件测试网5O fJ!^Nf
        selenium.open("/intl/zh-CN/");   51Testing软件测试网*w'U6THI/Ldy
        selenium.type("q", "selenium");   51Testing软件测试网"y V@l.m'{/xVE/{@"n
        selenium.click("btnG");   
k)\@%\fS0        selenium.waitForPageToLoad("30000");   
9zD5yx~,L t"h0        assertTrue(selenium.isTextPresent("OpenQA: Selenium"));   51Testing软件测试网 `)M7H_2[^*B2E8v
        checkForVerificationErrors();   51Testing软件测试网(q!L0u KM4`3nl?
    }   51Testing软件测试网 X9vSt QL%r@}
       
l1u7R Nh0U2WE`0}   51Testing软件测试网,B?%x;@ G P

51Testing软件测试网1zq$Q]j

 51Testing软件测试网:O*m+k HB

51Testing软件测试网K/KhT!\-?X/[re)D5D

结语
!]8r?uy.Y1Z0        此篇文章只是简单的记录了个人在研究Selenium的一个QuickStart的过程,供自己和同事以后参考。如果明白了Selenium的使用机制,具体的使用是非常简单的,当然要达到自动化测试的目的,必须要求在ANT构建脚本中启动Selenium服务器,这在花钱的年华的博客中有描述,SpringSide就是一个很好的借鉴。

"j8PTY%\\a0

TAG:

 

评分:0

我来说两句

Open Toolbar