Playwright全面解析

发布时间:2023-05-20

一、快速上手

1、Playwright 是一款由 Microsoft Edge 开发团队推出的 Node.js 库,用于自动化 Web 浏览器交互测试。(代码示例1.1)

const playwright = require('playwright');
(async () => {
  for (const browserType of ['chromium', 'firefox', 'webkit']) {
    const browser = await playwright[browserType].launch();
    const context = await browser.newContext();
    const page = await context.newPage();
    await page.goto('http://whatsmyuseragent.org/');
    await page.screenshot({ path: `example-${browserType}.png` });
    await browser.close();
  }
})();

2、使用步骤以及Playwright的特点,Playwright支持多种浏览器(chromium, firefox, webkit),同时它的api也非常友好,模拟交互很方便 3、Playwright 还提供一些类似于点击、输入等更高层次的操作,实现各种自动化场景中不同环节的自动化交互。(代码示例1.2)

const { firefox } = require('playwright');
(async () => {
  const browser = await firefox.launch();
  const page = await browser.newPage();
  await page.goto('https://playwright.dev/');
  await page.click('text=Get Started');
  await page.waitForSelector('text=Documentation');
  await browser.close();
})();

二、Playwright相对于其他浏览器自动化工具的优势

1、Playwright 最大的特点在于适用范围广,支持 Chromium、Firefox 和 WebKit 三大浏览器内核,可以高度还原用户的真实体验,具有更加稳定和高效的浏览器自动化体验。 2、Playwright 在不同浏览器内核上会默认启用不同的前端(Frontend),以针对不同内核进行更优的性能和稳定性优化,因此性能比其他同类工具更优。 3、Playwright 相较于 Puppeteer 支持手机模拟器,切换语法简单;与 Selenium 相较,Playwright 支持不同浏览器内核,且 Chrome 和 Firefox 的性能相较于 Selenium 更快,并且 Playwright 相对于 Selenium 官方文档也更新和完善。 4、在使用过程中,Playwright 提供了键盘、鼠标、触屏等多种模拟方式,可以模拟用户真实交互行为,同时自然支持无界面运行,不会弹出任何窗口和提示信息,适合于后台和持续集成场景的应用。

三、Playwright在自动化测试中的应用

1、基本应用:对于 Web 应用中的常规场景模拟,如根据 HTML 元素进、输入、选择框下拉、弹窗操作、点击、拖拽等,Playwright 可以直接操作(模拟)用户进行使用,还能截图、存储、对比等。 2、UI 自动化测试:针对页面级操作,如菜单栏、操作按钮等 UI 组件,可配合一些 UI 测试框架使用。 3、前端性能监测:通过模拟用户的交互,可以借助 Playwright 内置的性能监控 API,包括性能指标、内存占用等等,进行前端性能分析,发现并优化瓶颈。 4、移动端测试:相较于桌面端浏览器,移动端浏览器有更多的限制,Playwright 支持测试模拟器,可以在开发之初完成前期测试、缩短开发周期。

四、Playwright进阶应用

1、使用 Playwright 进行单元测试,并结合 Jest 或者 Mocha 等测试框架,嵌入工程化流程中进行持续集成、接口测试、UI 测试等。 2、使用 Playwright 进行多进程操作的 Web 应用的自动化测试,可以在多进程多线程环境下,更为高效地完成测试,缩短测试周期并提高测试质量。 3、使用 Playwright 进行多种浏览器兼容测试,如使用 Chromium 和 Firefox 同时进行单元测试,便可快速发现浏览器间的兼容性问题。 4、使用 Playwright 实现数据可视化视图的测试,自动模拟用户的操作方式,进行可视化页面的自动化测试。

五、Playwright参考文献

1、Playwright官网: https://playwright.dev/ 2、Playwright API 文档: https://playwright.dev/docs/api/ 3、Playwright Github: https://github.com/microsoft/playwright