最近常常有人提問,你如何理解和看待這個selenium?html
針對這一問題,官網上已經給了很明確的答覆:"瀏覽器的自動化操做,你想幹嗎就幹嗎.....就這麼簡單!"java
Selenium automates browsers. That's it! What you do with that power is entirely up to you.android
今天我本身也從頭縷縷思路git
selenium的projects包含以下幾個方面:程序員
1.Selenium IDE 、 2.Selenium Remote Control 、 3.Selenium Grid 、4.Selenium WebDrivergithub
1. Selenium IDE做爲Firefox上的一個插件,提供錄製功能,我的觀點,若是能手寫代碼,就不要用這個東西。web
2. Selenium Remote Control是一個客戶端/服務器系統,能夠在本地或在其餘電腦上控制Web瀏覽器,使用幾乎任何編程語言和測試框架。chrome
3. Selenium Grid 能夠遠程的控制到並在多個服務器上同時運行測試編程
4. Selenium WebDriver能夠在本地或遠程計算機上的驅動瀏覽器api
簡單的瞭解了selenium以後,看看到底selenium哪裏適合你?
1. 若是你想作一個強健的、基於瀏覽器的迴歸測試
2.多環境下分發和擴展可運行的腳本
這時候就能夠選擇selenium webdriver, 你可使用多種腳本語言來驅動瀏覽器,目前,Selenium WebDriver 已經正式棄用Selenium Remote Control,而Selenium Server 內置了網格功能。
Selenium WebDriver的優勢:它將Webdriver的API融入了進來,讓selenium有進一步的加強。Webdriver是一套面向對象的API。相比selenium1而言,Selenium WebDriver可以進行更有效的功能測試的覆蓋,好比文件上傳、下載,彈出窗和對話框的問題,同時也克服了webdriverSelenium RC的單主機同源策略的限制的問題。
若是你使用Java語言來調用selenium WebDriver,那麼下面這些接口必定都應該熟悉一下:
AndroidDriver,ChromeDriver,EventFiringWebDriver,FirefoxDriver,HtmlUnitDriver,InternetExplorerDriver,PhantomJSDriver,RemoteWebDriver,SafariDriver
最經常使用的就應該是FirefoxDriver,擴展一下就應該是InternetExploreDriver和ChromeDriver和SafairyDriver.
若是你想進行一個擴展EventFiringWebDriver也是必不可少的。
吹吹的提及來
selenium WebDriver不過是一個自動化測試工具罷了,優勢就是開源易用,支持多種語言,多種瀏覽器,對於selenium WebDriver的使用來講,無非是在瞭解其基本操做的API以後,將業務邏輯和功能測試執行流程轉換爲計算機可讀的代碼,來代替咱們進行復雜重複的人工測試。咱們之因此使用它,無非是它可以幫助咱們完成任務,達到實際的工做目標。這是從使用者或者說一個程序員的角度來說,只要熟讀API,可以準確的分析頁面的DOM,遇到不一樣的問題,都能想出實際的解決方案,我以爲這做爲一個自動化工程師已經很優秀了。若是說這時候你非要作一個平臺,可以實現各類功能,要有良好的架構,良好的延展性,穩定性,叫什麼軟件測試架構師在作的事情,而後非要把那些手動測試的人也拉入到自動化的team中來,而後人家不想學你這個自動化,由於沒有編碼基礎,學起來很費勁,這時候你就說要作一個萬能的平臺,不須要手動測試去學寫代碼也能進行自動化測試。。。等等一丟丟的理由吧。。。這時候我想提一個問題,爲何自動化測試如今這麼火,可是每一個公司或者說每個team都必需要有手動測試人員呢???答案是很惟一的,由於任何人也取締不了手動測試人員的角色,既然存在了就確定有存在的道理。平臺當然要做,我的對自動化測試平臺的理解是,沒有萬能的平臺,只有適合你本身業務需求的平臺,你想用這些功能,你添加進去就行了,對於一個系統的生命週期,我不去評論,由於經驗還沒到那麼多,可是我想說,國內外真的有多少系統能用到7年以上呢?一個系統能作到百年不倒?是否是架構師這個職位就不須要招人填補空缺了呢?或者說,只須要這些架構師成天看着程序員們寫代碼就能夠了呢?騰訊算是國內比較大的互聯網公司了,拿騰訊QQ來講,這短短10幾年,QQ彷佛也作了4次較大版本的改動吧,尤爲是第四次的從新架構,可謂是大換血吧,平均算下來,萬能的平臺靠譜嗎?
話說回來,不管使用哪一種工具,解決問題纔是關鍵,企業不一樣於學校,無論你使用了什麼樣的方法,你能把問題解決掉,那麼你就是成功的。最最重要的是看人們給本身的定位,我就見過那種就喜歡作手動測試的人,代碼框架你放那,讓他配置個參數直接跑就OK了,他會以爲你這個好麻煩,搞不懂,仍是我本身點點吧。因此這個東西強求不得。對於自動化工程師的職業發展,也一樣看本身的規劃了,你能夠選擇作一名精通於某一個工具或者技術的工程師,你也能夠選擇作一個名氣十足的架構師,這徹底看我的的愛好,其實再好的架構,上面的代碼仍是須要工程師來寫的,我仍是那句話,各有各的價值,沒有高低之分。
一點點我的偏見!
-----------------------------------------
本文摘自:http://blog.csdn.net/wanghantong/article/details/28897879