參考:https://www.testim.io/blog/puppeteer-selenium-playwright-cypress-how-to-choose/前端
這四款自動化測試框架在咱們的公衆號都有介紹。上週介紹了新出 Playwright,那這款工具備什麼優勢,是否值得咱們投入精力學習。java
接下來,我會經過一些維度來進行對比。python
switch_to
切換,但很差用。爲證實playwright 更簡單,咱們來作個代碼對比。web
playwright codegen
命令錄製腳本。這個主要評估用例編寫以後的失敗率,不包含真的發現bug以後的失敗。瀏覽器
Selenium: ❌✅ 複雜的自動等待機制。
Cypress: ❌✅ 複雜的機制,而且不能與框架一塊兒工做。
Puppeteer:❌✅ 等待某些元素,但必須手工等待其餘元素。
Playwright: ❌✅✅ 最好等待某些元素,但必須手工等待其餘元素。ruby
Selenium: ❌ 不支持以多種方式選擇元素
Cypress: ❌ 不支持以多種方式選擇元素
Puppeteer❌ 不支持以多種方式選擇元素
Playwright: ❌✅✅ 很是前景,開始支持自定義選擇器引擎。框架
注:要分範圍 1 ~ 5,表明分值,分值越高說明越優。工具
categories | Playwright | Selenium | Cypress | Puppeteer |
---|---|---|---|---|
支持語言 | 4 | 5 | 1 | 2 |
覆蓋瀏覽器 | 3 | 5 | 2 | 2 |
多標籤&表單 | 5 | 3 | 0 | 5 |
測試編寫速度 | 4 | 4 | 4 | 3 |
並行,網格 | 0 | 4 | 2 | 0 |
穩定性 | 4 | 3 | 3 | 3 |
智能定位 | 3 | 2 | 2 | 2 |
Debugging | 3 | 2 | 3 | 2 |
文檔和資源 | 3 | 4 | 4 | 3 |
首先,這些測試工具都是基礎。他們只是提供了一套API來定位和操做元素。並不能成爲你自動化項目成功或失敗的決定因素。性能
自動化的是否成功我認爲主要取決於如下幾個方面:學習
好了,這些工具都沒法決定自動化項目是否成功,那怎麼選?
若是,你不懂而且也不打算學習JavaScript, 那麼就不用選 Cypress 和 Puppeteer 了。
若是,你只是一個新手,那麼仍是穩妥點,先學會Selenium,這是測試的必備技能。
我很是鼓勵那些有一些自動化經驗的同窗嘗試學習JavaScript,他會讓你對前端(web)技術有更深的理解,由於你要測試的就是前端(web)應用。就像我可靈活的控制元素的隱藏,修改屬性,更快速的定位到疑難雜症的元素,這徹底是由於我作過前端開發。Cypress 或 Puppeteer 就是很好的選擇。
固然,對於我來講,新出的自動化工具,我都會關注和學習一下。從而找到它的亮點和優點分享給大家。