Selenium發展史


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版本以上。

 

更多測試技術教程,在測試教程網:http://www.testclass.net/


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM