参考:https://www.testim.io/blog/puppeteer-selenium-playwright-cypress-how-to-choose/
这四款自动化测试框架在我们的公众号都有介绍。上周介绍了新出 Playwright,那这款工具有什么优点,是否值得我们投入精力学习。
接下来,我会通过一些维度来进行对比。
switch_to
切换,但不好用。为证明playwright 更简单,我们来做个代码对比。
playwright codegen
命令录制脚本。这个主要评估用例编写之后的失败率,不包含真的发现bug之后的失败。
Selenium: ❌✅ 复杂的自动等待机制。
Cypress: ❌✅ 复杂的机制,并且不能与框架一起工作。
Puppeteer:❌✅ 等待某些元素,但必须手工等待其他元素。
Playwright: ❌✅✅ 最好等待某些元素,但必须手工等待其他元素。
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 就是很好的选择。
当然,对于我来说,新出的自动化工具,我都会关注和学习一下。从而找到它的亮点和优势分享给你们。
联系客服