Playwright 是一个现代化的端到端测试框架,提供跨浏览器自动化能力,内置测试运行器、自动等待机制以及良好的开发者体验。
一、用途与适用场景 Playwright 用于对 Web 应用进行端到端测试,尤其适合以下情况:测试 Web 应用的整体流程、需要跨浏览器测试、测试用户操作流程与交互,以及需要截图或视频录制的场景。它支持 Chromium、Firefox、WebKit 三种浏览器引擎,并可模拟移动设备(如 Pixel 5)。
二、主要能力 框架提供自动等待(Auto-wait)能力,自动等待元素就绪;内置测试运行器,支持并行执行、重试与多种报告器(reporter)。网络控制方面,可对网络请求进行模拟与拦截。调试方面提供 UI 模式、Trace Viewer 与 Inspector。此外支持页面对象模型(Page Object Model)、组件模式、认证状态复用等组织方式,并覆盖表单交互、鼠标与键盘操作、多种等待策略和丰富的断言(包括截图对比与软断言)。
三、安装 初始化新的 Playwright 项目:
npm init playwright@latest
或添加到已有项目:
npm install -D @playwright/test
安装浏览器:
npx playwright install
快速开始步骤为:运行 npm init playwright@latest,选择 TypeScript 与测试目录,随后使用 npx playwright test 运行测试,npx playwright show-report 查看报告。
四、配置 可在 playwright.config.ts 中通过 defineConfig 配置测试目录(testDir)、并行(fullyParallel)、CI 下的 forbidOnly、重试次数(retries)、worker 数量(workers)、报告器(reporter)、baseURL、trace(如 on-first-retry)、screenshot(如 only-on-failure),并通过 projects 定义不同浏览器(chromium、firefox、webkit、Mobile Chrome)及设备,还可通过 webServer 配置启动命令与 URL。
五、基础用法 使用 @playwright/test 的 test 与 expect 编写用例,可进行页面跳转、元素可见性与文本断言、页面标题断言等。使用 test.describe 组织测试分组,并支持 beforeEach、afterEach、beforeAll、afterAll 等钩子。
定位策略方面,推荐基于角色的定位器(如 getByRole、getByLabel、getByPlaceholder、getByText、getByTestId、getByTitle、getByAltText),也支持 CSS 与 XPath 定位、链式定位与筛选。
架构模式方面,可编写页面对象模型(Page Class)与组件模式(Component Pattern),将定位器与操作封装在类中。
交互方面支持文本输入、复选框、单选按钮、下拉选择、多选、文件上传,以及点击变体(双击、右键、带修饰键)、悬停、拖放、键盘操作与聚焦。等待策略支持等待选择器、加载状态、URL、函数、超时与事件。断言支持可见性、文本内容、属性、CSS、数量、URL 与标题,以及截图对比;还支持软断言与轮询断言(toPass)。
认证方面提供存储状态(storageState)模式:先运行一次认证用例并保存 storageState 到文件,再在配置中让其他项目依赖 setup 项目并复用该状态;也可通过自定义夹具(fixtures)实现多用户角色(如 adminPage、userPage)分别携带不同认证状态,用于权限测试。
网络控制方面,可通过 page.route 对接口响应进行模拟(示例中展示了 mock **/api/users 返回 JSON 数据的用法)。
六、限制 资料中未提供关于收费、价格、平台兼容范围、性能指标或效果保证的信息;上述内容均以官方技能资料中的示例与说明为准,未提及的部分暂未提供。