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

测试工程师用 Claude :它修得了选择器,修不了你的需求理解

测试架构这行有个一直没解决的尴尬:开发一周能写完的功能,QA 写测试要追两周。 你越想把覆盖率补齐,这个口子张得越大。所以当 Claude Code 加上 Playwright 这套东西开始能自己写测试的时候, QA 圈子是真的盯着看。但我想先泼一句:它确实改变了一些事, 但改变的不是你想的那部分。这篇我就把半年用下来, 真省事的、被吹过头的、和压根没动的,分开说清楚。先看 QA 的时间都花哪了第一张图那三个数字,是这事的起点。回归测试吃掉 QA 差不多一半工时; 手写测试用例占了 IT 预算里近 40% 的重复劳动; 团队花在修选择器、改定位器上的时间能占到 sprint 的三到四成。这三件事的共同点很明显——重复、机械、按既定模式走。 凡是有这个特征的活,AI 工具都能啃。这也是为什么 QA 是最早被 AI 编码工具规模化盯上的工种之一,不是因为 QA 简单, 是因为 QA 的工作量里有一大块是已知模式的重复执行。但你注意这张图里没有什么:测试策略、风险评估、 这个版本到底放不放行。这些不在图里,因为这些不是重复劳动, 是判断。判断这部分,后面会说,AI 接不了。考虑到国内订阅Claude确实有点困难参考一下靠谱的网站claudemax.shopPlaywright 那三个 Agent,各管一段现在 QA 用 Claude 的主流方式,不是直接跟 Claude 聊天让它写测试, 而是 Claude Code 配 Playwright 官方那三个内置 Agent。 第二张图画的就是它们的分工。Planner实时探查你的应用,产出一份人能读的 Markdown 测试计划。 注意它的输出是计划不是代码。这一步你应该看一眼—— 它对 UI 结构理解得不错,但经常漏业务规则,因为业务规则不在 DOM 里。Generator把那份 Markdown 计划转成可执行的.spec.ts。 它有个我挺看重的特性:边写边对着运行中的应用验证选择器和断言, 不是凭空编 Playwright 的 API。早期的 AI 测试生成器最烦人的就是 幻觉出一个根本不存在的断言方法,Generator 这点改进是实在的。Healer跑测试套件,挂了就重放失败步骤、看当前 UI、定位等价的新元素、 给个补丁。这个争议最大,单独开一节讲。装这套 Agent 用 Playwright 的init-agents命令:​bash给项目生成三个 Agent 的定义文件npx playwright init-agents --loopclaude​--loop后面跟你用的 AI 工具。具体可选值和 flag 以 playwright.dev/docs/test-agents 的当前文档为准——这个 CLI 还在迭代, 我不想让你抄一个过时的参数。还有一条官方提醒值得记:每次升级 Playwright,这些 Agent 定义都要重新生成一遍, 因为新版会带新的工具和指令。VS Code 里要用这套 agentic 体验,需要 VS Code v1.105 以上 (那个版本去年 10 月 9 号发的),低于这个版本跑不起来。Healer 到底能修什么——这是全文最该看的一张图第三张图是我特意做的,因为自愈测试这个词被用得太飘了。微软自己的基准数据:Healer 在选择器型失败上大概 75% 出头的成功率。 听起来很美。但请把选择器型失败这五个字看清楚。测试失败有好几种。UI 改版了、按钮挪了位置、class 名变了—— 这类是选择器失效,Healer 能修四分之三左右,这是它的主场。但还有几类:等待没设对导致的竞态、真正的逻辑 bug、后端返回的数据变了。 后两类,Healer 基本不碰,成功率个位数。而且这件事你得想明白——逻辑 bug 导致的测试失败, 那个失败本来就是测试在干正事。它失败,是因为你的产品真的坏了。 你要是让 AI 把这种失败修绿,那不叫自愈,那叫掩盖事故。所以 Healer 的准确定位是:它省的是维护工时,不是测试创建, 更不是测试本身的价值判断。行业里有句话我觉得说得对—— 真正从 Agent 受益最大的,是那些原本花三四成 sprint 在修选择器上的团队。 如果你的 UI 很稳定、测试套件也不大,这套东西的搭建和管理成本 可能还不值当。配置上有个细节能省你不少麻烦。playwright.config.ts里:​typescript import { defineConfig } from playwright/test;export default defineConfig({ testDir: ./tests, // 先让 Playwright 自己重试,处理真·flaky,再轮到 Healer retries: 2, // JSON reporter 产出机器可读结果,Agent 能解析 reporter: [ [json, { outputFile: test-results/results.json }], [html], ], use: { baseURL: http://localhost:3000, trace: on-first-retry, }, });​retries: 2这行不是随便加的。它让 Playwright 先自己重试两次, 把真正的偶发性 flaky 过滤掉,再让 Healer 出手。 不加的话,Healer 会跑去修一个其实没坏、只是偶发抖了一下的测试, 越修越乱。JSON reporter 是给 Agent 用的——它要解析结构化结果 才知道哪些挂了、为什么挂。一段能跑的测试,顺便说说它生成的东西长什么样为了不空谈,放一段标准的 Playwright 测试,这是能直接跑的:​typescript import { test, expect } from playwright/test;test(用户用正确密码能登录进 dashboard, async ({ page }) { await page.goto(/login);// 用 role 和 label 定位,不用 CSS class——这是 2026 年的方向 await page.getByLabel(邮箱).fill(userexample.com); await page.getByLabel(密码).fill(correct-password); await page.getByRole(button, { name: 登录 }).click();// 断言跳转和页面内容 await expect(page).toHaveURL(/.*/dashboard/); await expect( page.getByRole(heading, { name: 欢迎回来 }) ).toBeVisible(); });​注意这里用的是getByRole、getByLabel,不是page.locator(.btn-primary)这种 CSS 选择器。这是有讲究的。2026 年 Playwright 测试的方向,是从data-testidcheckout-btn这种死绑 ID, 转向让 Agent 按语义找元素——页面底部那个绿色的、 写着完成购买的主按钮。这跟你叫一个真人 QA点提交按钮是一个道理, 他不会问你要 CSS 选择器,他看一眼页面就知道点哪个。基于 role 的定位天然更稳:你 UI 改版,class 名天天变, 但那个提交表单的按钮这个语义不变。Generator 生成的测试 如果用了一堆硬编码 CSS 选择器,下次部署就脆给你看。这里有个前提坑要说:如果你项目没有 Page Object Model, AI 生成的测试大概率会塞一堆硬编码选择器、内联测试数据、 和不靠谱的等待。解决办法很简单——喂一个你写好的 page object 样例给 Generator 当参考,它会照着你的项目结构来。 上下文这东西,你给多少,它还多少。把它接进 CI:用 CLI,别一上来就上 MCP第四张图讲的是个实操选择。Claude Code 连 Playwright 有两条路: Playwright CLI,或者 Playwright MCP。MCP 的方式是把可访问性树快照、有时候还有截图,传给 AI 让它看页面。 探索式测试、互动调试,这个顺手。但截图非常烧 token, 长会话会明显变慢、变贵。CLI 的方式 token 消耗大概是 MCP 的四分之一。TestDino 给自家产品 搭测试生成管线的时候,对比下来选了 CLI——他们公开的数字是 一段 20 行的 prompt,15 分钟产出 3 个 page object 加一个完整 spec。我的建议:结构化的、批量的测试生成管线,用 CLI; 需要 Claude 看着 UI 互动调试的场景,才上 MCP。别因为 MCP 听起来更高级就默认用它,长会话的账单会教你做人。社区里有个现成的 QA 技能包,neonwatty 那个qa-skills, 覆盖了桌面、移动、多用户流程,装法是:​bash先装 Playwright CLI(全局,一次性)npm install -g playwright/clilatest playwright-cli install再装 qa-skills 这个 Claude Code 技能包claude plugin marketplace add neonwatty/qa-skills claude plugin install qa-skillsneonwatty-qa​它有个/setup-profiles命令我觉得设计得好:它给每个用户角色 开一个有头浏览器,你手动登录(OAuth、2FA 这些它不碰,你自己来), 登录后的会话状态存到.playwright/profiles/。 配置文件.playwright/profiles.json提交进 git, 但登录凭证那些.playwright/profiles/*.json是 gitignore 掉的。这个分法是对的——配置该共享,凭证不该进仓库。 要是哪个工具让你把 storageState 直接 commit,你得警惕。它接得了什么,接不了什么用半年,我把它分三类。它干得好的:从已有代码生成单元测试和测试用例、 用 Playwright CLI 做探索式测试、根据最近代码改动做风险点的回归范围圈定、 给质量留痕(截图、trace 这些证据)。这些活的本质都是 对照已知的东西执行,它不累、不烦、不会因为是第八遍看同样的页面就走神。被吹过头的:自愈测试。Healer 修的是选择器型失败, 75% 那个数字只对这一类成立。把它说成测试套件能自己长期维护、 不用人管,是误导。它能减轻维护负担,做不到无人值守。它接不了的:测试策略——哪些场景值得测、风险在哪、 这个边界情况要不要覆盖。还有最关键的那个判断:这个版本到底能不能上线。这是 QA 这个岗位存在的理由, 也是 AI 给不了的东西。一份测试管理工具的指南里有句话说得很实在: 它是助手,不是替代;测试策略、通过与否的判断、放行的决定, 还是你的。我自己的体感,跟一份有六个月对照数据的项目复盘对得上: 速度提升几乎全来自样板代码——夹具、CI 脚本、page object 骨架。 涉及该怎么测、测到什么程度的判断,速度基本没变, 因为那部分本来就卡在人的脑子里。几条实在建议要我给还没上手的 QA 几条建议:先把 Page Object Model 立起来,再让 AI 生成测试。 没有 POM,它生成的东西就是一堆硬编码选择器,下次部署全脆。playwright.config.ts里retries: 2留着,让真·flaky 先被 重试过滤掉,别让 Healer 去修没坏的测试。生成出来的测试,优先用getByRole、getByLabel这种语义定位, 少用 CSS class 选择器。这不是洁癖,是 UI 一改版你就知道区别。逻辑 bug 导致的测试失败,别让任何 AI 去修绿。 那个失败是测试在报警,你要的是修产品,不是修测试。最后,把 AI 当成一个手很快但需要带的初级 QA。 它能把你从写夹具、补样板里捞出来,让你有时间去想 这个功能真正的风险在哪。这是好事。 但带新人你都知道——你可以让他干活,不能让他替你签放行。 那个名字得是你的。

相关文章:

测试工程师用 Claude :它修得了选择器,修不了你的需求理解

测试架构这行有个一直没解决的尴尬:开发一周能写完的功能,QA 写测试要追两周。 你越想把覆盖率补齐,这个口子张得越大。 所以当 Claude Code 加上 Playwright 这套东西开始能"自己写测试"的时候, QA 圈子是真的盯着看。但我想先泼一句:它确实改变了一些事, 但改变的…...

CompreFace人脸识别模型选型实战指南:5步搞定最佳AI模型部署

CompreFace人脸识别模型选型实战指南:5步搞定最佳AI模型部署 【免费下载链接】CompreFace Leading free and open-source face recognition system 项目地址: https://gitcode.com/gh_mirrors/co/CompreFace 面对多样化的应用场景,如何为你的项目…...

嵌入式Linux入门首选:STM32MP157开发板核心优势与学习路径全解析

1. 项目概述:从“学什么”到“用什么学”的抉择每当有朋友或刚入行的新人问我,想入门嵌入式Linux,该从哪块板子开始,我的回答几乎总是绕不开STM32MP157。这听起来像是一个厂商的“标准答案”,但背后是我踩过无数坑、对…...

如何5分钟快速配置Apple Store库存监控:终极自动化助手指南

如何5分钟快速配置Apple Store库存监控:终极自动化助手指南 【免费下载链接】apple-store-helper Apple Store iPhone预约助手 项目地址: https://gitcode.com/gh_mirrors/ap/apple-store-helper Apple Store iPhone预约助手是一个专为果粉设计的开源工具&am…...

如何快速上手SVG编辑:免费在线工具Method Draw完全指南

如何快速上手SVG编辑:免费在线工具Method Draw完全指南 【免费下载链接】Method-Draw Method Draw, the SVG Editor for Method of Action 项目地址: https://gitcode.com/gh_mirrors/me/Method-Draw 你是否曾经需要快速创建或编辑矢量图形,却被复…...

8通道采集控制终端:工业物联网边缘智能的核心硬件解析

1. 项目概述:从“通道”到“终端”的工业物联进化最近在调试一个老旧产线的数据采集项目,现场一堆4-20mA的传感器、干接点的报警信号,还有几个需要远程启停的电机,线缆接得跟蜘蛛网一样。甲方负责人看着头疼,问我有没有…...

基于Intel Core处理器的高性能嵌入式系统定制开发实战指南

1. 项目概述与核心价值最近几年,嵌入式系统的边界被不断拓宽,从传统的工业控制到边缘计算、智能零售,对核心处理单元的要求也越来越高。单纯追求低功耗或极致成本,在很多场景下已经不够用了。我们常常需要在紧凑的空间里&#xff…...

为什么你的NotebookLM中文摘要总漏关键信息?3个被官方文档忽略的语言标记陷阱,90%用户正在踩坑

更多请点击: https://kaifayun.com 第一章:NotebookLM多语言支持 NotebookLM 原生支持多种语言的文档理解与对话生成,其底层模型经过多语言语料联合训练,可无缝处理中、英、日、韩、法、德、西等 20 种语言的混合输入。用户上传非…...

工业机器视觉工控机选型指南:从硬件配置到现场调试

1. 产品定位与核心价值解析在工业自动化领域,尤其是机器视觉应用场景中,稳定、可靠且性能强劲的硬件平台是整套系统能够7x24小时无间断运行的基石。朗锐智科推出的这款机器视觉工控机,从其核心配置来看,精准地瞄准了中高端视觉检测…...

掌握AI写教材方法,低查重工具让教材编写变得如此简单!

许多教材编写者常感到失落,因为经过反复琢磨的教材内容,在缺乏相应的辅助资源时,教学效果往往大打折扣。课后练习的题型设计需要有层次感,但往往缺乏创新灵感;想要制作出直观的教学课件,却没有技术来实现&a…...

RK3288嵌入式开发实战指南:从核心优势到工业应用方案

1. 项目概述:为什么RK3288至今仍是嵌入式开发的“万金油”?在嵌入式开发这个行当里,选型永远是项目成败的第一步。面对市场上琳琅满目的处理器平台,从高通的骁龙、瑞芯微的RK系列到全志、晶晨,新老交替,让人…...

GD32 MCU与RT-Thread OS融合实战:从芯片选型到物联网节点开发全解析

1. 项目概述:一次技术路演的深度复盘最近,我作为深度参与者,完整经历了兆易创新与RT-Thread联合举办的MCU技术路演活动。这不仅仅是一场简单的产品推介会,更像是一次面向广大嵌入式开发者、硬件工程师和产品经理的“技术公开课”。…...

nvm-desktop:图形化Node.js版本管理解决方案

nvm-desktop:图形化Node.js版本管理解决方案 【免费下载链接】nvm-desktop Node Version Manager Desktop - A desktop application to manage multiple active node.js versions. 项目地址: https://gitcode.com/gh_mirrors/nv/nvm-desktop 在Node.js多版本…...

Pearcleaner:为什么这款开源工具是Mac用户清理应用残留的最佳选择?

Pearcleaner:为什么这款开源工具是Mac用户清理应用残留的最佳选择? 【免费下载链接】Pearcleaner A free, source-available and fair-code licensed mac app cleaner 项目地址: https://gitcode.com/gh_mirrors/pe/Pearcleaner 你是否曾注意到&a…...

5个设计场景,Bebas Neue如何用大写字母征服现代视觉设计

5个设计场景,Bebas Neue如何用大写字母征服现代视觉设计 【免费下载链接】Bebas-Neue Bebas Neue font 项目地址: https://gitcode.com/gh_mirrors/be/Bebas-Neue 还在为设计项目寻找一款既简洁有力又能免费商用的字体吗?Bebas Neue这款由日本设计…...

10分钟完成AI智能图像分层:layerdivider完整使用指南

10分钟完成AI智能图像分层:layerdivider完整使用指南 【免费下载链接】layerdivider A tool to divide a single illustration into a layered structure. 项目地址: https://gitcode.com/gh_mirrors/la/layerdivider 你是否曾经花费数小时手动分离插图中的不…...

CANN 容器化部署:Docker 与 K8s 实战

一、为什么需要容器化 1.1 容器化优势 裸机部署:环境依赖复杂,版本冲突扩缩容困难,手动运维资源隔离差,互相影响容器化部署:环境一致性,开箱即用弹性扩缩容,自动运维资源隔离,互不影响版本管理,…...

如何通过Play Integrity API完整检测Android设备安全状态

如何通过Play Integrity API完整检测Android设备安全状态 【免费下载链接】play-integrity-checker-app Get info about your Device Integrity through the Play Intergrity API 项目地址: https://gitcode.com/gh_mirrors/pl/play-integrity-checker-app 在移动应用生…...

ComfyUI-Custom-Scripts自动完成终极指南:如何快速提升AI绘画提示词效率

ComfyUI-Custom-Scripts自动完成终极指南:如何快速提升AI绘画提示词效率 【免费下载链接】ComfyUI-Custom-Scripts Enhancements & experiments for ComfyUI, mostly focusing on UI features 项目地址: https://gitcode.com/gh_mirrors/co/ComfyUI-Custom-Sc…...

CANN-昇腾NPU梯度累积-显存不够时怎么模拟大batch训练

大模型训练的最佳 batch size 通常在 1M-4M tokens。8 卡 Atlas 800I A2 的总显存 512GB,batch size 能开到 50 万 tokens 左右——不够。梯度累积让你用小 batch 跑多次前向,累积梯度后一次性更新,等效于大 batch 训练。 梯度累积的原理 标准…...

webMAN-MOD终极指南:PS3自制系统的完整解决方案与实用技巧

webMAN-MOD终极指南:PS3自制系统的完整解决方案与实用技巧 【免费下载链接】webMAN-MOD Extended services for PS3 console (web server, ftp server, netiso, ntfs, ps3mapi, etc.) 项目地址: https://gitcode.com/gh_mirrors/we/webMAN-MOD webMAN-MOD是一…...

2026年热门声音转换成文字工具实测对比,多场景准确率比拼,低调黑马才是真王者

我干ToB销售5年,光客户拜访、季度产品培训的录音,手机里攒了快200G。试过不下10款声音转文字工具,上个月把2026年圈里热门的几款全拉出来测了一遍,对比了多款工具,听脑AI是综合体验最好的,也是我现在天天开…...

终极指南:如何在3DS上原生运行GBA游戏,告别模拟器卡顿

终极指南:如何在3DS上原生运行GBA游戏,告别模拟器卡顿 【免费下载链接】open_agb_firm open_agb_firm is a bare metal app for running GBA homebrew/games using the 3DS builtin GBA hardware. 项目地址: https://gitcode.com/gh_mirrors/op/open_a…...

大麦抢票终极指南:告别手速焦虑,轻松锁定心仪演出门票

大麦抢票终极指南:告别手速焦虑,轻松锁定心仪演出门票 【免费下载链接】ticket-purchase 大麦自动抢票,支持人员、城市、日期场次、价格选择 项目地址: https://gitcode.com/GitHub_Trending/ti/ticket-purchase 面对热门演唱会门票&q…...

别再走弯路!2026亲测好用的AI论文工具|实测避坑硬核版

2026 年学术写作工具已高度分化,千笔AI与ThouPen为全流程首选,豆包、DeepSeek 为专项强手;避坑关键:拒绝假文献、严控 AIGC 率、优先国内适配、免费试用先行。 一、TOP3 全流程首选(亲测不踩雷) 1. 千笔AI&…...

终极MQTT客户端快速入门指南:5分钟掌握跨平台物联网通信

终极MQTT客户端快速入门指南:5分钟掌握跨平台物联网通信 【免费下载链接】mqttclient A high-performance, high-stability, cross-platform MQTT client, developed based on the socket API, can be used on embedded devices (FreeRTOS / LiteOS / RT-Thread / T…...

百度网盘Mac版破解插件:免费解锁SVIP高速下载完整指南

百度网盘Mac版破解插件:免费解锁SVIP高速下载完整指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘Mac版下载速度缓慢而困…...

VideoDownloadHelper:打破视频下载壁垒的智能浏览器插件

VideoDownloadHelper:打破视频下载壁垒的智能浏览器插件 【免费下载链接】VideoDownloadHelper Chrome Extension to Help Download Video for Some Video Sites. 项目地址: https://gitcode.com/gh_mirrors/vi/VideoDownloadHelper 在信息爆炸的时代&#x…...

从零到一:打造属于你的智能语音助手完整方案

从零到一:打造属于你的智能语音助手完整方案 【免费下载链接】xiaozhi-esp32-server 本项目为xiaozhi-esp32提供后端服务,帮助您快速搭建ESP32设备控制服务器。Backend service for xiaozhi-esp32, helps you quickly build an ESP32 device control ser…...

T153核心板RISC-V实时核实战:从架构解析到电机控制应用

1. 项目概述:当RISC-V遇上实时性,T153核心板能做什么?最近几年,RISC-V架构在嵌入式领域的热度持续攀升,从最初的学术研究到如今在工业控制、物联网终端等场景的落地,其开放、灵活、可定制的特性吸引了无数开…...