Kc's blog Kc's blog
首页
分类
标签
Timeline
收藏夹
关于
GitHub (opens new window)

kcqingfeng

前端小学生
首页
分类
标签
Timeline
收藏夹
关于
GitHub (opens new window)
  • 快应用

  • 移动端

  • 小程序

  • 测试

    • 接入 Playwright,实现 E2E 自动化测试
      • 什么是 E2E 测试?
      • 为什么选择 Playwright?
      • Playwright 十大特色能力
        • 1. 自动等待(Auto Waiting)
        • 2. Codegen 自动录制
        • 3. Trace 调试
        • 4. 自动截图和录像
        • 5. 多浏览器支持
        • 6. 并行执行
        • 7. 网络请求 Mock
        • 8. API Testing
        • 9. 登录状态复用
        • 10. 丰富的测试报告
      • 安装 Playwright
      • 编写第一个测试
      • Codegen:最快的编写方式
      • 常用 API
        • 打开页面
        • 输入内容
        • 点击按钮
        • 获取文本
        • 判断元素存在
        • 判断页面跳转
      • 查看测试报告
      • 推荐的项目结构
      • 企业项目实践建议
      • 总结
  • 多端
  • 测试
kc_shen
2026-07-08
目录

接入 Playwright,实现 E2E 自动化测试

在日常开发中,每次修改代码后,我们都会重复做一些相同的工作:

  • 登录系统
  • 点击菜单
  • 搜索数据
  • 新增、编辑、删除
  • 检查页面是否正常显示

这些操作虽然简单,但非常耗时,而且容易遗漏。如果每次发布都依赖人工回归测试,不仅效率低,还可能因为遗漏某个操作导致线上 Bug。

有没有一种方式,让电脑像真实用户一样自动完成这些操作?

答案就是 E2E(End-to-End,端到端)自动化测试。

# 什么是 E2E 测试?

E2E(End-to-End)测试就是模拟真实用户操作,对整个业务流程进行自动化验证。

例如登录功能:

打开浏览器
    ↓
访问登录页
    ↓
输入用户名
    ↓
输入密码
    ↓
点击登录
    ↓
进入首页
1
2
3
4
5
6
7
8
9
10
11

整个过程由程序自动完成,无需人工参与。

它测试的不仅是某一个函数,而是整个系统是否能够正常运行。

# 为什么选择 Playwright?

目前主流的 E2E 自动化测试工具主要有:

  • Playwright
  • Cypress
  • Selenium

如果是一个新的前端项目,我更推荐使用 Playwright。

原因很简单:

  • 学习成本低
  • API 简洁
  • 支持主流浏览器
  • 调试体验优秀
  • 社区活跃,更新频繁
  • 对 Vue、React、Angular 等框架都适用

对于现代前端项目来说,它几乎已经成为 E2E 自动化测试的首选方案。

# Playwright 十大特色能力

Playwright 不只是一个自动化测试工具,它还有很多提升开发效率的能力。

# 1. 自动等待(Auto Waiting)

无需手动编写各种等待逻辑,Playwright 会自动等待元素可见、可点击,大幅降低测试失败率。

# 2. Codegen 自动录制

执行:

npx playwright codegen
1

即可录制浏览器操作,自动生成测试代码,非常适合新手快速上手。

# 3. Trace 调试

测试失败后,可以像看录像一样回放整个测试过程,包括点击、输入、网络请求、DOM 变化等信息,定位问题非常方便。

# 4. 自动截图和录像

测试失败时可以自动保存截图和视频,帮助快速分析问题,无需重新运行测试。

# 5. 多浏览器支持

同一套测试代码即可运行在:

  • Chromium
  • Firefox
  • WebKit(Safari)

真正做到一次编写,多浏览器验证。

# 6. 并行执行

多个测试可以同时运行,大幅缩短执行时间,非常适合 CI/CD。

# 7. 网络请求 Mock

支持拦截接口并返回模拟数据,即使后端接口未完成,也可以提前进行页面测试。

# 8. API Testing

除了操作浏览器,还可以直接发送 HTTP 请求,实现接口测试与页面测试统一管理。

# 9. 登录状态复用

登录一次即可保存登录状态,后续测试无需重复登录,提高执行效率。

# 10. 丰富的测试报告

内置 HTML 测试报告,支持查看执行结果、耗时、截图、录像等信息,方便团队排查问题。

# 安装 Playwright

进入项目根目录,执行:

npm init playwright@latest
1

安装过程中按照默认配置即可。

安装完成后,项目中会新增:

tests/
playwright.config.ts
1
2

其中:

  • tests:存放测试用例
  • playwright.config.ts:测试配置文件

# 编写第一个测试

新建:

tests/login.spec.ts
1

代码如下:

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

test('登录成功', async ({ page }) => {

  await page.goto('http://localhost:3000/login');

  await page.getByPlaceholder('用户名').fill('admin');

  await page.getByPlaceholder('密码').fill('123456');

  await page.getByRole('button', { name: '登录' }).click();

  await expect(page).toHaveURL(/home/);

});
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

运行测试:

npx playwright test
1

浏览器会自动打开,完成整个登录流程。

# Codegen:最快的编写方式

推荐大家先学会使用 Codegen。

执行:

npx playwright codegen http://localhost:3000
1

浏览器中的每一步操作都会自动生成对应代码。

例如:

await page.getByPlaceholder('用户名').fill('admin');

await page.getByPlaceholder('密码').fill('123456');

await page.getByRole('button', { name: '登录' }).click();
1
2
3
4
5

很多简单的测试,几乎不需要自己手写。

# 常用 API

# 打开页面

await page.goto('/login');
1

# 输入内容

await page.getByPlaceholder('用户名').fill('admin');
1

# 点击按钮

await page.getByRole('button', {
  name: '登录'
}).click();
1
2
3

# 获取文本

const text = await page.locator('.title').textContent();
1

# 判断元素存在

await expect(
  page.getByText('登录成功')
).toBeVisible();
1
2
3

# 判断页面跳转

await expect(page).toHaveURL(/home/);
1

# 查看测试报告

执行:

npx playwright test --reporter=html
1

然后:

npx playwright show-report
1

浏览器会自动打开测试报告,可以查看:

  • 测试是否通过
  • 执行耗时
  • 错误信息
  • 截图
  • Trace
  • 视频

调试效率非常高。

# 推荐的项目结构

随着测试越来越多,建议采用 Page Object Model(POM)模式组织代码。

tests/

pages/
    LoginPage.ts
    UserPage.ts
    OrderPage.ts

specs/
    login.spec.ts
    user.spec.ts
    order.spec.ts

utils/
1
2
3
4
5
6
7
8
9
10
11
12
13

把页面操作封装到 Page 中,可以减少重复代码,提高维护性。

# 企业项目实践建议

E2E 测试并不是覆盖所有页面,而是优先覆盖最核心的业务流程。

例如:

  • 登录
  • 权限验证
  • 查询列表
  • 新增数据
  • 编辑数据
  • 删除数据
  • 文件上传
  • 文件下载
  • 导出报表
  • 支付流程

对于一些静态页面或展示型页面,没有必要投入过多自动化测试成本。

遵循 20% 的核心流程覆盖 80% 的业务风险,往往比追求 100% 覆盖率更有价值。

# 总结

Playwright 已经成为现代前端自动化测试的主流选择。

它不仅提供了简洁的 API,更集成了自动等待、Codegen、Trace、Mock、多浏览器支持等一系列实用能力,让编写、调试和维护自动化测试变得更加轻松。

如果你的项目还停留在人工回归测试阶段,不妨从最核心的业务流程开始,例如登录、查询、新增等功能,逐步建立自己的自动化测试体系。随着测试用例不断积累,每次发布都可以自动验证关键流程,不仅能减少重复劳动,也能显著提升项目质量和团队开发效率。

编辑 (opens new window)
上次更新: 2026/07/08, 6:07:00
微信小程序开发

← 微信小程序开发

最近更新
01
Android TV 开源 IPTV 播放器选型指南
06-29
02
双重NAT|公网远程WOL唤醒
06-22
03
高德+deck坐标系与投影集成技术
05-21
更多文章>
Theme by Vdoing | Copyright © 2019-2026 kc shen | MIT License 豫ICP备2024074563号-3
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式