Selenium 是目前用的廣泛的Web UI 自動化測試框架。 本系列文章,將深入簡出來講解selenium 的用法。
selenium 的命名
selenium 的意思是 硒 (有點QTP 殺手的意思)
QTP mercury 是水銀 硒可以對抗水銀
QTP 目前的價格是 三個單機版 十萬人民幣左右, 越來越少的人用QTP了
什么是selenium
一套軟件工具,用來支持不同的自動化測試方法
開源軟件:可以根據需要來增加重構工具的某些功能
跨平臺:linux , windows mac
核心功能是可以在多個瀏覽器上進行自動化測試
支持多種編程語言
目前已經被google , 百度, 騰訊等公司廣泛使用
能夠實現(xiàn)類似商業(yè)工具的大部分功能,并且還實現(xiàn)了商業(yè)工具不能支持的功能
建議大家整體學習整套工具, 將來好選擇適合自己測試目的的測試工具。
Selenium 的發(fā)展歷史
2004年在ThoughtWorks 公司, 一個叫做Jason Huggins為了減少手工測試的工作, 自己寫了一套Javascript的庫, 這套庫可以進行頁面交互, 并且可以重復的在不同瀏覽器上進行重復的測試操作。
這套庫后來變?yōu)榱薙elenium Core. 為Selenium Remote Control (RC) 和Selenium IDE 提供了堅實的核心基礎能力
Selenium 的作用是劃時代的,因為他允許你使用多種語言來控制瀏覽器。
瀏覽器的對JS的安全限制也對Selenium的發(fā)展帶來了困擾,并且Web程序也越來越大,特性也越來越多,都對selenium的發(fā)展來說帶來了不少困難
2006年Google 的工程師Simon Stewart開啟了一個叫做WebDriver的項目, 此項目可以直接讓測試工具使用瀏覽器和操作系統(tǒng)本身提供的方法, 借此來繞過JS環(huán)境的沙盒效應, WebDriver項目目標是為了解決Selenium的痛處
2008年北京奧運年會, Selenium 和 WebDriver 這兩個項目進行了合并, Selenium 2.0 出現(xiàn)了,也是大家說的WebDriver
Selenium 的工具套件
selenium 2 (aka. Selenium Webdriver)提供了的測試工具特性, 例如:關聯(lián)的面向對象API
Selenium 1 (aka. Selenium RC or Remote Control) 支持更多的瀏覽器,支持更多的編程語言(Java, JavaScript, Ruby PHP)
Selenium IDE (集成開發(fā)環(huán)境) 是Firefox 的插件, 有圖形界面來錄制和回放腳本。 此插件只是用來做原型工具,不用希望你使用這個工具來運行所有的測試腳本
Selenium-grid 可以并行的在多個測試環(huán)境之下測試腳本,實現(xiàn)腳本的并發(fā)測試執(zhí)行。 縮短大量測試腳本集合的執(zhí)行時間
選擇你的Selenium 工具
如果沒有編程經驗,建議選擇Selenium IDE 來熟悉Selenium 的命令。 使用IDE以快速來創(chuàng)建簡單的測試腳本
我們不建議你選擇Selenium IDE 來執(zhí)行自動化測試,
建議先熟悉: Selenium IDE
再進一步熟練使用Selenium-WebDriver API
WebDriver 支持的瀏覽器
IE6-10
FireFox大部分版本
Chrome
Safari
Opera
Andrioid 系統(tǒng)上的自帶瀏覽器
IOS系統(tǒng)上自帶瀏覽器
HtmlUnit的無界面實現(xiàn)
Selenium 1和 WebDriver 的區(qū)別
WebDriver 是Selenium 1 的升級版本, 也可以理解為兩個不同的產品
WebDriver 相比Selenium 1 來說可以更好地繞過JS的限制,API也更易于使用.
Selenium 1 比WebDriver 支持更多的瀏覽器
WebDriver 可以實現(xiàn)向下兼容Selenium 1 的腳本