當我們在做UI自動化時,需要確定用什么自動化框架和工具,我們會考慮從三個方面入手:控制方案、執(zhí)行方案、結果上報方案,通俗點講就是:模擬人工操作的工具,管理和執(zhí)行測試用例的工具,用來展示結果報告的工具,同時還應該考慮這三部分所普適的編程語言,從這些方面入手去找到適合自己項目需求的框架或工具,然后將它們結合起來使用到項目中。在這之前,我們有必要了解下當前流行的一些框架和工具的類型有哪些,各有什么優(yōu)勢和劣勢。
1 測試框架類型
瀏覽器控制框架
? ? 主要是用來控制瀏覽器或者app上的元素,常見的框架有:
? ? Web: Selenium/TestCafe/Cypress/Playwright/Puppeteer/Protractor/Nightmare
? ? Mobile app: Appium/Robot Framework
管理測試用例設計框架
? ? 主要是用來組織測試用例設計以及測試用例的結構,常見的框架有:
? ? All: Cucumber
? ? JS: Mocha/Jest/Jamine/TestCafe/Cypress/CodeceptJS
? ? Ruby: Rspec
? ? Java: TestNG/Junit
? ? Python: pytest
管理測試用例執(zhí)行框架
? ? 主要是用來組織測試用例的執(zhí)行,常見的框架有:
? ? All: Cucumber
? ? JS: Mocha/Jest/Jamine/TestCafe/Cypress/CodeceptJS
? ? Ruby: Rspec
? ? Java: TestNG/Junit
? ? Python: pytest, unittest
?管理測試用例報告框架
主要是用來組織測試結果和展示,常見的框架有:
? ? All: Cucumber/Allure
? ? JS: Mocha/Jest/Jamine/TestCafe/Cypress/CodeceptJS
? ? Ruby: Rspec
? ? Java: TestNG/Junit
? ? Python: pytest, unittest
斷言框架
主要是用來測試結果的斷言,常見的框架有:
All: Selenium
? ? JS: Chai/Jest/Jamine/TestCafe/Cypress/CodeceptJS
覆蓋率框架
? ? 主要是用來收集代碼覆蓋率,常見的框架有:
? ? JS: Istanbul/Jest/blanket
? ? Ruby: Rcov
? ? Java: jacoo / cobertura
可視化測試框架
? ? 主要是用來做可視化測試,常見的框架有:
? ? JS: Cypress/CodeceptJS/Applitools
支持Mock/Spy/Stub
? ? 主要是用來對請求的東西做mock,常見的框架有:
? ? Sinon/Cypress/CodeceptJS
一體化框架
? ? 不需要和其他框架集成,完成整個測試活動, 常見的框架有:
? ? Cypress/CodeceptJS/TestCafe
2 各個測試框架的優(yōu)劣勢對比




參考:https://www.yuque.com/susieyao1314/softwaretesting/ixft8g?