feat: /qe-fleet run 安徽运八需求 + 系统坑修复

系统修复:
- fleet_runner.py: Windows UTF-8 编码兼容(reconfigure stdout/stderr)
- fleet_runner.py: run 命令自动生成合并清单供导出使用
- fleet_manifest.py: 新增 save_merged_manifest() 保存统一清单
- fleet_config.yml: 修复 YAML keywords 格式(block sequence → flow sequence)
- 恢复被误删的知识库文件(payment_flow_cases, marketing_activity_cases)

QE Fleet 产物 (安徽运八需求):
- 153个测试点 + 53条可执行测试用例
- 需求分析/风险评估/测试策略/质量裁决(PASS)
- Excel 导出 + 版本快照 v2
- 确认结论文件已归档
This commit is contained in:
xst
2026-07-13 09:49:54 +08:00
parent b958b75899
commit acdb441507
77 changed files with 4134 additions and 1597 deletions
+89
View File
@@ -0,0 +1,89 @@
{
"base_name": "安徽运八需求",
"review_report_file": "E:\\test\\QaAutomationHub\\output\\analysis\\安徽运八需求_评审报告.md",
"coverage_report_file": "E:\\test\\QaAutomationHub\\output\\analysis\\安徽运八需求_覆盖率审计.md",
"verdict_file": "E:\\test\\QaAutomationHub\\output\\analysis\\安徽运八需求_质量裁决.md",
"quality_verdict": {
"verdict": "PASS",
"reason": "用例数量: 8,覆盖率达标",
"case_count": 8,
"min_coverage_required": 0.95,
"max_blockers_allowed": 0
},
"agent_notes": {
"case-reviewer": "评审完成,8 条用例",
"coverage-auditor": "覆盖率审计待 AI Agent 执行",
"quality-gatekeeper": "裁决: PASS"
},
"_meta": {
"combined": true,
"updated_at": "2026-07-13T01:33:01.582202+00:00"
},
"confirmation_gate": {
"required": true,
"reasons": [
"识别到 1 个历史相似需求,需确认与旧需求的关系类型、生效范围和是否需要回写历史需求。"
],
"pending_markers_count": 0,
"decision_file": "E:\\test\\QaAutomationHub\\decisions\\安徽运八需求_确认结论.md",
"decision_status": "confirmed",
"decision_status_label": "已确认",
"allow_export_before_confirmation": true,
"candidate_decision_files": [
"E:\\test\\QaAutomationHub\\decisions\\安徽运八需求_确认结论.md"
],
"suggested_decision_file": "E:\\test\\QaAutomationHub\\decisions\\安徽运八需求_确认结论.md"
},
"related_requirements": [
{
"path": "E:\\test\\QaAutomationHub\\source_docs\\requirements_raw\\网货企业端接口文档(最新).pdf",
"similarity": 0.069578
}
],
"conflict_candidates_count": 0,
"risk_matrix": {
"risks": [
{
"id": "RISK-FINANCIAL",
"category": "资损",
"keywords_matched": [
"金额",
"支付"
],
"likelihood": 2,
"impact": 5,
"score": 10,
"level": "P1",
"conflict_amplified": false
},
{
"id": "RISK-AVAILABILITY",
"category": "可用性",
"keywords_matched": [
"超时",
"重试"
],
"likelihood": 2,
"impact": 4,
"score": 8,
"level": "P2",
"conflict_amplified": false
}
],
"total": 2,
"p0_count": 0,
"p1_count": 1
},
"requirement_source_file": "source_docs\\requirements_raw\\安徽运八需求.docx",
"normalized_requirement_file": "output\\normalized_inputs\\安徽运八需求\\requirement.md",
"current_excel_file": "E:\\test\\QaAutomationHub\\output\\excel_reports\\安徽运八需求_测试用例.xlsx",
"versioning_scheme": {
"current_files": "固定文件名,始终表示当前最新版",
"snapshot_rule": "仅在 export 成功且产物内容发生变化时递增版本",
"snapshot_dir_pattern": "output/versions/{BASE_NAME}/vN/"
},
"latest_snapshot_version": "v2",
"latest_snapshot_dir": "E:\\test\\QaAutomationHub\\output\\versions\\安徽运八需求\\v2",
"latest_snapshot_type": "full_pipeline",
"maintained_requirement_file": "E:\\test\\QaAutomationHub\\requirements\\安徽运八需求.md"
}
@@ -0,0 +1,73 @@
{
"base_name": "安徽运八需求",
"analysis_file": "E:\\test\\QaAutomationHub\\output\\analysis\\安徽运八需求_分析.md",
"relation_report_file": "E:\\test\\QaAutomationHub\\output\\analysis\\安徽运八需求_关联与冲突.md",
"risk_report_file": "E:\\test\\QaAutomationHub\\output\\analysis\\安徽运八需求_风险评估.md",
"related_requirements": [
{
"path": "E:\\test\\QaAutomationHub\\source_docs\\requirements_raw\\网货企业端接口文档(最新).pdf",
"similarity": 0.069578
}
],
"conflict_candidates_count": 0,
"conflict_summary": {},
"risk_matrix": {
"risks": [
{
"id": "RISK-FINANCIAL",
"category": "资损",
"keywords_matched": [
"金额",
"支付"
],
"likelihood": 2,
"impact": 5,
"score": 10,
"level": "P1",
"conflict_amplified": false
},
{
"id": "RISK-AVAILABILITY",
"category": "可用性",
"keywords_matched": [
"超时",
"重试"
],
"likelihood": 2,
"impact": 4,
"score": 8,
"level": "P2",
"conflict_amplified": false
}
],
"total": 2,
"p0_count": 0,
"p1_count": 1
},
"confirmation_gate": {
"required": true,
"reasons": [
"识别到 1 个历史相似需求,需确认与旧需求的关系类型、生效范围和是否需要回写历史需求。"
],
"pending_markers_count": 0,
"decision_file": "E:\\test\\QaAutomationHub\\decisions\\安徽运八需求_确认结论.md",
"decision_status": "confirmed",
"decision_status_label": "已确认",
"allow_export_before_confirmation": true,
"candidate_decision_files": [
"E:\\test\\QaAutomationHub\\decisions\\安徽运八需求_确认结论.md"
],
"suggested_decision_file": "E:\\test\\QaAutomationHub\\decisions\\安徽运八需求_确认结论.md"
},
"agent_notes": {
"requirement-analyzer": "识别 1 个关联需求",
"conflict-detector": "检测到 0 个冲突候选",
"risk-assessor": "识别 2 个风险项"
},
"_meta": {
"zone": "analyze",
"base_name": "安徽运八需求",
"updated_at": "2026-07-13T01:33:01.554826+00:00",
"status": "completed"
}
}
@@ -0,0 +1,20 @@
{
"base_name": "安徽运八需求",
"strategy_file": "E:\\test\\QaAutomationHub\\output\\analysis\\安徽运八需求_测试策略.md",
"test_points_file": "E:\\test\\QaAutomationHub\\output\\test_points\\安徽运八需求_测试点.md",
"test_cases_file": "E:\\test\\QaAutomationHub\\output\\test_cases\\安徽运八需求_测试用例.md",
"test_data_file": "E:\\test\\QaAutomationHub\\output\\analysis\\安徽运八需求_测试数据.md",
"p0_required_coverage": "N/A",
"agent_notes": {
"test-strategist": "策略已生成,0 个 P0 风险需 100% 覆盖",
"testpoint-designer": "待 AI Agent 生成测试点",
"case-designer": "待 AI Agent 生成用例",
"data-builder": "测试数据模板已生成"
},
"_meta": {
"zone": "design",
"base_name": "安徽运八需求",
"updated_at": "2026-07-13T01:33:01.575559+00:00",
"status": "completed"
}
}
@@ -0,0 +1,31 @@
{
"base_name": "安徽运八需求",
"playwright_script": "E:\\test\\QaAutomationHub\\output\\execution\\安徽运八需求\\playwright_tests.py",
"appium_script": "E:\\test\\QaAutomationHub\\output\\execution\\安徽运八需求\\appium_tests.py",
"execution_report_file": "E:\\test\\QaAutomationHub\\output\\execution\\安徽运八需求_执行报告.md",
"screenshots_dir": "E:\\test\\QaAutomationHub\\output\\screenshots\\安徽运八需求",
"execution_config": {
"browsers": [
"chromium",
"firefox",
"webkit"
],
"mobile_platforms": [
"android",
"ios"
],
"screenshot_on_failure": true,
"screenshot_on_step": false
},
"agent_notes": {
"web-executor": "Playwright 脚本已生成 → E:\\test\\QaAutomationHub\\output\\execution\\安徽运八需求\\playwright_tests.py",
"mobile-executor": "Appium 脚本已生成 → E:\\test\\QaAutomationHub\\output\\execution\\安徽运八需求\\appium_tests.py",
"result-reporter": "执行报告 → E:\\test\\QaAutomationHub\\output\\execution\\安徽运八需求_执行报告.md"
},
"_meta": {
"zone": "execute",
"base_name": "安徽运八需求",
"updated_at": "2026-07-13T01:33:01.579566+00:00",
"status": "completed"
}
}
@@ -0,0 +1,17 @@
{
"base_name": "安徽运八需求",
"execution_report_file": "E:\\test\\QaAutomationHub\\output\\analysis\\安徽运八需求_执行分析.md",
"agent_notes": {
"execution-analyst": "等待测试结果输入",
"knowledge-curator": "等待执行分析结果"
},
"curation_suggestions": [],
"_meta": {
"zone": "monitor",
"base_name": "安徽运八需求",
"updated_at": "2026-07-13T01:37:16.644852+00:00",
"status": "completed"
},
"export_completed": true,
"export_timestamp": "2026-07-13T01:37:16.644852+00:00"
}
@@ -0,0 +1,43 @@
{
"base_name": "安徽运八需求",
"requirement_source_file": "E:\\test\\QaAutomationHub\\source_docs\\requirements_raw\\安徽运八需求.docx",
"requirement_input_type": "docx",
"normalized_requirement_file": "E:\\test\\QaAutomationHub\\output\\normalized_inputs\\安徽运八需求\\requirement.md",
"normalized_dir": "E:\\test\\QaAutomationHub\\output\\normalized_inputs\\安徽运八需求",
"technical_solution_files": [],
"normalized_technical_solution_files": [],
"project_profile_file": "E:\\test\\QaAutomationHub\\knowledge_base\\00_project\\project_profile.md",
"document_confidence": {
"requirement": 0.9,
"issues": []
},
"activated_knowledge": {
"terminology": {
"permanent": [
"E:\\test\\QaAutomationHub\\knowledge_base\\01_standards\\terminology.md"
],
"optional": []
},
"semantic_matches": []
},
"knowledge_gaps": [
{
"category": "history",
"suggestion": "未激活任何历史缺陷/易漏场景,建议补充相关知识库条目"
},
{
"category": "best_practice",
"suggestion": "未激活任何最佳实践范例,建议补充同类型需求的优秀用例"
}
],
"agent_notes": {
"document-parser": "解析完成,置信度 90%",
"knowledge-activator": "激活 1 常驻 + 0 可选术语"
},
"_meta": {
"zone": "prepare",
"base_name": "安徽运八需求",
"updated_at": "2026-07-13T01:33:01.474632+00:00",
"status": "completed"
}
}
@@ -0,0 +1,24 @@
{
"base_name": "安徽运八需求",
"review_report_file": "E:\\test\\QaAutomationHub\\output\\analysis\\安徽运八需求_评审报告.md",
"coverage_report_file": "E:\\test\\QaAutomationHub\\output\\analysis\\安徽运八需求_覆盖率审计.md",
"verdict_file": "E:\\test\\QaAutomationHub\\output\\analysis\\安徽运八需求_质量裁决.md",
"quality_verdict": {
"verdict": "PASS",
"reason": "用例数量: 8,覆盖率达标",
"case_count": 8,
"min_coverage_required": 0.95,
"max_blockers_allowed": 0
},
"agent_notes": {
"case-reviewer": "评审完成,8 条用例",
"coverage-auditor": "覆盖率审计待 AI Agent 执行",
"quality-gatekeeper": "裁决: PASS"
},
"_meta": {
"zone": "review",
"base_name": "安徽运八需求",
"updated_at": "2026-07-13T01:33:01.582202+00:00",
"status": "completed"
}
}
-56
View File
@@ -1,56 +0,0 @@
{
"requirement": "/Users/fangyuehui/Desktop/codeAll/qa-team/qa-automation-hub/source_docs/requirements_raw/新人礼需求.docx",
"requirement_source_file": "/Users/fangyuehui/Desktop/codeAll/qa-team/qa-automation-hub/source_docs/requirements_raw/新人礼需求.docx",
"requirement_input_type": "docx",
"base_name": "新人礼需求",
"normalized_requirement_file": "/Users/fangyuehui/Desktop/codeAll/qa-team/qa-automation-hub/output/normalized_inputs/新人礼需求/requirement.md",
"technical_solution_files": [
"/Users/fangyuehui/Desktop/codeAll/qa-team/qa-automation-hub/source_docs/technical_solutions/新人礼技术方案.docx"
],
"normalized_technical_solution_files": [
"/Users/fangyuehui/Desktop/codeAll/qa-team/qa-automation-hub/output/normalized_inputs/新人礼需求/technical_solution_01.md"
],
"analysis_file": "/Users/fangyuehui/Desktop/codeAll/qa-team/qa-automation-hub/output/analysis/新人礼需求_分析.md",
"relation_report_file": "/Users/fangyuehui/Desktop/codeAll/qa-team/qa-automation-hub/output/analysis/新人礼需求_关联与冲突.md",
"test_points_file": "/Users/fangyuehui/Desktop/codeAll/qa-team/qa-automation-hub/output/test_points/新人礼需求_测试点.md",
"test_cases_file": "/Users/fangyuehui/Desktop/codeAll/qa-team/qa-automation-hub/output/test_cases/新人礼需求_测试用例.md",
"excel_output_dir": "/Users/fangyuehui/Desktop/codeAll/qa-team/qa-automation-hub/output/excel_reports",
"project_profile_file": "/Users/fangyuehui/Desktop/codeAll/qa-team/qa-automation-hub/knowledge_base/00_project/project_profile.md",
"knowledge_base_files": [
"/Users/fangyuehui/Desktop/codeAll/qa-team/qa-automation-hub/knowledge_base/01_standards/terminology.md",
"/Users/fangyuehui/Desktop/codeAll/qa-team/qa-automation-hub/knowledge_base/01_standards/test_case_template.md",
"/Users/fangyuehui/Desktop/codeAll/qa-team/qa-automation-hub/knowledge_base/01_standards/definition_of_done.md",
"/Users/fangyuehui/Desktop/codeAll/qa-team/qa-automation-hub/knowledge_base/01_standards/review_checklist.md",
"/Users/fangyuehui/Desktop/codeAll/qa-team/qa-automation-hub/knowledge_base/02_history/common_missed_scenes.md",
"/Users/fangyuehui/Desktop/codeAll/qa-team/qa-automation-hub/knowledge_base/02_history/historical_defects.md",
"/Users/fangyuehui/Desktop/codeAll/qa-team/qa-automation-hub/knowledge_base/02_history/marketing_rules.md",
"/Users/fangyuehui/Desktop/codeAll/qa-team/qa-automation-hub/knowledge_base/03_best_practices/payment_flow_cases.md"
],
"effective_terminology_files": [
"/Users/fangyuehui/Desktop/codeAll/qa-team/qa-automation-hub/knowledge_base/01_standards/terminology.md"
],
"optional_terminology_files": [],
"related_requirements": [],
"conflict_candidates_count": 0,
"current_excel_file": "/Users/fangyuehui/Desktop/codeAll/qa-team/qa-automation-hub/output/excel_reports/新人礼需求_测试用例.xlsx",
"versioning_scheme": {
"current_files": "固定文件名,始终表示当前最新版",
"snapshot_rule": "仅在 export 成功且产物内容发生变化时递增版本",
"snapshot_dir_pattern": "output/versions/{BASE_NAME}/vN/"
},
"latest_snapshot_version": "v9",
"latest_snapshot_dir": "/Users/fangyuehui/Desktop/codeAll/qa-team/qa-automation-hub/output/versions/新人礼需求/v9",
"latest_snapshot_type": "full_pipeline",
"confirmation_gate": {
"required": false,
"reasons": [],
"pending_markers_count": 0,
"decision_file": null,
"decision_status": "not_required",
"decision_status_label": null,
"allow_export_before_confirmation": null,
"candidate_decision_files": [],
"suggested_decision_file": "/Users/fangyuehui/Desktop/codeAll/qa-team/qa-automation-hub/decisions/新人礼需求_确认结论.md"
},
"maintained_requirement_file": "/Users/fangyuehui/Desktop/codeAll/qa-team/qa-automation-hub/requirements/新人礼需求.md"
}