cypress vs nightwatch vs playwright-core vs puppeteer vs selenium-webdriver vs webdriverio
- 2024年初,Playwright首度超过Cypress成为最流行JS E2E测试框架。当然这里比较的是
playwright-core
,有点投机,因为它是被playwright
和@playwright/test
所依赖,真正意义上的测试框架应该是playwright家族里的@playwright/test
,不管怎么样全面超过只是时间问题。见 Playwright Test新一代Web自动化测试框架 - puppeteer逐渐被Playwright反超更多,但依旧流行。见 Puppeteer的替代者Playwright
- 剩下的其他一些框架就都拉开了很大的距离
最近,在尝试给Cypress做一个插件,就发现Cypress的并行模式--parallel
居然要用到云服务,居然不是免费支持的,而Playwright没有任何限制,直接支持并行还有shard模式。这就是为什么又有 Sorry Cypress 这样的东西出来。
因为Playwright实际上也支持Component测试,这也是当今比较流行的一种测试,尤其是正对vue,react这样的前端组件库,它大概是介于e2e和单元测试之间的测试。下面就再来个纵向比较,也就是e2e和unit test测试框架的比较
jest vs mocha vs playwright-core vs vitest
- 无疑Jest依旧是最流行的单元测试框架,且遥遥领先
- 老牌Mocha虽然排第二,但也大概只有Jest的三分之一
- Playwright虽然不能和上面2个比但也在逐步上升,毕竟它不是单元测试框架
- 号称新一代的测试框架Vitest依托Vite的支持,也占有一定的位置
个人猜想: Playwright目前的Component测试功能依旧是experimental
实验性的,并没有发布正式版,而且已经很久了,感觉是不是遇见了什么无法解决的问题。 然后就看到这个讨论 Recommend Playwright rather than Cypress · Issue #2639 · vuejs/docs (github.com) Vuejs官方更推荐Playwright而不是Cypress,但就是组件测试还是实验性的。然后Playwright大概意思就是自己对组件不是很熟,毕竟前端组件和nodejs还是有点区别,需要Vue这样的对前端组件熟的团队的帮忙,但组件除了Vue还有react等其他组件也需要支持,这样就是有点麻烦,希望可以尽快实现。