Selenium——測試工具Selenium

參考:http://www.51testing.com/zhuanti/selenium.html,http://www.cnblogs.com/fnng/p/3653793.htmljavascript

簡介:

  Selenium是一個用於Web應用程序測試的工具,是ThoughtWorks專門爲Web應用程序編寫的一個驗收測試工具。Selenium測試直接運行在瀏覽器中,就像真正的用戶在操做同樣。、css

  • 支持的瀏覽器:IE、Mozilla Firefox、Mozilla Suite等。
  • 主要功能:
  • 測試與瀏覽器的兼容性——測試你的應用程序看是否可以很好得工做在不一樣瀏覽器和操做系統之上。
  • 測試系統功能——建立衰退測試,檢驗軟件功能和用戶需求。
  • 支持自動錄製動做和自動生成.Net、Java、Perl等不一樣語言的測試腳本。

版本

  Selenium 如今存在2個版本,一個叫 selenium-core, 一個叫selenium-rc 。html

  • selenium-core 是使用HTML的方式來編寫測試腳本,你也可使用 Selenium-IDE來錄製腳本,可是目前Selenium-IDE只有 FireFox 版本。
  • selenium-rc 是 selenium-remote control 縮寫,是使用具體的語言來編寫測試類。selenium-rc 支持的語言很是多,這裏咱們着重關注java的方式。這裏講的也主要是 selenium-rc。

組成:

  selenium 不是簡單的一個工具,而是由幾個工具組成,每一個工具都有其特色和應用場景。前端

selenium 1.0java

   

IDE:錄製(只能用於FF,而後轉化成其餘語言,使用RC去調用)python

Grid:並行程序的執行web

RC:程序編寫及運行編程

Selenium Core:基於JsUnit,由JS編寫,可運行於任何支持JS的瀏覽器。api

  • 1. selenium IDE

  selenium IDE 是嵌入到Firefox瀏覽器中的一個插件,實現簡單的瀏覽器操做的錄製與回放功能。那麼什麼狀況下用到它呢?快速的建立bug重現腳本,在測試人員的測試過程當中,發現了bug以後能夠經過IDE將重現的步驟錄製下來,以幫助開發人員更容易的重現bug。IDE錄製的腳本能夠轉換成多種語言,從而幫助咱們快速的開發腳本,關於這個功能後而用到時再詳細介紹。瀏覽器

  • 2. selenium Grid

  Selenium Grid是一種自動化的測試輔助工具,Grid經過利用現有的計算機基礎設施,能加快Web-app的功能測試。利用Grid,能夠很方便地同時在多臺機器上和異構環境中並行運行多個測試事例。其特色爲:

    • 並行執行
    • 經過一個主機統一控制用例在不一樣環境、不一樣瀏覽器下運行。
    • 靈活添加變更測試機
  • 3. selenium RC

  selenium RC 是selenium 家族的核心工具,selenium RC 支持多種不一樣的語言編寫自動化測試腳本,經過selenium RC 的服務器做爲代理服務器去訪問應用從而達到測試的目的。

  selenium RC 使用分爲Client Libraries和selenium Server:

    • Client Libraries庫主要主要用於編寫測試腳本,用來控制selenium Server的庫。
    • Selenium Server負責控制瀏覽器行爲,總的來講,Selenium Server主要包括3個部分:Launcher、Http Proxy、Core。其中Selenium Core是被Selenium Server嵌入到瀏覽器頁面中的。其實Selenium Core就是一堆JS函數的集合,就是經過這些JS函數,咱們才能夠實現用程序對瀏覽器進行操做。Launcher用於啓動瀏覽器,把selnium Core加載到瀏覽器頁面當中,並把瀏覽器的代理設置爲Selenium Server 的Http Proxy。

 selenium 2.0

  搞清了selenium 1.0 的家族關係,selenium 2.0 是把WebDriver 加入到了這個家族中;簡單用公式表示爲:

