惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

B
Blog RSS Feed
Spread Privacy
Spread Privacy
T
Threatpost
C
Cisco Blogs
P
Palo Alto Networks Blog
AI
AI
Cyberwarzone
Cyberwarzone
NISL@THU
NISL@THU
P
Privacy & Cybersecurity Law Blog
G
GRAHAM CLULEY
Simon Willison's Weblog
Simon Willison's Weblog
T
Tor Project blog
Latest news
Latest news
AWS News Blog
AWS News Blog
D
Docker
S
SegmentFault 最新的问题
博客园 - 聂微东
WordPress大学
WordPress大学
Vercel News
Vercel News
S
Securelist
爱范儿
爱范儿
J
Java Code Geeks
Know Your Adversary
Know Your Adversary
S
Schneier on Security
Hugging Face - Blog
Hugging Face - Blog
F
Fortinet All Blogs
Last Week in AI
Last Week in AI
D
DataBreaches.Net
宝玉的分享
宝玉的分享
D
Darknet – Hacking Tools, Hacker News & Cyber Security
MongoDB | Blog
MongoDB | Blog
Engineering at Meta
Engineering at Meta
K
Kaspersky official blog
美团技术团队
博客园 - 叶小钗
阮一峰的网络日志
阮一峰的网络日志
量子位
博客园_首页
Attack and Defense Labs
Attack and Defense Labs
S
Secure Thoughts
Google Online Security Blog
Google Online Security Blog
Application and Cybersecurity Blog
Application and Cybersecurity Blog
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
腾讯CDC
T
Threat Research - Cisco Blogs
雷峰网
雷峰网
有赞技术团队
有赞技术团队
www.infosecurity-magazine.com
www.infosecurity-magazine.com
P
Privacy International News Feed
S
Security Affairs

Eson Wong's Blog

我为什么开发 AI 英语听力生成器:Im-Listening 如何使用 LlamaIndex 构建一个 RAG 检索系统 批评 Milvus 入门教程 怎么在网页中实现自动调整视频的清晰度 什么是检索增强生成(Retrieval-Augmented Generation)? Phonics 自然拼读常见规则 - 辅音字母的发音规律 ESP8266EX 自动下载电路 浅聊 esp8266 墨水屏 Todo List 制作教程 2023 年我买过的最好用的商品 转变自我的密码:《Atomic Habits》读后感 Phonics 自然拼读常见规则 - 音节和元音字母的发音规律 怎么用 Github Actions 部署 Next.js 项目到服务器 使用 v4l 采集摄像头 怎么解决 Prettier 和 ESLint 在 VSCode 里的冲突? 《微习惯》 - 读书笔记 在 iPad 使用 VS Code 写代码 在 Macbook 上运行 ChatGLM-6B
Playwright E2E 测试框架入门教程
本文作者: Eson Wong · 2025-10-26 · via Eson Wong's Blog

Playwright

www.einktodo.com 是我为 E-ink Todo List 设备开发的网站,为了减少在它上面的测试工作的时间,我使用了 Playwright 来进行 E2E 测试。

Playwright 是一个由微软开发的 E2E 测试框架,它可以模拟用户在浏览器中的操作,比如点击、输入、滚动等等。Playwright 支持多种浏览器,包括 Chrome、Firefox、Safari 等等,而且它还支持多种编程语言,比如 Javascript、Python、C# 等等。

在这篇文章中,我将向你展示如何使用 Playwright 来进行 E2E 测试。我们将会使用 Typescript 来编写测试代码。

在项目根目录下,运行以下命令来在项目中初始化 Playwright:

1
2
3
4
5

npm init playwright@latest


yarn create playwright

初始化完成后,Playwright 会在项目中生成一个 playwright.config.ts 文件,和一个测试示例文件 example.spec.ts

Playwright 配置

生成的 playwright.config.ts 文件用 testDir 字段来指定测试文件的目录,projects 字段来指定义 Playwright 中的 Project 概念。

1
2
3
4
5
6
7
8
9
10
11
12
13
import { PlaywrightTestConfig } from "@playwright/test";

export default defineConfig({

testDir: "tests",




projects: [

],
});

第一个测试

初始化完成后,Playwright 会在测试文件目录中生成一个测试示例的测试文件 example.spec.ts,我们可以在这个文件中编写我们的第一个测试。

下面以 www.einktodo.com 的首页标题为例,来编写一个测试。

  1. @playwright/test中导入testexpect函数
  2. 使用test函数来定义一个测试
  3. 使用page.goto方法来打开网站
  4. 使用expecttoHaveTitle方法来判断页面的标题是否为E-ink Todo List
1
2
3
4
5
6
import { test, expect } from "@playwright/test";

test("E-ink Todo List 首页标题", async ({ page }) => {
await page.goto("https://www.einktodo.com");
await expect(page).toHaveTitle("E-ink Todo List");
});

运行测试

默认模式

运行所有的 Projects

1
2
3
4
5

npx playwright test


yarn playwright test

运行一个 Project

1
2
3
4
5

npx playwright test --project=projectName


yarn playwright test --project=projectName

UI 模式

1
2
3
4
5

npx playwright test --ui


yarn playwright test --ui

Playwright 中的 Project

Playwright 中的 Project 概念用于组织多个可以并行运行的测试文件、Project 运行的依赖和运行结束的后置任务,以及 Project 的环境配置。

mindmap
  root((Project))

Projects 们的依赖关系

保存和使用登陆状态

参考