Playwright 端到端(e2e)测试工具

简介: 一个与 Puppeteer 类似的端到端(e2e)测试工具

一个与 Puppeteer 类似的端到端(e2e)测试工具。

Playwright 为当代 Web 应用程序提供可靠的端到端测试。

支持所有浏览器

在 Chromium、Firefox 和 WebKit 上进行测试。Playwright 拥有适用于所有当代浏览器的完整 API,包括 Google Chrome 和 Microsoft Edge(带有Chromium)、Apple Safari(带有WebKit)和 Mozilla Firefox。

跨平台 WebKit 测试。借助 Playwright,使用适用于 Windows、Linux 和 macOS 的 WebKit 构建测试您的应用在 Apple Safari 中的行为。在本地和 CI 上进行测试。

测试手机。使用设备模拟在移动 Web 浏览器中测试您的响应式 Web 应用程序。

无头和有头。Playwright 支持所有浏览器和所有平台的无头(无浏览器 UI)和有头(带浏览器 UI)模式。Headed 非常适合调试,而 Headless 速度更快,适合 CI/云执行。

快速可靠的执行

自动等待 API。Playwright 动会自动等待元素准备就绪。这提高了可靠性并简化了测试编写。

无超时自动化。Playwright 接收浏览器信号,如网络请求、页面导航和页面加载事件,以消除导致不稳定的睡眠超时的需要。

使用浏览器上下文快速隔离。将单个浏览器实例重用于具有浏览器上下文的多个隔离执行环境。

弹性元素选择器。Playwright 可以依靠面向用户的字符串(如文本内容和可访问性标签)来选择元素。这些字符串比紧密耦合到 DOM 结构的选择器更有弹性。

强大的自动化功能

多个域、页面和框架。Playwright 是一个进程外自动化驱动,不受页内 JavaScript 执行范围的限制,可以自动化多页面场景。

强大的网络控制。Playwright 引入了上下文范围的网络拦截来存根和模拟网络请求。

当代浏览器功能特性。Playwright 支持 web components、地理定位、权限、 web workers 和其他当代 web APIs.

覆盖所有场景的能力。支持文件下载和上传、进程外 iframe、本机输入事件,甚至暗黑模式。

安装

Playwright 有自己的测试运行器用于端到端测试,我们称之为 Playwright 测试。

npm i -D @playwright/test
# install supported browsers
npx playwright install

您可以选择仅安装选定的浏览器

第一次测试

创建 tests/foo.spec.js(或 tests/foo.spec.ts 用于 TypeScript)来定义您的测试。

import { test, expect } from '@playwright/test';

test('basic test', async ({ page }) => {
  await page.goto('https://playwright.dev/');
  const title = page.locator('.navbar__inner .navbar__title');
  await expect(title).toHaveText('Playwright');
});

现在运行您的测试,假设测试文件在tests目录中。

npx playwright test

Playwright Test 刚刚使用 Chromium 浏览器以无头方式运行了一个测试。让我们告诉它使用有头浏览器:

npx playwright test --headed

其他浏览器呢?让我们使用 Firefox 运行相同的测试:

npx playwright test --browser=firefox

最后,在所有浏览器上测试:

npx playwright test --browser=all
相关文章
|
5月前
|
测试技术 Shell API
Playwright系列(3):运行测试用例
Playwright系列(3):运行测试用例
181 1
|
5月前
|
测试技术 Python
Playwright系列(4):录制测试脚本
Playwright系列(4):录制测试脚本
180 0
|
2月前
|
数据采集 测试技术 数据安全/隐私保护
Playwright测试中避免使用no-wait-for-timeout的原因
在Web应用自动化测试中,Playwright作为首选框架,其稳定性至关重要。不当使用`no-wait-for-timeout`会导致测试结果不稳定、不符合真实用户体验且难以调试。推荐采用显式等待策略和合理设置超时时间,结合代理IP技术提高测试成功率和数据多样性。示例代码展示了如何在Playwright中配置代理IP进行数据抓取及分类统计。遵循这些最佳实践可确保测试既可靠又贴近实际用户场景。
152 4
Playwright测试中避免使用no-wait-for-timeout的原因
|
5月前
|
IDE 测试技术 开发工具
从零开始:使用 Playwright 脚本录制实现自动化测试
Playwright提供了一种便捷的脚本录制功能,类似于Selenium IDE。通过运行`playwright codegen`命令,你可以启动一个浏览器并记录你的操作,生成Python或异步代码。在示例中,展示了如何录制登录百度的过程,生成的代码可以直接用于自动化测试。Playwright Inspector允许你编辑和转换测试代码,支持生成Pytest格式的测试用例,方便Python开发者使用。这个功能使Playwright成为强大的Web自动化测试工具。
243 3
|
5月前
|
Web App开发 测试技术 C++
Playwright安装与Python集成:探索跨浏览器测试的奇妙世界
Playwright是新兴的跨浏览器测试工具,相比Selenium,它支持Chrome、Firefox、WebKit,执行速度快,选择器更稳定。安装Playwright只需一条`pip install playwright`的命令,随后的`playwright install`会自动添加浏览器,无需处理浏览器驱动问题。这一优势免去了Selenium中匹配驱动的烦恼。文章适合寻求高效自动化测试解决方案的开发者。
115 2
|
5月前
|
测试技术
使用 Playwright 复用 Cookie:简化自动化测试的高效方法
Playwright 提供的 Cookie 复用功能允许在不同测试用例间共享会话状态,提高测试效率。通过 `context.set_cookies()` 方法设置共享 Cookie 数据,确保会话在多个测试中保持一致。优点包括节省时间、维持稳定会话,但需注意可能增加测试用例间的依赖。使用此功能可优化自动化测试流程。
168 1
|
5月前
|
测试技术 API 开发者
使用 Playwright 脚本录制简化自动化测试:完全指南
Playwright提供了一种脚本录制功能,帮助开发者通过交互式操作自动生成测试脚本,提升测试效率。使用Playwright的命令行工具`codegen`,如`playwright codegen python <url>`,可以记录浏览器操作并生成Python测试脚本。生成的脚本使用Playwright API模拟用户交互,如`page.click()`和`page.fill()`。这种方法简化了自动化测试脚本的编写,促进了测试流程的加速。
246 1
|
5月前
|
编解码 测试技术 API
模拟手机设备:使用 Playwright 实现移动端自动化测试
本文介绍了使用Python的Playwright库进行移动设备模拟和自动化测试的方法。通过Playwright,开发者能模拟不同设备的硬件和软件特性,如屏幕尺寸、用户代理,以确保网站在移动设备上的表现。示例代码展示了如何模拟iPhone X并访问网站,之后可在此基础上编写测试代码以检验响应式布局和交互功能。Playwright的设备参数注册表支持多种设备,简化了移动端自动化测试的流程。
278 1
|
5月前
|
测试技术 Shell 开发工具
Playwright 系列(13):如何调试测试用例
Playwright 系列(13):如何调试测试用例
339 0
Playwright 系列(13):如何调试测试用例
|
5月前
|
测试技术
PlayWright系列(2):如何写测试脚本
PlayWright系列(2):如何写测试脚本
101 0
PlayWright系列(2):如何写测试脚本