当前位置: 首页 > news >正文

AI测试工程笔记 04:Codex + Playwright 自动修复 UI 自动化脚本

一、背景

在传统 UI 自动化测试中,脚本维护一直是一个比较大的问题。

很多时候都会遇到类似情况:

  • 按钮文案调整

  • placeholder 修改

  • 页面结构轻微变化

这些改动虽然不影响业务逻辑,但容易导致自动化脚本失败。

脚本失败,通常需要测试工程师:

查看失败日志
→ 定位问题
→ 修改脚本
→ 重新执行

整个过程完全依赖人工。

随着 AI 编程工具的发展,

AI 是否可以参与自动化脚本的失败分析和修复?

验证AI + Playwright 是否能够完成自动化脚本的自动修复。


二、环境

环境如下:

  • Codex Agent
  • Playwright
  • Node.js
  • Win11 本地环境

测试页面为本地项目:

Punch Agent
http://localhost:5173

测试目标流程:

打开页面
→ 输入工作内容
→ 点击提交
→ 页面展示提交内容


三、流程

验证链路:

AI生成测试脚本 → 执行Playwright自动化测试 → 人为制造脚本错误 → Playwright执行失败 → AI读取失败日志 → AI修改测试代码 → 重新执行验证

也就是说,并不是测试:

AI会不会写自动化脚本

而是验证:

AI能不能参与自动化脚本维护


四、案例

1:按钮定位错误

首先在测试脚本中故意制造按钮定位错误:

await page.getByRole('button', { name: '提交123' }).click();

而页面真实按钮为:

提交

执行测试后,Playwright 报错:

waiting for getByRole('button', { name: '提交123' })

此时 AI 根据错误日志分析:

  • 按钮文案定位错误

  • 页面不存在该元素

AI 将代码修复为:

await page.getByRole('button', { name: /^提交$/ }).click();

重新执行测试:

1 passed

测试恢复通过。


2:placeholder 定位错误

第二个模拟输入框定位错误。

故意将 placeholder 改为:

.getByPlaceholder('记录今天的工作121')

执行后 Playwright 报错:

waiting for getByPlaceholder('记录今天的工作121')

AI 识别出 placeholder 与页面真实值不一致,并修复输入框定位。

再次执行:

1 passed


3:断言文本错误

第三个模拟断言错误。

故意将断言写为:

await expect(page.locator('body')).toContainText('AI自动化测试123');

但页面实际内容为:

AI自动化测试

Playwright 执行失败。

AI 读取失败日志后判断:

  • 页面行为正常

  • 断言文本错误

修复代码:

await expect(page.locator('body')).toContainText('AI自动化测试');

再次执行:

1 passed

测试恢复通过。


五、结果

通过三个验证:

AI 在 UI 自动化测试中可以完成以下工作:

  • 读取失败日志
  • 分析失败原因
  • 修改测试代码
  • 重新执行测试

在简单场景下,AI 已经具备初步自动修复测试脚本的能力


六、思考

这次并不是:

AI生成自动化脚本

而是验证了另一件事情:

AI参与自动化脚本维护

在很多项目中:

写脚本

只占自动化成本的一小部分。

更大的成本其实来自:

脚本维护

如果 AI 能够辅助完成:

失败分析
→ 自动修复
→ 自动回归

将有可能显著降低自动化测试的维护成本。


七、下一步探索

本次只验证了简单场景。

后续计划继续探索更复杂的失败类型,例如:

  • 页面加载等待问题
  • 弹窗干扰
  • 元素结构变化

观察 AI 在复杂自动化失败场景中的修复能力。


八、小结

通过本次实验,可以看到 AI 在自动化测试中的一个潜在方向:

  • AI生成测试
  • AI执行测试
  • AI修复测试
  • AI回归验证

虽然目前仍然处于探索阶段,但已经可以看到AI参与自动化测试维护的可能性

九、实践价值与局限性

1. 实践价值

本次验证了一个值得关注的方向:

AI 可以参与自动化测试脚本的维护过程。

UI 自动化的难点并不是脚本编写,而是脚本维护。

例如:

  • 页面文案调整
  • 元素结构变化
  • placeholder 修改

这些变化往往不会影响业务逻辑,但会导致自动化脚本失效,需要测试工程师手动排查并修复。

通过本次实验可以看到:

AI读取失败日志
→ 分析失败原因
→ 修改测试脚本
→ 重新执行验证

