webdriver介紹&與Selenium RC的比較


什么是webdriver?

webdriver是一個web自動化測試框架,不同於selenium IDE只能運行在firefox上,webdriver能夠在不同的瀏覽器上執行你的web測試用例。其支持的瀏覽器有:Firefox、Chrome、IE、Edge、Safari、Opera、phantomjs等等。

webdriver支持使用不同的編程語言來寫測試腳本,這是selenium IDE所無法做到的。對於測試人員來說至少具備:

  • 掌握編程語言的判斷分支語法
  • 掌握基本的循環語法

webdriver支持的編程語言有:

  • java
  • .net
  • php
  • python
  • perl
  • ruby

在本系列教程中,我們將使用python來寫webdriver測試腳本。如果你對python的基本語法不夠熟悉的話,請先參照《python簡明教程》學習(建議兩個小時內完成學習)。

Selenium RC和webdriver的區別

在webdriver發布前selenium1.0版本叫做selenium remote control,簡稱Selenium RC。webdriver和Selenium RC之間有以下共同的特色:

  • 它們都支持使用一種編程語言來設計你的測試腳本
  • 它們均支持驅動多種瀏覽器來進行自動化測試

那它們之間有什么區別呢?接下來讓我們一起看一看它們的區別:

1、架構

相比Selenium RC的架構,webdriver的架構更加簡潔。

  • webdriver通過OS層級來控制瀏覽器
  • webdriver運行你使用你喜歡的編程語言的IDE來進行腳本開發
webdriver架構圖

Selenium RC的架構更為復雜。

  • 在運行測試腳本前必須先啟動Selenium RC Server
  • Selenium RC Server扮演着瀏覽器和測試腳本之間通信的橋梁角色
  • 當開始運行測試腳本時,Selenium RC Server會Selenium Core(js代碼)注入到瀏覽器中以達成控制瀏覽器
  • 一旦Selenium Core被注入到瀏覽器中,Selenium Core就會開始接收並轉發來自Seleniun RC Server的測試指令
  • 當測試指令接收后,Selenium Core就會把它們當做js來執行
  • 瀏覽器按照Selenium Core的指令進行操作,並將執行結果返回給Selenium RC Server
  • Selenium RC Server將接收到的結果返回給你的測試腳本
  • Selenium RC Server繼續從你的測試腳本發送過來的指令中提取下一條指令,重復上述過程。
Selenium RC 架構圖

2、速度

在運行速度方面,webdriver會遠遠好於Selenium RC。原因是Webdriver直接調用瀏覽器原生API進行驅動,而Selenium RC則通過Selenium Core(javascript實現)來間接驅動瀏覽器。

3、交互機制

  • webdriver直接與瀏覽器進行交互
  • Selenium RC通過Selenium RC Server中轉才能與瀏覽器進行交互

4、API

  • Selenium RC的API復雜冗余,不利於學習掌握
  • Webdriver的API簡潔,只要掌握幾個常用的即可進行測試

5、支持的瀏覽器

  • Selenium RC只能驅動可視化的瀏覽器
  • webdriver除了驅動可視化的瀏覽器,還可以驅動內存模式的瀏覽器,比如HtmlUnit browser,phantomjs

webdriver的局限性

  • webdriver無法及時的支持最新版本的瀏覽器,每次瀏覽器升級后,需要下載新的驅動程序。
  • webdriver必須基於腳本模式開發測試用例

總結

  • webdriver支持使用多種編程語言進行跨瀏覽器的web測試
  • webdriver的強大在於支持N中編程語言來設計和實現測試
  • webdriver執行速度更快是因為其簡潔的架構
  • webdriver直接驅動瀏覽器
  • webdriver支持內存模式的瀏覽器
  • webdriver不能實時的支持最新版瀏覽器
  • webdriver沒有內置的命令模式來自動生成測試結果


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM