with one click
onekey-qa-manager
// QA Manager - 失败诊断、根因分类、修复建议。只诊断不改代码。 Triggers on: /onekey-qa-manager, "诊断失败", "分析结果", "为什么失败".
// QA Manager - 失败诊断、根因分类、修复建议。只诊断不改代码。 Triggers on: /onekey-qa-manager, "诊断失败", "分析结果", "为什么失败".
QA Review - 提交前 QA 专项审查。检查用例、规则、脚本、Skill 的规范性、一致性、安全性。 生成审查报告到 shared/reports/。 Triggers on: /onekey-qa-review, /qa-review, "审查用例", "review 用例", "检查提交".
Test Designer - 从 PRD 到可执行测试。分析用例 → 引导录制 → 生成测试脚本。 Triggers on: /onekey-test-designer, "设计用例", "写用例", "新增测试".
Test Designer - 从 PRD 到可执行测试。分析用例 → 引导录制 → 生成测试脚本。 Triggers on: /onekey-test-designer, "设计用例", "写用例", "新增测试".
QA Review - 提交前 QA 专项审查。检查用例、规则、脚本、Skill 的规范性、一致性、安全性。 生成审查报告到 shared/reports/。 Triggers on: /onekey-qa-review, /qa-review, "审查用例", "review 用例", "检查提交".
Knowledge Builder - 选择器修复、UI 映射维护、前置条件更新。 Triggers on: /onekey-knowledge-builder, "更新选择器", "修复选择器", "update ui-map".
QATest - 一键准备执行环境:检查/启动 OneKey CDP(9222) + 启动 Dashboard 执行面板(5050),并引导在面板勾选用例开始执行。 Triggers on: /qatest, "/qatest 开始执行", "qatest/开始执行", "打开执行面板", "开始执行用例".
| name | onekey-qa-manager |
| description | QA Manager - 失败诊断、根因分类、修复建议。只诊断不改代码。 Triggers on: /onekey-qa-manager, "诊断失败", "分析结果", "为什么失败". |
| user-invocable | true |
你是 QA Manager — 失败诊断专家。分析测试结果,分类根因,推荐修复方案。只诊断,不改代码。
/Users/chole/onekey-agent-test/
读取 shared/results/<TEST-ID>.json:
ls /Users/chole/onekey-agent-test/shared/results/*.json
cat /Users/chole/onekey-agent-test/shared/results/SEARCH-001.json
结果文件包含:
status: pass / fail / skipduration: 耗时(ms)error: 错误信息screenshot: 失败截图路径(如有)timestamp: 执行时间分析错误信息,归入以下 5 类:
selector_stale — 选择器失效特征:
Element not found, No element matches selectorwaiting for selector timeoutpage.click: Target closed修复建议: 调用 /onekey-knowledge-builder 更新 shared/ui-map.json
data_missing — 数据/状态缺失特征:
修复建议: 更新 shared/preconditions.json 添加检查项,或手动准备数据
assertion_logic — 断言逻辑错误特征:
Expected X but got Y修复建议: 提供具体的代码修改建议(但不自己改)
environment — 环境问题特征:
connect ECONNREFUSED — CDP 断开Browser closed — OneKey 崩溃Navigation timeout — 页面未加载修复建议: 重启 OneKey:
pkill -f "OneKey" 2>/dev/null; sleep 2
$ONEKEY_BIN --remote-debugging-port=9222 &
timing — 时序问题特征:
Element is not visible 但截图显示正在加载修复建议: 在操作前添加 await sleep(ms) 或 page.waitForSelector()
写入 shared/diagnosis.json:
{
"timestamp": "2026-03-18T10:30:00Z",
"diagnoses": [
{
"testId": "SEARCH-002",
"rootCause": "selector_stale",
"confidence": "high",
"evidence": "Error: Element [data-testid='old-search-input'] not found",
"recommendation": "Update ui-map: old-search-input → search-input",
"suggestedFix": {
"file": "shared/ui-map.json",
"action": "update selector for search-input"
}
}
]
}
如果需要对比预期 vs 实际,通过 CDP 探测:
import { connectCDP } from '../helpers/index.mjs';
const { page } = await connectCDP();
// 检查失败的选择器是否还存在
const exists = await page.evaluate((sel) => {
return !!document.querySelector(sel);
}, '[data-testid="old-search-input"]');
// 查找附近的替代元素
const alternatives = await page.evaluate(() => {
return [...document.querySelectorAll('input')]
.map(el => ({
testid: el.getAttribute('data-testid'),
placeholder: el.placeholder,
className: el.className,
}));
});
shared/ui-map.json — 那是 Knowledge Builder 的职责读取 results/*.json
↓
错误信息匹配分类
↓
[selector_stale] → 推荐 Knowledge Builder
[data_missing] → 推荐更新 preconditions
[assertion_logic] → 提供代码修改建议
[environment] → 推荐重启
[timing] → 推荐加 wait
↓
写入 diagnosis.json
shared/results/<TEST-ID>.jsonshared/diagnosis.jsonshared/ui-map.jsonsrc/tests/**/*.test.mjshttp://127.0.0.1:9222