Selenium - 簡介


selenium是什么?

Selenium是最廣泛使用的開源Web UI(用戶界面)自動化測試套件之一。它最初由傑森·哈金斯(Jason Huggins)於2004年開發,作為Thought Works的內部工具。Selenium支持跨不同瀏覽器,平台和編程語言的自動化。

Selenium可以輕松部署在Windows,Linux,Solaris和Macintosh等平台上。此外,它支持IOS(IOS,Windows Mobile和Android)等移動應用程序的OS(操作系統)。

Selenium通過使用特定於每種語言的驅動程序支持各種編程語言。Selenium支持的語言包括C#,Java,Perl,PHP,Python和Ruby。目前,Selenium Web驅動程序最受Python和C#歡迎。 Selenium測試腳本可以使用任何支持的編程語言進行編碼,並且可以直接在大多數現代Web瀏覽器中運行。 Selenium支持的瀏覽器包括Internet Explorer,Mozilla Firefox,Google Chrome和Safari。

應該具備的知識

需要一些JavaScript知識才能學習本教程。 關於一些后端平台的知識不是必需的,但它可以幫助您了解各種Selenium概念。

Selenium功能特性

Selenium有以下功能特性:

  • Selenium是一個開源和可移植的Web測試框架。
  • Selenium IDE為創作測試提供了回放和錄制功能,而無需學習測試腳本語言。
  • 它可以被視為領先的基於雲的測試平台,可幫助測試人員記錄他們的操作並將其導出為可重復使用的腳本,並具有易於理解且易於使用的界面。
  • Selenium支持各種操作系統,瀏覽器和編程語言。如下列表:
    • 編程語言: C# ,Java,Python,PHP,Ruby,Perl和JavaScript
    • 操作系統:Android,iOS,Windows,Linux,Mac,Solaris。
    • 瀏覽器:谷歌瀏覽器,Mozilla Firefox,Internet Explorer,Edge,Opera,Safari等。
  • 它還支持並行測試執行,從而減少了時間並提高了測試效率。
  • Selenium可以與Ant和Maven等框架集成,用於源代碼編譯。
  • Selenium還可以與TestNG等測試框架集成,以進行應用程序測試和生成報告。
  • 與其他自動化測試工具相比,Selenium需要的資源更少。
  • WebDriver API已經嘗試集於Selenium中,這是對Selenium進行的最重要的修改之一。
  • Selenium Web驅動程序不需要服務器安裝,測試腳本直接與瀏覽器交互。
  • Selenium命令根據不同的類進行分類,使其更易於理解和實現。
  • Selenium Remote Control(RC)與WebDriver API一起被稱為Selenium 2.0。 此版本旨在支持充滿活力的網頁和Ajax。

Selenium的局限性

Selenium的局限性主要如下:

  • Selenium不支持桌面應用程序的自動化測試。
  • Selenium需要高技能才能更有效地自動化測試。
  • 由於Selenium是開源軟件,因此必須依靠社區論壇來解決技術問題。
  • 無法使用Selenium對Web服務(如SOAP或REST)執行自動化測試。
  • 使用者應該至少知道或熟悉一種受支持的編程語言,以便在Selenium WebDriver中創建測試腳本。
  • 它沒有像UTF/QTP這樣的內置對象存儲庫來維護集中位置的對象/元素。但是,可以使用Page Object Model(PO,頁面對象模型)克服此限制。
  • Selenium沒有任何內置的報告功能; 必須依賴JUnit和TestNG等插件來獲取測試報告。
  • 無法對圖像執行測試。需要將Selenium與Sikuli集成以進行基於圖像的測試。
  • 與UFT,RFT,SilkTest測試等供應商工具相比,在Selenium中創建測試環境需要更多時間。
  • 新功能沒有人可能少人使用,它們可能會也可能不會正常工作。
  • Selenium不為測試管理提供任何測試工具集成。

擴展:

什么是頁面對象模型?頁面對象模型(PO)是一種設計模式,用來管理維護一組web元素的對象庫。在PO下,應用程序的每一個頁面都有一個對應的page class,每一個page class維護着該web頁的元素集和操作這些元素的方法,它的最終目的還是將頁面對象(方法和元素)與測試代碼分離,提高測試代碼的可維護性、可擴展性及可復用性。

UFT(Unified Functional Testing)是一種自動化測試工具,以VBScirpt為內嵌語言。UFT支持功能測試和回歸測試自動化,可用於軟件應用程序和環境的測試。

RFT(IBM Rational Functional Tester)是一款先進的、自動化的功能和回歸測試工具,它適用於測試人員和GUI開發人員。

