参考: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. linux scp 命令使用

      1.scp命令使用 linux 把文件复制到另一台服务器上 复制文件 scp file_name user_name@remote_ip:file_path 复制文件夹 scp -r file_nam ...

    2. 第9.2节 Python的文件打开函数open详解

      一. 引言 在操作一个文件前,大部分情况需要先打开文件,才能进行,在Python中使用内置函数open来打开一个文件.open函数是Python的一个内置函数,io模块 定义的函数open是该内置函数 ...

    3. Python Flask后端异步处理(三)

      前一篇博文我们已经将基础知识和环境配置进行了介绍:https://www.cnblogs.com/Cl0ud/p/13192925.html,本篇博文在实际应用场景中使用Celery,对Flask后端 ...

    4. C#中SQL SERVER 2008字符数据类型使用心得

      一.尽可能使用Varchar,少使用或者不使用Char字符类型 因为char类型输入的数据长度达不到设计长度,会用空格补足,下面是数据表设计图: 下面是编辑前200行的图: 凡是输入的数据长度达不到设 ...

    5. 个人项目作业WC

      项目github地址 https://github.com/gs735028922gs/wordc 项目相关要求 wc.exe 是一个常见的工具,它能统计文本文件的字符数.单词数和行数.这个项目要求写 ...

    6. P1654 OSU! 题解

      \(x\) 为该位置有 \(1\) 的期望. 统计两个值 : \(suma\) 和 \(sumb\). \(suma\) 表示连续 \(X\) 个 \(1\) , \(X\) 的平方的期望, \(su ...

    7. AcWing 334. K匿名序列

      大型补档计划 题目链接 就是把序列分成无数段,每段长度 $ >= K$,然后 \([l, r]\) 这段的花费是 \(S[r] - S[l - 1] - (r - l + 1) * a[l]\) ...

    8. 【python接口自动化】- 使用json及jsonpath转换和提取数据

      前言 ​ JSON(JavaScript Object Notation)是一种轻量级的数据交换格式.它可以让人们很容易的进行阅读和编写,同时也方便了机器进行解析和生成,适用于进行数据交互的场景,比如 ...

    9. uniapp图片转base64

      直接上代码了,网上也很多一样的,这里记录下,因为仅仅第二种在真机微信小程序上我这里测试转换失败,所以就一并写在这里了: //图片转base64 urlTobase64(url){ // #ifdef ...

    10. uniapp-vuex实现tabbar提示点

      底部入口栏的红点提示是app中常见的功能,或者说是必要功能,通常用来提醒用户去查看或操作某个模块内容. 看项目性质如果需要比较多并且灵活的提示,则需要用到长连接技术. 1.红点提示是根据接口返回的数据 ...