使用Playwright进行快速可靠的跨浏览器测试
前言: 现如今,Web开发与发布的速度是非常快的;Web应用变得越来越复杂,而且可以在所有设备上运行——我们的手机、平板电脑和台式机等,每个设备都运行不同的浏览器引擎。速度和目标的增加给测试过程带来了巨大的压力: 跨浏览器的自动化测试越来越重要。
end-to-end的自动化测试功能非常强大:至少在理论上,通过复制用户交互行为,它们可以验证功能、性能和可用性。 但在实践中,end-to-end测试可能很慢,不稳定且难以维护。
今天我们就来隆重介绍一下Playwright,它是一个跨浏览器的自动化库,将其用于测试时显得更加快速、可靠和强大。
Playwright可以跨多种浏览器测试网络应用:
现在,Playwright 1.7.0已经在npm上可用了。
借助单个API,Playwright可以在基于可靠和快速执行的基础上跨不同的浏览器自动执行各种场景。
现在的Web应用程序样式丰富且交互性强,并动态响应用户的操作。诸多的异步行为使应用程序难以实现自动化预测,网络请求可能比平时花费更长的时间,导致一直在加载的状态。
Playwright为UI准备了自动等待,这有助于测试者创建可靠且易于编写的测试。 例如,点击页面时,将自动等待目标元素可见并可用。 这样,开发人员或者测试人员可以编写专注于测试场景的测试用例,而不是针对时间或UI状态的测试。久而久之,这显著提高了测试代码的可维护性。
实际上,Playwright使用了事件驱动的架构,可以侦听浏览器事件。Playwright测试可以准确地等待DOM更改、网络请求,甚至新的控制台日志。Playwright使用与浏览器的开发者工具(F12)相同的协议,这些工具是开发人员都熟悉而且喜欢的工具。
通过精确的浏览器事件,自动化脚本可以避免超时。在传统的end-to-end测试中,等待应用加载完成通常是管理异步行为的唯一方法。但是,超时是一个滑坡效应:它们总是导致不一致的失败或“不稳定的测试”。 如下图,自动等待页面操作和API,以实现更精细的控制。
Playwright旨在 在本地和云环境中提供快速、并行的自动化测试;Chromium,Firefox或WebKit的单个实例可以创建多个隔离的并发的浏览器上下文。这显着提高了性能,并支持独立的多页面模拟场景。
一个浏览器可以承载多个web页面并定义上下文级的行为,例如网络拦截或身份验证凭据。浏览器上下文还可以模拟移动视图,模拟地理位置和区域环境。这使单个WebKit实例可在多个设备配置上并行执行多个页面场景:desktop,iPhone和iPad。
Web平台比以往任何时候都更有强大,而且还在不断发展。Playwright的出现是为了跟上网络浏览器和Web应用程序不断增长的功能。它还包括渐进式Web应用程序(PWA)使用的更新的浏览器功能。 Playwright可以通过一个API自动化实现Chromium,Firefox和WebKit的多种功能:
目前在npm上更新到Playwright 1.7.1 官网地址:https://www.npmjs.com/package/playwright
//Step 1、安装 playwright-python 依赖库
pip3 install playwright
//Step 2、# 安装浏览器驱动
//将主流的Chromeium、Firefox、Webkit浏览器驱动下载到本地
python -m playwright install
Win系统安装过程如下图:
更多的实战可以参考上一篇文章: 微软最强 Python自动化工具开源了!不用写一行代码! 后续将继续更新该系列的文章。
如果你觉得文章还不错,请大家 点赞、分享、留言 下,因为这将是我持续输出更多优质文章的最强动力!
Appium教程:
文章合集
Selenium | Appium | Jenkins | Jmeter
软件测试方法汇总 | 测试用例设计 | APP抓包 POSTMAN教程大全 | Postman接口参数化
视频教程
Selenium | Appium | Jenkins | Jmeter
、