webdriver介紹&與Selenium RC的比較1

什麼是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沒有內置的命令模式來自動生成測試結果


推薦閱讀:

在Selenium Webdriver中使用XPath Contains、Sibling函數定位

TAG:軟體測試 | 自動化測試 | Selenium |