Playwright-MCP Web 运行时探索
Playwright-MCP Web 运行时探索 — 学习笔记(第04课)
课程目标
- 使用 Playwright-MCP 让 Claude Code 打开 EventFlow 页面并读取页面结构
- 限定 Agent 只做页面摸排,不写代码、不做完整测试
- 输出包含页面、角色、入口、关键元素、动作、跳转和疑点的功能地图
- 分别探索普通用户和活动发起者的主要路径
- 判断 AI 是否漏掉关键页面、误解入口或编造功能
- 在 Agent 卡住、循环、误解页面时打断并纠偏
本课产物
完成本课后,应得到以下文档:
| # | 文件名 | 内容 |
|---|---|---|
| 1 | 第04课_EventFlow_Web功能地图.md |
页面清单、入口、角色、关键元素、动作和跳转 |
| 2 | 第04课_EventFlow_Web探索疑点清单.md |
AI不确定、需人工确认、需后续探测的问题 |
| 3 | 第04课_探索会话记录.md |
关键 Prompt、AI 输出、人类纠偏记录 |
| 4 | 第04课_人工评审批注.md |
如何审查和修订 AI 功能地图的示例 |
一、Web 运行时探索
1.1 文档与页面真相
从现实情况来看,需求文档、接口文档和源码未必能完整说明页面真实状态。在对实际的 Web 系统进行测试时,不能只靠"读文档",测试人员通常需要先手动进入系统摸排页面,记录功能入口和业务路径。
本课的核心:让 Agent 借助 Playwright-MCP 完成这件事。
页面真相的藏身之处:
| 信息 | 可能藏在哪里 |
|---|---|
| 登录后默认跳转到哪里 | 运行时页面 |
| 某个按钮是否置灰 | 页面状态 |
| 普通用户和活动发起者看到的菜单是否不同 | 角色登录后的界面 |
| 报名成功后页面如何变化 | 实际操作后的状态 |
| 异常提示文案是什么 | 表单提交后的页面反馈 |
1.2 功能地图的定位
第04课_EventFlow_Web功能地图.md 是系统页面结构和业务入口的第一轮认知记录。
| 产物类型 | 核心关注点 |
|---|---|
| 功能地图 | 页面、入口、角色、动作、跳转、疑点 |
| 测试用例 | 前置条件、步骤、预期结果 |
| 测试契约 | 前置状态、验证意图、核心断言 |
| 自动化脚本 | 可执行测试代码 |
1.3 多轮探索策略
为了覆盖不同场景、不同角色、不同身份,一般来说要分别使用每一个角色进行探索:
| 轮次 | 探索角色 | 目标 |
|---|---|---|
| 第1轮 | 未登录用户 | 识别首页、导航、登录入口、公开可见内容 |
| 第2轮 | 普通用户 | 识别活动浏览、详情、报名、取消等入口 |
| 第3轮 | 活动发起者 | 识别创建活动、管理活动、查看报名等入口 |
每探索一轮都记录 "看到了什么" 和 "没看懂什么",前者构成了功能地图,后者构成了疑点清单。
二、Playwright-MCP:AI 的眼睛和手
2.1 工具分工
| 工具 | 在本课中的作用 |
|---|---|
| Claude Code | 理解任务、组织观察结果、输出 Markdown |
| Playwright-MCP | 打开浏览器、读取页面结构、执行基本交互 |
| 测试人员(人类) | 划定范围、评审结果、纠偏和最终判断 |
2.2 工具选择与安装
Playwright 是微软开发的浏览器自动化工具,提供两种 Agent 接入方式:
| 对比维度 | Playwright-MCP | Playwright-CLI |
|---|---|---|
| 接入方式 | MCP 协议 | Skills 方式 |
| 浏览器窗口 | 显示 | 不显示 |
| 登录状态 | 保持 | 不保持 |
| 历史记录 | 保留 | 不保留 |
| 并行启动 | 不支持 | 支持 |
选择建议:
- Playwright-MCP — 适合对单个浏览器的长期使用、探索、观察、推理
- Playwright-CLI — 适合临时任务、不保留记录的安装步骤和流程,后台静默运行
三、探索前准备
3.1 账号与探索范围
账号准备:
| 角色 | 账号 | 密码 |
|---|---|---|
| 普通用户 | qa.demo@eventflow.test |
Password! |
| 活动发起者 | organizer@eventflow.test |
Passw0rd! |
探索范围:
- 未登录状态下的首页和公开入口
- 普通用户登录后的主路径
- 活动发起者登录后的主路径
3.2 探索记录文件模板
# 第04课 探索会话记录
## 探索目标
使用 Playwright-MCP 对 EventFlow Web 端做运行时摸排,输出功能地图和疑点清单。
## 探索范围
- 未登录状态
- 普通用户路径
- 活动发起者路径
## 关键 Prompt
记录本课每一轮探索使用的 Prompt。
## 人类纠错记录
记录 AI 卡住、误解、循环探索时的处理方式。
3.3 统一输出字段
功能地图 Markdown 使用固定表头:
| 页面/区域 | 角色 | 入口 | 关键元素 | 可执行动作 | 跳转/状态变化 | 疑点 |
四、第一轮探索:未登录状态
4.1 启动探索 Prompt
你是一个软件测试工程师专家。请使用 playwright-mcp 打开 EventFlow Web 端:http://127.0.0.1:5174
任务:
请进行第一轮运行时摸排,目标是建立 Web 功能地图,不要写自动化代码,不要修改任何文件。
探索范围:
1. 未登录状态下首页能看到什么。
2. 页面中有哪些入口、按钮、导航、表单或提示信息。
3. 哪些功能看起来需要登录后才能继续。
输出要求:
1. 使用 Markdown 表格。
2. 表格字段包括:页面/区域、角色、入口、关键元素、可执行动作、跳转/状态变化、疑点。
3. 对不确定的内容写入"疑点",不要编造。
4. 如果遇到弹窗、遮罩或无法继续的页面状态,请先停止并说明当前状态,不要无限重试。
4.2 期望观察内容
| 观察项 | 示例 |
|---|---|
| 首页主要区域 | 标题、导航、活动列表、登录入口 |
| 公开内容 | 是否能看到活动列表或详情 |
| 需要登录的入口 | 报名、创建活动、个人中心 |
| 登录入口 | 登录按钮、登录表单、跳转链接 |
| 初始疑点 | 未登录能否查看活动详情 |
以当前 EventFlow 实际页面为例,根地址会跳转到 /events,页面标题是 EventFlow Lite。未登录导航包含 "首页/登录/注册",首页可见 "城市活动发现"、"筛选活动"、活动列表、状态筛选按钮、分页按钮,以及活动卡片上的 "查看详情并报名" 入口。
如果 AI 输出过于简略,可以追问:
"请补充首页中可见的主要入口、按钮和导航项。仍然只做未登录状态观察,不要登录,不要写代码。"
五、第二轮探索:普通用户路径
5.1 探索 Prompt
请继续使用 playwright-mcp 探索 EventFlow 的普通用户路径。
账号:
普通用户:qa.demo@eventflow.test / Password!
任务:
请登录普通用户账号,探索活动浏览、活动详情、报名、取消报名等相关入口。
约束:
1. 只做功能地图探索,不做完整测试验证。
2. 不写自动化代码。
3. 不修改项目文件。
4. 每发现一个页面或状态变化,都记录到功能地图。
5. 如果不确定某个业务规则,请写入疑点清单。
输出:
请更新 EventFlow Web 功能地图.md 的普通用户部分,并单独列出普通用户路径的疑点。
5.2 重点观察内容
- 登录后默认跳转到哪个页面
- 普通用户的导航栏与未登录时的差异
- 活动列表中的操作入口(筛选、排序、分页)
- 活动详情的完整信息(标题、时间、地点、状态等)
- 报名入口状态(可报名/已满额/已结束)
- 报名后的页面反馈与状态变化
- 取消报名的入口与流程
六、第三轮探索:活动发起者路径
6.1 探索 Prompt
请继续使用 playwright-mcp 探索 EventFlow 的活动发起者路径。
账号:
活动发起者:organizer@eventflow.test / Passw0rd!
任务:
请登录活动发起者账号,探索创建活动、编辑或管理活动、查看报名信息等相关入口。
约束:
1. 只记录页面、入口、关键元素、可执行动作和状态变化。
2. 不写自动化代码。
3. 不修改项目文件。
4. 对没有实际看到的信息,不要推测为事实。
输出:
请更新 EventFlow Web 功能地图.md 的活动发起者部分,并单独列出需要人工确认的问题。
6.2 重点观察内容
- 活动发起者的导航栏与普通用户的差异
- "创建活动"的入口与表单结构
- 已创建活动的管理面板
- 查看/管理报名者的入口
- 编辑/取消活动的功能
- 活动发起者是否能看到普通用户路径中的所有功能
路由清单
示例:
/— 首页(重定向到 /events)/events— 活动列表/events/:id— 活动详情/login— 登录页/register— 注册页/profile— 个人中心/events/create— 创建活动/events/:id/manage— 活动管理
6. 人工评审批注
- 需要补充的页面:
- 需要重新确认的入口:
- 疑似 AI 误解的地方:
七、整理功能地图与疑点清单
7.1 功能地图结构
# EventFlow Web 功能地图
## 1. 探索范围
- Web 地址:http://127.0.0.1:5174
- 探索账号:普通用户、活动发起者
- 探索时间:
- 探索工具:Playwright-MCP
## 2. 未登录状态功能地图
| 页面/区域 | 角色 | 入口 | 关键元素 | 可执行动作 | 跳转/状态变化 | 疑点 |
| :--- | :--- | :--- | :--- | :--- | :--- | :--- |
| ... | ... | ... | ... | ... | ... | ... |
## 3. 普通用户功能地图
| 页面/区域 | 角色 | 入口 | 关键元素 | 可执行动作 | 跳转/状态变化 | 疑点 |
| :--- | :--- | :--- | :--- | :--- | :--- | :--- |
| ... | ... | ... | ... | ... | ... | ... |
## 4. 活动发起者功能地图
| 页面/区域 | 角色 | 入口 | 关键元素 | 可执行动作 | 跳转/状态变化 | 疑点 |
| :--- | :--- | :--- | :--- | :--- | :--- | :--- |
| ... | ... | ... | ... | ... | ... | ... |
## 5. 页面跳转关系摘要
```text
首页 -> 登录页 -> 活动列表 -> 活动详情 -> 报名状态
```
7.2 疑点清单结构
| 疑点编号 | 角色 | 页面/功能 | 疑点描述 | 为什么重要 | 建议后续处理 |
|---|---|---|---|---|---|
| Q-WEB-001 | 普通用户 | 活动详情 | 报名后是否允许取消尚未确认 | 影响报名链路测试契约 | 第5课纳入风险矩阵,第7课探索线验证 |
| Q-WEB-002 | 活动发起者 | 活动管理 | 创建活动后是否能编辑已有报名者 | 影响数据完整性测试 | 需人工确认业务规则 |
八、人工评审与卡点处理
8.1 人类评审清单
| 检查项 | 判断标准 |
|---|---|
| 是否覆盖主要角色 | 未登录、普通用户、活动发起者是否都有记录 |
| 是否覆盖主要路径 | 登录、浏览、报名、创建或管理活动等核心路径是否出现 |
| 是否区分事实和推测 | 实际看到的内容与 AI 推测是否分开 |
| 是否有疑点清单 | AI 不确定的地方是否被明确列出 |
| 是否存在编造 | 是否出现页面中不存在的按钮、字段、接口或业务规则 |
| 是否角色混淆 | 普通用户和活动发起者的入口是否被混写 |
| 是否可作为下一课输入 | 功能地图是否足够支撑风险矩阵生成 |
评审意见保存到 第04课_人工评审批注.md。
8.2 Agent 卡住后的处理
Agent 卡在登录、弹窗、iframe、列表循环或详情页返回中时,使用以下干预 Prompt:
刚才探索过程似乎卡住了,请不要继续重复尝试。
请先输出:
- 当前所在页面或状态
- 你尝试了哪些操作
- 失败现象是什么
- 你认为可能的原因
- 建议的下一步处理方式
约束:不要继续点击,不要写代码,不要修改文件。
原则:如果连续两次不能摆脱卡点,人工介入判断,或把该点写入疑点清单。
附录:Playwright-MCP 常用操作速查
| 操作 | 说明 |
|---|---|
browser_navigate |
导航到指定 URL |
browser_snapshot |
获取当前页面的无障碍结构树 |
browser_click |
点击页面元素 |
browser_type |
输入文本到表单字段 |
browser_select_option |
选择下拉选项 |
browser_fill_form |
批量填写表单字段 |
browser_console_messages |
获取浏览器控制台日志 |
本笔记源自第04课:使用 Playwright-MCP 进行 Web 运行时探索与功能地图生成。

浙公网安备 33010602011771号