selenium 2.0 = selenium 1.0 + WebDriver 

  須要強調的是,在selenium 2.0 中主推的是WebDriver ,WebDriver 是selenium RC 的替代品,由於 selenium 爲了向下兼容性,因此selenium RC 並無完全拋棄,若是你使用selenium開發一個新自動化測試項目,強列推薦使用WebDriver 。那麼selenium RC 與webdriver 主要有什麼區別呢?

  • selenium RC 在瀏覽器中運行JavaScript應用,使用瀏覽器內置的JavaScript 翻譯器來翻譯和執行selenese命令(selenese 是selenium命令集合)。
  • WebDriver經過原生瀏覽器支持或者瀏覽器擴展直接控制瀏覽器。WebDriver針對各個瀏覽器而開發,取代了嵌入到被測Web應用中的JavaScript。與瀏覽器的緊密集成支持建立更高級的測試,避免了JavaScript安全模型致使的限制。除了來自瀏覽器廠商的支持,WebDriver還利用操做系統級的調用模擬用戶輸入。

  若是是新項目直接學習webdriver 就OK了,RC是過期技術。

學習路線:

1. 具有的知識和技術:

  (1)selenium進行的自動化測試是基於ui層面的,因此html,css,javascript基本上是必不可少的,至於javascript,有不少的前端都使用javascript做爲其腳本語言!不過javascript並不須要學得很深,只須要掌握一些基礎的知識,而後在實踐中碰到的時候再繼續深學下去!

  (2)掌櫃一門編程語言,好比java,C#,python,ruby!很明顯,如果有開發語言的基礎,則寫腳本的時候也不會太費力,這也是一項基本功!目前,使用java仍是偏多的!另外也是因爲selenium支持多種語言寫測試腳本!自動化測試腳本並不能靠錄製出來的,基本上是要靠本身寫出來的,畢竟錄製的腳本的弊端不少,尤爲是前端使用了某些框架以後,錄製的腳本基本成爲雞肋!

  (3)單元測試框架junit/testing,目前不少人採用selenium+junit或者selenium+testng測試架構,因此,須要掌握能配合selenium進行測試的框架,好比junit/testng,僅僅利用其提供的api即可以大大地輔助你的測試,提高測試效率!

  環境搭建

1、開發環境:

  一、JDK1.6

  二、Eclipse:Version: Kepler Service Release 1,下載地址:http://www.eclipse.org/downloads/

  三、Selenium:selenium-java-2.39.0.zip,下載地址:http://code.google.com/p/selenium/downloads/list

  解壓selenium-java包,這個包裏面包含四部分,以下圖:

  

2、新建一個Java Project:

  一、建立一個java項目:

二、而後把上面解壓出來的文件拷到新建的project目錄下,目錄結構以下圖:

  

三、添加build path,項目目錄右鍵-->Build Path--> config build path-->Java Build Path-->Libraries-->Add JARs,把libs文件夾下的jar包所有添加上,再添加selenium-java-2.48.2-srcs.jar和selenium-java-2.48.2.jar

  

三、添加完以後目錄結構以下圖,多了Referenced Libraries,這裏就是上面那一步添加進去的jar包:

 

 至此,環境工做準備就緒,下面來寫一個簡單的小例子。

四、在src下面新建測試類,以下圖:

五、添加代碼,實現:打開百度,而後在百度搜索框輸入helloworld,點擊搜索按鈕,關閉瀏覽器。

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.firefox.*;

public class TestClass {

    public static void main(String[] args) {
        
        //若是火狐瀏覽器沒有默認安裝在C盤,須要制定其路徑
        //System.setProperty("webdriver.firefox.bin", "D:/Program Files/Mozilla firefox/firefox.exe"); 
        WebDriver driver = new FirefoxDriver();
        driver.get("http://www.baidu.com/");
        
        driver.manage().window().maximize();
        
        WebElement txtbox = driver.findElement(By.name("wd"));
        txtbox.sendKeys("HelloWorld");
        
        WebElement btn = driver.findElement(By.id("su"));
        btn.click();
        
        driver.close();

    }

}

而後直接右鍵-->Run As-->Java Application就能夠看到效果了。

相關文章
相關標籤/搜索