量角器 - 簡介



本章將為您介紹量角器,您將瞭解此測試框架的起源以及為什麼您必須選擇它,以及此工具的工作原理和侷限性。

什麼是量角器?

量角器是一個開源的端到端測試框架,用於 Angular 和 AngularJS 應用程式。它由 Google 基於 WebDriver 構建。它也作為現有的 AngularJS E2E 測試框架“Angular Scenario Runner”的替代品。

它還可以作為解決方案整合器,結合 NodeJS、Selenium、Jasmine、WebDriver、Cucumber、Mocha 等強大的技術。除了測試 AngularJS 應用程式外,它還可以為普通 Web 應用程式編寫自動化的迴歸測試。它允許我們像真實使用者一樣測試我們的應用程式,因為它使用實際瀏覽器執行測試。

下圖將簡要概述量角器 -

Overview of Protractor

觀察上圖,我們有 -

  • 量角器 - 如前所述,它是 WebDriver JS 的包裝器,專門為 Angular 應用程式設計。

  • Jasmine - 它基本上是一個用於測試 JavaScript 程式碼的行為驅動開發框架。我們可以用 Jasmine 輕鬆編寫測試。

  • WebDriver JS - 它是 Selenium 2.0/WebDriver 的 Node JS 繫結實現。

  • Selenium - 它只是自動化瀏覽器。

起源

如前所述,量角器是現有的 AngularJS E2E 測試框架“Angular Scenario Runner”的替代品。基本上,量角器的起源始於 Scenario Runner 的結束。這裡出現了一個問題,為什麼我們需要構建量角器?要理解這一點,我們首先需要了解其前身 - Scenario Runner。

量角器的誕生

Julie Ralph 是量角器開發的主要貢獻者,她在 Google 內部其他專案中使用 Angular Scenario Runner 有以下經驗。這進一步成為構建量角器的動力,特別是為了填補空白 -

“我們嘗試使用 Scenario Runner,發現它真的無法做到我們需要測試的事情。我們需要測試諸如登入之類的事情。您的登入頁面不是 Angular 頁面,Scenario Runner 無法處理它。它也無法處理諸如彈出視窗和多個視窗、瀏覽瀏覽器歷史記錄等內容。”

量角器最大的優勢在於 Selenium 專案的成熟度,它封裝了其方法,以便可以輕鬆地用於 Angular 專案。量角器的設計以這樣的方式構建,它測試應用程式的所有層,例如 Web UI、後端服務、持久層等等。

為什麼選擇量角器?

眾所周知,幾乎所有應用程式都使用 JavaScript 進行開發。當 JavaScript 的規模越來越大,並且由於應用程式數量的增加而變得複雜時,測試人員的任務變得困難。大多數情況下,使用 JUnit 或 Selenium WebDriver 捕獲 AngularJS 應用程式中的 Web 元素變得非常困難,它使用擴充套件的 HTML 語法來表達 Web 應用程式元件。

這裡的問題是為什麼 Selenium Web Driver 無法找到 AngularJS Web 元素?原因是 AngularJS 應用程式具有一些擴充套件的 HTML 屬性,例如 ng-repeater、ng-controller 和 ng-model 等,這些屬性未包含在 Selenium 定位器中。

在這裡,量角器的重要性就體現出來了,因為量角器在 Selenium 的基礎上可以處理和控制 AngularJS Web 應用程式中的那些擴充套件的 HTML 元素。因此,我們可以說,大多數框架專注於對 AngularJS 應用程式進行單元測試,量角器用於測試應用程式的實際功能。

量角器的工作原理

量角器(測試框架)與 Selenium 協同工作,為模擬使用者與在瀏覽器或移動裝置上執行的 AngularJS 應用程式互動提供自動化的測試基礎設施。

可以透過以下步驟瞭解量角器的工作原理 -

  • 步驟 1 - 在第一步中,我們需要編寫測試。這可以透過 Jasmine 或 Mocha 或 Cucumber 的幫助來完成。

  • 步驟 2 - 現在,我們需要執行測試,這可以透過量角器的幫助來完成。它也稱為測試執行器。

  • 步驟 3 - 在此步驟中,Selenium 伺服器將幫助管理瀏覽器。

  • 步驟 4 - 最後,透過 Selenium WebDriver 呼叫瀏覽器 API。

Working of Protractor

優點

這個開源的端到端測試框架提供了以下優勢 -

  • 作為一個開源工具,量角器非常易於安裝和設定。

  • 與 Jasmine 框架配合良好以建立測試。

  • 支援測試驅動開發 (TDD)。

  • 包含自動等待,這意味著我們不需要在測試中顯式新增等待和休眠。

  • 提供 Selenium WebDriver 的所有優勢。

  • 支援透過多個瀏覽器進行並行測試。

  • 提供自動同步的優勢。

  • 具有出色的測試速度。

侷限性

這個開源的端到端測試框架具有以下侷限性 -

  • 由於它是 WebDriver JS 的包裝器,因此它不會發現瀏覽器自動化中的任何垂直領域。

  • 使用者必須瞭解 JavaScript,因為它僅適用於 JavaScript。

  • 僅提供前端測試,因為它是一個 UI 驅動的測試工具。

廣告

© . All rights reserved.