前言

Playwright 使现代 web 应用程序的端到端测试变得可靠。

任何浏览器 • 任何平台 • 一个 API

  • 跨浏览器(Cross-browser)Playwright 支持所有现代渲染引擎,包括 ChromiumWebKitFirefox

  • 跨平台(Cross-platform):可以在 WindowsLinuxmacOS 上进行测试,无论是本地还是 CI 环境,支持 无头模式有头模式

  • 跨语言(Cross-language):可以在 TypeScriptJavaScriptPython.NETJava 中使用 Playwright API。

测试移动 Web:原生模拟 Google Chrome(Android)和 Mobile Safari 的移动端。相同的渲染引擎可以在桌面和云端工作。

可靠 • 无不稳定测试

  • 自动等待(Auto-wait)Playwright 在执行操作前会等待元素变得可操作。它还提供了丰富的事件监控。两者结合消除了人工超时的需求——这是不稳定测试的主要原因。

  • Web 优先断言Playwright 的断言是专门为动态网页设计的。检查会自动重试,直到满足必要条件。

  • 追踪:配置测试重试策略,捕获执行跟踪、视频和截图,以消除不稳定的情况。

没有妥协 • 无限制

浏览器将属于不同源的 Web 内容运行在不同进程中。Playwright 与现代浏览器架构保持一致,运行测试时是进程外的,这使得 Playwright 摆脱了典型的进程内测试框架的限制。

  • 多重场景:测试跨多个标签页(tabs)、多个源(origins)和多个用户的场景。为不同用户创建不同上下文的场景,并在同一个测试中对服务器进行测试。

  • 可信事件:悬停元素、与动态控件交互、触发可信事件。Playwright 使用与真实用户完全相同的浏览器输入管道。

  • 测试框架,穿透 Shadow DOMPlaywright 的选择器能够穿透 Shadow DOM,允许无缝进入框架。

完全隔离 • 快速执行

  • 浏览器上下文Playwright 为每个测试创建一个浏览器上下文。浏览器上下文相当于一个全新的浏览器配置文件。这提供了完全的测试隔离且没有额外开销。创建新上下文只需几毫秒。

  • 一次登录:保存上下文的认证状态并在所有测试中重用。这避免了每个测试中重复的登录操作,同时确保独立测试的完全隔离。

强大工具

  • 代码生成:通过录制你的操作生成测试。可以将其保存为任何语言。

  • Playwright 检查器:检查页面,生成选择器,逐步执行测试,查看点击点,探索执行日志。

  • Trace Viewer:捕获所有信息以调查测试失败。Playwright 的追踪包含测试执行视频、实时 DOM 快照、操作浏览器、测试源代码等多项内容。