自动化潮流框架——Playwright 大解密!

一说到自动化测试,第一个反应估计就是Python+selenium这样的一个组合,其实在2020年的时候市面上就出现了另一个由微软发布的一款UI自动化测试工具,叫Playwright。经过几年的迭代和技术的沉淀,该工具受到越来越多的人重视和青睐。

Best of JS 网站曾经做过一个关于各个测试框架在 GitHub 新增的 star 数量的统计Playwright位于榜首位置,其受欢迎的程度可见一斑。

图片

Playwright凭借自身的优势和近几年的迭代,在自动化测试领域开始崭露头角,使用场景也越来越多。

图片

肯定有人好奇Playwright和selenium区别:

Playwright架构

图片

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协议发送到服务器。

Playwright通过单个 websocket 协议连接传达所有请求,该连接将保持不变,直到所有测试执行完成。由于命令是在单个连接上发送的,因此测试失败或不稳定的可能性较小,并且命令可以快速执行。这种架构与Selenium相反,Selenium使用HTTP连接协议,并将每个命令(如浏览器打开,单击,发送密钥或关闭浏览器)作为单独的HTTP请求发送。

此外,在Selenium中,服务器和客户端之间的连接将在每次请求后终止,并为下一个请求重新建立。最后划重点:这就是Playwright比selenium快的原因

Selenium架构

图片

蓝色图中的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也比较容易,无需封装直接使用.

那么这么强大的工具,我们松勤课程当然不能少啦,在即将升级的自动化测试课程里面就覆盖这个工具的使用,具体大纲如下:

图片

 

  • 6
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Playwright是一个功能强大的自动化测试框架,用于在不同的浏览器(如Chrome、Firefox和Safari)上执行自动化操作。它提供了一套简洁的API,使得编写和维护自动化测试变得更加容易。以下是一些Playwright自动化框架的特点和优势: 1. 多浏览器支持:Playwright支持多种主流浏览器,包括Chrome、Firefox、Safari和Edge。你可以使用相同的代码在不同的浏览器上运行你的自动化测试。 2. 跨平台支持:Playwright可以在多个操作系统上运行,包括Windows、Mac和Linux。这使得团队可以在不同的开发环境中共享和运行测试。 3. 强大的自动化功能:Playwright提供了丰富的API来处理各种自动化操作,如点击、填写表单、截图、模拟用户行为等。它还支持异步操作和等待页面加载等待条件。 4. 可靠性和稳定性:Playwright具有稳定性和可靠性,可以处理各种复杂的Web应用程序,并提供了一套可靠的错误处理机制。 5. 容易上手:Playwright的API设计简洁明了,易于理解和使用。它提供了详细的文档和示例代码,帮助你快速入门。 6. 社区支持:Playwright拥有一个活跃的开源社区,你可以从社区中获得支持、提问问题,并分享经验和最佳实践。 总之,Playwright是一个功能强大、跨浏览器和跨平台的自动化测试框架,可以帮助你构建可靠、稳定的自动化测试。无论是单元测试、集成测试还是端到端测试,Playwright都是一个优秀的选择。你可以通过官方文档和示例来学习更多关于Playwright的使用方法和技巧。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值