在简单场景下,AI已经可以参与完成这一闭环。

如果未来将这一能力进一步工程化,有可能在以下方面产生价值:

  • 降低自动化脚本维护成本
  • 减少重复性排查工作
  • 提高回归效率

2. 必要性

在自动化测试实践中,经常会出现一种情况:

测试逻辑是正确的
但脚本定位失效

例如:

按钮文案变化
placeholder 微调
断言文本调整

这些问题本质上并不属于业务缺陷,但却会导致自动化失败。

如果每一次都需要人工排查并修改脚本,会消耗大量时间。

因此,引入 AI 参与自动化脚本维护,具有一定的意义。


3. 当前局限性

本次实验仍然属于小规模验证,存在明显局限:

1️⃣ 失败场景较简单
目前只验证了:

按钮定位错误
placeholder 定位错误
断言文本错误

2️⃣ 未涉及复杂页面结构
例如:

动态 DOM
iframe
复杂组件库

3️⃣ 未验证复杂失败原因
例如:

等待策略错误
网络请求失败
数据依赖问题

这些场景可能对 AI 的分析能力提出更高要求。


4. 下一步探索方向

后续计划继续探索更复杂的自动化失败场景,例如:

  • 页面加载等待问题
  • 弹窗干扰
  • 元素结构变化

观察 AI 在复杂自动化失败场景中的修复能力。

如果能够逐步扩展失败场景,并形成稳定的修复策略,未来有可能构建出:

AI辅助自动化测试维护体系

整个项目已经上传github:https://github.com/test202005/ai-testing-lab

http://www.jsqmd.com/news/461280/

相关文章:

  • Java Scanner 类详解
  • ‘养虾‘和‘训虾‘有什么区别?深度解析
  • OpenClaw有官方操作界面吗?长什么样?深度解析
  • 什么是Amdahl定律?如果你优化了PHP-FPM的某个模块,如何衡量这个优化对整个系统性能的提升?
  • 基础科学几乎停滞,谁限制人类发展?科学家的猜测或许是正确的(视频脚本)
  • 并发和并行的区别是什么?在PHP-FPM的多进程模型中,是并发还是并行?
  • 周鸿祎说OpenClaw还有三个问题没解决,是哪三个?深度解析
  • python flask django外卖点餐配送系统网站设计和实现 员工
  • Python基于flask某公司员工酬薪工资管理系统
  • OpenClaw是哪个公司开发的?是国产软件吗?深度解析
  • Python基于flask程序员薪资工资分析系统爬虫可视化
  • 用OpenClaw能实现‘一人公司‘是什么意思?深度解析
  • AI营销新纪元:如何选择靠谱的人工智能服务商,实现业绩指数级增长?
  • “python”命令不可用
  • 普通人要不要养“龙虾”(视频)
  • AI Coding 工具 Trae 的简单实践
  • 推荐下江苏做机械标准件库的服务商|企业选型实用指南 - 冠顶工业设备
  • 2026年3月红光治疗仪品牌推荐排行榜:基于安全与效能的五大品牌深度对比 - 十大品牌推荐
  • 2026年3月红光治疗仪品牌推荐榜:基于临床数据与安全标准的深度对比评测 - 十大品牌推荐
  • No178:AI中国故事-对话范雎——远交近攻与AI战略:分化击破与目标聚焦
  • 2026年3月红光治疗仪品牌推荐排行榜:基于安全与效能的五大品牌深度对比与评测 - 十大品牌推荐
  • 工程设计类学习(DAY19):低压电源防雷:GDT选型与应用全解析
  • 2026年3月红光治疗仪品牌推荐排行榜:基于临床数据与安全标准的深度对比评测 - 十大品牌推荐
  • 『NAS』一句话生成网页,在NAS部署UPage
  • python flask django社区门户网站帮扶邻里服务平台可视化
  • 2026年3月沥青厂家综合实力对比与推荐排行榜:五家优质供应商深度解析 - 十大品牌推荐
  • 毕业设计_包装机推包机构设计(说明书+CAD图纸+开题报告+任务书+计划周记进度检查表……)
  • 2026年评价高的减速板公司推荐:减速板生产厂家推荐 - 品牌宣传支持者
  • 2026年3月红光治疗仪品牌推荐排行榜:五大品牌深度对比与科学选择指南 - 十大品牌推荐
  • 2026年3月沥青厂家综合实力对比与推荐排行榜:五大优质供应商深度解析 - 十大品牌推荐