#!/usr/bin/env python3 """ 测试更新后的摘要内容,包含流程测试信息 """ import json import sys from pathlib import Path # 添加项目根目录到Python路径 sys.path.insert(0, str(Path(__file__).parent)) from run_api_tests import save_pdf_report def create_comprehensive_test_data(): """创建包含完整统计信息的测试数据""" return { "start_time": "2025-07-31T10:00:00.000000", "end_time": "2025-07-31T10:08:45.750000", "duration_seconds": "525.75", "overall_summary": { # 端点统计 "total_endpoints_defined": 12, "endpoints_tested": 10, "endpoints_passed": 7, "endpoints_failed": 2, "endpoints_error": 0, "endpoints_skipped": 1, "endpoint_success_rate": "70.00%", # 测试用例统计 "total_test_cases_applicable": 150, "total_test_cases_executed": 48, "test_cases_passed": 35, "test_cases_failed": 10, "test_cases_error": 0, "test_cases_skipped": 3, "test_case_success_rate": "72.92%", # Stage统计 "total_stages_defined": 4, "total_stages_executed": 3, "stages_passed": 2, "stages_failed": 1, "stages_error": 0, "stages_skipped": 0, "stage_success_rate": "66.67%" }, "endpoint_results": [ { "endpoint_id": "POST_/api/dms/wb_ml/v1/well_info", "endpoint_name": "井信息查询服务", "overall_status": "通过", "duration_seconds": 0.245, "executed_test_cases": [ { "test_case_id": "TC-STATUS-001", "test_case_name": "基本状态码 200 检查", "test_case_severity": "CRITICAL", "status": "通过", "message": "响应状态码为 200,符合预期。" }, { "test_case_id": "TC-HEADER-001", "test_case_name": "必需请求头Schema验证", "test_case_severity": "HIGH", "status": "失败", "message": "缺少必需的请求头 X-Tenant-ID" } ] }, { "endpoint_id": "POST_/api/dms/wb_ml/v1/layer_info", "endpoint_name": "分层信息表查询服务", "overall_status": "失败", "duration_seconds": 0.189, "executed_test_cases": [ { "test_case_id": "TC-STATUS-002", "test_case_name": "基本状态码 200 检查", "test_case_severity": "CRITICAL", "status": "失败", "message": "响应状态码为 500,预期为 200" } ] } ], "stage_results": [ { "stage_id": "dms_crud_scenario_stage", "stage_name": "DMS Full CRUD Scenario", "description": "执行完整的Create->Read->Update->Delete->List工作流测试", "overall_status": "通过", "duration_seconds": 2.45 }, { "stage_id": "keyword_driven_crud_stage", "stage_name": "Keyword Driven CRUD Stage", "description": "基于关键字驱动的CRUD操作测试阶段", "overall_status": "通过", "duration_seconds": 1.85 }, { "stage_id": "complex_workflow_stage", "stage_name": "Complex Workflow Stage", "description": "复杂业务流程测试阶段", "overall_status": "失败", "duration_seconds": 3.21 } ] } def test_updated_summary(): """测试更新后的摘要内容""" print("🧪 测试更新后的摘要内容...") test_data = create_comprehensive_test_data() # 显示测试数据统计 overall = test_data['overall_summary'] print("\n📊 测试数据统计:") print(f"- 端点: 测试{overall['endpoints_tested']}个,通过{overall['endpoints_passed']}个,失败{overall['endpoints_failed']}个,跳过{overall['endpoints_skipped']}个") print(f"- 测试用例: 执行{overall['total_test_cases_executed']}个,通过{overall['test_cases_passed']}个,失败{overall['test_cases_failed']}个,跳过{overall['test_cases_skipped']}个") print(f"- 流程测试: 执行{overall['total_stages_executed']}个,通过{overall['stages_passed']}个,失败{overall['stages_failed']}个") # 生成PDF报告 output_path = Path("test_reports") / "updated_summary_test.pdf" output_path.parent.mkdir(parents=True, exist_ok=True) try: save_pdf_report(test_data, output_path, 'HIGH') if output_path.exists(): print(f"\n✅ PDF报告生成成功: {output_path}") print(f"📄 文件大小: {output_path.stat().st_size / 1024:.2f} KB") print("\n📋 摘要内容现在包含:") print("✅ 端点测试统计(测试数量、通过、失败、跳过、成功率)") print("✅ 测试用例统计(执行数量、通过、失败、跳过、成功率)") print("✅ 流程测试统计(执行数量、通过、失败、跳过、成功率)") print("✅ 测试时间和总耗时") # 验证摘要格式 print("\n📝 摘要格式预览:") print("本次测试针对DMS(数据管理系统)领域数据服务进行全面的合规性验证。") print("测试时间:2025-07-31 10:00:00 至 2025-07-31 10:08:45,总耗时 525.75 秒。") print(f"共测试 {overall['endpoints_tested']} 个API端点,其中 {overall['endpoints_passed']} 个通过,{overall['endpoints_failed']} 个失败,{overall['endpoints_skipped']}个跳过,端点成功率为 {overall['endpoint_success_rate']}。") print(f"执行 {overall['total_test_cases_executed']} 个测试用例,其中 {overall['test_cases_passed']} 个通过,{overall['test_cases_failed']} 个失败,{overall['test_cases_skipped']}个跳过,测试用例成功率为 {overall['test_case_success_rate']}。") print(f"执行 {overall['total_stages_executed']} 个流程测试,其中 {overall['stages_passed']} 个通过,{overall['stages_failed']} 个失败,0个跳过,流程测试成功率为 {overall['stage_success_rate']}。") else: print("❌ PDF报告生成失败") except Exception as e: print(f"❌ 生成PDF报告时出错: {e}") import traceback traceback.print_exc() def main(): """主函数""" print("=" * 70) print("测试更新后的摘要内容 - 包含流程测试信息") print("=" * 70) test_updated_summary() print("\n" + "=" * 70) print("🎯 摘要更新完成!") print("✅ 现在摘要包含完整的三类测试统计:") print(" 1. API端点测试统计") print(" 2. 测试用例统计") print(" 3. 流程测试统计") print("✅ 每类统计都包含通过、失败、跳过数量和成功率") print("=" * 70) if __name__ == "__main__": main()