参考: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:

    Playwright VS Selenium VS Puppeteer VS Cypress的更多相关文章

    1. 聊聊 PC 端自动化最佳方案 - WinAppDriver

      1. 前言 大家好,我是安果! 一提到自动化,可能大家想到的是 App 端的 Appium.Airtest.AutoJS,亦或是 Selenium.Puppeteer.Cypress 等 Web 端的 ...

    2. Selenium 4.0beta:读源码学习新功能

      Selenium 4 源码分析 这一篇文章我们来分析Selenium 4 python版源码. 除非你对Selenium 3的源码烂熟于心,否则通过对比工具分析更容易看出Selenium 4更新了哪些 ...

    3. 【cypress】5. 测试本地web应用

      在之前的cypress介绍里曾提到过,cypress虽然也可以测试部署好的应用,但是它最大的能力还是发挥在测试本地应用上. 本章主要内容就是关于如何测试本地web应用的概述: cypress与后台应用 ...

    4. Web前端自动化测试Cypress实践总结

      本文主要首先主要介绍了什么是自动化测试,接着对常用的自动化测试框架进行了对比分析,最后,介绍了如果将自动化测试框架Cypress运用在项目中. 一.自动化测试概述 为了保障软件质量,并减少重复性的测试 ...

    5. 高级爬虫面试题测试题 v1.3

      Python Web高级爬虫工程师测试题 (请本文件发送到: SpiderTestQuestion@163.com 并附带简历) 1. 用yield写一个斐波那契数列的生成器函数. 2. 放一段scr ...

    6. 如何Dockerize您的端到端验收测试

      本文作为使用Selenium Docker映像以及CodeceptJS和Express服务器的“操作方法”指南. 其中,我们将涵盖: 什么是E2E验收测试? 为什么要使用Docker? 松散耦合的测试 ...

    7. 深入细枝末节,Python的字体反爬虫到底怎么一回事

      内容选自 即将出版 的<Python3 反爬虫原理与绕过实战>,本次公开书稿范围为第 6 章——文本混淆反爬虫.本篇为第 6 章中的第 4 小节,其余小节将 逐步放送 . 字体反爬虫开篇概 ...

    8. Python 爬虫工程师必看,深入解读字体反爬虫

      字体反爬虫开篇概述 很多人学习python,不知道从何学起.很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手.很多已经做案例的人,却不知道如何去学习更加高深的知识.那么针对这三类人 ...

    9. playwright--自动化(二):过滑块验证码 验证码缺口识别

      前两天需要自动化登录一个商城的后台 用的是playwright 没有用selenium 中间出了一个滑块验证 现阶段playwright教程不是太多,自己做移动的时候各种找,费劲巴拉的.现在自己整出来 ...

    随机推荐

    1. 第7.4节 Python中与众不同的类

      一.    引言 在较旧的Python版本中,类型和类之间泾渭分明:内置对象是基于类型的,而自定义对象是基于类的.因此,你可以创建类,但不能创建类型.在较新的Python 2版本中,这种差别不那么明显 ...

    2. 第十六章、Model/View开发:QColumnView的作用及对应Model

      老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 一.概述 在Qt Designer的Item Views(Model-based)部件中,Colum ...

    3. django 自定义存储上传文件的文件名

      一.需求: Django实现自定义文件名存储文件 使文件名看起来统一 避免收到中文文件导致传输.存储等问题 相同的文件也需要使用不同的文件名 二.实现思路: 思路: 生成14位随机字母加数字.后10位 ...

    4. Object.prototype.toString.call()为什么可以用来检测数据类型?

      obj.toString()方法是用来干什么的 每一个对象都有一个toString()方法,默认情况下toString()被每一个Object对象继承,如果此方法未被重写,toString()返回&q ...

    5. angular 双向数据绑定与vue数据的双向数据绑定

      二者都是 MVVM 模式开发的典型代表 angular 是通过脏检测实现,angular 会将 UI 事件,请求事件,settimeout 这类延迟的对象放入到事件监测的脏队列,当数据变化的时候,触发 ...

    6. Python最会变魔术的魔术方法,我觉得是它!

      在上篇文章中,我有一个核心的发现:Python 内置类型的特殊方法(含魔术方法与其它方法)由 C 语言独立实现,在 Python 层面不存在调用关系. 但是,文中也提到了一个例外:一个非常神秘的魔术方 ...

    7. JavaSE17-File&递归&字节流

      1.File类 1.1 File类概述和构造方法 File类介绍 它是文件和目录路径名的抽象表示 文件和目录是可以通过File封装成对象的 对于File而言,其封装的并不是一个真正存在的文件,仅仅是一 ...

    8. 图的建立以及应用(BFS,DFS,Prim)

      关于带权无向图的一些操作 题目:根据图来建立它的邻接矩阵,通过邻接矩阵转化为邻接表,对邻接表进行深度优先访问和广度优先访问,最后用邻接矩阵生成它的最小生成树: 1.输入一个带权无向图(如下面图1和图2 ...

    9. 用burp爆破tomcat的过程

      首先burp抓包,将抓到的包放到intruder中 通过burp中自带的解码得知账号密码中有个":"号 所以我们选择的数据类型为Custom iterator 第二条输入" ...

    10. 关于_tostring[php]的另类利用

      收获 反序列化tostring的考点不一定要考察调用一个Class,也可以使用echo来进行考察 tostring()方法:在直接输出对象引用的时候,就不会产生错误,而是自动调用了__tostring ...