一键导入
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 职业分类
| 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} |
用例评审。由 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 调用。