閱讀406 返回首頁    go 阿裏雲 go 技術社區[雲棲]


selenium簡介-----如何理解selenium-WebDriver



最近經常有人提問,你如何理解和看待這個selenium?

針對這一問題,官網上已經給了很明確的答複:"瀏覽器的自動化操作,你想幹嘛就幹嘛.....就這麼簡單!"

Selenium automates browsers. That's it! What you do with that power is entirely up to you.


今天我自己也從頭縷縷思路大笑


selenium的projects包含如下幾個方麵:

1.Selenium IDE 、 2.Selenium Remote Control 、 3.Selenium Grid 、4.Selenium WebDriver

1. Selenium IDE作為Firefox上的一個插件,提供錄製功能,個人觀點,如果能手寫代碼,就不要用這個東西。

2. Selenium Remote Control是一個客戶端/服務器係統,可以在本地或在其他電腦上控製Web瀏覽器使用幾乎任何編程語言和測試框架

3. Selenium Grid 可以遠程的控製到並在多個服務器上同時運行測試

4. Selenium WebDriver可以在本地或遠程計算機上的驅動瀏覽器


簡單的了解了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了,他會覺得你這個好麻煩,搞不懂,還是我自己點點吧。所以這個東西強求不得。對於自動化工程師的職業發展,也同樣看自己的規劃了,你可以選擇做一名精通於某一個工具或者技術的工程師,你也可以選擇做一個名氣十足的架構師,這完全看個人的愛好,其實再好的架構,上麵的代碼還是需要工程師來寫的,我還是那句話,各有各的價值,沒有高低之分。

一點點個人偏見!






忠 信
對朋友忠誠,對朋友信義,是最可珍藏的汗青.以信義交友,人字是大寫的,情誼是純淨的;以信義交友,才能感覺到每天的太陽都那麼光彩照人,才能體會到生命的真實存在.

最後更新:2017-04-03 05:39:19

  上一篇:go 10大革新開源項目引導世界技術
  下一篇:go Bitcask存儲模型