Selenium發展史

原文鏈接:https://www.cnblogs.com/fnng/p/7426928.html

Jason Huggins在2004年發起了Selenium項目,當時身處ThoughtWorks的他,爲了不想讓自己的時間浪費在無聊的重複性工作中,幸運的是,所有被測試的瀏覽器都支持Javascript。Jason和他所在的團隊採用Javascript編寫一種測試工具來驗證瀏覽器頁面的行爲;這個JavaScript類庫就是Selenium core,同時也是seleniumRC、Selenium IDE的核心組件。Selenium由此誕生。

關於Selenium的命名比較有意思,當時QTP mercury是主流的商業自化工具,是化學元素汞(俗稱水銀),而Selenium是開源自動化工具,是化學元素硒,硒可以對抗汞。

 

Selenium 1.0

用簡單的公式:

Selenium 1.0 = Selenium IDE + Selenium Grid + Selenium RC

 

Selenium IDE

Selenium IDE是嵌入到Firefox瀏覽器中的一個插件,實現簡單的瀏覽器操作的錄製與回放功能。

 

Selenium Grid

Selenium Grid是一種自動化的測試輔助工具,Grid通過利用現有的計算機基礎設施,能加快Web-App的功能測試。利用Grid可以很方便地實現在多臺機器上和異構環境中運行測試用例。

 

Selenium RC

Selenium RC(Remote Control)是Selenium家族的核心部分。Selenium RC 支持多種不同語言編寫的自動化測試腳本,通過Selenium RC的服務器作爲代理服務器去訪問應用,從而達到測試的目的。

Selenium RC分爲Client Libraries和Selenium Server。Client Libraries庫主要用於編寫測試腳本,用來控制Selenium Server的庫。Selenium Server負責控制瀏覽器行爲。

所以,我們在學習Selenium1.0的時候,核心應該是學習RC,它的工作原理是這樣的:

 


在2006年的時候,Google的工程師Simon Stewart發起了WebDriver的項目;因爲長期以來Google一直是Selenium的重度用戶,但卻被限制在有限的操作範圍內。

Selenium RC 是在瀏覽器中運行JavaScript應用,使用瀏覽器內置的JavaScript翻譯器來翻譯和執行selenese命令(selenese是Selenium命令集合)。

WebDriver是通過原生瀏覽器支持或者瀏覽器擴展來直接控制瀏覽器。WebDriver針對各個瀏覽器而開發,取代了嵌入到被測Web應用中的JavaScript,與瀏覽器緊密集成,因此支持創建更高級的測試,避免了JavaScript安全模型導致的限制。除了來自瀏覽器廠商的支持之外,WebDriver還利用操作系統級的調用,模擬用戶輸入。

Selenium與WebDriver原是屬於兩個不同的項目,WebDriver的創建者Simon Stewart早在2009年8月的一份郵件中解釋了項目合併的原因。


Selenium與WebDriver合併原因:爲何把兩個項目合併?部分原因是WebDriver解決了Selenium存在的缺點(例如能夠繞過JavaScript沙箱,我們有出色的API),部分原因是Selenium解決了WebDriver存在的問題(例如支持廣泛的瀏覽器),部分原因是因爲Selenium的主要貢獻者和我都覺得合併項目是爲用戶提供最優秀框架的最佳途徑。

Selenium 2.0


因爲Selenium和Webdriver的合併,所以,Selenium 2.0由此誕生。簡單用公式表示爲:


Selenium 2.0 = Selenium 1.0 + WebDriver

 

需要強調的是,在Selenium 2.0中主推的是WebDriver,可以將其看作Selenium RC的替代品。因爲Selenium爲了保持向下的兼容性,所以在Selenium 2.0中並沒有徹底地拋棄Selenium RC。

所以,我們在學習Selenium2.0的時候,核心是學習WebDriver。它的工作原理是這樣的:

 


大概是在2013年的時候,那一年我剛開始深入的學習和使用Selenium,我通過Selenium官方博客上瞭解到,Selenium團隊將會在聖誕節發佈Selenium3.0,然後,我開始期待即將到來的3.0版,後來就沒有了後來,很多年過去了,依然沒等到Selenium3.0。

直到2016年7月,Selenium3.0悄悄發佈第一個beta版。驚不驚喜,意不意外?他們是這麼解釋的:


“在seleniumconf 2013,我們宣佈,Selenium的一個新的主要版本將在‘聖誕節’發佈。幸運的是,我們從來沒有說過哪個聖誕節,因爲我們已經花了一段時間來做我們想做的所有改變!我們很興奮地宣佈第一個bate版--Selenium 3.0 - beta1的發佈。”

Selenium 3.0

Selenium 3.0做了一些不大不小的更新:

1、終於去掉了RC,簡單用公式表示爲:


Selenium 3.0 = Selenium 2.0 - Selenium RC(Remote Control)

2、Selenium3.0只支持Java8版本以上。

3、Selenium3.0中的Firefox瀏覽器驅動獨立了,以前裝完selenium2就可以驅動Firefox瀏覽器了,現在和Chrome一樣,必須下載和設置瀏覽器驅動。

4、MAC OS 集成Safari的瀏覽器驅動。默認在/usr/bin/safaridriver 目錄下。

5、只支持IE 9.0版本以上。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章