在上篇文章《系统的 AI 救赎:从此拒绝对着“屎山”代码盲人摸象》中,我们探讨了如何利用 AI 贯穿软件开发的“需求-设计-开发-测试”全流程。
然而,细心的你可能已经发现,测试阶段我们仅仅停留在了“生成测试案例”这一步。AI 虽然写出了完美的“剧本”,但还缺少一位能上台“表演”的演员。真正的 AI 接管,还差最后一步——自动化测试执行。
今天,我们将通过通义灵码 + Playwright,来完成这至关重要的“最后一公里”,让 AI 不仅会写测试,更会“跑”测试。
🤖 什么是 Playwright?
首先,让我们认识一下今天的主角——Playwright。
简单来说,Playwright 是微软开源的一款现代浏览器自动化框架。你可以把它想象成一个不知疲倦、操作精准的“虚拟测试员”。它能够用少量代码,在 Chromium (Chrome/Edge)、Firefox、WebKit (Safari 引擎) 等主流浏览器中,自动完成所有“人类的浏览器操作”:
- 基础操作:打开网页、点击按钮、输入文字、拖拽元素。
- 高级功能:上传文件、截图、生成 PDF、录制并回放操作日志。
它最核心的用途就是进行端到端(E2E)测试,确保你的应用从用户界面到后端服务都能协同工作。当然,它也能胜任轻量级的网页爬取和流程自动化任务。Playwright 提供了 JavaScript/TypeScript、Python、Java、.NET 等多种语言的 SDK,其中 JS/TS 与 Playwright Test 的组合是目前最主流的选择。
🛠️ 化繁为简:将复杂性交给 AI
传统的自动化测试,需要我们手动编写大量的脚本代码,不仅耗时,而且非常脆弱——页面结构的微小改动就可能导致测试失败。
现在,借助 MCP (Model Context Protocol),一切都变得简单了。MCP 就像一个“万能插座”,让 AI 能够标准化地调用外部工具。
我们只需在通义灵码的 MCP 市场中搜索 “playwright” 并添加。添加成功后,你会看到它提供了丰富的工具,比如 browser_navigate (打开网页)、browser_fill_form (填写表单)、browser_click (点击) 等等。
但你完全不需要去仔细研究每个工具的具体用法!
这正是 AI 的强大之处。我们选择通义灵码的 智能体模式 ,然后,像给一位真人测试员下达指令一样,用自然语言告诉它:
“访问 http://XXXX,用用户名 XXX 和密码 XXX 登录。”“打开 XXXX/XXXX 菜单,在搜索框输入 XXX 进行查询。”“查询成功后,将界面截图,并生成一份测试报告。”
✨ 见证奇迹:AI 的自主执行与问题解决
当你按下回车,奇迹就开始了。
你可以清晰地看到通义灵码智能体开始生成待办任务列表,并自主地调用 Playwright 的各项工具来执行你的指令。它会先打开浏览器,导航到指定页面,然后精准地找到登录框,填入账号密码,点击登录……整个过程行云流水。
更令人惊叹的是,当中间遇到问题时,它甚至会尝试自己解决。比如,如果页面加载稍慢,它会自动等待关键元素出现;如果某个选择器定位失败,它会尝试其他方式。
最终,它会完成所有任务,并生成一份看上去相当专业的测试报告,其中包含了操作步骤、截图和最终结果。
🧩 拼图补全:数据准备与结果验证
光有 UI 操作还不够。真正的自动化测试闭环,必须解决两个核心痛点:
- 前期:测试数据怎么来?(总不能每次测试都去数据库手动插条数据吧?)
- 后期:结果对不对?(界面显示成功,数据库里真的成功了吗?)
在通义灵码的智能体模式下,这一切依然可以通过自然语言指挥完成。
1. 前期准备:API 与数据库的“双剑合璧”
在 Playwright 执行 UI 操作前,我们往往需要特定的数据(比如一个“已支付但未发货”的订单)。此时,我们可以让 AI 调用 HTTP 请求工具 或 数据库查询工具 来“铺路”。
你可以这样对 AI 说:
“在打开浏览器之前,先调用 POST /api/order/create 接口,生成一个金额为 100 元的待支付订单,拿到 order_id。”“或者,直接去数据库 orders 表里查一个状态为 pending 的订单 ID 给我。”
AI 会先执行这些后台操作,将获取到的 order_id 暂存为变量,然后在随后的 Playwright 浏览器操作中,自动填入这个 ID 进行搜索。这就实现了 “数据驱动 UI 测试” ,完全摆脱了手工造数的烦恼。
2. 后期验证:不仅看界面,更要“查户口”
UI 上的“操作成功”提示可能是假的(比如前端写死了提示,但后端报错)。为了确保万无一失,我们需要让 AI 进行全链路验证。
当 Playwright 完成界面操作后,继续给 AI 下达指令:
“界面上点击‘提交’后,不要只看弹窗提示。”“请调用 GET /api/order/{order_id} 接口,或者查询数据库,确认该订单的状态字段确实变成了 paid,且金额无误。”“如果数据一致,标记测试通过;否则,截取当前浏览器画面并报错。”
🎯 终极形态:全栈 AI 测试工程师
通过组合 Playwright(UI 操作) + API/DB 工具(数据构造与验证),通义灵码智能体实际上已经扮演了一个全栈测试工程师的角色:
- 它的手(Playwright):模拟用户点击、输入。
- 它的嘴(API Client):与后端交互,准备数据。
- 它的眼(DB Client/Validator):深入底层,验证数据一致性。
至此,我们真正完成了从“需求分析”到“代码生成”,再到“自动化测试执行与验证”的完整闭环。AI 不再只是帮我们写文档的助手,而是进化成了能够独立闭环验证业务逻辑的智能体。
这,就是 AI 原生开发流程的终极救赎。