《Playwright MCP - 自然语言编写web自动化测试》
# 使用 Trea + Playwright MCP 实现自然语言 UI 自动化测试
# 目的:
使用开源的Playwright MCP 实现自然语言编写web自动化测试,极大提升自动化脚本效率
在传统 UI 自动化中,我们往往需要写脚本、封装元素定位、处理异常与截图;
# 演示案例

本次测试目标是对我的个人博客网站(https://wangmouren.online/)进行以下验证:
- 页面是否能正常加载
- 导航栏元素是否正常展示并可点击
- 特定文章是否存在
- 某目录下所有文章是否正常展示
- 随机抽查 10 篇文章能否正常跳转
- 所有步骤执行成功后截图记录
- 失败场景自动截图保存并记录日志
# 自然语言脚本:
前置:
请在执行每一步结束后进行截图保存。
执行成功的截图文件名以 "success" 开头。
1. 打开页面 https://wangmouren.online/,等待页面加载完成。
2. 检查当前页面是否展示元素:
<a href="/job/" class="nav-link">工作</a>
如果存在,点击它。
3. 等待页面加载完成,检查页面中是否存在文章标题:
“5-1. 《10年测试老兵学习区块链:用 Hardhat + Chai 写一个完整可落地的 MiniERC20 测试套件》”。
4. 检查元素 id="基础课件" 下有多少篇文章,
每篇文章类似:
<a>2-1-1. python基础和条件语句</a>
请把所有文章标题打印出来。
5. 随机检查 10 篇文章能否正常跳转并正确打开页面。
7. 如果有任何验证失败,请截图保存为 error.png,并在日志中标记失败。
8. 最后输出完整操作日志,包含每一步操作是否成功。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# AI输出的测试日志:
# 测试执行报告
## 测试时间
2025-12-05 06:27:00
## 测试结果
**测试通过**
## 测试步骤执行情况
### 步骤1: 打开页面
- **操作**: 打开URL https://wangmouren.online/
- **结果**: 成功
- **截图**: success_step1_index.png
### 步骤2: 点击"工作"导航链接
- **操作**: 点击`a[href="/job/"].nav-link`元素
- **结果**: 成功
- **截图**: success_step2_job_page.png
### 步骤3: 检查页面是否包含指定的区块链测试文章标题
- **操作**: 获取页面可见文本,检查是否包含标题
- **结果**: 成功找到文章《10年测试老兵学习区块链:用 Hardhat + Chai 写一个完整可落地的 MiniERC20 测试套件》
- **截图**: success_step3_check_article.png
### 步骤4: 检查基础课件文章数量
- **操作**: 查找所有以"2-1-"开头的文章标题
- **结果**: 成功,共找到40篇基础课件文章
- **截图**: success_step4_base_courseware.png
### 步骤5: 随机检查10篇文章,可以正确跳转页面
- **操作**: 随机选择10篇文章,其中3篇直接访问并截图,其余7篇通过HEAD请求验证可访问性
- **结果**: 所有10篇文章都可以正确访问
- **截图**:
- success_step5_article1_函数.png
- success_step5_article2_装饰器.png
- success_step5_article3_新建一个接口.png
## 随机选择的10篇文章列表
1. 2-1-3. 函数 - https://wangmouren.online/pages/9b64fc/ ✅
2. 2-1-39. 装饰器 - https://wangmouren.online/pages/ae2766/ ✅
3. 2-1-18. 3 新建一个接口 - https://wangmouren.online/pages/b014a5/ ✅
4. 2-1-20. httprunner2.x工具快速入门 - https://wangmouren.online/pages/5c654e/ ✅
5. 2-1-11. 2 接口测试基础 - https://wangmouren.online/pages/bb68f4/ ✅
6. 2-1-26. PageObject模式 - https://wangmouren.online/pages/da14d8/ ✅
7. 2-1-33. Linux基础 - https://wangmouren.online/pages/19f963/ ✅
8. 2-1-37. 面试题-找众数 - https://wangmouren.online/pages/1191cd/ ✅
9. 2-1-14. 5 简单封装 - https://wangmouren.online/pages/845c4f/ ✅
10. 2-1-32. jdk配置 - https://wangmouren.online/pages/f23ea4/ ✅
## 基础课件文章标题列表(共40篇)
1. 2-1-1. python基础和条件语句
2. 2-1-2. 基础数据类型_改
3. 2-1-3. 函数
4. 2-1-4. 1 函数练习
5. 2-1-5. 32文件操作
6. 2-1-6. 3 异常
7. 2-1-7. 面向对象
8. 2-1-8. 1面向对象案例-学生管理系统
9. 2-1-9. 1Python基础练习题
10. 2-1-10. 自动化测试理论
11. 2-1-11. 2 接口测试基础
12. 2-1-12. 3 requests
13. 2-1-13. 4 代码
14. 2-1-14. 5 简单封装
15. 2-1-15. 1 pytest
16. 2-1-16. 签名的设计
17. 2-1-17. 接口case设计
18. 2-1-18. 3 新建一个接口
19. 2-1-19. x装饰器语法
20. 2-1-20. httprunner2.x工具快速入门
21. 2-1-21. httprunner3.x的简介
22. 2-1-22. Flask框架
23. 2-1-23. 了解任务
24. 2-1-24. mock服务
25. 2-1-25. UI自动化策略
26. 2-1-26. PageObject模式
27. 2-1-27. pytest参数化进阶
28. 2-1-28. pytest框架生成报告
29. 2-1-29. Yaml运用
30. 2-1-30. 日志类模板
31. 2-1-31. 持续集成
32. 2-1-32. jdk配置
33. 2-1-33. Linux基础
34. 2-1-34. Jenkins主从测试任务
35. 2-1-35. conda管理项目环境
36. 2-1-36. 面试题-栈结构
37. 2-1-37. 面试题-找众数
38. 2-1-38. 正交测试法
39. 2-1-39. 装饰器
40. 2-1-40. 综合面试题_原版
## 截图路径
所有截图都保存在以下目录:
`/Users/ywang/Desktop/SynologyDrive/Other/playwright_mcp_case/screenshots/`
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95