Playwright VS Selenium VS Puppeteer VS Cypress - 虫师

时间:2024-02-01 13:44:21

Playwright VS Selenium VS Puppeteer VS Cypress

2021-01-04 17:00  虫师  阅读(8275)  评论(6编辑  收藏  举报

参考:https://www.testim.io/blog/puppeteer-selenium-playwright-cypress-how-to-choose/

这四款自动化测试框架在我们的公众号都有介绍。上周介绍了新出 Playwright,那这款工具有什么优点,是否值得我们投入精力学习。

关键对比

接下来,我会通过一些维度来进行对比。

支持语言

  • Playwright: ✅✅✅✅ 支持主流语言:JavaScript & TypeScript\python\C#\Go\Java
  • Selenium: ✅✅✅✅✅ 支持主流语言:java\python\ruby\C#\C++\JavaScript
  • Cypress: ✅ 只支持 JavaScript & TypeScript
  • Puppeteer: ✅✅ 只支持 JavaScript & TypeScript \ python

覆盖浏览器

  • Playwright: ✅✅✅ 支持Chromium/WebKit/Firefox
  • Selenium: ✅✅✅✅✅ 运行在目前所有主流浏览器上(不包括国内套皮的浏览器)。
  • Cypress: ✅✅ 只支持 Chrome/Firefox
  • Puppeteer: ✅✅ 只支持 Chrome/Firefox

支持多标签 + 表单

  • Selenium: ✅✅✅ 通过 switch_to 切换,但不好用。
  • Cypress: ❌ 没有真正支持
  • Puppeteer: ✅✅✅✅✅ 更符合直觉的 API
  • Playwright: ✅✅✅✅✅ 更符合直觉的 API

为证明playwright 更简单,我们来做个代码对比。

测试创建速度

  • Selenium: ✅ Yes Selenium IDE可以录制脚本。
  • Cypress: ❌ 不支持脚本录制。
  • Puppeteer: ✅✅ Yes 基于Puppeteer Recorder录制脚本。
  • Playwright: ✅✅ Yes 基于 playwright codegen 命令录制脚本。

并行网格和基础服务

  • Selenium: ✅ Yes 托管或构建自己解决方案。
  • Cypress: