用Playwright MCP + GitHub Copilot实现自动化脚本自动生成

简介: 本文分享如何用Playwright MCP + GitHub Copilot将27条E2E脚本编写时间从28小时压缩至90分钟。通过3个真实案例——动态登录流程、12条订单关联脚本、15条老脚本批量修复,详解“精准指令+页面状态接力+稳定定位器”实战方法论,实现零硬编码、高稳定性、强可维护的AI辅助自动化测试落地。

我在3个迭代里,把27条E2E脚本的编写时间从28小时压到了90分钟

上个月产品扔过来一个需求:新上线的B端商户后台,要补全核心流程的E2E自动化回归集,一共27条用例,要求两周内交付完。

搁以前我得先开F12扒元素,挨个写选择器,填等待,补断言,光手写加调试至少要三个整天。这次我直接把Playwright MCP和GitHub Copilot串起来跑,三个迭代下来,整套27条脚本全部落地,总耗时90分钟,平均每条脚本不到3分半。

这篇我不聊环境配置的基础步骤,直接给你三个我在项目里真跑通的实战案例,从“第一次生成就翻车”到“零修改直接进CI”,每一步都是我踩完坑之后磨出来的落地流程。

案例一:商户登录+短信验证码流程,从生成到可运行只用了7分钟
这个场景是整个后台的入口,以前手写的时候最头疼。短信验证码是动态的,前端元素还做了动态渲染,之前写的老脚本三天两头因为“获取验证码按钮未找到”挂掉。

这次我完全没碰选择器,全程只做了三件事。

第一步,我先手动打开浏览器,走完一遍登录流程,拿到了已经登录态的浏览器上下文,然后启动Playwright MCP,把当前页面的远程调试端口9222直接挂载到Copilot里。没有重新开无头浏览器,也没有让AI自己去走一遍登录,直接把真实可交互的页面状态喂给了它。

第二步,我在Copilot里只输入了一段非常具体的指令: “基于当前打开的商户登录页,生成一条Playwright测试脚本。覆盖三个场景:正常输入正确手机号和验证码登录成功;手机号格式非法时提示文案正确;验证码错误三次后账号锁定15分钟。不要硬编码验证码,调用我本地的短信Mock接口获取动态码,所有定位器优先用getByRole和getByLabel,不要用任何带动态class的CSS选择器。”

第三步,我等它生成完,扫了一眼代码,发现它自动做了三个我以前手写时经常忘的细节:

点击“获取验证码”之后自动加了toast提示的等待,等“验证码已发送”文案出现才往下走
验证码错误三次之后,自动刷新页面,重新尝试登录,断言锁定提示文案
每条场景结束之后自动调用后台的解锁接口清理测试数据,不会影响下一条用例执行
整个脚本从生成到第一次跑通,我只改了Mock接口的地址,全程7分钟。最绝的是上周前端把登录页的按钮样式全改了,class名换了一遍,这条脚本跑起来一点事都没有。

我后来翻了它生成的定位器,根本没有用任何.btn-login这种样式类,全是page.getByRole('button', { name: '获取验证码' }),完全免疫前端样式改动。

这个案例里的实战踩坑点

一开始我让它自己去生成获取验证码的逻辑,它直接写了个20秒的硬等待,跑起来极不稳定。后来我在指令里明确要求“等待toast提示出现再往下走”,它自动就把硬等待替换成了文本断言等待。
第一次生成锁定场景时,它忘了最后解锁账号,导致后面所有依赖登录的脚本全部卡在锁定状态。我在指令里加了“场景结束后清理数据”,第二次生成就自动补上了解锁接口调用。
案例二:商户订单全流程,12条关联脚本,零手工敲代码
这个是整个后台最复杂的流程:商户创建商品→提交订单→修改订单状态→导出订单报表。以前手写这一套关联脚本,光处理页面跳转和状态同步就要花四五个小时,中间稍微有一步状态不对,整条链路就全断了。

这次我没有一次性让它生成整条大流程,而是拆成了四个独立的小任务,用MCP的页面状态接力的方式跑。

第一步:生成“创建商品”脚本
我停在商品创建页,给Copilot指令:“生成创建商品的脚本,覆盖正常创建、商品价格为负数、商品名称超长三个场景。创建成功后自动记录新商品的ID到全局环境变量里。” 生成完直接跑通,商品ID自动存在了环境变量里,不用我手动去复制粘贴。

第二步:生成“提交订单”脚本
MCP带着刚才的浏览器上下文跳转到订单提交页,我直接告诉Copilot:“用刚才生成的商品ID,生成提交订单的脚本。覆盖正常提交、库存不足时拦截、重复提交幂等性三个场景。订单提交成功后把订单号存到环境变量。” 它自动从环境变量里读到了商品ID,直接拼进了订单提交的接口参数里,完全不用我在脚本里硬编码。

第三步:生成“修改订单状态”脚本
带着前面的订单号上下文,跳转到订单详情页,生成修改订单状态的脚本,覆盖待发货→已发货→已完成的完整状态流转,同时校验非法状态跃迁时系统的拦截提示。

第四步:生成“导出订单报表”脚本
最后停在订单列表页,生成导出脚本,断言导出的Excel文件里包含刚才创建的那条订单记录,文件行数和订单列表数量完全一致。

四个步骤跑下来,12条关联脚本全部生成完毕,全程我没有敲一行代码,只在最后检查了一遍环境变量的传递逻辑。整套脚本第一次完整跑通,耗时不到25分钟。

最惊喜的是它自动给每条脚本都加了独立的测试数据隔离,每个场景跑完之后自动把创建的商品和订单标记为已删除,不会在后台留下一堆垃圾测试数据。

这个案例里的实战踩坑点

一开始我图省事,让它一次性生成整条12步的大流程脚本,结果它中间跳了“选择商品规格”这一步,整条链路直接在提交订单时失败。后来拆成四个独立脚本接力,每一步都基于上一步的真实页面状态生成,再也没出现过跳步的问题。

第一次生成导出脚本时,它只断言了“导出按钮点击成功”,根本没校验导出文件的内容。我在指令里补了“下载文件后读取Excel内容校验订单号”,第二次生成直接自动调用了pandas库做文件断言,连依赖导入都给我写好了。

案例三:30分钟修复15条老脚本,全量适配前端大改版
上周前端做了一次全站组件升级,几乎所有页面的class名全部换掉了,之前手工写的15条老E2E脚本集体挂掉,CI pipeline直接红了一大片。

搁以前我得花至少半天时间,挨个打开F12,重新扒元素,替换所有失效的选择器,一条一条重新调试。这次我用Playwright MCP的自愈能力,30分钟就把15条脚本全部修完,全部重新跑绿。

我没有逐条去改老脚本,而是做了三件事:

把所有失效的老脚本全部集中到一个目录里,启动MCP打开升级后的新页面,把新页面的可访问性树全部喂给Copilot。
给它一条批量指令:“遍历当前目录下所有test_*.py文件,把所有失效的CSS选择器全部替换成基于getByRole和getByLabel的稳定定位器,保留原有所有断言和业务逻辑不变。”
生成完之后批量执行一遍,失败的脚本自动触发自愈流程,从备选定位器里重新尝试,全部跑完之后输出修复报告。
最后15条脚本里,13条直接零修改修复完成,剩下2条因为页面结构改动太大,Copilot自动生成了新的步骤替换逻辑,我只微调了两个断言文本就全部跑通。前后总耗时30分钟,比我预估的时间快了十倍都不止。

修复完我翻了一遍生成的报告,它一共替换了47个老的CSS选择器,其中有21个是我以前写的带动态hash的垃圾定位器,这次全部换成了稳定的角色定位器。等于顺便给整套自动化脚本做了一次全面的质量升级。

这个案例里的实战踩坑点

一开始我直接让它批量修改,它把几个本来就正常的定位器也给换掉了,反而引入了新问题。后来我在指令里加了“只替换当前页面里找不到的失效定位器,正常工作的定位器保持不变”,就再也没出现过乱改的情况。
有两个页面是懒加载的,元素滚动到视口之外就找不到了,它生成的新定位器第一次执行失败。我在指令里补了“定位元素前先自动滚动到元素位置”,第二次生成就自动给所有操作前加上了scroll_into_view_if_needed()。
最后:我总结的三条实战铁律
跑了这么多真实场景下来,我发现很多人用Playwright MCP生成脚本效果差,根本不是工具不好用,是指令写得太懒了。

永远不要说“帮我写一个登录脚本”,要说清楚“覆盖哪几个异常场景、用什么方式处理动态验证码、用哪类定位器、失败后怎么清理数据”。你给的约束越具体,生成出来的脚本越不用改。‌
长流程永远拆成短片段接力,不要试图一次性生成几十步的大脚本。基于真实页面状态一步步往下生成,稳定性比大段脑补出来的代码高10倍。‌
生成完别直接丢进CI,花30秒扫一眼断言。只要断言不是“页面200”,是真正落到业务数据和提示文案上的,这套脚本的长期稳定性就不会差。‌
我现在写E2E自动化的方式已经完全变了。我不再是天天扒F12改选择器的脚本搬运工,我只需要定义清楚测试规则、场景边界和断言标准,剩下所有枯燥的代码生成工作,全交给Playwright MCP和Copilot去完成。

以前你花3小时写脚本,现在你花3分钟定义规则,产出的脚本质量反而比你手写的更高。这才是自动化脚本自动生成真正该有的样子。

本文部分内容参考了霍格沃兹测试开发学社整理的相关技术资料,主要涉及软件测试、自动化测试、测试开发及 AI 测试等内容,侧重测试实践、工具应用与工程经验整理。

