بنقرة واحدة
qa-execution
测试用例执行。读取 TC 文件中的断言规则,通过 Playwright MCP + CDP Network MCP 在浏览器中逐条执行,产出执行报告。不修改 TC 文件。
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
القائمة
测试用例执行。读取 TC 文件中的断言规则,通过 Playwright MCP + CDP Network MCP 在浏览器中逐条执行,产出执行报告。不修改 TC 文件。
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
استنادا إلى تصنيف SOC المهني
用例评审。由 qalore 调用,不独立触发。 对测试用例执行多层质量检查,输出问题报告。不产生持久化产物,报告仅在对话中呈现。 修复路径由 qa-functional-test 承接。
功能测试用例设计与产物输出。由 qalore 调用,不独立触发。 以断言集合为输入,设计覆盖正向/边界/异常/上下游的测试用例,产出 story 和脑图产物。 业务逻辑由 qa-understand 提炼后传入,或已存在于 story 文件中。
测试意图理解与提炼。将任意信息源转化为可测试的理解,写入 story,供 qa-functional-test 和 qa-case-review 使用。 调度层设计:按需加载对应适配器,不预加载所有内容。 内置适配器:文本(PRD/需求/口述)、代码(文件/目录/片段,支持 N 个代码仓库)。 多源时顺序执行各适配器(文本适配器完成后依次执行各代码适配器),完成后加载综合层产出统一交接块。 由 qalore 调用,不独立触发。
全栈测试工程师网关。满足以下任一条件时使用: 1. 收到测试相关任务(生成用例、需求分析、覆盖率检查、用例评审等) 2. 涉及读写 story 的操作——story 是本 skill 管理的结构化测试知识库(路径存于 ~/.claude/qalore-config.json),含业务逻辑/测试用例/代码逻辑/变更日志四类文件, 按项目-模块两级目录组织。用户说「更新story/沉淀/写入story」时必须调用本 skill, 不得自行在其他路径创建文件代替。 已建设能力:测试意图理解、功能测试、用例评审。未建设(Phase 2):自动化、性能、安全、混沌。 执行前必须先读 ~/.claude/qalore-config.json 获取 practices 和 story 路径, 验证路径有效后继续。路径无效时立即停止,不得使用通用知识代替。
Token 使用统计能力。由 Claude Code Stop Hook 自动触发,不由 qalore 主动调用。 从 transcript JSONL 累加本轮所有 API call 的 usage 数据,以固定格式打印到对话。 仅统计本轮;通过 last_assistant_message 信号词过滤,非 qalore 会话静默退出;无需额外 API 调用。
| name | qa-execution |
| description | 测试用例执行。读取 TC 文件中的断言规则,通过 Playwright MCP + CDP Network MCP 在浏览器中逐条执行,产出执行报告。不修改 TC 文件。 |
| practices_min_version | 2026-06-24-v19 |
| 变量 | 来源 |
|---|---|
{practices_path} | qalore 注入 |
{story_path} | qalore 注入 |
{确认项目名} | qalore 注入 |
{执行环境 URL} | qalore 注入(用户提供,或从 story/index.json 的 test_url 字段读取) |
用户描述含「执行/跑/运行 + 用例/测试/TC/模块」之一,且意图为执行已有测试用例。
cdp_network/server.py,执行时启动1. 解析用户意图,确定执行范围:
- 全部模块 → 遍历 story/{项目}/ 下所有模块目录
- 单模块 → 仅该模块
- 单条 TC → 仅该 TC
- 指定优先级 → 仅执行匹配优先级的 TC
2. 读取目标 TC 文件,提取所有含断言规则的用例
3. 按优先级排序执行(P0 → P1 → P2 → P3)
4. 逐条执行:
a. 检查前置条件可满足性 → 不满足 → SKIP + 原因
b. 按测试步骤顺序执行操作(导航/点击/输入)
c. 执行断言规则:
- UI 断言 → Playwright MCP browser_evaluate(批量)
- API 断言 → CDP Network MCP network_wait / network_list
d. 记录结果:PASS(实测值)/ FAIL(实测值 vs 预期值)/ SKIP(原因)
5. 输出执行报告
6. 输出【待沉淀】声明
UI 断言(Playwright MCP):
| 类型 | 示例 |
|---|---|
element-exists | element-exists(.new-chat-btn) |
element-not-exists | element-not-exists(.new-chat-btn) |
element-count | element-count(.group-label, 5) |
element-text | element-text(.sidebar-title, "历史记录") |
element-width | element-width(.chat-sidebar, 380) |
message-contains | message-contains("请输入请求消息!") |
url-contains | url-contains("/login") |
API 断言(CDP Network MCP):
| 类型 | 示例 |
|---|---|
api-status | api-status(/api/agent/.*/sessions, 200) |
api-field-exists | api-field-exists(/api/agent/.*/sessions, "total") |
api-field-value | api-field-value(/api/agent/.*/sessions, "total", 9) |
完整定义和验证代码见 {practices_path}/tech-stacks/functional/execution.md。
本 capability 内嵌 CDP Network MCP 于 cdp_network/server.py。
首次安装依赖:
pip install websocket-client requests
执行时启动:
python {qa-execution 目录}/cdp_network/server.py
每次执行覆盖写入 {story_path}/{项目}/{模块}/{模块}-功能-执行报告.md:
# {模块名} 执行报告
> 执行时间: {ISO 8601} | 工具: Playwright MCP + CDP Network MCP | 环境: {URL}
| TC ID | 标题 | 结果 | 实测 |
|-------|------|------|------|
| TC-DIA-006 | 侧栏380px | PASS | 380px |
| TC-DIA-007 | 时间段分组 | PASS | 今天(8)/昨天(1) |
| TC-DIA-011 | 新建对话按钮 | PASS | AgentRun显示/AgentList隐藏 |
| TC-DIA-016 | 空输入校验 | PASS | "请输入请求消息!" |
汇总: 总 {n} | PASS {x} | FAIL {y} | SKIP {z} | 通过率 {x/n * 100}%
执行完成后输出:
【待沉淀】
| 文件 | 路径 | 操作 | 变更摘要 |
|------|------|------|---------|
| {模块}-功能-执行报告.md | {路径}/ | 覆盖写入 | {n} 条执行,PASS {x} / FAIL {y} / SKIP {z} |