SilkTest:SilkTest 可以自動捕捉,檢測和重復用戶交互的操作從而驅動測試的進行。

Selenium與QTP比較

Selenium和QTP是市場上最常用的自動化測試工具。 因此,我們比較了Selenium與QTP的一些特征。

特征 Selenium HP QTP
許可 開源工具 有版權
客戶支持 Selenium社區論壇 專門的HP支持
測試支持 僅支持基於Web的應用程序的自動化。 支持基於Web和桌面的應用程序的測試。
測試腳本執行期間的資源消耗 資源消耗低 資源消耗高
支持的編程語言 Java, C#, Ruby, Python, Perl, PHP and JavaScript VB Script
支持的環境 Android, iOS, Windows, Linux, Mac, Solaris. 僅適用於Windows
支持的瀏覽器 谷歌瀏覽器,Mozilla Firefox,Internet Explorer,Edge,Opera,Safari等 特定版本的Google Chrome,Mozilla Firefox和Internet Explorer。
對象存儲庫/恢復方案 內置對象存儲庫和恢復方案。
瀏覽器控件 可在瀏覽器中訪問收藏夾欄,后退和前進按鈕等控件。
測試報告生成 它依賴於外部工具來生成測試報告。 在工具中生成內置測試報告。
參數設置 依賴任何一種受支持的編程語言進行參數化。 內置工具可用於參數化。

Selenium工具套件

Selenium不僅僅是一個工具,而是一套軟件,每個軟件都有不同的方法來支持自動化測試。 它由四個主要組成部分組成,包括:

  • Selenium集成開發環境(IDE)
  • Selenium RC遠程控制器(現已棄用)
  • webdriver
  • Selenium Grid

Selenium集成開發環境(IDE)

Selenium IDE實現為Firefox擴展,在測試腳本上提供記錄和回放功能。它允許測試人員以HTML,Java,Ruby,RSpec,Python, C# ,JUnit和TestNG等多種語言導出錄制的腳本。 可以在Selenium RC或Webdriver中使用這些導出的腳本。

Selenium IDE的范圍有限,生成的測試腳本不是非常健壯和可移植。

Selenium遠程控制器

Selenium RC(由selenium正式棄用)允許測試人員使用任何支持的編程語言編寫自動化Web應用程序UI測試。 它還涉及一個HTTP代理服務器,它使瀏覽器能夠相信正在測試的Web應用程序來自代理服務器提供的域。

Selenium RC有兩個組件:

  • Selenium RC Server(充當Web請求的HTTP代理)
  • Selenium RC Client(包含編程語言代碼的庫)

下圖給出了Selenium RC的架構表示。

Selenium RC在連續集成系統下測試復雜的基於AJAX的Web用戶界面非常有效。

Selenium WebDriver

Selenium WebDriver(Selenium 2)是Selenium RC的繼承者,也是Selenium Suite最重要的組件。 SeleniumWebDriver提供了一個編程接口來創建和執行測試用例。 編寫測試腳本是為了識別網頁上的Web元素,然后對這些元素執行所需的操作。

與Selenium RC相比,Selenium WebDriver執行速度更快,因為它可以直接調用Web瀏覽器。 另一方面,RC需要RC服務器與Web瀏覽器進行交互。

因為,WebDriver直接調用不同瀏覽器的方法,因此每個瀏覽器都有單獨的驅動程序。 一些最廣泛使用的Web驅動程序包括:

  • Mozilla Firefox驅動程序(Gecko驅動程序)
  • 谷歌Chrome驅動程序
  • Internet Explorer驅動程序
  • Opera驅動程序
  • Safari驅動程序
  • HTML單元驅動程序(一個特殊的無頭驅動程序)

注意:Selenium版本2將Selenium RC和Selenium WebDriver的最佳功能合並到Selenium WebDriver中,最新發布的Selenium 3具有新增功能和功能

Selenium Grid

Selenium Grid也是Selenium Suite的一個重要組件,它允許在不同的機器上並行運行不同瀏覽器的測試。 簡單來說,可以在運行不同瀏覽器和操作系統的不同機器上同時運行測試。

Selenium Grid遵循Hub-Node架構來實現測試腳本的並行執行。Hub被視為網絡的主設備,另一個將是節點。 Hub控制在網絡的各個節點上執行測試腳本。


歡迎指正,that's all see also: [Selenium - Web Browser Automation](https://www.seleniumhq.org/ ) | [selenium history](https://www.seleniumhq.org/about/history.jsp) | [Java&Selenium自動化測試之Page Object Model](https://www.cnblogs.com/davieyang/p/10071133.html) | [UFT(Unified Functional Testing)介紹(一)]( )


免責聲明!

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



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