相关文章
|
3天前
|
云安全 人工智能 运维
当攻击全面Agent化,你的安全防御能否跟上AI Speed?
多起客户侧AK泄露事件应急的真实观察
1212 2
|
26天前
|
人工智能 JSON API
全网刷屏的 Jev 模型正式开放!一手实战测评 + 保姆级教程
全网爆火的 Jev 模型是什么?有什么用?怎么使用?怎么接入 AI 编程工具?效果真的好么?傻子可懂的 Jev 保姆级实战教程 + 项目实战测评来啦
9628 32
|
12天前
|
存储 人工智能 并行计算
大模型本地部署终端选型方法论:以 Qwen3.8-27B 为例的四档分层完整流程
本文提出一套大模型本地部署终端选型方法论:定约束、定档位、定框架、定参数四步决策法,配合入门、主力、质量、无损四档分层模型。以 Qwen3.8-27B 实测数据为例,逐环节解读显存、带宽、存储、散热、系统、预算等要素,给出面向不同预算的优选方案、决策自查清单与市场观察框架。文末前瞻 AI 笔记本的 CPU+GPU 与统一内存两条路线,论证四步决策法在新品类上的延续性。
|
10天前
|
人工智能 JSON 自然语言处理
2026 年 Jev 决策模型深度拆解:原理解读、实战测评与保姆级落地教程
有一款特殊AI模型在开发者圈子刷屏,它摒弃传统大模型擅长的对话聊天能力,专注做高速结构化决策,它就是TypeSafe AI推出的Jev模型。该模型由ChatGPT共同发明人Diogo Almeida主导研发,定位为**System One Model(系统一模型)**,对标人类大脑快速直觉判断的思维模式,在响应延迟、调用成本、结构化输出稳定性上相比传统生成式大模型有着巨大差异。本文会完整拆解Jev底层原理、三大核心原语能力、适用业务场景,同时提供可直接运行的curl、Python代码示例,并且结合多组实测数据,客观分析模型优势与能力边界,帮助普通开发者和AI应用从业者快速上手落地。
815 1
|
7天前
|
人工智能 JSON 自然语言处理
2026 年 Jev 决策模型全解析:核心原理拆解,性能实战测评与落地部署教程
有一款特殊AI模型在开发者圈子刷屏,它摒弃传统大模型擅长的对话聊天能力,专注做高速结构化决策,它就是TypeSafe AI推出的Jev模型。该模型由ChatGPT共同发明人Diogo Almeida主导研发,定位为System One Model(系统一模型),对标人类大脑快速直觉判断的思维模式,在响应延迟、调用成本、结构化输出稳定性上相比传统生成式大模型有着巨大差异。本文会完整拆解Jev底层原理、三大核心原语能力、适用业务场景,同时提供可直接运行的curl、Python代码示例,并且结合多组实测数据,客观分析模型优势与能力边界,帮助普通开发者和AI应用从业者快速上手落地。
542 0
|
3天前
|
Web App开发 人工智能 JavaScript
太猛了,一个月干到15W+,给大家推荐一个最近爆火的开源逆向工具:REA
REA(Reverse Engineer Anything)是近期爆火的开源AI逆向工具,4月发布,1个月内斩获15万+ Star。它让AI Agent无需源码即可分析二进制、APK、JS/Electron、HAR包等17类目标,自动反编译、生成可运行代码,并强制返回带证据与局限的结论。全本地执行,MIT协议,支持Hopper/Ghidra/IDA等引擎,一行命令即可上手。
472 0
太猛了,一个月干到15W+,给大家推荐一个最近爆火的开源逆向工具:REA
|
8天前
|
存储 人工智能 自然语言处理
千问办公官网入口链接在哪?2026年最新QwenWork测评、千问办公怎么样?一文看懂
千问办公(QwenWork)是阿里云推出的AI智能办公平台,提供网页端和阿里云官网双入口。支持PPT/Word/Excel生成、多模态处理、网页全栈搭建、钉钉深度集成等6大核心能力。个人版免费可用,高级版198元/月;企业版198元/人/月。新用户注册即赠2000积分。阿里千问办公QwenWork官网:https://t.aliyun.com/U/0VCTGt 阿里AI工作平台,一句话完成数据分析、PPT 生成、视频剪辑、网页搭建等复杂任务
1084 0
|
6天前
|
存储 人工智能 安全
千问办公官网入口网页版登录:qwenwork.cn 注册送2000积分、登录送100积分
阿里云千问办公(QwenWork)是AI智能工作平台,支持一句话生成PPT、表格、网页、视频及数据分析。个人免费版送2000积分+每日登录赠100分,含1GB存储、5个发布页;企业版198元/席/月起。阿里千问办公QwenWork官网:https://t.aliyun.com/U/0VCTGt 阿里AI工作平台,一句话完成数据分析、PPT 生成、视频剪辑、网页搭建等复杂任务