安裝并引用Selenium 2—Selenium自動化測試指南(1)
(51Testing軟件測試網獲人民郵電出版社和作者授權連載本書部分章節。任何個人或單位未獲得明確的書面許可,不得對本文內容復制、轉載或進行鏡像,否則將追究法律責任。)
第5章 Selenium 2(WebDriver)
Selenium 2(即WebDriver)是一種用于Web應用程序的自動測試工具,它提供了一套友好的API,與Selenium 1(Selenium-RC)相比,Selenium 2的API更容易理解和使用,其可讀性和可維護性也大大提高。Selenium 2完全就是一套類庫,不依賴于任何測試框架,不需要啟動其它進程或安裝其它程序,也不必像Selenium 1那樣需要先啟動服務。
另外,二者所采用的技術方案也不同。Selenium 1是在瀏覽器中運行JavaScript來進行測試,而Selenium 2則是通過原生瀏覽器支持或者瀏覽器擴展直接控制瀏覽器。
Selenium 2針對各個瀏覽器而開發的,它取代了嵌入到被測Web應用中的JavaScript。與瀏覽器的緊密集成,支持創建更高級的測試,避免了JavaScript安全模型的限制。除了來自瀏覽器廠商的支持,Selenium 2還利用操作系統級的調用模擬用戶輸入。WebDriver支持Firefox(FirefoxDriver)、IE(InternetExplorerDriver)、Opera(OperaDriver)和Chrome (ChromeDriver)瀏覽器。對Safari的支持由于技術限制在本版本中未包含,但是可以使用SeleneseCommandExecutor模擬。它還支持Android(AndroidDriver)和iPhone(IPhoneDriver)的移動應用測試。此外,Selenium 2還包括一個基于HtmlUnit的無界面實現,稱為HtmlUnitDriver。Selenium 2 API可以通過Python、Ruby、Java和C#等編程語言訪問,支持開發人員使用他們常用的編程語言來創建測試。
但是,我們不能簡單的從版本號就判定Selenium 2比Selenium 1更加先進。嚴格地說,它們完全屬于兩個不同的產品而不是簡單的升級關系,更像是互補關系。它們之間各有優劣:Selenium 2可以彌補Selenium 1存在的缺點(例如能夠繞過JS限制、API更易使用),而Selenium 1也可以解決Selenium 2存在的問題(例如支持更多的瀏覽器)。
5.1 Selenium 2——基于對象的測試
為什么說Selenium 2是基于對象的測試呢?可以對Selenium 1和Selenium 2的代碼進行一下對比,同樣是實現系統登錄這種簡單的操作,它們的代碼卻各有不同,如程序清單5-1和程序清單5-2所示。
程序清單5-1 Selenium 1的代碼
static void Main(string[] args) |
程序清單5-2 Selenium 2的代碼
static void Main(string[] args) |
可以看到Selenium 2與Selenium 1存在很明顯的差異。盡管它們都屬于瀏覽器自動化的API,但對于用戶來說,Selenium 1提供的更多的是基于方法的API,所有方法都在一個類中開放,而Selenium 2的API則面向對象,不同的對象擁有不同的操作方法。
5.2 安裝并引用Selenium 2
Selenium 2的下載地址為:http://seleniumhq.org/download/,位于“Selenium Client Drivers”欄,選擇使用的編程語言版本下載即可,這些包中同時包含了Selenium 1和Selenium 2的文件,如圖5-1所示。
圖5-1 下載Selenium 1
由于在本書中的Selenium示例都將采用C#或Java編寫,因此需要至少掌握C#或Java中的一種語言。如果您是C#或Java的初學者,可以先在網上參閱相關的資料。
接下來分別介紹如何在C#和Java的 IDE環境中進行使用并創建程序。
5.2.1 在C#IDE中使用Selenium C#
下載之后進行解壓,可以看到兩個不同的文件夾,一個是.Net 3.5版本,另一個是.Net 4.0,可以根據自己的版本進行選擇,然后進入對應版本的文件夾,如圖5-2所示。
圖5-2 Selenium .Net類庫
接下來分別介紹部分文件的作用。
Castle.Core.dll:Castle的核心,它是個輕量級容器,實現了IoC(Inversion of Control)模式的容器,基于此核心容器所建立的應用程序,可以達到程序組件的松散耦合,讓程序組件可以進行驗證,這些特性使得可以簡化整個應用程序的架構,并且使得易于維護此文件與測試的關系不大。
Ionic.Zip.dll:用于壓縮和解壓的庫文件,可以把文件壓縮成WinZip格式,也可以從該格式中解壓。此文件與測試的關系不大。
Selenium.WebDriverBackedSelenium.dll:通過這個類庫,可以實現用Selenium 1的語法來執行Selenium 2。這是一種過渡性方案,基本是針對老的Selenium 1代碼,讓它們以最小的代價遷移到Selenium 2去。
ThoughtWorks.Selenium.Core.dll:Selenium 1的主要API文件,在使用Selenium 1自動化測試時就靠這個類庫來實現。
WebDriver.dll:Selenium 2的主要API文件,在使用Selenium 2進行自動化測試時主要就靠這個類庫來實現。它是本章關注的重點。
WebDriver.Support.dll:WebDriver支持類,起輔助作用。其中包含一些HTML元素選擇、條件等待、頁面對象創建等的輔助類。本章將對其進行詳細介紹。
至于.pdb類型的程序數據庫文件,一般用于dll文件的調試,與Selenium 測試本身沒多大關系。而.xml文件則是各個dll文件的API參考文檔,應該仔細研究。
C#編程使用的是Visual Studio,Visual Studio 2010的下載地址是:
http://www.microsoft.com/visualstudio/zh-cn/download
關于Visual Studio的安裝,可參見:
http://www.cnblogs.com/eastson/archive/2012/05/30/2525831.html
安裝結束后,打開Visual Studio,然后選擇“新建”→“項目”菜單命令,如圖5-3所示。
圖5-3 選擇“新建C#項目1”菜單命令
在彈出的“新建項目”對話框中選擇“控制臺應用程序”,如圖5-4所示。
圖5-4 “新建項目”對話框
創建完畢后,將打開新建立的項目,可以看到默認創建了一個名為Program.CS的類文件,如圖5-5所示。
圖5-5 默認創建的Program.CS類文件
在解決方案資源管理器中,用鼠標右鍵單擊“引用”,選擇“添加引用”,如圖5-6所示。
打開“添加引用”窗口,選擇與WebDriver相關的dll文件,單擊“確定”按鈕,如圖5-7所示。
圖5-6 “添加引用”命令 圖5-7 選擇相關的.dll文件
在解決方案資源管理器中可看到該引用,如圖5-8所示。
然后在main函數中輸入如圖5-9中所示的代碼,然后按F5執行。
圖5-8 添加引用3 圖5-9 C#代碼
運行結果如圖5-10所示。
在本章中的C#程序都可按照這種方式進行創建。
圖5-10 C#運行結果
5.2.2 在Java IDE中使用Selenium
下載之后進行解壓,可以看到如圖5-12所示的內容。
這些文件和文件夾的作用如下。
Libs文件夾:其中包含各種Java相關的基礎框架。
CHANGELOG:記錄了Selenium的變更情況,可以用記事本將其打開閱讀。
Selenium-java-2.25.0.jar:Selenium 1和Selenium 2的主要API文件,在進行自動化測試時主要就靠這個類庫來實現。
Selenium-java-2.25.0-srcs.jar:Selenium的部分源碼,感興趣的讀者可以仔細研究。
運行Java程序和Selenium 服務器都需要先安裝JDK,JDK的下載地址為:
http://www.oracle.com/technetwork/java/javase/downloads/index.html
注意下載時要選擇對應的操作系統版本,下載后直接單擊“下一步”按鈕安裝即可。
然后安裝Eclipse,下載地址是:
http://www.eclipse.org/downloads/
下載Eclipse Classic,然后解壓即可使用。
1.創建Java項目
(1)打開Eclipse,然后選擇New→Java Project,如圖5-13所示。
圖5-13 Java Project菜單命令
(2)在打開New Java輸入Project name,JRE選擇當前安裝的JRE,然后單擊Finish,如圖5-14所示。
圖5-14 New Java Project對話框
(3)進入項目頁面,在Package Explorer中右鍵單擊該項目名稱,選擇New→Class命令,如圖5-15所示。
圖5-15 選擇Class菜單命令
(4)輸入包名稱和類名稱,并勾選Public static void main以生成main函數,如圖5-16所示。
本文選自《Selenium自動化測試指南》第五章節,本站經人民郵電出版社和作者的授權,近期將進行部分章節的連載,敬請期待!
版權聲明:51Testing軟件測試網獲人民郵電出版社和作者授權連載本書部分章節。
任何個人或單位未獲得明確的書面許可,不得對本文內容復制、轉載或進行鏡像,否則將追究法律責任。
相關文章:
新書介紹:Selenium自動化測試指南—51Testing鼎力推薦
posted on 2013-08-30 09:11 順其自然EVO 閱讀(6031) 評論(0) 編輯 收藏 所屬分類: selenium and watir webdrivers 自動化測試學習