Selenium快速入門 轉自(http://www.javaeye.com/topic/36879)

來源:互聯網
上載者:User
概述

        我們公司是沒有正規的測試人員的,對一個模組而言,功能是否完成都是由開發人員手工測試。項目後期經常發生這樣的情況,開發人員更改一個BUG,自已測試表示通過,但是發到客戶那卻發現,BUG是改好了,以前正常工作的功能卻不能工作了。對一個模組來講,更改一個部分的代碼,可能會造成連鎖反應,如果要保證不會造成其他功能不受影響,必須進行全面的測試,這在項目後期,頻繁更改BUG時,肯定是不現實的。 鑒於這種狀況,考慮將Selenium引入到項目中。

        Selenium是ThoughtWorks公司開發的一套基於WEB應用的驗收測試工具,直接運行在瀏覽器中,類比客戶操作。

        Selenium抽象出一系列命令來模組使用者操作,比如open命令表示開啟一個URL,click命令表示點擊某個按鈕。Selenium實際上將這些命令轉化成實際的HTTP請求在瀏覽器中運行。

        具體支援哪些命令可以參見SpringSide的翻譯。

Selenium IDE

       Selenium IDE是基於FIREFOX瀏覽器的一個外掛程式,提供GUI介面來運行Selenium測試。Selenium IDE提供指令碼錄製功能,可以將使用者在瀏覽器中執行的操作記錄下來,產生各種形式的指令碼,可以將這些指令碼儲存供以後使用。

       安裝Selenium IDE的步驟如下:

  • 從www.openqa.org/selenium-ide/download.action下載Selenimu IDE(這是一個XPI尾碼的檔案)。
  • 啟動FIREFOX瀏覽器,開啟剛才下載的檔案。
  • 重啟FIREFOX瀏覽器,在工具菜條下應該就可以看到Selenium IDE功能表項目
Selenium RC

        Selenium Remote Control是一個測試載入器,允許使用任何語言編寫自動化的WEB UI測試案例。這個工具提供一個Selenium Server可以啟動,停止和控制任何瀏覽器,這個伺服器使用AJAX直接和瀏覽器進行互動,可以使用HTTP GET/POST請求向Selenium Server發送命令。這意味著可以使用任何程式設計語言向Selenium Server發送HTTP請求來自動化Selenium測試。為了簡化這個過程Selenium提供各主流語言的封裝對象,對於JAVA來說,是DefaultSelenium類。

       雖然Selenium提供簡單的基於HTML TABLE的方式編寫測試,考慮到開發人員對JAVA代碼更熟悉一些,而且通過代碼編寫的測試,很容易通過ANT指令碼和單元測試一起自動運行。下面的過程講述如何使用JAVA編寫Selenium測試。

下載

       從www.openqa.org/selenium-rc/download.action下載Selenium RC相關檔案,假定解壓縮後的目錄為HOME

啟動伺服器

       Selenium Server是用JAVA實現的,相應的庫檔案在HOME/server/selenium-server.jar。運行如下代碼從命令列啟動:

java 代碼
  1. java -jar selunium-server.jar  

       命令列中也可以提供一些選項設定,具體的選項設定參見www.openqa.org/selenium-rc/options.html。如果要進行自動化測試,可以在ANT指令碼中啟動。

編寫測試案例

       要編寫Selenium測試案例,首先必須交HOME/java/selenium-java-client-driver.jar檔案載入到類路徑中。然後編寫一個JUNIT的單元測試,要構建一個Selenium,包括如下步驟:

  • 構建一個Selenium執行個體
  • 啟動Selenium執行個體
  • 執行Selenium命令,並驗證結果。要執行一個命令是通過調用Selenium執行個體的方法來完成的,具體有哪些命令可以參見JAVADOC
  • 關閉Selenium執行個體

       如下是一個樣本,用來測試www.google.com,尋找selenium,期望結果中包含"OpenQA: Selenium"。

java 代碼
  1. package com.thoughtworks.selenium;   
  2.   
  3. import junit.framework.*;   
  4.   
  5. import org.openqa.selenium.server.*;   
  6.   
  7. public class GoogleTest extends TestCase   
  8. {   
  9.    private Selenium selenium;   
  10.   
  11.    public void setUp() throws Exception {   
  12.         String url = "http://www.google.com";   
  13.        selenium = new DefaultSelenium("localhost", SeleniumServer.getDefaultPort(), "*firefox", url);   
  14.        selenium.start();   
  15.     }   
  16.       
  17.    protected void tearDown() throws Exception {   
  18.        selenium.stop();   
  19.    }   
  20.       
  21.    public void testGoogleTestSearch() throws Throwable {   
  22.         selenium.open("/intl/zh-CN/");   
  23.         selenium.type("q", "selenium");   
  24.         selenium.click("btnG");   
  25.         selenium.waitForPageToLoad("30000");   
  26.         assertTrue(selenium.isTextPresent("OpenQA: Selenium"));   
  27.         checkForVerificationErrors();   
  28.     }   
  29.        
  30. }   

 

參考資料

       花錢的年華的部落格

       IBM中國文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.