自動化測試系列 —— UI自動化測試

软件测试潇潇發表於2024-04-01

UI 測試是一種測試型別,也稱為使用者介面測試,透過該測試,我們檢查應用程式的介面是否工作正常或是否存在任何妨礙使用者行為且不符合書面規格的 BUG。瞭解使用者將如何在使用者和網站之間進行互動以執行 UI 測試至關重要,透過執行 UI 測試,測試人員將嘗試模仿使用者的行為,以檢視使用者將如何與程式進行互動,並檢視網站的執行情況是否如預期的那樣,是否有缺陷。

什麼是 UI 測試?

UI 測試涵蓋了使用者互動部分,包括使用者關注的網站結構和視覺部分。Web 網站包含許多來自 CSS,JavaScript 和許多其他語言的不同 Web 元素,網站元素可以連線到螢幕、鍵盤、滑鼠或使用者用於與網站進行互動的任何其他工具,UI 測試則捕獲這些元素並對其進行測試和宣告。

在執行 UI 測試時,需要注意確保應用程式不存在任何跨瀏覽器相容性問題。由於每個瀏覽器都使用不同的瀏覽器引擎,並且可能不支援相同的 CSS 功能。因此,確保UI 在所有主要瀏覽器上無縫呈現非常重要。在不同的瀏覽器上進行測試稱為跨瀏覽器測試,可以幫助測試人員在所有主要瀏覽器和裝置(包括手機,平板電腦等)的多種組合下測試其網站。

自動化測試系列 —— UI自動化測試

手動或自動,如何選擇?

與其他任何型別的測試一樣,UI 測試也可以手動或透過自動化執行。手動測試要求測試人員在每個元素上手動執行每個測試。例如,測試輸入欄位將需要針對任何差異一次又一次地鍵入不同的值。如果網站 UI 的元件較少​​,則最好透過手動過程進行 UI 測試,快速地完成。但它不適合複雜的網站,使用者介面豐富的網站使手動 UI 測試則非常低效,費時且容易出錯。

適合UI自動化測試的場景

不是所有的測試場景都適合用自動化測試來實現,對此,可以參考以下的標準輔助判斷:

  • 專案的需求不會頻繁變動
  • 頁面的 UI 已經進入穩定階段
  • 專案週期足夠長
  • 大量回歸的測試任務

其中,有些專案是明顯不適合使用 UI 自動化測試的,例如影片播放器,音樂播放器等交動性強,併發依賴強的軟體。

UI自動化測試的優點

UI自動化測試過程簡化了建立UI測試、執行測試以及檢視結果的過程,開發和測試團隊選擇自動化UI測試的原因有很多,最值得注意的包括:

  • 時間 – 手動測試速度很慢,無法與許多開發過程保持同步。
  • 成本 – 手動測試需要大量資源且成本很高。
  • 準確性 – 執行重複性任務時,手動測試容易出現更多錯誤。相反,自動化減少了這些錯誤的機會。
  • 規模化 – 執行復雜的迭代時,很難依靠手動測試。
  • 趨勢 – 大多陣列織已經意識到如何從自動化測試中受益,因此,跳上自動化潮流的壓力越來越大。

UI自動化測試設計原則

  • 一個測試用例完成一個功能點測試(常用):一個手工用例對應一個自動化測試用例;
  • 一個指令碼是一個完整的場景;
  • 指令碼之間獨立,不能有依賴(指令碼間相互隔離):例如與登陸狀態相關的用例:個人中心、訂單詳情、下單購物等,如果指令碼之間不獨立,相互依賴,在登陸的測試指令碼失敗的情況下,會導致個人中心、訂單詳情、下單購物的測試指令碼全軍覆滅,後續修復與維護成本高;
  • 設定合適的檢查點:透過斷言判斷用例的成功與否;
  • 設計良好的框架:Python 常用的測試框架有 unittest 與 pytest,利用框架,及對共用的測試模組進行封裝,減少自動化測試指令碼維護的工作量;

WEB端UI測試工具介紹

API測試用例主要由4個部分組成,分別是:用例的基礎資訊、前置步驟、請求指令碼以及斷言。

UTF

UTF( Unified Functional Testing) = QTP( Quick Test Pro) + ST( Service Test)由 HP 公司開發。它是一種企業級的自動測試工具,提供了強大易用的錄製回放功能,同時相容物件識別模式與影像識別模式兩種識別方式,支援 B/S 與 C/S 兩種架構的軟體測試,是目前主流的自動化測試工具。主要是用於迴歸測試和同一軟體的新版本測試。

Robot Framework

是一款基於 Python 語言編寫的自動化測試框架,具備良好的可擴充套件性,支援關鍵字驅動,可以同時測試多種型別的客戶端或者介面,可以進行分散式測試。

Selenium

Selenium概要

Selenium 也是一個用於 Web 應用程式測試的工具,支援多平臺、多瀏覽器、多語言去實現自動化測試,目前在 Web 自動化領域應用最為廣泛。

Selenium 是最廣泛使用的開源 Web UI(使用者介面)自動化測試套件之一,最初由傑森·哈金斯(Jason Huggins)於 2004 年開發,作為 Thought Works 的內部工具。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 Automation 測試要求我們只編寫一次測試,然後一次又一次地執行它們,而不會以不同的值和不同的方案進行任何干預。
  • 準確性:只要測試編寫正確,Selenium Automation 測試就可以幫助我們正確執行測試。手動測試的主要缺點是容易發生人為錯誤。
  • 透明度:Selenium Automation 測試還有助於快速生成報告,並在測試完成後立即與團隊共享。另一方面,手動測試需要時間來提取結果並手動報告結果以透過軟體或手動生成報告。

總結

UI測試是軟體測試周期的重要組成部分,是改善使用者體驗和客戶滿意度的重要驅動力,大多數終端使用者更關心他們實際看到和觸控的內容。因此,這也是為什麼UI或使用者介面變得如此重要,從而進行UI測試的原因。

最後感謝每一個認真閱讀我文章的人,禮尚往來總是要有的,這些資料,對於【軟體測試】的朋友來說應該是最全面最完整的備戰倉庫,雖然不是什麼很值錢的東西,如果你用得到的話可以直接拿走:

如果你想學習軟體測試和需要軟體測試資料,歡迎加入扣扣交流群:731789136,裡面可以免費領取軟體測試+自動化測試資料+軟體測試面試寶典+簡歷模版+實戰專案+面試刷題工具和大佬答疑解惑,我們一起交流一起學習!

相關文章