多 Agent 协作的自动化测试系统
覆盖 Desktop、Web、Extension 三个平台
下面带你看看它是怎么运转的
就像一家公司有老板、技术骨干和一线员工一样,QA-AGENTS 也分成三层,各司其职。点击每一层看看里面都有谁。
从"手动操作一遍"到"自动反复测试",只需要三步。
你在 OneKey App 上正常操作——点按钮、输文字、切页面。录制员在后台默默记下你的每一步。
AI 把你的操作翻译成测试脚本——一段能自动重复你刚才操作的代码。它还会验证脚本能跑通。
每次 App 更新后,打开测试面板(Dashboard),勾选要测的用例,点一下"执行",AI 就自动帮你跑一遍。
这些是 QA-AGENTS 用到的核心技术。别被名字吓到,每一个都有大白话解释。
每个 Agent 之间的协作,就像同事在群里发消息一样。选择一个场景,看看它们是怎么配合的。
OneKey 有 Desktop、Web 和 Extension 三种形态。QA-AGENTS 能分别连接它们,用类似的方式测试。
装在电脑上的 OneKey 应用。通过 Electron一种让网页技术变成桌面软件的技术。你用的 VS Code、Discord 都是用它做的。 技术开发,所以能用网页测试工具来测。
录制监控:localhost:3210
在浏览器里打开的 OneKey 网页版。直接用 Chrome 打开测试,会自动复制你的浏览器配置,这样登录状态什么的都在。
录制监控:localhost:3211
安装在 Chrome 浏览器里的 OneKey 扩展。测试时会复制完整的浏览器数据目录,保留扩展和设置,就像克隆了一个你的浏览器。
录制监控:localhost:3212
QA-AGENTS 有一套"记忆系统",能从每次测试中学习,下次遇到类似问题时更快解决。
每次测试的结果都会被记下来:用了哪个选择器、花了多长时间、成功还是失败。就像一个人的日记本,什么都记。
把相似的记忆分组。比如"在桌面端经常找不到搜索按钮"会被归成一个场景。就像把散乱的笔记整理成一本错题集。
下次碰到类似问题时,系统会自动翻错题集,找出之前是怎么解决的。不用每次都从头分析,效率越来越高。
系统发现同一个按钮连续 3 次找不到,自动归类为"选择器失效",下次直接用备选方案,不再浪费时间重试。
每个 Agent 都有自己的"专属笔记本",只有指定的 Agent 能往里写,其他人只能看。这样就不会互相打架了。
| 数据文件 | 谁能写 | 用大白话说 |
|---|---|---|
| test_cases.json | 用例设计师 | 所有要测的内容清单,类似"考试大纲" |
| ui-map.json | 知识管理员 | 页面上每个按钮/输入框的"地址",方便测试工具找到它们 |
| knowledge.json | 知识管理员 | 积累的经验和技巧,比如"这个弹窗要等 2 秒才出来" |
| diagnosis.json | 质检经理 | 失败原因分析,类似"病历表" |
| results/*.json | 执行员 | 每次测试跑完的成绩单:通过/失败/跳过 |
| reports/*.md | 报告员 | 整理好的质量报告,给人看的那种 |
| mem_cells.json | 知识管理员 | 原始记忆条目,测试过程的"流水账" |
| mem_scenes.json | 知识管理员 | 归类后的"错题集",相似问题归到一起 |
点击文件夹可以展开/收起。每个文件旁边都标注了它的作用。
在 Claude Code 对话框里直接输入这些话,AI 就知道你要干嘛。跟发微信一样简单。
| 你说 | AI 做什么 |
|---|---|
| @用例文件.md 开始录制 | 读取用例 → 启动录制器 → 引导你逐场景操作 |
| 录完了 | 展示录制到的每一步,等你确认 |
| 录制测试 | 完整流程:录制 → 确认 → 生成脚本 → 验证通过 |
| 你说 | AI 做什么 |
|---|---|
| qatest 开始执行 | 启动 App + Dashboard,打开执行面板 |
| 跑测试 | 执行 → 汇总结果 → 失败自动诊断 |
| 执行测试 MARKET-SEARCH-002 | 只跑指定的那一个用例 |
| 你说 | AI 做什么 |
|---|---|
| 诊断失败 | 分析最近失败的用例,给出根因和修复建议 |
| 为什么失败 MARKET-FAV-003 | 分析指定用例的失败原因 |
| 更新选择器 | 修复失效的页面元素定位 |
| 生成报告 | 生成测试质量报告 |
| 你说 | AI 做什么 |
|---|---|
| 设计用例 | 从需求文档分析,设计测试场景 |
| 写用例 | 同上 |
开始之前需要准备这些东西。大部分都是"装好就不用管"的。
遇到问题先看这里,大部分情况都能自己解决。
pkill -f "OneKey" && sleep 2
/Applications/OneKey-3.localized/OneKey.app/Contents/MacOS/OneKey --remote-debugging-port=9222 &
Web / 插件端同理,杀掉 Chrome 后脚本会自动重启。
pkill -f "tsx src/dashboard" && npx tsx src/dashboard/server.ts
rm -rf /tmp/chrome-ext-cdp-profile