selenium2.0基本概念

關於selenium1.X的說明能夠看看這個文章:http://blog.csdn.net/five3/article/details/6790925

selenium主要是經過selenium RC做爲代理成功利用瀏覽器同源策略,注入自動化額外的JS腳原本支持自動化測試的;因此selenium1.X的全部組件包括:IDE,RC,Grid;而selenium2.X開始引入了webdriver的概念,有了webdriver就不須要再經過額外的JS在支持自動化操控了,因此就不須要破解同源,也就不須要代理了。因此2.X開始的組件有:IDE,webdriver,Selenium Server,Grid。
  
爲何selenium既然是使用webdriver替換了原來的RC,爲何還會多一個組件呢?那是由於webdriver只能支持本地的瀏覽器驅動,若是想對遠程的主機上進行瀏覽器測試的話,就須要使用selenium server來完成通訊和指令傳送的工做;此外爲了向前兼容selenium1.X的自動化腳本,selenium server另外的功能其實等同於selenium1.X中的RC組件。

依次來看看各組件是幹什麼的,IDE是一個FF上面的插件,能夠錄製用戶在頁面上的操做,而後能夠轉換成各類selenium所支持語言的對應版本。這個在必定程度上下降部分人員學習的難度,可是這個不是長久之計,就跟QTP的錄製功能同樣樣的,入門能夠但不可深究於此。固然還提供了一些其它的小工具等,能夠幫助學習可調試自動化腳本。

selenium2.X中的webdriver根據不一樣的語言有不一樣的版本,安裝時必定要對上,想使用多個語言的話,那就要安裝多個語言版本的webdriver了。其實另外的一個自動化工具watir,其語言是ruby,就使用的selenium2.x中ruby的webdriver做爲其基礎驅動。因爲偏心python,因此搭建環境時使用了python語言,按照這個意思,其實咱們也能夠基於selenium2.X中python的webdriver封裝一個python版的類watir自動化工具了。這是後話,若是以爲原生的selenium很差使或不易於一些人員學習的話。能夠考慮作個開源項目的,有興趣的同窗能夠多交流。具體的環境搭建見這裏,http://blog.csdn.net/five3/article/details/7030704。
其實有了語言和對應的webdriver就能夠在本機進行測試和實驗了,可是這裏有一個要注意的,就是須要咱們單獨下載瀏覽器的驅動文件[ie:https://code.google.com/p/selenium/downloads/detail?name=IEDriverServer_Win32_2.32.3.zip,chrome:https://code.google.com/p/chromedriver/downloads/list]下載後把驅動文件放到系統PATH路徑中,好比:system32文件夾裏。php

python webdriver的APIhttp://selenium.googlecode.com/git/docs/api/py/index.html

Selenium Servers是一個jar包,由於selenium最初就是用java寫的,後來擴展支持了這麼多的語言;這個server在selenium2.X中主要做用是在遠程機器上執行selenium腳本,以達到遠程及分佈執行的目的,後面的grid時就依附這個功能。這個服務的啓動方式:java -jar selenium-server-standalone-2.32.0.jar

Grid有是什麼呢!這個就是selenium的擴展組件了,咱們能夠利用這個組件很好的規劃自動化的腳本執行和實施。利用這個組件提供的功能,咱們就能夠在一臺機器上控制全部腳本的執行方式[在哪臺主機上的瀏覽器中執行哪條用例]和結果收集的工做。很神奇和方便的功能,若是加以封裝提升其易用性這將能夠大大提升咱們作自動化實施的效率。

selenium有不少的開發者支持,因此IDE有不少的插件能夠選擇,這個插件能夠幫助咱們更好的、高效的完成自動化過程當中的工做。咱們一樣能夠在selenium的下載頁面找到不少的這些插件,感謝這些開發者們的無私。

除了selenium提供的上面的這些個功能,要作好自動化工做仍是須要不少的其它的工做和擴展功能須要補充的;好比結果存儲和統計功能,容錯功能,復跑功能,自動化構建,參數化等等。其實除了這些個基礎的工做外,最重要的仍是對項目的解讀和對自動化的理解,由於不是全部項目都適合進行自動化,也不是全部作自動化的項目都須要達到多少多少的自動化覆蓋率。正確運用了思想才能更好的完成工做,不然棄本追末最終可能致使的僅僅是消耗時間而已,沒有任何益處。

selenium官方支持的語言:
java、C#、python、ruby
第三方支持語言:
php、perl、haskell、objective-c

selenium官方支持的瀏覽器:
ie、FF、Android、iOS
第三方支持的瀏覽器:
chrome、GhostDriver、opera

一張圖看懂selenium2.0的運行邏輯html

相關文章
相關標籤/搜索