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

相关推荐
七牛开发者25 分钟前
从 GLM 到 GPT,HarnessPro 如何用 RSI 降低 Agent 成本
人工智能·gpt·agent·harness·rsi
跨境卫士-小汪1 小时前
TikTokShop欧洲商品接口架构调整跨境技术团队需要做好哪些准备
大数据·人工智能·新媒体运营·跨境电商·跨境·营销策略
康小汪2 小时前
AI 写 Vue 总写成同一个味道:给它装 Skills,装的不是知识是边界
前端·vue.js·人工智能·ai编程·最佳实践
收放扳机2 小时前
多机连线(In-Line)场景下,收放板机“缓存工位”的容量与架构选型参考
人工智能·科技·自动化·制造·pcb工艺
武天旭2 小时前
AI安全--AI大模型的后门攻击检测与防御
人工智能·深度学习·安全·机器学习
zhangrelay2 小时前
新版|-|单片机原理与接口技术-2026持续改进优化-从MEGA2560-ESP32与Wokwi到ROS2-Lyrical与具身智能栈
笔记·单片机·嵌入式硬件·学习
智能运维指南3 小时前
研制过程“两张皮“怎么破:研制一体化支撑平台的定位、能力边界与落地前提
java·前端·人工智能·嘉为蓝鲸
人工智能AI技术3 小时前
DeepInfer开源炸场!别再妄想个人电脑跑满血DeepSeek
人工智能
深蓝电商API3 小时前
用AI生成拟人行为:让鼠标轨迹更“有人味”
人工智能·爬虫
znnnk3 小时前
数据库被AI“重写”:2026,从CPU中心走向GPU中心
数据库·人工智能·oracle