[分享] AutoQA-Agent:用 Markdown 写验收用例, AI + Playwright 跑起来,跑通还能导出成 Playwright Test - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
terryso
0.62D
0.74D
V2EX    分享创造

[分享] AutoQA-Agent:用 Markdown 写验收用例, AI + Playwright 跑起来,跑通还能导出成 Playwright Test

  •  
  •   terryso
    terryso 10 天前 996 次点击

    最近在折腾“验收自动化”时一个反复踩的坑:

    • UI 改一点点,locator 就碎,维护成本越来越高
    • 用例脚本对 PM/QA 不友好,最后还是开发在写
    • 失败排查要截图/trace/log 到处拼,效率很低

    所以做了个小工具:AutoQA-Agent(开源 CLI )。核心思路是 Docs-as-Tests (文档即测试)

    • Markdown 写用例( Preconditions + Steps )
    • Claude Agent SDK 做“观察 → 思考 → 行动”的执行闭环
    • 底层用 Playwright 真实驱动浏览器
    • 失败不直接崩:把错误/上下文回流给 agent ,按护栏重试(自愈)
    • spec 跑通后:会把动作沉淀成 IR ,并可 自动导出 @playwright/test 用例(可接 CI )

    TL;DR

    • 写:specs/*.md
    • 跑:autoqa run <spec-or-dir> --url <baseUrl>
    • 看产物:.autoqa/runs/<runId>/( log/screenshot/snapshot/trace )
    • 跑通可导出:tests/autoqa/*.spec.ts

    快速上手

    git clone https://github.com/terryso/AutoQA-Agent.git cd AutoQA-Agent npm install npm run build npm link # 可选,全局使用 autoqa autoqa init # 跑一个示例(仓库里有 SauceDemo 用例) autoqa run specs/saucedemo-01-login.md --url https://www.saucedemo.com/ # 本地观察执行过程 autoqa run specs/saucedemo-01-login.md --url https://www.saucedemo.com/ --debug 

    Markdown 用例长啥样(示例)

    # Login ## Preconditions - Test account exists ## Steps 1. Navigate to /login 2. Verify the login form is visible 3. Fill the username field with standard_user 4. Fill the password field with secret_sauce 5. Click the "Login" button 6. Verify the user is redirected to dashboard 

    说明:

    • Base URL 目前由 --url 提供( Preconditions 里的 Base URL 只做可读性)
    • Verify/Assert(也支持“验证/断言”)开头的步骤会识别为断言

    稳定性思路(简单说)

    • 每次交互前先拿 accessibility snapshot(里面会有更稳定的 ref
    • ref-first 优先点/填,失败再回退到语义描述
    • 工具/断言失败不 throw:返回结构化错误,让 agent 下一轮调整策略
    • 有护栏限制(避免无限重试/成本失控)

    失败排查/产物(我自己最想要的部分)

    每次运行会落盘:

    .autoqa/runs/<runId>/ ├── run.log.jsonl ├── ir.jsonl ├── screenshots/ ├── snapshots/ └── traces/ 

    目前状态

    • Epic 1-4 核心能力已实现:init/run 、断言+自愈护栏、IR 记录、导出 Playwright Test
    • Epic 5 (环境/变量/敏感数据注入)也已落地(.env + 模板变量思路)

    想听听大家的反馈(求喷/求建议)

    我比较关心的问题:

    • 你们更想要哪种导出风格?(更“人写”的 Playwright 代码 / 更原子化的 steps )
    • 断言映射要做到什么程度才“够用”?
    • 对 CI 产物你们更偏好 JUnit/JSON 还是保留 trace + log 就够了?

    Repo: https://github.com/terryso/AutoQA-Agent

    欢迎提 Issue / PR 。

    目前尚无回复
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3257 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 22ms UTC 04:48 PVG 12:48 LAX 20:48 JFK 23:48
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86