https://www.toutiao.com/article/7203516534541599232/
API 和 UI 自动化测试神器 - Playwright
简介
Playwright 是微软开源的端到端(end-to-end)测试框架,可用于现代 Web 应用。Playwright 提供如下特性:
1. 任意浏览器、任意平台、一种 API
跨浏览器:Playwright 支持所有现代渲染引擎,包括 Chromium、WebKit 和 Firefox。
跨平台:在 Windows、Linux 和 macOS 上,进行本地或 CI 测试(无头或有头)。
跨语言:可在 TypeScript、JavaScript、Python、.NET、Java 中使用 Playwright API。
测试移动 Web:Android Google Chrome 和移动 Safari 的本地移动仿真。桌面和云上运行的渲染引擎相同。
2. 弹性、没有古怪的测试
自动等待:Playwright 在执行操作前,将等待到元素可被操作。它还有一组丰富的检查事件。两者结合可消除对人为超时的需求 — 这是导致古怪测试的主要原因。
Web 优先断言:Playwright 断言是专门为动态 Web 创建的。检查将自动重试,直到满足必要的条件。
追踪:配置测试重试策略,捕获执行踪迹,录像,截屏,以防止遗忘。
3. 无需折中、无限制:浏览器在不同进程中运行属于不同源的 Web 内容。Playwright 与现代浏览器架构保持一致,在进程外运行测试。这使得 Playwright 摆脱典型的进程内测试运行器限制。
复合一切:横跨多个选项卡、多个源和多个用户的测试场景。为不同用户创建具有不同上下文的场景,并且在服务器上运行它们,这些都在一个测试中进行。
可信事件:悬停元素,与动态控件交互,生成可信事件。Playwright 使用真正的浏览器输入管道,与真正的用户没有区别。
测试 Frame、穿透 Shadow DOM:Playwright 选择器穿透 Shadow DOM,允许无缝进入 Frame。
4. 完全隔离、快速执行:
浏览器上下文:Playwright 为每个测试创建一个浏览器上下文。浏览器上下文等同于全新的浏览器配置文件。它提供零开销的完全测试隔离。创建新浏览器上下文仅需几毫秒。
登录一次:保存上下文的身份认证状态,并且在所有测试中重用。避免在每个测试中重复登录,还提供独立测试的完全隔离。
5. 强大的工具:
代码生成:通过录制操作生成测试。将它们保存成任何语言。
Playwright 检查器:检查页面,生成选择器,逐步完成测试执行,查看单击点,探索执行日志。
追踪查看器:捕获所有信息以调查测试失败。Playwright 追踪包含测试执行录屏、实时 DOM 快照、操作资源管理器、测试源等。
本文测试环境
操作系统:macOS 12.6
Python:3.10.6(下文以 Python 为例,进行讲述)
Playwright:1.30.0
安装
创建测试环境
mkdir playwright-demo
cd playwright-demo/
python3 -m venv venv
安装 Pytest 插件
venv/bin/pip3 install pytest-playwright
安装需要的浏览器
venv/bin/playwright install