干货!Playwright架构与Selenium 架构对比

这篇具有很好参考价值的文章主要介绍了干货!Playwright架构与Selenium 架构对比。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

干货!Playwright架构与Selenium 架构对比,自动化测试,Playwright,selenium,chrome devtools,Powered by 金山文档

在 Web 测试自动化方面,Selenium 多年来一直是行业的主导工具。但是,市场上还有许多其他自动化测试工具。Playwright是一种较新的工具,已经越来越受欢迎。网上有很多文章对二者进行对比,今天我从二者的架构角度进行一下对比分析!关于二者在其他方面的区别,我会在后面的文章中持续更新,也欢迎大家关注。

Selenium 架构

干货!Playwright架构与Selenium 架构对比,自动化测试,Playwright,selenium,chrome devtools,Powered by 金山文档

蓝色图中的Selenium Language Binding就是我们平时使用的编码语言,包括java、python等等。可以看到这些语言并没有直接与Browser Drivers进行通信,而是通过了JSON WireProtocol,这就是webdriver协议,然后通过webdriver协议在与各个浏览器的driver进行通信,最后各个浏览器的driver与其对应的浏览器进行通信。这里我们以chromedriver为例进行讲解,他负责与chrome浏览器进行通信。我们在代码中直接 newChromeDriver() 将会启动一个 ChromeDriver进程,ChromeDriver是一个独立的服务,它是google为网站开发人员提供的自动化测试接口,是 selenium 和chrome浏览器进行通信的桥梁。chromeDriver解析webdriver协议,然后根据解析结果,调用与之对应的Chrome DevTool Protocol(CDP)协议来操控chrome浏览器,它可以和浏览器内核进行交互进而操控浏览器,这里就不对该协议进行详细介绍了。另外,其他浏览器的dirver与其对应浏览器的通信原理与ChromeDriver类似。

Playwright 架构

干货!Playwright架构与Selenium 架构对比,自动化测试,Playwright,selenium,chrome devtools,Powered by 金山文档

client:在客户端是我们用不同的编程语言编写的代码,如JavaScript,Java,Python,C#等。

server:Playwright的server通过nodejs构建并负责与client 以及不同的 Web 浏览器引擎进行通信。

通信协议:client通过WebSocket 协议与Playwright server 通信;

Playwright使用 Chrome DevTools 协议(CDP)与 Chromium 通信。对于Firefox和WebKit,Playwright实现了自己的协议,类似于CDP。一旦触发测试,client端代码将被转换为JSON格式,然后使用websocket协议发送到服务器。palywright通过单个 websocket 协议连接传达所有请求,该连接将保持不变,直到所有测试执行完成。由于命令是在单个连接上发送的,因此测试失败或不稳定的可能性较小,并且命令可以快速执行。这种架构与Selenium相反,Selenium使用HTTP连接协议,并将每个命令(如浏览器打开,单击,发送密钥或关闭浏览器)作为单独的HTTP请求发送。此外,在Selenium中,服务器和客户端之间的连接将在每次请求后终止,并为下一个请求重新建立最后划重点:这就是Playwright比selenium快的原因!文章来源地址https://www.toymoban.com/news/detail-524464.html

到了这里,关于干货!Playwright架构与Selenium 架构对比的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • playwright自动化上传附件

    自动设置上传头像 1. 首先保存本地一个文件,例如 aaa.php 2. 获取输入类型为 \\\"file\\\" 的按钮 3. 将本地保存的图片路径赋值 4. 点击上传按钮

    2024年02月07日
    浏览(44)
  • 自动化神器 Playwright 的 Web 自动化测试解决方案

      1. 主流框架的认识 总结: 由于Selenium在3.x和4.x两个版本的迭代中并没有发生多大的变化,因此Selenium一统天下的地位可能因新框架的出现而变得不那么稳固。 后续的Cypress、TestCafe、Puppeteer被誉为后Selenium时代Web UI自动化的三驾马车。但是由于这三个框架都是基于JavaScript开发

    2024年02月02日
    浏览(56)
  • 基于Playwright自动化测试部署方案

    基于playwright框架,搭建了自动化测试项目,在服务器上使用Docker起容器跑镜像,镜像内容基于playwright的官方镜像,并向其中移入了host文件,以便切换测试用例运行所在的环境(测试/线上环境)。 引入测试用例的管理后台,方便测试用例与测试报告的管理。管理后台中可以

    2024年02月13日
    浏览(42)
  • 自动化神器Playwright快速上手指南

    Playwright是由微软公司2020年初发布的新一代自动化测试工具,相较于目前最常用的Selenium,它仅用一个API即可自动执行Chromium、Firefox、WebKit等主流浏览器自动化操作。作为针对 Python 语言纯自动化的工具,在回归测试中可更快的实现自动化。 1. 为什么选择Playwright 1.1 Playwright的

    2024年02月06日
    浏览(49)
  • 新一代自动化测试神器Playwright

    转载请注明出处❤️ 作者:测试蔡坨坨 原文链接:caituotuo.top/4bedb73c.html 你好,我是测试蔡坨坨。 说到WebUI自动化测试,首当其冲的当属Selenium,在很长的一段时间内,Selenium统治着Web自动化,Selenium其实经历了四个阶段,从2006年发布的Selenium 1.0到最新的Selenium 4.8.3。 2006年,

    2023年04月15日
    浏览(58)
  • 最强自动化测试框架Playwright(9)- 下载文件

    对于页面下载的每个附件,都会发出 page.on(“download”) 事件。 下载开始后,将发出下载事件。下载完成后,下载路径将变为可用 所有这些附件都下载到一个临时文件夹中。可以使用事件中的下载对象获取下载 URL、文件系统路径和有效负载流。 关闭浏览器上下文时,将

    2024年02月13日
    浏览(52)
  • 最强自动化测试框架Playwright(20)- iframe

    一个页面可以附加一个或多个 Frame 对象。每个页面都有一个主框架,并且假定页面级交互(如)在主框架中运行。 click 使用 iframe 时,可以创建一个框架定位器,该定位器将进入 iframe 并允许选择该 iframe 中的元素。 上面代码,先定位frame,然后定位frame里的元素,并对元素

    2024年02月13日
    浏览(39)
  • java+Selenium+TestNg搭建自动化测试架构(3)实现POM(page+Object+modal)

    1.Page Object是Selenium自动化测试项目开发实践的最佳设计模式之一,通过对界面元素的封装减少冗余代码,同时在后期维护中,若元素定位发生变化,只需要调整页面元素封装的代码,提高测试用例的可维护性。 PageObject设计模式:是将某个页面的所有\\\"元素(包含控件)属性

    2024年02月06日
    浏览(47)
  • Playwright-Node.js 自动化办公

    注意本文档建立在playwright-nodejs1.16版本基础上,本教程并未完全参照官方文档(主要是在这个版本之前就已经接触playwright-python   Playwright可在所有现代浏览器中实现快速,可靠和强大的自动化。本指南涵盖了这些关键区别因素,以帮助您为自动化测试选择合适的工具。 支持所有

    2023年04月15日
    浏览(51)
  • 最强自动化测试框架Playwright(29)-文件选择对象

    FileChooser对象通过page.on(\\\"filechoose\\\")事件监听。 如下代码实现点击百度搜图按钮,上传文件进行搜索。 为文件选择器设置要上传的文件路径 file_chooser.set_files(files) file_chooser.set_files(files, **kwargs) 返回文件选择器关联的input元素 file_chooser.element 返回文件选择器是否接收多个文件

    2024年02月12日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包