微软开源的WebUI自动化测试神器Playwright​​​​​​​

共 2434字,需浏览 5分钟

 ·

2021-01-11 11:59

使用Playwright进行快速可靠的跨浏览器测试

前言:
现如今,Web开发与发布的速度是非常快的;Web应用变得越来越复杂,而且可以在所有设备上运行——我们的手机、平板电脑和台式机等,每个设备都运行不同的浏览器引擎。速度和目标的增加给测试过程带来了巨大的压力: 跨浏览器的自动化测试越来越重要。
end-to-end的自动化测试功能非常强大:至少在理论上,通过复制用户交互行为,它们可以验证功能、性能和可用性。
但在实践中,end-to-end测试可能很慢,不稳定且难以维护。
今天我们就来隆重介绍一下Playwright,它是一个跨浏览器的自动化库,将其用于测试时显得更加快速、可靠和强大。

Playwright可以跨多种浏览器测试网络应用:
  • 基于chromium的浏览器,如谷歌Chrome和新的Microsoft Edge;

  • 基于webkit的苹果Safari;

  • 基于gecko的Mozilla Firefox;

现在,Playwright 1.7.0已经在npm上可用了

借助单个API,Playwright可以在基于可靠和快速执行的基础上跨不同的浏览器自动执行各种场景。


Playwright通过无超时自动化提高了可靠性

现在的Web应用程序样式丰富且交互性强,并动态响应用户的操作。诸多的异步行为使应用程序难以实现自动化预测,网络请求可能比平时花费更长的时间,导致一直在加载的状态。
Playwright为UI准备了自动等待,这有助于测试者创建可靠且易于编写的测试。
例如,点击页面时,将自动等待目标元素可见并可用。
这样,开发人员或者测试人员可以编写专注于测试场景的测试用例,而不是针对时间或UI状态的测试。久而久之,这显著提高了测试代码的可维护性。
实际上,Playwright使用了事件驱动的架构,可以侦听浏览器事件。Playwright测试可以准确地等待DOM更改、网络请求,甚至新的控制台日志。Playwright使用与浏览器的开发者工具(F12)相同的协议,这些工具是开发人员都熟悉而且喜欢的工具。
通过精确的浏览器事件,自动化脚本可以避免超时。在传统的end-to-end测试中,等待应用加载完成通常是管理异步行为的唯一方法。但是,超时是一个滑坡效应:它们总是导致不一致的失败或“不稳定的测试”。
如下图,自动等待页面操作和API,以实现更精细的控制。

Playwright可扩展的自动化:快速,并行执行

Playwright旨在 在本地和云环境中提供快速、并行的自动化测试;Chromium,Firefox或WebKit的单个实例可以创建多个隔离的并发的浏览器上下文。这显着提高了性能,并支持独立的多页面模拟场景
一个浏览器可以承载多个web页面并定义上下文级的行为,例如网络拦截或身份验证凭据。浏览器上下文还可以模拟移动视图,模拟地理位置和区域环境。这使单个WebKit实例可在多个设备配置上并行执行多个页面场景:desktop,iPhone和iPad。


现在和未来的Web自动化

Web平台比以往任何时候都更有强大,而且还在不断发展。Playwright的出现是为了跟上网络浏览器和Web应用程序不断增长的功能。它还包括渐进式Web应用程序(PWA)使用的更新的浏览器功能。
Playwright可以通过一个API自动化实现Chromium,Firefox和WebKit的多种功能:
  • 模拟移动视图,权限,地理位置和区域设置
  • 通过shadow-piercing选择器支持Web组件
  • 网络拦截,用于修改和模拟网络活动
  • 文件上传和下载
  • 跨多个框架,选项卡和弹出窗口的方案
  • 来自鼠标和键盘的可信赖本机输入事件
  • 网络工作者和进程外iframe


    Playwright-可以拦截网络请求,从而中止,修改或模拟网络请求,如下:

Playwright入门:在本地和CI

目前在npm上更新到Playwright 1.7.1
官网地址:https://www.npmjs.com/package/playwright

安装Playwright

//Step 1、安装 playwright-python 依赖库 
pip3 install playwright

//Step 2、# 安装浏览器驱动
//将主流的Chromeium、Firefox、Webkit浏览器驱动下载到本地
python -m playwright install

Win系统安装过程如下图:

更多的实战可以参考上一篇文章:
微软最强 Python自动化工具开源了!不用写一行代码!
后续将继续更新该系列的文章。
如果你觉得文章还不错,请大家 点赞、分享、留言 下,因为这将是我持续输出更多优质文章的最强动力!
Appium教程
  1. Appium移动端自动化测试--基础预热
  2. Appium移动端自动化测试--搭建测试环境
  3. Appium移动端自动化测试--录制测试用例并运行
  4. Appium移动端自动化测试--使用IDE编辑并强化脚本
  5. Appium移动端自动化测试--控件定位方法
  6. Appium移动端自动化测试--元素操作与触摸动作
  7. Appium移动端自动化测试--搭建模拟器和真机环境
  8. Appium移动端自动化测试--测试用例改造
  9. Appium移动端自动化测试--capability使用和常用设备交互命令
文章合集
Selenium Appium  | Jenkins  |  Jmeter 
软件测试方法汇总 | 测试用例设计 | APP抓包
POSTMAN教程大全 | Postman接口参数化

视频教程
Selenium | Appium | Jenkins | Jmeter

微信群:
软件自动化测试交流群
已创建,公号回复入群即可获取入群二维码。
浏览 93
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报