五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

什么是Selenium?使用Selenium進行自動化測試

2021-04-22 14:51 作者:信碼由韁  | 我要投稿

【注】本文譯自:
https://www.edureka.co/blog/what-is-selenium/

你知道什么是?Selenium 嗎?你知道為什么要使用它嗎?答案就在本文中,很高興能夠與你共飧。

自動化測試正席卷全球,Selenium 認證是業(yè)界最搶手的技能之一。

什么是 Selenium?

Selenium 是一種開源工具,用于在 Web 瀏覽器上執(zhí)行自動化測試(使用任何 Web 瀏覽器進行?Web 應用程序測試)。

等等,先別激動,讓我再次重申一下,Selenium 僅可以測試Web應用程序。我們既不能使用 Selenium 測試任何桌面(軟件)應用程序,也不能測試任何移動應用程序。

這很糟糕,對吧?我能感覺到你的痛苦。但請放心,有許多工具可以測試桌面軟件和移動應用程序,例如:IBM 的 RFT,HP 的 QPT,Appium 等。但是,本文的重點是測試動態(tài) Web 應用程序,以及為什么 Selenium 在這方面是最好的。

Selenium 的優(yōu)勢是什么?

由于 Selenium 是開源的,因此不涉及許可費用,這是與其他測試工具相比的主要優(yōu)勢。Selenium 日益流行的其他原因是:


  • 測試腳本可以用以下任何一種編程語言編寫:JavaPython、C#PHP、RubyPerl?和?.Net

  • 可以在以下任何操作系統(tǒng)中進行測試:Windows、Mac?或?Linux

  • 可以使用任何瀏覽器進行測試:Mozilla Firefox、Internet Explorer、Google Chrome、Safari?或?Opera

  • 可以與?TestNG?和?JUnit?等工具集成,以管理測試用例和生成報告

  • 可以與?MavenJenkins?和?Docker?集成以實現(xiàn)持續(xù)測試

但總有缺點吧?

  • 我們只能使用 Selenium 來測試 Web 應用程序。我們無法測試桌面應用程序或任何其他軟件

  • 沒有針對 Selenium 的保證支持。我們需要利用現(xiàn)有的客戶社區(qū)

  • 無法對圖像進行測試。我們需要將 Selenium 與 Sikuli 集成以進行基于圖像的測試

  • 沒有本機報告工具。但是我們可以通過將其與 TestNG 或 JUnit 之類的框架集成來解決該問題

首先,讓我們了解 Selenium 是如何發(fā)展到今天的。所以,讓我們按以下順序來講解:

  1. 軟件測試的訴求

  2. 手工測試的挑戰(zhàn)

  3. 自動化測試如何勝過手動測試?

  4. Selenium 與其他測試工具的對比?

  5. Selenium 套件工具

軟件測試的需要

一切都歸結為軟件測試。當今的技術世界完全由機器控制,它們的行為被驅動它的軟件年控制。這些機器會完全按照我們希望的那樣運行嗎?每一次、任何場合都符合預期嗎?這些問題的答案在于軟件測試。

歸根結底,軟件應用程序的成功率將控制你的業(yè)務增長。即使對于 Web 應用程序,也可以說同樣的話,因為當今大多數(shù)企業(yè)都完全依賴 Internet。

以任何一家電子商務公司為例。無論是 Amazon 還是 E-Bay 或 Flipkart,他們都依賴其網(wǎng)站上的客戶流量以及基于 Web 的移動應用程序上的業(yè)務流量。

想象一下,如果發(fā)生災難性事件,例如將許多產(chǎn)品的價格限制在 10 美元以內,這都是由于代碼“不那么容易理解”部分中的一個小錯誤所致。那該怎么辦,我們下次如何預防呢?

部署之前測試代碼,對嗎? 所以,這就是軟件測試的需要。但是,Selenium 是什么?它是軟件測試工具嗎?好吧,Selenium 是一種自動化測試工具!

進一步之前,請讓我澄清一下,軟件測試有兩種類型:手動測試和自動化測試。Selenium 作為一種自動化測試工具被創(chuàng)建,旨在克服手動測試的弊端/局限性。因此,接下來,讓我們了解手動測試的挑戰(zhàn)。

手動測試的挑戰(zhàn)

