参考: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 就是很好的选择。
固然,对于我来讲,新出的自动化工具,我都会关注和学习一下。从而找到它的亮点和优点分享给大家。