www.einktodo.com 是我为 E-ink Todo List 设备开发的网站,为了减少在它上面的测试工作的时间,我使用了 Playwright 来进行 E2E 测试。
Playwright 是一个由微软开发的 E2E 测试框架,它可以模拟用户在浏览器中的操作,比如点击、输入、滚动等等。Playwright 支持多种浏览器,包括 Chrome、Firefox、Safari 等等,而且它还支持多种编程语言,比如 Javascript、Python、C# 等等。
在这篇文章中,我将向你展示如何使用 Playwright 来进行 E2E 测试。我们将会使用 Typescript 来编写测试代码。
安装 Playwright
在项目根目录下,运行以下命令来在项目中初始化 Playwright:
1 | # npm |
初始化完成后,Playwright 会在项目中生成一个 playwright.config.ts 文件,和一个测试示例文件 example.spec.ts。
Playwright 配置
生成的 playwright.config.ts 文件用 testDir 字段来指定测试文件的目录,projects 字段来指定义 Playwright 中的 Project 概念。
1 | import { PlaywrightTestConfig } from "@playwright/test"; |
第一个测试
初始化完成后,Playwright 会在测试文件目录中生成一个测试示例的测试文件 example.spec.ts,我们可以在这个文件中编写我们的第一个测试。
下面以 www.einktodo.com 的首页标题为例,来编写一个测试。
- 从
@playwright/test中导入test和expect函数 - 使用
test函数来定义一个测试 - 使用
page.goto方法来打开网站 - 使用
expect和toHaveTitle方法来判断页面的标题是否为E-ink Todo List
1 | import { test, expect } from "@playwright/test"; |
运行测试
默认模式
运行所有的 Projects
1 | # npm |
运行一个 Project
1 | # npm |
UI 模式
1 | # npm |
Playwright 中的 Project
Playwright 中的 Project 概念用于组织多个可以并行运行的测试文件、Project 运行的依赖和运行结束的后置任务,以及 Project 的环境配置。
mindmap
root((Project))