您的位置:軟件測(cè)試 > 開(kāi)源軟件測(cè)試 > 開(kāi)源功能測(cè)試工具 > Selenium
使用Selenium進(jìn)行驗(yàn)收測(cè)試
作者:網(wǎng)絡(luò)轉(zhuǎn)載 發(fā)布時(shí)間:[ 2012/12/14 15:42:02 ] 推薦標(biāo)簽:

概述

        我們公司是沒(méi)有正規(guī)的測(cè)試人員的,對(duì)一個(gè)模塊而言,功能是否完成都是由開(kāi)發(fā)人員手工測(cè)試。項(xiàng)目后期經(jīng)常發(fā)生這樣的情況,開(kāi)發(fā)人員更改一個(gè)BUG,自已測(cè)試表示通過(guò),但是發(fā)到客戶那卻發(fā)現(xiàn),BUG是改好了,以前正常工作的功能卻不能工作了。對(duì)一個(gè)模塊來(lái)講,更改一個(gè)部分的代碼,可能會(huì)造成連鎖反應(yīng),如果要保證不會(huì)造成其他功能不受影響,必須進(jìn)行全面的測(cè)試,這在項(xiàng)目后期,頻繁更改BUG時(shí),肯定是不現(xiàn)實(shí)的。 鑒于這種狀況,考慮將Selenium引入到項(xiàng)目中。

        Selenium是ThoughtWorks公司開(kāi)發(fā)的一套基于WEB應(yīng)用的驗(yàn)收測(cè)試工具,直接運(yùn)行在瀏覽器中,模擬客戶操作。

        Selenium抽象出一系列命令來(lái)模塊用戶操作,比如open命令表示打開(kāi)一個(gè)URL,click命令表示點(diǎn)擊某個(gè)按鈕。Selenium實(shí)際上將這些命令轉(zhuǎn)化成實(shí)際的HTTP請(qǐng)求在瀏覽器中運(yùn)行。

        具體支持哪些命令可以參見(jiàn)SpringSide的翻譯。

Selenium IDE

        Selenium IDE是基于FIREFOX瀏覽器的一個(gè)插件,提供GUI界面來(lái)運(yùn)行Selenium測(cè)試。Selenium IDE提供腳本錄制功能,可以將用戶在瀏覽器中執(zhí)行的操作記錄下來(lái),生成各種形式的腳本,可以將這些腳本保存供以后使用。

        安裝Selenium IDE的步驟如下:

        *從www.openqa.org/selenium-ide/download.action下載Selenimu IDE(這是一個(gè)XPI后綴的文件)。
        *啟動(dòng)FIREFOX瀏覽器,打開(kāi)剛才下載的文件。
        *重啟FIREFOX瀏覽器,在工具菜條下應(yīng)該可以看到Selenium IDE菜單項(xiàng)

Selenium RC
        Selenium Remote Control是一個(gè)測(cè)試工具,允許使用任何語(yǔ)言編寫(xiě)自動(dòng)化的WEB UI測(cè)試用例。這個(gè)工具提供一個(gè)Selenium Server可以啟動(dòng),停止和控制任何瀏覽器,這個(gè)服務(wù)器使用AJAX直接和瀏覽器進(jìn)行交互,可以使用HTTP GET/POST請(qǐng)求向Selenium Server發(fā)送命令。這意味著可以使用任何編程語(yǔ)言向Selenium Server發(fā)送HTTP請(qǐng)求來(lái)自動(dòng)化Selenium測(cè)試。為了簡(jiǎn)化這個(gè)過(guò)程Selenium提供各主流語(yǔ)言的包裝對(duì)象,對(duì)于JAVA來(lái)說(shuō),是DefaultSelenium類(lèi)。

        雖然Selenium提供簡(jiǎn)單的基于HTML TABLE的方式編寫(xiě)測(cè)試,考慮到開(kāi)發(fā)人員對(duì)JAVA代碼更熟悉一些,而且通過(guò)代碼編寫(xiě)的測(cè)試,很容易通過(guò)ANT腳本和單元測(cè)試一起自動(dòng)運(yùn)行。下面的過(guò)程講述如何使用JAVA編寫(xiě)Selenium測(cè)試。

下載
        從www.openqa.org/selenium-rc/download.action下載Selenium RC相關(guān)文件,假定解壓縮后的目錄為HOME

啟動(dòng)服務(wù)器
        Selenium Server是用JAVA實(shí)現(xiàn)的,相應(yīng)的庫(kù)文件在HOME/server/selenium-server.jar。運(yùn)行如下代碼從命令行啟動(dòng):

java 代碼
java -jar selunium-server.jar 

        命令行中也可以提供一些選項(xiàng)設(shè)置,具體的選項(xiàng)設(shè)置參見(jiàn)www.openqa.org/selenium-rc/options.html。如果要進(jìn)行自動(dòng)化測(cè)試,可以在ANT腳本中啟動(dòng)。

編寫(xiě)測(cè)試用例
        要編寫(xiě)Selenium測(cè)試用例,首先必須交HOME/java/selenium-java-client-driver.jar文件加載到類(lèi)路徑中。然后編寫(xiě)一個(gè)JUNIT的單元測(cè)試,要構(gòu)建一個(gè)Selenium,包括如下步驟:

        *構(gòu)建一個(gè)Selenium實(shí)例
        *啟動(dòng)Selenium實(shí)例
        *執(zhí)行Selenium命令,并驗(yàn)證結(jié)果。要執(zhí)行一個(gè)命令是通過(guò)調(diào)用Selenium實(shí)例的方法來(lái)完成的,具體有哪些命令可以參見(jiàn)JAVADOC
        *關(guān)閉Selenium實(shí)例

        如下是一個(gè)示例,用來(lái)測(cè)試www.google.com,查找selenium,期望結(jié)果中包含"OpenQA: Selenium"。

java 代碼
package com.thoughtworks.selenium;  
 
import junit.framework.*;  
 
import org.openqa.selenium.server.*;  
 
public class GoogleTest extends TestCase  
{  
   private Selenium selenium;  
 
   public void setUp() throws Exception {  
        String url = "http://www.google.com";  
       selenium = new DefaultSelenium("localhost", SeleniumServer.getDefaultPort(), "*firefox", url);  
       selenium.start();  

    }  
     
   protected void tearDown() throws Exception {  
       selenium.stop();  
   }  
     
   public void testGoogleTestSearch() throws Throwable {  
        selenium.open("/intl/zh-CN/");  
        selenium.type("q", "selenium");  
        selenium.click("btnG");  
        selenium.waitForPageToLoad("30000");  
        assertTrue(selenium.isTextPresent("OpenQA: Selenium"));  
        checkForVerificationErrors();  
    }  
      
}  

結(jié)語(yǔ)
        此篇文章只是簡(jiǎn)單的記錄了個(gè)人在研究Selenium的一個(gè)QuickStart的過(guò)程,供自己和同事以后參考。如果明白了Selenium的使用機(jī)制,具體的使用是非常簡(jiǎn)單的,當(dāng)然要達(dá)到自動(dòng)化測(cè)試的目的,必須要求在ANT構(gòu)建腳本中啟動(dòng)Selenium服務(wù)器,這在花錢(qián)的年華的博客中有描述,SpringSide是一個(gè)很好的借鑒。

軟件測(cè)試工具 | 聯(lián)系我們 | 投訴建議 | 誠(chéng)聘英才 | 申請(qǐng)使用列表 | 網(wǎng)站地圖
滬ICP備07036474 2003-2017 版權(quán)所有 上海澤眾軟件科技有限公司 Shanghai ZeZhong Software Co.,Ltd