手動測試是指 QA 測試人員手動測試(Web)應用程序。需要在每個環(huán)境中使用不同的數(shù)據(jù)集手動執(zhí)行測試,并且應記錄每個事務的成功/失敗率。


看看上圖中這個糟糕的小伙子,他要手動驗證記錄的交易。他正面臨的挑戰(zhàn)會導致疲勞、無聊、工作延遲、錯誤和失誤(由于手動操作)。這導致了 Selenium(自動化測試工具)的發(fā)明。

自動化測試勝過手動測試

每次自動化測試都勝過手動測試。為什么?因為它速度更快,需要的人力資源投資較少,所以不容易出錯,可以頻繁執(zhí)行測試,支持無人值守執(zhí)行,支持回歸測試以及功能測試。

讓我們舉一個與前面提到的類似的例子。假設有一個登錄頁面,我們需要驗證所有的登錄嘗試是否成功,那么很容易編寫一段代碼來驗證所有的事務/登錄嘗試是否成功(自動測試用例執(zhí)行)。

此外,可以以在不同環(huán)境和 Web 瀏覽器中對它們進行測試的方式配置這些測試。我們還能做些什么?您可以通過安排一天中的特定時間來自動生成結果文件。然后,您還可以根據(jù)這些結果自動生成報告。

關鍵是自動化測試使測試人員的工作變得更加簡單。如下圖所示,顯示了一個更寬松的環(huán)境,同樣的測試人員正在工作。


現(xiàn)在,讓我特別談談 Selenium。

現(xiàn)在讓我們看看 Selenium 在市場上的地位。

Selenium 對比 QTP 和 RFT

我在下表中將其性能與其他兩個流行工具進行了比較:QTP和RFT。

從上表可以很清楚地看出 Selenium 是最受青睞的工具。但是 Selenium 中有很多不同的風格,您應該知道哪種 Selenium 工具最適合你的需要。

Selenium 工具套件

  • Selenium RC (現(xiàn)在已廢棄)

  • Selenium IDE

  • Selenium Grid

  • Selenium WebDriver

Selenium 有哪些組件?

下面我詳細解釋了 Selenium 的各個組成:

Selenium RC (遠程控制)

在談論 Selenium RC 的細節(jié)之前,我想回過頭來談談 Selenium 項目中的第一個工具。Selenium Core 是第一個工具。但是,由于采用了同源策略,Selenium Core 在跨域測試方面遇到了障礙。同源策略禁止 JavaScript 代碼訪問與啟動 JavaScript 的位置不同的域上托管的 Web 元素。

為了克服同源策略問題,測試人員需要安裝 Selenium Core(JavaScript程序)和包含要測試的 Web 應用程序的 Web 服務器的本地副本,以便它們屬于同一域。這導致了 Selenium RC 的誕生,這是當時 ThoughtWork 的工程師?Paul Hammant?認可的。

RC 通過使用 HTTP 代理服務器來“欺騙”瀏覽器,使其相信 Selenium Core 和被測試的 Web 應用程序來自同一域,從而解決了該問題。因此,使 RC 成為雙組件工具。

  1. Selenium RC 服務器

  2. Selenium RC 客戶端?–?包含編程語言代碼的庫

RC Server 使用簡單的 HTTP GET / POST 請求進行通信。查看下圖以了解 RC 架構。


Selenium 項目的旗艦工具是 Selenium RC,這是他們的第一個工具,可以用來以不同的編程語言編寫測試用例。但是 RC 的缺點是與 RC 服務器的每次通信都很耗時,因此RC非常慢。太慢了,有時一次測試要花上幾個小時。

從 Selenium v3 開始,RC 已棄用,并轉移到遺留軟件包中。您依然可以下載并使用 RC,但是很遺憾,已經(jīng)無法得到支持。但另一方面,為什么要使用一個過時的工具,尤其是當有一個更有效的工具 Selenium WebDriver 時。在談論WebDriver之前,讓我討論一下IDE 和 Grid,它們是構成 Selenium v1 的其他工具。

Selenium IDE(集成開發(fā)環(huán)境)

2006年,日本的?Shinya Kastani?將他的 Selenium IDE 原型捐贈給了 Apache 的 Selenium 項目。這是一個用于快速創(chuàng)建測試用例的 Firefox 插件。IDE 實施了記錄和回放模型,其中通過記錄用戶與 Web 瀏覽器的交互來創(chuàng)建測試用例。這些測試然后可以播放任意次。

