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沒有內置的命令模式來自動生成測試結果
推薦閱讀: