后selenium時代Web UI自動化測試框cypress


Chapter1

當前最流行的 Web UI自動化測試方案

1

selenium+webdriver

優點:selenium 的 API 封裝遵循 W3C 提供的 webdriver 標准,很好的支持主流瀏覽器chrome,firefox,IE,Safari等,無論從資料量,社區活躍度,第三方拓展方案等都是首選

缺點:這個方案的一般工作流程是:測試用例 -> 測試框架 -> selenium -> webdriver -> 瀏覽器,這個流程每加一個環節,用例的編寫,維護和調試成本都會上升

那還有沒有其他的方案呢?答案是肯定的

2

Inject script方案

什么是inject script?

Inject script 的方式是指在瀏覽器打開的 Web 應用內注入測試引擎、測試用例等腳本,將測試用例執行在被測試應用的運行時中(這跟使用selenium 調用js腳本是不一樣的)

inject script和selenium webdriver的區別:

依托於 selenium 構建的測試框架的核心問題在於都是從外部控制瀏覽器和 Web 應用,執行命令或者獲取信息都需要通過網絡請求進行交互,因此交互的信息需要進行序列化。這不僅限制了交互的內容,還對 debug 帶來了極大的不便,同時網絡請求帶來的開銷也讓測試變得更加緩慢。

與之相反的是 inject script 選擇從內部控制瀏覽器,測試用例代碼將和被測試的 Web 應用運行在同一個瀏覽器運行時中,可以理解為注入的腳本即為測試客戶端,與后端建立通信,所有的操作指令都是通過 Javascipt 實現並執行,本質上只是函數的調用,客戶端和后端之間的通信僅用於測試結果的收集,不包含具體的指令執行

 

Chapter2

Inject script方案的代表:Cypress

1

Cypress簡介

先看看cypress是如何做自我介紹的

 

web技術已經進化了,web的測試技術最終還是跟上了腳步,是誰呢?

對在瀏覽器中運行的任何東西進行快速、簡單和可靠的測試

當然是cypress

出現前:selenium方案

需要框架:Mocha Qunit Jasmine Karma

需要斷言庫:Chai Expect.js

二次封裝:Protractor Nightwatch Webdriver

第三方庫:Sinon TestDouble

cypress是一個一體化測試框架 mock ,斷言 ,打樁都有了唯獨沒有selenium

2

Cypress特點

特點一、從不使用selenium

大多數端到端測試工具都是基於selenium的,這就是為什么它們都有相同的問題。為了讓Cypress與眾不同,Cypress使用全新的架構,它運行在與應用程序相同的運行循環中,而selenium則通過網絡執行遠程命令

特點二、專注於做好端到端測試

Cypress不是一個通用的自動化框架,也不是一個用於后端服務的單元測試框架。已經有很好的工具可以做到這一點。相反,我們專注於一件事——當您為您的網絡應用程序編寫端到端測試時,提供良好的使用體驗

特點三、在任何前端框架或網站上工作

Cypress可以測試任何在網絡瀏覽器中運行的東西。Cypress周圍的所有架構都是為了特別好地處理現代JavaScript框架而構建的。我們有數百個項目使用最新的React,Angular,Vue,Elm等。框架。Cypress也同樣適用於舊的服務器渲染頁面或應用程序

特點四、只能用JavaScript編寫

雖然您可以從任何其他語言編譯成JavaScript,但最終測試代碼是在瀏覽器本身內部執行的。沒有語言或驅動程序綁定——現在有,將來也只會有JavaScript

特點五、一體化

編寫端到端測試需要許多不同的工具協同工作。有了賽普拉斯,你可以在一個地方得到多種工具。沒有必要安裝10個獨立的工具和庫來設置您的測試套件。我們采用了一些您可能已經熟悉的同類最佳工具,並使它們無縫地協同工作

特點六、測試和開發同樣適合

我們的目標之一是讓測試驅動的開發成為端到端測試的現實。當您在構建應用程序時使用柏樹是最好的。我們給你盡快編碼的能力

特點七、運行速度飛一般的感覺

這些架構上的改進首次釋放了使用完整的端到端測試進行TDD的能力。cypress已經是一個成熟的框架,因此測試和開發可以同時進行。您可以在通過測試驅動整個開發過程的同時更快地開發,因為:您可以看到您的應用程序;您仍然可以訪問開發工具;並且變化被實時反映。最終結果是你將會開發更多,你的代碼將會更好,並且它將會被完全測試。如果您選擇我們的儀表板服務,並行化和自動負載平衡將進一步提高您的測試速度

chapter3

小結

1

ThroughWorks技術雷達

這里說明下為什么沒選TestCafe作為Inject Script的代表

使用ThroughWorks技術雷達來解釋2019年4月的資料

 

2

Cypress已經采納

3

而TestCafe還在試驗中

如果你的團隊沒有js的學習成本或者,有一定的js基礎,又面臨selenium自動化性能差,響應時間長,資源加載慢等問題的困擾,不妨嘗試下Cypress

最后送上傳送門:https://www.cypress.io/

往期

好評


免責聲明!

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



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