Selenium各類工具比較

Selenium 1.0

Selenium 1.0是第一個基於瀏覽器的開源自動化測試工具。它可使用全部支持http庫的編程語言,也能夠運行在全部支持javascript的瀏覽器上。固然它 也有它的缺點。在運行selenium 1.0程序以前,咱們得先啓動selenium服務器端,也就是selenium RC。而selenium RC是由javascript實現的,每個瀏覽器對於執行JavaScript都有很嚴格的安全限制,以防止用戶被惡意腳本攻擊,這致使在某些狀況下用 selenium 1.0很麻煩。javascript

selenium 1.0有如下3個問題亟待解決:java

  1. 沒有原生的鼠標和鍵盤事件
  2. XSS/HTTP同源數據問題
  3. popup dialog問題

WebDriver 

WebDriver項目是由Simon Stewart(來自Google)建立的,是一個很是便捷的自動化測試工具。它採用HtmlUnit,能夠直接在內存中運行。並且WebDriver 還能夠調用操做系統的API,尤爲當用戶須要模擬鼠標和鍵盤進行真實的頁面操做的時候,這項能力做用尤其明顯。Webdriver也有它的缺點,使用它控 制瀏覽器的時候,須要依賴採用本機支持的獨立客戶端。WebDriver僅提供Java綁定,並不能支持Selenium 1 所能支持的那麼多瀏覽器。編程

Selenium 1.0 vs WebDriver

  1. WebDriver 能夠繞過JavaScript 黑盒。
  2. Selenium 1.0要求真實的瀏覽器環境,而WebDriver能夠直接操做HtmlUnit驅動。針對某些瀏覽器好比說Firefox運行比較慢的狀況,咱們能夠採用HtmlUnit驅動在系統內存中迅速的執行。
  3. WebDriver不支持並行測試,而Selenium Grid能夠。
  4. WebDriver支持的瀏覽器有限,而selenium 1.0幾乎支持瀏覽器,並且針對每一種瀏覽器都支持不少種語言。
  5. 一些selenium 1.0沒有解決的問題,好比說「原生的鼠標和鍵盤事件」,WebDriver能夠經過調用系統的API來實現。

Selenium 1.0 +WebDriver =Selenium 2.0瀏覽器

因而,爲了綜合了selenium 1和WebDriver的優勢, Selenium 2(也被稱爲 Selenium WebDriver)面世。Selenium 2具備來自WebDriver的清晰面向對象API,並能以最佳的方式與瀏覽器進行交互。Selenium 2不使用JavaScript沙盒,支持多種瀏覽器和多語言綁定。具體的有:安全

  • Mozilla Firefox
  • Google Chrome
  • Microsoft Internet Explorer
  • Opera
  • Apple iPhone
  • Android browsers

Selenium 2支持的語言有Java、C#、Ruby和Python。Selenium 2 還提供基於HtmlUnit的無外設驅動,是用於測試Web應用程序的Java框架。HtmlUnit運行速度特別快,但它不是一個真正與真實瀏覽器相關聯的驅動。服務器

Selenium 工具

目前說的selenium,通常包括如下四個工具:框架

Selenium Core:Selenium 核心內容,是IDE和RC的引擎。內部由JavaScript函數構成,經過調用這些函數來實現對瀏覽器的各類操做。編程語言

Selenium IDE:一款Firefox 插件。具備錄製、編輯以及回放腳本的功能,易於上手,對於初學者能夠開發一些簡單的測試腳本。函數

Selenium WebDriver(Selenium 2.0):由Selenium 和WebDriver合併而成。它支持WebDriver API和底層技術以及在WebDriver API下的Selenium 1.0的技術。Selenium 2.0仍然能夠運行於Selenium 1.0的Selenium RC接口以支持向後兼容。工具

Selenium RC(Selenium 1.0):Selenium Remote Control。遠程控制,也就是經過腳本操做瀏覽器。它容許測試人員使用一種程序語言根據需求擴張測試腳本的複雜度、延展度。主要包括三部分:launcher,http proxy,selenium core。

Selenium Grid:容許同時在不一樣的環境上運行多個測試任務。

Selenium工具比較

  1. 瀏覽器支持
    • Selenium IDE僅能夠在Firefox中工做。
    • Seleneium RC支持不少瀏覽器,包括最經常使用的:Firefox,IE,Safari等
    • Selenium Core支持的瀏覽器最廣,這點和它的實現有關。
  2. 須要遠程安裝
    • 這裏只有Selenium Core須要,處於同源策略的緣由。這也是Selenium Core的一大限制。
    • Selenium IDE和Selenium Core HTA不會被同源策略限制,由於他們對瀏覽器擴展了。
    • Selenium RC提供一個代理服務器來保證Selenium JS文件看似來自相同的遠程服務器,從而符合同源策略;代理服務器欺騙瀏覽器。
  3. 支持HTTPS/SSL
    • 都支持
  4. 須要JAVA
    • 只有Selenium RC須要。因爲代理服務器是一個JAVA程序,因此須要在跑測試用例前啓動。
  5. 將測試結果保存到磁盤
    • 只有Selenium Core不能將任何測試結果寫到磁盤上。由於他是用JS寫的,不容許向磁盤寫數據。解決方案是將測試結果發送到另一臺服務器保存。
  6. 多語言支持
    • Selenium IDE僅支持Selenium語言。
    • Selenium RC支持不少語言。如:C#,Java,Python,Ruby等。
    • Selenium Core也是僅支持Selenium 語言。

 備註:

Selenium語言,使用(Command,Target,Value)三種元素組成一個行爲,可使用Selenium IDE輔助錄製腳本,不懂測試的人員均可以輕鬆編寫測試案例。

缺點是:Selenium 語言沒有條件(if),沒有循環(for),使得編寫複雜的測試變得困難甚至不可能。

相關文章
相關標籤/搜索