Selenium IDE 的優(yōu)勢在于,通過插件記錄的測試可以以不同的編程語言導出,例如:Java、Ruby、Python 等。請查看以下 Firefox IDE 插件的屏幕截圖。


但是,IDE的相關缺點是:

  • 插件僅適用于 Mozilla Firefox;不適用于其他瀏覽器

  • 無法測試動態(tài) Web 應用程序。只能記錄簡單的測試

  • 測試用例不能使用編程邏輯編寫腳本

  • 不支持數(shù)據(jù)驅動測試

這些是 Selenium IDE 的一些方面?,F(xiàn)在讓我談談 Selenium Grid。

什么是 Selenium Grid

Selenium Grid 由?Patrick Lightbody?開發(fā),最初稱為 HostedQA(最初是 Selenium v1 的一部分),它與 RC 結合使用以在遠程計算機上運行測試。實際上,使用 Grid 可以在多臺計算機上同時執(zhí)行多個測試腳本。

借助 Hub-Node 架構實現(xiàn)并行執(zhí)行。一臺機器將承擔集線器的角色,其他機器將充當節(jié)點。集線器控制在各種操作系統(tǒng)內的各種瀏覽器上運行的測試腳本。在不同節(jié)點上執(zhí)行的測試腳本可以用不同的編程語言編寫。


Grid 仍在使用,并且可以與 WebDriver 和 RC 一起使用。但是,使用所有必需的瀏覽器和操作系統(tǒng)維護網(wǎng)格是一個挑戰(zhàn)。為此,有多個在線平臺可提供在線 Selenium Grid,您可以訪問它們以運行 Selenium 自動化腳本。例如,您可以使用 LambdaTest。它具有2000 多種瀏覽器環(huán)境,您可以在這些環(huán)境中運行測試,并真正實現(xiàn)跨瀏覽器測試的自動化。

什么是 Selenium WebDriver

Selenium WebDriver 由?Simon Stewart?于 2006 年創(chuàng)立,它是第一個可以從操作系統(tǒng)級別控制瀏覽器的跨平臺測試框架。與 IDE 相比,Selenium WebDriver 提供了一個編程接口來創(chuàng)建和執(zhí)行測試用例。編寫測試用例,以便識別網(wǎng)頁上的 Web 元素,然后對這些元素執(zhí)行操作。

WebDriver 是 RC 的升級,因為它速度更快。它更快,因為它可以直接調用瀏覽器。另一方面,RC 需要 RC 服務器與 Web 瀏覽器進行交互。每個瀏覽器都有自己的驅動程序,應用程序可以在該驅動程序上運行。不同的 WebDrivers 是:

  • Firefox Driver (Gecko Driver)

  • Chrome Driver

  • Internet Explorer Driver

  • Opera Driver

  • Safari Driver and

  • HTM Unit Driver

Selenium WebDriver 的好處

  • 支持 7 種編程語言:JAVA、C#、PHP、Ruby、Perl、Python 和 .Net

  • 支持在不同瀏覽器進行測試,如:Firefox、Chrome、IE、Safari

  • 支持在不同操作系統(tǒng)上執(zhí)行測試,如:Windows、Mac、Linux、Android、iOS

  • 克服了 Selenium v1 的局限性,例如文件上傳、下載、彈出窗口和對話欄

Selenium WebDriver 的缺點

  • 無法生成詳細的測試報告

  • 無法測試圖像

不管緊致什么挑戰(zhàn),這些缺點都可以通過與其他框架集成來克服。對于測試圖像,可以使用 Sikuli,對于生成詳細的測試報告,可以使用 TestNG。


什么是Selenium?使用Selenium進行自動化測試的評論 (共 條)

分享到微博請遵守國家法律
保定市| 兴海县| 高陵县| 新龙县| 神池县| 长治县| 中卫市| 普宁市| 长汀县| 鄂托克前旗| 嘉义市| 五华县| 长春市| 神木县| 兴义市| 牟定县| 古蔺县| 定日县| 凤冈县| 南岸区| 黄石市| 关岭| 乐陵市| 寿阳县| 蒲江县| 开封市| 新晃| 乌兰察布市| 德令哈市| 镶黄旗| SHOW| 射洪县| 海口市| 武威市| 铁力市| 上林县| 体育| 班玛县| 雷州市| 白朗县| 米林县|