測試自動化對於提升軟件團隊測試過程的長期效率具備特殊的優點。測試自動化支持:ios
- 頻繁迴歸測試
- 快速反饋給開發人員
- 幾乎無限次的測試用例迭代
- 支持敏捷和極限開發方法
- 測試用例的規範文檔
- 定製的缺陷報告
- 經過手動測試發現缺陷
自動化仍是不自動化?web
有時候手動測試可能更合適。例如,若是應用程序的用戶界面在不久的未來會發生至關大的變化,那麼任何自動化均可能須要重寫。另外,有時候根本沒有足夠的時間來構建測試自動化。就短時間而言,手動測試可能更有效。編程
介紹Selenium瀏覽器
Selenium是一套不一樣的軟件工具,整套工具產生了豐富的測試功能,專門針對全部類型的Web應用程序的測試需求。容許用於查找UI元素的許多選項,並將預期的測試結果與實際的應用程序行爲進行比較。Selenium的主要功能之一是支持在多個瀏覽器平臺上執行測試。app
Selenium項目簡史框架
Selenium在2004年由Jason Huggins在ThoughtWorks的一個內部應用程序測試中誕生。編程語言
他開發了一個Javascript庫,能夠驅動與頁面的交互,容許他自動從新運行多個瀏覽器的測試。該庫最終成爲Selenium Core,它是Selenium Remote Control(RC)和Selenium IDE全部功能的基礎。工具
在2006年,一位名叫西蒙·斯圖爾特(Simon Stewart)的傑出工程師開始了一個名爲WebDriver的項目。Simon想要一個測試工具,經過瀏覽器和操做系統的「native」方法直接與瀏覽器對話,從而避免了沙箱化Javascript環境的限制。WebDriver項目的開始是爲了解決Selenium的痛點。測試
2009年8月6日,WebDriver和Selenium社區的聯合電子郵件中,WebDriver的建立者Simon Stewart詳細解釋了WebDriver和Selenium合併的最好解釋。spa
「爲何項目合併?部分緣由是WebDriver解決了硒中的一些缺陷(例如,可以繞過JS沙盒,並且咱們有一個很是漂亮的API),部分緣由是硒解決了WebDriver中的一些缺點(好比支持更普遍的瀏覽器)和一方面是由於主要的硒貢獻者,我以爲這是向用戶提供最好的框架的最好方式。「
Selenium工具套件(Selenium由多個軟件工具組成):
- Selenium 2(又名Selenium WebDriver)
它支持WebDriver API和底層技術,以及WebDriver API下的Selenium 1技術,以便在移植測試時得到最大的靈活性。另外,Selenium 2仍然運行Selenium 1的Selenium RC接口以實現向後兼容。
- Selenium1(又名SeleniumRC或 Remote Control)
在WebDriver / Selenium合併以前,Selenium RC是Selenium 2的主要工程,如今Selenium 1已被棄用,並無獲得積極的支持(主要是維護模式)。
Selenium IDE(集成開發環境)是構建測試腳本的原型工具。它是一個Firefox插件,爲開發自動化測試提供了一個易於使用的界面。Selenium IDE具備錄製功能,能夠在用戶執行操做時記錄用戶操做,而後將其做爲可重用腳本以某一編程語言導出。
Selenium-Grid容許Selenium RC解決方案針對大型測試套件和必須在多個環境中運行的測試套件進行擴展。
Selenium Grid容許您並行運行測試,也就是說,能夠在不一樣的遠程機器上同時運行不一樣的測試。
這有兩個好處。
首先,若是你有一個大的測試套件,或者一個運行速度慢的測試套件,你能夠經過使用Selenium Grid將你的測試套件劃分爲同時使用不一樣的機器同時運行不一樣的測試。
並且,若是必須在多個環境中運行測試套件,可讓不一樣的遠程機器同時支持並運行測試。
在每種狀況下,Selenium Grid經過使用並行處理大大縮短了運行套件所花費的時間。
選擇Selenium工具
許多人開始使用Selenium IDE。若是還不熟悉編程或腳本語言,則可使用Selenium IDE熟悉Selenium命令。使用IDE,能夠快速建立簡單的測試,有時在幾秒鐘內。可是,並不建議使用Selenium IDE進行全部測試自動化。爲了有效地使用Selenium,須要使用Selenium 2或Selenium 1以及其中一種支持的編程語言來構建和運行測試。Selenium開發人員正在計劃將Selenium-WebDriver API做爲Selenium將來的發展方向。對於那些首次使用Selenium的人來講,從頭開始構建一個新的測試套件,您可能會想要使用Selenium 2,由於這是Selenium的一部分,將來將繼續獲得支持。
支持的瀏覽器和平臺
在Selenium 2.0中,支持的瀏覽器根據您使用的是Selenium-WebDriver仍是Selenium-RC而有所不一樣。
Selenium的webdriver
Selenium-WebDriver支持如下瀏覽器以及這些瀏覽器兼容的操做系統。
- Google Chrome
- Internet Explorer 7, 8, 9, 10, and 11 on appropriate combinations of Vista, Windows 7, Windows 8, and Windows 8.1. As of April 15 2014, IE 6 is no longer supported. The driver supports running 32-bit and 64-bit versions of the browser where applicable
- Firefox: latest ESR, previous ESR, current release, one previous release
- Safari
- Opera
- HtmlUnit
- phantomjs
- Android (with Selendroid or appium)
- iOS (with ios-driver or appium)
靈活性和可擴展性
有許多方法能夠將功能添加到Selenium測試腳本和Selenium的框架中,以定製測試自動化。