初識Selenium還是在2010年的4月份,那時剛剛入職滿一年。由於項目的需要,需要我們開發一套撥測系統,能夠探測網絡上的業務。於是在網上找各種工具進行試用,包括商業軟件RFT(IBM),QTP (HP), SilkTest等商業軟件,當然也有WATIR,但是都不滿意。一次偶然的機會,碰到了Selenium,自此就深深的喜歡上了它。
其實,早都想寫一些關於Selenium的一些技術文章,但是苦於工作壓力,遲遲未能如願。今天,工作之余整理文件,發現角落里的Selenium,於是拿出分享給大家。由於本人文筆欠佳,加上技術更新日新月異,如有講述不當或錯誤之處,還望指正。
這個系列的教程將分為四個部分講解:
(1) 開卷有益 : 了解Selenium 的前世今生
(2) 手中有劍 : Selenium的IDE
(3) 撥雲見日 : 使用Selenium做自動化測試
(4) 羽化成蝶 : 使用Selenium搭建自己的自動化測試框架
第一部分: 開卷有益
1 Selenium的發展歷史
在2004年,ThoughtWorks公司有個叫做Jason Huggins(詹森哈金斯)的 家伙,他負責測試一個Web應用程序。這個聰明的家伙,厭倦了一遍遍的手工來測
試這些Web應用程序。於是乎,他寫了一些Javascript代 碼,這些代碼模擬手工操作Web頁面的。——這些代碼(稱之為Javascript 庫)后來就是Selenium
Core,是Selenium RC和Selenium IDE的基礎代碼。
Selenium一問世后,就得到了廣泛的使用。其中Google就是Selenium的重度用戶了。但是Selenium有它的缺陷的:它是將 Javascript代碼注入到瀏覽器中
的,瀏覽器對Javascript的執行是有些安全限制的,導致有些應用是難以通過Selenium來驗證功能 的。Google可是人才濟濟啊,難不倒他們的。在2006年,
Google的一位工程師Simon Stewart,他開始了一個項目WebDriver,它采用了一種直接的原生的(native)的方式來驅動瀏覽器,以此避免Javascript的限制。
此時,Selenium和WebDriver是各自發展的。到了2008年底,兩者計划合並了。經過了兩年多的合並開發(我也不曉得為啥會花那么長時間才合並好),Selenium
2.0終於在2011.6月份發布了。對上述內容總結繪制了如下的表格:

2 Selenium軟件概覽
Selenium軟件包含很多的功能模塊和組件(官網),每個組件又有着不同的用途,包括:
(1)Selenium IDE
Selenium IDE是一個錄制和回放工具,目前只支持Firefox瀏覽器,截至目前,最新的版本為1.10.0,可以在官網下載。
(2)Selenium Server
Selenium1 和 Selenium2的運行支撐環境,使用Selenium進行測試必須要使用該文件。
(3)Selenium Client
客戶端的開發包,就是你需要引用該包中的API進行selenium進行測試開發和控制。
(4)Driver
包括IEDriverServer.exe,ChromeDriverServer.exe等(Firefox不需要哦),在使用Selenium2(WebDriver)時,必須下載相應的瀏覽器驅動程序才能完成測試的執行。
(5)Selenium Grid
如果要做分布式的測試和測試端的管理,就需要使用Selenium Grid組件了。更多內容可以點擊這里查看
3 Selenium特點
Selenium是一款強大的WEB自動化測試工具,表現在:
(1) 測試直接在瀏覽器中運行,就像真實用戶所做的一樣,從終端用戶的角度測試應用程序。
(2) 使瀏覽器兼容性測試自動化成為可能。兼容Firefox,Chrome,IE ,Opera等瀏覽器,這是其他商業軟件也望塵莫及的。
(3) 使用簡單,可生成多種語言的用例腳本。通過IDE可以將測試用例導出為Ruby,C# , JAVA和Python等語言格式的代碼。
(4) Selenium IDE:一個Firefox插件,可以錄制用戶的基本操作,生成測試用例。這些測試用例在瀏覽器里回放,同時可將用例轉換為其他語言的自動化腳本。
(5) 可以支持多種平台(Window, Linux, Mac, Android)。據我了解,目前還沒有那種工具能支撐這么多種平台。
(6) 輕便,小於50M且不用安裝(所有的包加在一起)。
(7) 提供多種語言的開發包,包括C#, JAVA, Ruby和Python。 總有一種是你熟悉的。
4 Selenium架構
這里我給出一個從其他地方得到的一張圖(具體忘記從什么地方得到的了,如果有人知道請告訴我,我增加上),大家看着理解吧,很簡單。

5 Selenium相關資料網址
官網:http://seleniumhq.org/
源碼:http://code.google.com/p/selenium/
中文網:http://seleniumcn.cn/
FAQ: http://code.google.com/p/selenium/wiki/FrequentlyAskedQuestions
WiKi: http://code.google.com/p/selenium/w/list
教程:http://marakana.com/bookshelf/selenium_tutorial/selenium2.html
分享,讓我們更快樂。
