作者:京東零售 杜興文
隨著前端技術的不斷發展和應用程式的日益復雜,前端自動化測驗也在不斷演進,
Web 前端 UI 自動化測驗發展史可以追溯到 2000 年,當時最早的 Web 應用程式越來越復雜,開發人員開始使用自動化測驗工具來確保應用程式的正確性和可靠性,
在早期,自動化測驗是通過使用腳本或腳本來模擬用戶的操作來完成的,這些測驗工具通常基于 JavaScript 撰寫,并且需要對 Web 應用程式的互動方式進行深入了解,
隨著 Web 應用程式變得越來越復雜,自動化測驗的需求也越來越高,2005 年,Selenium 開始流行,它是一種基于 Java 的自動化測驗框架,可以用于模擬用戶操作并進行 Web 應用程式的自動化測驗,
Selenium 和其他自動化測驗工具的出現使得 Web 前端 UI 自動化測驗變得更加容易和高效,隨著 Web 應用程式的不斷演變,自動化測驗工具也在不斷更新和發展,如今,自動化測驗已經成為 Web 應用程式開發程序中不可或缺的一部分,它們可以幫助開發人員更快地發現和修復錯誤,提高應用程式的性能和可靠性,
下面是前端自動化測驗經歷的階段:
- 手動測驗:早期的前端開發程序中,開發人員需要手動測驗代碼的正確性,這需要大量的時間和精力,
2.單元測驗:隨著前端技術的不斷發展,單元測驗開始出現,單元測驗是一種自動化測驗方法,它測驗代碼中的最小可測驗單元,例如函式或模塊,單元測驗可以幫助開發人員更快地發現和修復代碼中的錯誤,
-
集成測驗:集成測驗是單元測驗的進一步發展,它將單元測驗集成到整個應用程式的測驗中,這種方法可以更快速地發現整個應用程式中的錯誤,
-
端到端測驗:端到端測驗是一種自動化測驗方法,它測驗從輸入到輸出整個端到端應用程式的程序,這種方法可以幫助開發人員更快地發現和修復應用程式中的整個端到端錯誤,
-
持續集成和持續交付:持續集成和持續交付是一種自動化測驗方法,它將測驗集成到整個開發周期中,包括代碼提交、構建、測驗、部署等環節,這種方法可以幫助開發人員更快地交付高質量的應用程式,
-
自動化測驗框架和庫:隨著前端自動化測驗的不斷發展,出現了許多自動化測驗框架和庫,這些框架和庫可以幫助開發人員更快速地撰寫和運行測驗用例,提高測驗效率和質量,
-
人工智能和機器學習:最近這些年來,人工智能技術和機器學習方法逐漸應用于前端自動化測驗中,這些方法可以幫助開發人員更快速地識別和修復錯誤,提高測驗效率和質量,
總之,前端自動化測驗是一個不斷發展的領域,隨著前端技術的不斷發展和應用程式的日益復雜,測驗人員需要不斷地學習新技術和方法來跟上變化,
同時呢,我們在做前端自動化的時候又會伴隨著一些挑戰
撰寫 UI 測驗腳本可能會很耗時,因為這部分作業需要測驗回圈之前就要做好,但這份辛苦是值得的;只不過,UI 腳本本質上是脆弱的,大多數測驗是通過 Selenium 測驗腳本完成的,這些腳本可以用多種語言撰寫,例如 Java、Python 和 C++,
下面列舉一些挑戰事項:
- 重知識,撰寫腳本的人必須具有該方面的技術知識和經驗,
- 耗時,由于流程的原因,一項測驗可能需要 5 – 10 多分鐘才能運行,加載瀏覽器 > 執行任務 > 設定和決議測驗 > 資料加載等等,
- 維護,現代應用程式具有動態前端 UI,當同一頁面重新加載時,其中的元素定位器和鏈接可能會在后臺更改它們的定義方式,等待條件可能會破壞測驗,如果頁面加載時間更長,則會回傳一個損壞的測驗,
- 處理多個錯誤,復雜的場景意味著巨大的資料量,篩選這個可能很麻煩,
- 故障排除,根據問題的頻率和修復它所花費的時間,找出是什么破壞了測驗可能很困難,
- 動態應用,由于敏捷開發,Web 應用程式以及應用程式本身一直在發生變化,測驗必須從維護角度和結果角度來考慮,
前端自動化測驗最佳實踐又是什么呢,下面列舉一些:
由于用戶界面是用戶觸摸和看到的,因此實作自動化測驗以縮短發布周期至關重要,與開發一樣,所有團隊都可以遵循一些類似的最佳實踐,以確保從他們的自動化投資中獲得豐厚的投資回報,
1. 遵循一致的命名約定,
2. 查看哪些測驗用例應該自動化,
3. 創建質量測驗資料,
4. 保持測驗獨立,
5. 不要只依賴一種型別的測驗,
6. 當您實際上應該暫停 UI 測驗時,請避免系統休眠,
7. 并非所有測驗都必須在所有目標瀏覽器中使用,
8. 研究無頭瀏覽器測驗,
9. 考慮使用BDD 框架,
10. 使用資料驅動與重復測驗,
11. 簡單化測驗,
12. 截取螢屏截圖以改進故障調查,
13. 使用正確的自動化測驗工具,
在過去的幾年里,至少出現了十幾種全新的 UI 測驗自動化工具,由于每個工具都有自己的重點和策略,因此很難從中選擇,不過您可以參考10 個必不可少的 Web UI 測驗工具,只需要辨別哪一個有您的團隊所需要的功能,
正如任何一個UI測驗人員可能會爭論的那樣,UI 測驗相對簡單,只要您的 GUI 中沒有任何變化,但問題是……界面一直在變化,根據您為 UI 測驗選擇的解決方案,不斷變化的條件可能是具有自我修復和 AI 定位器的革命性體驗,也可能是復雜的手動作業流程的嚴重失敗,
以下是一些常用的 Web 前端 UI 自動化測驗工具:
1. Parasoft Selenic
2. Katalon
3. Selenium IDE
4. mabl
5. TestIM
6. Functionize
7. Perfecto
8. TestCraft
9. Squish
10. AutonomIQ
1. Parasoft Selenic
Parasoft Selenic最亮的功能莫過于自我修復和AI驅動建議,可幫助團隊有效維護其現有的Selenium腳本,無需退出Selenium即可從高級UI測驗穩定性中受益,通過將簡單的單行代碼更改為命令列執行,即可激活適合現有CI / CD管道的功能; 一個智能的測驗創建作業流程,使測驗人員可以使用頁面物件模型快速創建可維護的Selenium測驗,
優點:
- 智能記錄器可以輕松創建使用頁面物件模型的 Selenium 測驗
- 可以對現有的 Selenium 測驗執行故障恢復,并在現有的 Selenium 測驗中推薦智能定位器
- 通過利用您現有的 Selenium 腳本或創建新的 Selenium 腳本,直接集成到您的 CI/CD 管道中
- 提供測驗影響分析技術,自動識別需要在 CI/CD 管道中執行哪些 Selenium 測驗以驗證新的代碼更改
- 提供各個級別的客戶支持(不僅僅是企業)
- 支持 BDD,專注于底層Java(JUnit和TestNG)Selenium測驗代碼的維護
缺點:
- 此商業產品沒有免費許可證,但可以免費試用,
- 這個產品還是比較新的,當前版本支持 Java、JUnit 4 & 5、TestNG、Cucumber、Eclipse 和 IntelliJ,未來版本將考慮其他支持,
2. Katalon
katalon是近幾年來比較流行的自動化測驗工具,在自動化測驗工具年度評選中僅次于selenium位居第二,他與selenium有著很多相似的地方又有很多不同,比如說他們有如下相同點:
他們都可以進行網頁自動化測驗,katalon的recorder 對標于selenium IDE,都可以進行網頁的自動化腳本錄制
他們都可以匯出代碼,其中katalon的recorder 也可以匯出selenium的代碼
katalon 的recorder 與seleniumIDE的功能有很多相同,
Katalon的優點:
- 推薦智能定位器
- 使用頁面物件模型(但僅用于在 IDE 中生成和管理的測驗)
- 具有故障恢復功能(通過付費插件)
- 能夠匯出到多種不同型別的測驗腳本
- 支持 BDD,功能檔案執行 Katalon 測驗代碼
缺點:
- 雖然您可以將測驗匯出為 Selenium 和其他測驗腳本,但是一旦匯出,將失去 Katalon 的所有可用性,并且匯出不包括頁面物件模型,這意味著測驗變得難以重用和維護
- 他們的客戶支持僅在企業級別可用,而且非常昂貴
- 不直接集成到您現有的執行框架中(使用專有框架,CI 集成可用作插件)
3. Selenium IDE
Selenium IDE應該說是我們用的最多的web自動化測驗工具了,Selenium IDE(集成開發環境)是套件中可用的最簡單的框架, 它用作為Firefox插件,因此安裝和使用非常簡單, 通過極少的編程知識和接近零的培訓,就可以開始使用Selenium IDE, 對于初學者,要了解Selenese命令,還要了解腳本語法,這是一個很好的工具,
它提供了一個GUI(圖形用戶界面),用于在Firefox瀏覽器中記錄必要的操作,選擇在Firefox瀏覽器當前顯示的頁面上顯示的UI元素時,Selenium IDE運行時的右鍵單擊將根據所選UI元素的背景關系顯示具有預定義引數的Selenium命令串列,這使腳本變得更加容易!
更多請閱讀:https://www.yiibai.com/hotnews/tempa/ide-benefits-limitations.html
優點:
- 很容易安裝和使用,
- 不需要編程經驗,
- 具有內置的幫助功能,并顯示所選或輸入的命令的檔案
- 通過顯示資訊和錯誤訊息幫助除錯,
- 它允許在必要時設定斷點,插入命令和注釋,
- 為擴展提供良好的支持,有助于匯出可在Selenium RC和WebDriver中執行的測驗,
缺點:
- 作為Firefox插件,它不支持Mozilla Firefox以外的任何瀏覽器,
- 它沒有明確提供幫助來支持警報,彈出視窗和導航,
- 它不支持監聽器,
- 不支持錯誤處理和資料庫測驗,
- 它不能用于測驗iPhone和Android應用程式,
- 不支持從外部檔案讀取和上傳檔案,
- 不支持迭代和條件操作,
//更多請閱讀:https://www.yiibai.com/hotnews/tempa/ide-benefits-limitations.html
關鍵要點:Selenium IDE 使用簡單,讓用戶能夠快速創建針對其 Web UI 的測驗,它對 Selenium 非常友好,對于習慣了該框架的人來說會感覺很便利,
4. mabl
優點:
- 推薦智能定位器(但對用戶來說有點模糊)
- 故障恢復功能運作良好
- SaaS解決方案;易于訪問和入門
- 可擴展的定價模型
缺點:
- 記錄流程時不使用頁面物件模型
- 使用自己的框架,沒有測驗腳本的匯入匯出
- 雖然存在 CI 集成,但您無法將解決方案直接集成到現有框架中
- 如果某些事情沒有按您預期的方式作業,則很難訪問“代碼”以進行配置或操作
- 對“流程”的關注使得創建“功能驗證”(即帶有斷言的測驗)感到尷尬
- 僅 SaaS 解決方案;沒有內部部署,也無法訪問公共互聯網中不可用的應用程式
- 沒有對 BDD 的內置支持
5.TestIM
優點:
- 測驗非常容易創建,具有直觀的用戶界面
- 推薦智能定位器,以及維護它們的絕佳策略
- 多種測驗模式:TestIM 提供了多種測驗模式,包括單元測驗、集成測驗、端到端測驗等,可以滿足不同場景和需求的測驗需求,
- 自動化測驗:TestIM 支持自動化測驗,可以使用 Python、Java 等編程語言撰寫測驗腳本,提高測驗效率和準確性,
- 測驗報告:TestIM 提供了可視化的測驗報告,可以實時展示測驗結果和缺陷數量,幫助開發人員快速了解測驗進展情況,
- 團隊協作:TestIM 支持團隊協作和任務分配,可以方便地管理和協調測驗任務,提高測驗效率和質量,
- 云環境支持:TestIM 支持云環境部署和運行,可以方便地在不同設備和環境中進行測驗和部署,
缺點:
- 在他們的測驗中不使用頁面物件模型
- 缺乏匯入和匯出測驗腳本的能力
- 用戶無法訪問代碼或從 TestIM 中進行測驗
- 供應商鎖定框架——腳本在 TestIM 框架中
- 對 BDD 的支持不明確
6. Functionize
優點:
- 出色的測驗流程可視化顯示
- 為元素推薦多個定位器
- 簡單易用:Functionize 的檔案和 API 非常清晰易懂,使得初學者可以快速上手,
- 功能強大:Functionize 支持多種 Web 應用程式自動化功能,如請求攔截器、回應攔截器、請求工廠、資料可視化等,
- 可擴展性:Functionize 支持自定義插件和擴展,使得開發人員可以輕松地添加和自定義功能,
- 跨平臺支持:Functionize 可以在 Windows、macOS 和 Linux 等多個作業系統上運行,使得開發人員可以在不同的環境下進行開發,
缺點:
- 不能使用頁面物件模型
- 供應商鎖定框架
- 沒有匯入和匯出測驗腳本
- 學習曲線較陡峭:Functionize 的檔案和 API 較為復雜,需要開發人員有一定的 Python 編程基礎才能理解和運用,
- 需要大量的配置:Functionize 的功能非常豐富,但這也需要大量的配置和設定,可能會讓開發人員感到繁瑣,
7. Perfecto
優點:
- 使用頁面物件模型(但僅在其生成的測驗中)
- 為記錄的 Web 元素提供多個定位器
- 最近引入了故障恢復(雖然有點不清楚它的作用或性能如何)
缺點:
- 測驗腳本采用基于 TCL 的專有語言
- 不能匯入自己的 Selenium 腳本
- 雖然它們提供 CI 集成,但它并未直接集成到您現有的框架中
- BDD 通過第三方實施支持,Project Quantum
8. TestCraft
優點:
- 使用頁面物件模型(但僅在其生成的測驗中)
- 推薦智能定位器,稱為“智能系結”
- 功能強大:TestCraft 提供了許多功能,能夠滿足不同型別的測驗需求,
- 易于使用:TestCraft 的安裝和使用方法比較簡單,可以快速上手,
- 跨平臺支持:TestCraft 可以在不同的作業系統上運行,包括 Windows、macOS 和 Linux 等,
- 支持多種測驗語言:TestCraft 可以與多種測驗語言集成,包括 Python、Java、c 等,
- 可以集成到其他工具中:TestCraft 可以與許多其他工具集成,例如 Git、Jenkins 等,
缺點:
- 使用專有框架
- 您不能匯入/匯出測驗腳本
- 不直接集成到您現有的框架中(CI 集成可用作插件)
- 學習曲線較陡峭:TestCraft 的功能很多,因此需要一定的學習曲線,需要花費一定的時間來了解它的使用方法,
- 復雜度比較高:TestCraft 的使用需要一定的技術能力,如果不熟悉測驗理論、方法和工具,可能會感到復雜和困難,
- 費用較高:TestCraft 是一種商業測驗框架,需要支付一定的費用,
9. Squish
優點:
- 廣泛的跨平臺測驗支持
- 強大的光學字符識別 (OCR) 功能
- 獨立于螢屏布局的可靠物件識別和驗證
- 對腳本語言的良好支持
缺點:
- 可能需要改進最終用戶培訓和技術支持,盡管大多數反饋是有利的
- 向物件映射添加新物件時報告的一些問題
10. AutonomIQ
優點:
- 強大的 NLP、AI 和 ML
- 使用頁面物件模型(但僅在其生成的測驗中)
- 通過 Chrome 插件推薦智能定位器
- 在執行程序中故障恢復
- 傳統 BDD 的替代方法(使用專有 NLP),如果您想做傳統的 BDD(即 Cucumber),可能是個缺點
缺點:
- 使用專有框架
- 您無法匯入測驗腳本
- 不直接集成到您現有的框架中(CI 集成可用作插件)
- 不完全成熟的技術
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/550567.html
標籤:其他