{ "start_time": "2025-07-11T18:57:44.878856", "end_time": "2025-07-11T18:57:45.058583", "duration_seconds": "0.18", "overall_summary": { "total_endpoints_defined": 10, "endpoints_tested": 10, "endpoints_passed": 8, "endpoints_failed": 2, "endpoints_error": 0, "endpoints_skipped": 0, "endpoints_partial_success": 0, "endpoint_success_rate": "80.00%", "total_test_cases_applicable": 200, "total_test_cases_executed": 200, "test_cases_passed": 112, "test_cases_failed": 50, "test_cases_error": 0, "test_cases_skipped_in_endpoint": 38, "test_case_success_rate": "56.00%", "total_stages_defined": 1, "total_stages_executed": 2, "stages_passed": 0, "stages_failed": 2, "stages_error": 0, "stages_skipped": 0, "stage_success_rate": "0.00%" }, "errors": [], "endpoint_results": [ { "endpoint_id": "POST /api/dms/wb_ml/v1/lujing_test", "endpoint_name": "Create lujing_test", "overall_status": "通过", "duration_seconds": 0.024396, "start_time": "2025-07-11T18:57:44.892251", "end_time": "2025-07-11T18:57:44.916647", "executed_test_cases": [ { "test_case_id": "TC-STATUS-001", "test_case_name": "基本状态码 200 检查", "test_case_severity": "CRITICAL", "status": "通过", "message": "响应状态码为 200,符合预期 200。", "duration_seconds": 0.0012566250079544261, "timestamp": "2025-07-11T18:57:44.893669", "validation_points": [ { "passed": true, "message": "响应状态码为 200,符合预期 200。" } ] }, { "test_case_id": "TC-HEADER-001", "test_case_name": "必需请求头Schema验证", "test_case_severity": "HIGH", "status": "失败", "message": "缺少必需的请求头 X-Tenant-ID;缺少必需的请求头 X-Data-Domain;缺少必需的请求头 Authorization", "duration_seconds": 0.0011614999966695905, "timestamp": "2025-07-11T18:57:44.894875", "validation_points": [ { "header": "X-Tenant-ID", "possible_names": [ "X-Tenant-ID" ], "endpoint": "POST /api/dms/wb_ml/v1/lujing_test" }, { "header": "X-Data-Domain", "possible_names": [ "X-Data-Domain" ], "endpoint": "POST /api/dms/wb_ml/v1/lujing_test" }, { "header": "Authorization", "possible_names": [ "Authorization" ], "endpoint": "POST /api/dms/wb_ml/v1/lujing_test" } ] }, { "test_case_id": "TC-SECURITY-002", "test_case_name": "敏感字段加密检查", "test_case_severity": "HIGH", "status": "通过", "message": "未在响应中找到需要检查的敏感字段。", "duration_seconds": 0.0011051670007873327, "timestamp": "2025-07-11T18:57:44.896014", "validation_points": [ { "passed": true, "message": "未在响应中找到需要检查的敏感字段。" } ] }, { "test_case_id": "TC-LLM-COMPLIANCE-001", "test_case_name": "LLM合规性综合检查", "test_case_severity": "MEDIUM", "status": "通过", "message": "合规性标准列表为空,跳过LLM合规性检查。", "duration_seconds": 0.0013287079927977175, "timestamp": "2025-07-11T18:57:44.897380", "validation_points": [ { "reason": "compliance_criteria.json is empty or contains an empty list." } ] }, { "test_case_id": "TC-RESTful-001", "test_case_name": "核心命名与结构规范检查", "test_case_severity": "HIGH", "status": "通过", "message": "模块名 'dms' 格式正确 (全小写/数字/中划线)。", "duration_seconds": 0.0011127920006401837, "timestamp": "2025-07-11T18:57:44.898534", "validation_points": [ { "passed": true, "message": "模块名 'dms' 格式正确 (全小写/数字/中划线)。" } ] }, { "test_case_id": "TC-DMS-PAGINATION-001", "test_case_name": "分页参数检查", "test_case_severity": "MEDIUM", "status": "失败", "message": "API请求缺少标准分页参数:pageNo, pageSize, isSearchCount", "duration_seconds": 0.0009296670032199472, "timestamp": "2025-07-11T18:57:44.899497", "validation_points": [ { "path": "/api/dms/wb_ml/v1/lujing_test", "method": "POST", "missing_params": [ "pageNo", "pageSize", "isSearchCount" ], "found_params": { "pageNo": false, "pageSize": false, "isSearchCount": false } } ] }, { "test_case_id": "TC-RESTful-004", "test_case_name": "资源集合复数命名检查", "test_case_severity": "MEDIUM", "status": "失败", "message": "路径 '/api/dms/wb_ml/v1/lujing_test' 的最后一个路径分段 'lujing_test' 可能不是复数形式,建议对资源集合使用复数命名。", "duration_seconds": 0.000998208997771144, "timestamp": "2025-07-11T18:57:44.900535", "validation_points": [ { "path": "/api/dms/wb_ml/v1/lujing_test", "segment": "lujing_test" } ] }, { "test_case_id": "TC-RESTful-002", "test_case_name": "资源路径名词检查", "test_case_severity": "MEDIUM", "status": "通过", "message": "路径 '/api/dms/wb_ml/v1/lujing_test' 符合资源名词命名规范。", "duration_seconds": 0.0009581670019542798, "timestamp": "2025-07-11T18:57:44.901533", "validation_points": [ { "passed": true, "message": "路径 '/api/dms/wb_ml/v1/lujing_test' 符合资源名词命名规范。" } ] }, { "test_case_id": "TC-DMS-CORE-SCHEMA-001", "test_case_name": "DMS核心存储服务API响应格式检查", "test_case_severity": "HIGH", "status": "通过", "message": "字段'code'在schema中未标记为必填(required);字段'message'在schema中未标记为必填(required);字段'data'在schema中未标记为必填(required);响应schema符合标准格式: {'code':int or number or string, 'message':string, 'data': any}", "duration_seconds": 0.0009748750017024577, "timestamp": "2025-07-11T18:57:44.902554", "validation_points": [ { "status_code": "200", "required_fields": [] }, { "status_code": "200", "required_fields": [] }, { "status_code": "200", "required_fields": [] }, { "status_code": "200" } ] }, { "test_case_id": "TC-CORE-FUNC-001", "test_case_name": "返回体JSON Schema验证", "test_case_severity": "CRITICAL", "status": "通过", "message": "针对 POST http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test (状态码 200) 的响应体 conforms to the JSON schema.", "duration_seconds": 0.0020924580021528527, "timestamp": "2025-07-11T18:57:44.904688", "validation_points": [ { "passed": true, "message": "针对 POST http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test (状态码 200) 的响应体 conforms to the JSON schema." } ] }, { "test_case_id": "TC-RESTful-003", "test_case_name": "时间字段ISO 8601格式检查", "test_case_severity": "MEDIUM", "status": "通过", "message": "在API规范中未找到可供静态检查的时间相关字段(如 format: date-time 或 常见时间字段名)。", "duration_seconds": 0.0009897080017253757, "timestamp": "2025-07-11T18:57:44.905715", "validation_points": [ { "passed": true, "message": "在API规范中未找到可供静态检查的时间相关字段(如 format: date-time 或 常见时间字段名)。" } ] }, { "test_case_id": "TC-DMS-URL-VERSION-001", "test_case_name": "DMS API URL版本号检查", "test_case_severity": "MEDIUM", "status": "通过", "message": "API路径 '/api/dms/wb_ml/v1/lujing_test' 正确以'/api/'开头;API路径 '/api/dms/wb_ml/v1/lujing_test' 包含版本标识: 'v1'", "duration_seconds": 0.0011015420022886246, "timestamp": "2025-07-11T18:57:44.906875", "validation_points": [ { "full_path": "/api/dms/wb_ml/v1/lujing_test" }, { "pattern_matched": "/v\\d+/", "version_string": "v1", "full_path": "/api/dms/wb_ml/v1/lujing_test" } ] }, { "test_case_id": "TC-CORE-FUNC-002", "test_case_name": "灵活的返回体JSON Schema验证", "test_case_severity": "CRITICAL", "status": "通过", "message": "", "duration_seconds": 0.0009206669928971678, "timestamp": "2025-07-11T18:57:44.907837", "validation_points": [] }, { "test_case_id": "TC-SECURITY-001", "test_case_name": "HTTPS 协议强制性检查", "test_case_severity": "HIGH", "status": "失败", "message": "API通过HTTP (http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test) 响应了成功的状态码 200,这违反了HTTPS强制策略。", "duration_seconds": 0.000993541005300358, "timestamp": "2025-07-11T18:57:44.908870", "validation_points": [ { "status_code": 200 } ] }, { "test_case_id": "TC-ERROR-4001-QUERY", "test_case_name": "查询参数类型不匹配检查", "test_case_severity": "MEDIUM", "status": "通过", "message": "跳过测试:在查询参数中未找到合适的字段来测试类型不匹配。", "duration_seconds": 0.001166707996162586, "timestamp": "2025-07-11T18:57:44.910075", "validation_points": [ { "passed": true, "message": "跳过测试:在查询参数中未找到合适的字段来测试类型不匹配。" } ] }, { "test_case_id": "TC-ERROR-4001-BODY", "test_case_name": "请求体字段类型不匹配检查", "test_case_severity": "MEDIUM", "status": "失败", "message": "当请求体字段 'version' 类型不匹配时, 业务错误码应为 -1,但实际为 0。", "duration_seconds": 0.0012812500062864274, "timestamp": "2025-07-11T18:57:44.911390", "validation_points": [ { "expected_code": -1, "actual_code": 0, "response_body": { "code": 0, "data": true, "message": "创建成功" } } ] }, { "test_case_id": "TC-ERROR-4002", "test_case_name": "数值参数越界检查", "test_case_severity": "MEDIUM", "status": "失败", "message": "当 body 字段 'record_count' 值为 10001 (超出范围: min=0, max=10000) 时, 业务错误码应为 -1,但实际为 0。", "duration_seconds": 0.0014582500007236376, "timestamp": "2025-07-11T18:57:44.912889", "validation_points": [ { "expected_code": -1, "actual_code": 0, "response_body": { "code": 0, "data": true, "message": "创建成功" } } ] }, { "test_case_id": "TC-ERROR-4006", "test_case_name": "非法枚举值检查", "test_case_severity": "MEDIUM", "status": "通过", "message": "跳过测试:未找到具有明确枚举值限制的字段。", "duration_seconds": 0.0014327079989016056, "timestamp": "2025-07-11T18:57:44.914360", "validation_points": [ { "passed": true, "message": "跳过测试:未找到具有明确枚举值限制的字段。" } ] }, { "test_case_id": "TC-ERROR-4003-BODY", "test_case_name": "缺失必填请求体字段检查", "test_case_severity": "HIGH", "status": "失败", "message": "当移除必填请求体字段 'data' 时, API应返回状态码 200,但实际为 400。", "duration_seconds": 0.001076708998880349, "timestamp": "2025-07-11T18:57:44.915478", "validation_points": [ { "expected_status": 200, "actual_status": 400 } ] }, { "test_case_id": "TC-ERROR-4003-QUERY", "test_case_name": "缺失必填查询参数检查", "test_case_severity": "HIGH", "status": "通过", "message": "跳过测试:在API规范中未找到合适的必填查询参数用于移除测试。", "duration_seconds": 0.0010988750000251457, "timestamp": "2025-07-11T18:57:44.916618", "validation_points": [ { "passed": true, "message": "跳过测试:在API规范中未找到合适的必填查询参数用于移除测试。" } ] } ] }, { "endpoint_id": "POST /api/dms/wb_ml/v1/lujing_test/1.0.0", "endpoint_name": "List lujing_test", "overall_status": "通过", "duration_seconds": 0.018525, "start_time": "2025-07-11T18:57:44.916723", "end_time": "2025-07-11T18:57:44.935248", "executed_test_cases": [ { "test_case_id": "TC-STATUS-001", "test_case_name": "基本状态码 200 检查", "test_case_severity": "CRITICAL", "status": "通过", "message": "响应状态码为 200,符合预期 200。", "duration_seconds": 0.0009192500001518056, "timestamp": "2025-07-11T18:57:44.917836", "validation_points": [ { "passed": true, "message": "响应状态码为 200,符合预期 200。" } ] }, { "test_case_id": "TC-HEADER-001", "test_case_name": "必需请求头Schema验证", "test_case_severity": "HIGH", "status": "失败", "message": "缺少必需的请求头 X-Tenant-ID;缺少必需的请求头 X-Data-Domain;缺少必需的请求头 Authorization", "duration_seconds": 0.001042749994667247, "timestamp": "2025-07-11T18:57:44.918913", "validation_points": [ { "header": "X-Tenant-ID", "possible_names": [ "X-Tenant-ID" ], "endpoint": "POST /api/dms/wb_ml/v1/lujing_test/1.0.0" }, { "header": "X-Data-Domain", "possible_names": [ "X-Data-Domain" ], "endpoint": "POST /api/dms/wb_ml/v1/lujing_test/1.0.0" }, { "header": "Authorization", "possible_names": [ "Authorization" ], "endpoint": "POST /api/dms/wb_ml/v1/lujing_test/1.0.0" } ] }, { "test_case_id": "TC-SECURITY-002", "test_case_name": "敏感字段加密检查", "test_case_severity": "HIGH", "status": "通过", "message": "未在响应中找到需要检查的敏感字段。", "duration_seconds": 0.0008760420023463666, "timestamp": "2025-07-11T18:57:44.919821", "validation_points": [ { "passed": true, "message": "未在响应中找到需要检查的敏感字段。" } ] }, { "test_case_id": "TC-LLM-COMPLIANCE-001", "test_case_name": "LLM合规性综合检查", "test_case_severity": "MEDIUM", "status": "通过", "message": "合规性标准列表为空,跳过LLM合规性检查。", "duration_seconds": 0.00094449998869095, "timestamp": "2025-07-11T18:57:44.920796", "validation_points": [ { "reason": "compliance_criteria.json is empty or contains an empty list." } ] }, { "test_case_id": "TC-RESTful-001", "test_case_name": "核心命名与结构规范检查", "test_case_severity": "HIGH", "status": "失败", "message": "模块名 'dms' 格式正确 (全小写/数字/中划线)。;响应中包含一个主列表,但其键名 'data' 不是 'list'。", "duration_seconds": 0.0009832920040935278, "timestamp": "2025-07-11T18:57:44.921827", "validation_points": [ { "passed": true, "message": "模块名 'dms' 格式正确 (全小写/数字/中划线)。" }, { "keys": [ "code", "data", "message" ] } ] }, { "test_case_id": "TC-DMS-PAGINATION-001", "test_case_name": "分页参数检查", "test_case_severity": "MEDIUM", "status": "失败", "message": "API请求缺少标准分页参数:pageNo, pageSize, isSearchCount", "duration_seconds": 0.0008101249986793846, "timestamp": "2025-07-11T18:57:44.922673", "validation_points": [ { "path": "/api/dms/wb_ml/v1/lujing_test/1.0.0", "method": "POST", "missing_params": [ "pageNo", "pageSize", "isSearchCount" ], "found_params": { "pageNo": false, "pageSize": false, "isSearchCount": false } } ] }, { "test_case_id": "TC-RESTful-004", "test_case_name": "资源集合复数命名检查", "test_case_severity": "MEDIUM", "status": "失败", "message": "路径 '/api/dms/wb_ml/v1/lujing_test/1.0.0' 的最后一个路径分段 '1.0.0' 可能不是复数形式,建议对资源集合使用复数命名。", "duration_seconds": 0.0008099169936031103, "timestamp": "2025-07-11T18:57:44.923523", "validation_points": [ { "path": "/api/dms/wb_ml/v1/lujing_test/1.0.0", "segment": "1.0.0" } ] }, { "test_case_id": "TC-RESTful-002", "test_case_name": "资源路径名词检查", "test_case_severity": "MEDIUM", "status": "通过", "message": "路径 '/api/dms/wb_ml/v1/lujing_test/1.0.0' 符合资源名词命名规范。", "duration_seconds": 0.0008066659938776866, "timestamp": "2025-07-11T18:57:44.924369", "validation_points": [ { "passed": true, "message": "路径 '/api/dms/wb_ml/v1/lujing_test/1.0.0' 符合资源名词命名规范。" } ] }, { "test_case_id": "TC-DMS-CORE-SCHEMA-001", "test_case_name": "DMS核心存储服务API响应格式检查", "test_case_severity": "HIGH", "status": "通过", "message": "字段'code'在schema中未标记为必填(required);字段'message'在schema中未标记为必填(required);字段'data'在schema中未标记为必填(required);响应schema符合标准格式: {'code':int or number or string, 'message':string, 'data': any}", "duration_seconds": 0.0007651250052731484, "timestamp": "2025-07-11T18:57:44.925175", "validation_points": [ { "status_code": "200", "required_fields": [] }, { "status_code": "200", "required_fields": [] }, { "status_code": "200", "required_fields": [] }, { "status_code": "200" } ] }, { "test_case_id": "TC-CORE-FUNC-001", "test_case_name": "返回体JSON Schema验证", "test_case_severity": "CRITICAL", "status": "通过", "message": "针对 POST http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0 (状态码 200) 的响应体 conforms to the JSON schema.", "duration_seconds": 0.0009727500000735745, "timestamp": "2025-07-11T18:57:44.926186", "validation_points": [ { "passed": true, "message": "针对 POST http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0 (状态码 200) 的响应体 conforms to the JSON schema." } ] }, { "test_case_id": "TC-RESTful-003", "test_case_name": "时间字段ISO 8601格式检查", "test_case_severity": "MEDIUM", "status": "失败", "message": "时间字段 'data[].update_date' (format: date-time) 缺少建议的 `pattern` (^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}([+-]\\d{2}:\\d{2}|Z)$) 来强制执行ISO 8601格式。", "duration_seconds": 0.0009119160094996914, "timestamp": "2025-07-11T18:57:44.927137", "validation_points": [ { "field": "data[].update_date" } ] }, { "test_case_id": "TC-DMS-URL-VERSION-001", "test_case_name": "DMS API URL版本号检查", "test_case_severity": "MEDIUM", "status": "通过", "message": "API路径 '/api/dms/wb_ml/v1/lujing_test/1.0.0' 正确以'/api/'开头;API路径 '/api/dms/wb_ml/v1/lujing_test/1.0.0' 包含版本标识: 'v1'", "duration_seconds": 0.000884416003827937, "timestamp": "2025-07-11T18:57:44.928063", "validation_points": [ { "full_path": "/api/dms/wb_ml/v1/lujing_test/1.0.0" }, { "pattern_matched": "/v\\d+/", "version_string": "v1", "full_path": "/api/dms/wb_ml/v1/lujing_test/1.0.0" } ] }, { "test_case_id": "TC-CORE-FUNC-002", "test_case_name": "灵活的返回体JSON Schema验证", "test_case_severity": "CRITICAL", "status": "通过", "message": "", "duration_seconds": 0.0008037920051719993, "timestamp": "2025-07-11T18:57:44.928907", "validation_points": [] }, { "test_case_id": "TC-SECURITY-001", "test_case_name": "HTTPS 协议强制性检查", "test_case_severity": "HIGH", "status": "失败", "message": "API通过HTTP (http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0) 响应了成功的状态码 200,这违反了HTTPS强制策略。", "duration_seconds": 0.000828709002234973, "timestamp": "2025-07-11T18:57:44.929778", "validation_points": [ { "status_code": 200 } ] }, { "test_case_id": "TC-ERROR-4001-QUERY", "test_case_name": "查询参数类型不匹配检查", "test_case_severity": "MEDIUM", "status": "通过", "message": "跳过测试:在查询参数中未找到合适的字段来测试类型不匹配。", "duration_seconds": 0.0009267499990528449, "timestamp": "2025-07-11T18:57:44.930738", "validation_points": [ { "passed": true, "message": "跳过测试:在查询参数中未找到合适的字段来测试类型不匹配。" } ] }, { "test_case_id": "TC-ERROR-4001-BODY", "test_case_name": "请求体字段类型不匹配检查", "test_case_severity": "MEDIUM", "status": "通过", "message": "跳过测试:在请求体中未找到合适的字段来测试类型不匹配。", "duration_seconds": 0.00095795800734777, "timestamp": "2025-07-11T18:57:44.931725", "validation_points": [ { "passed": true, "message": "跳过测试:在请求体中未找到合适的字段来测试类型不匹配。" } ] }, { "test_case_id": "TC-ERROR-4002", "test_case_name": "数值参数越界检查", "test_case_severity": "MEDIUM", "status": "通过", "message": "跳过测试:未找到具有明确范围限制的数值字段。", "duration_seconds": 0.0009083750046556816, "timestamp": "2025-07-11T18:57:44.932666", "validation_points": [ { "passed": true, "message": "跳过测试:未找到具有明确范围限制的数值字段。" } ] }, { "test_case_id": "TC-ERROR-4006", "test_case_name": "非法枚举值检查", "test_case_severity": "MEDIUM", "status": "通过", "message": "跳过测试:未找到具有明确枚举值限制的字段。", "duration_seconds": 0.0008869170123944059, "timestamp": "2025-07-11T18:57:44.933585", "validation_points": [ { "passed": true, "message": "跳过测试:未找到具有明确枚举值限制的字段。" } ] }, { "test_case_id": "TC-ERROR-4003-BODY", "test_case_name": "缺失必填请求体字段检查", "test_case_severity": "HIGH", "status": "通过", "message": "跳过测试:在API规范中未找到合适的必填请求体字段用于移除测试。", "duration_seconds": 0.0008115410018945113, "timestamp": "2025-07-11T18:57:44.934433", "validation_points": [ { "passed": true, "message": "跳过测试:在API规范中未找到合适的必填请求体字段用于移除测试。" } ] }, { "test_case_id": "TC-ERROR-4003-QUERY", "test_case_name": "缺失必填查询参数检查", "test_case_severity": "HIGH", "status": "通过", "message": "跳过测试:在API规范中未找到合适的必填查询参数用于移除测试。", "duration_seconds": 0.0007599999953527004, "timestamp": "2025-07-11T18:57:44.935224", "validation_points": [ { "passed": true, "message": "跳过测试:在API规范中未找到合适的必填查询参数用于移除测试。" } ] } ] }, { "endpoint_id": "GET /api/dms/wb_ml/v1/lujing_test/1.0.0/{id}", "endpoint_name": "Read lujing_test", "overall_status": "失败", "duration_seconds": 0.001521, "start_time": "2025-07-11T18:57:44.935306", "end_time": "2025-07-11T18:57:44.936827", "executed_test_cases": [ { "test_case_id": "TC-STATUS-001", "test_case_name": "基本状态码 200 检查", "test_case_severity": "CRITICAL", "status": "失败", "message": "期望状态码 200,但收到 404。", "duration_seconds": 0.0008493750065099448, "timestamp": "2025-07-11T18:57:44.936315", "validation_points": [ { "expected_status": 200, "actual_status": 404, "request_url": "http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0/param_id", "response_body_sample": "{\"code\": 404, \"message\": \"资源 'lujing_test' with ID 'param_id' 未找到.\"}" } ] }, { "test_case_id": "TC-HEADER-001", "test_case_name": "必需请求头Schema验证", "test_case_severity": "HIGH", "status": "跳过", "message": "由于关键的前置测试失败而被跳过: 关键测试 'TC-STATUS-001' 失败 (状态: 失败)。消息: ", "duration_seconds": 9.333991329185665e-06, "timestamp": "2025-07-11T18:57:44.936366", "validation_points": [] }, { "test_case_id": "TC-SECURITY-002", "test_case_name": "敏感字段加密检查", "test_case_severity": "HIGH", "status": "跳过", "message": "由于关键的前置测试失败而被跳过: 关键测试 'TC-STATUS-001' 失败 (状态: 失败)。消息: ", "duration_seconds": 7.957991329021752e-06, "timestamp": "2025-07-11T18:57:44.936392", "validation_points": [] }, { "test_case_id": "TC-LLM-COMPLIANCE-001", "test_case_name": "LLM合规性综合检查", "test_case_severity": "MEDIUM", "status": "跳过", "message": "由于关键的前置测试失败而被跳过: 关键测试 'TC-STATUS-001' 失败 (状态: 失败)。消息: ", "duration_seconds": 9.16598946787417e-06, "timestamp": "2025-07-11T18:57:44.936419", "validation_points": [] }, { "test_case_id": "TC-RESTful-001", "test_case_name": "核心命名与结构规范检查", "test_case_severity": "HIGH", "status": "跳过", "message": "由于关键的前置测试失败而被跳过: 关键测试 'TC-STATUS-001' 失败 (状态: 失败)。消息: ", "duration_seconds": 8.25000461190939e-06, "timestamp": "2025-07-11T18:57:44.936448", "validation_points": [] }, { "test_case_id": "TC-DMS-PAGINATION-001", "test_case_name": "分页参数检查", "test_case_severity": "MEDIUM", "status": "跳过", "message": "由于关键的前置测试失败而被跳过: 关键测试 'TC-STATUS-001' 失败 (状态: 失败)。消息: ", "duration_seconds": 8.12498910818249e-06, "timestamp": "2025-07-11T18:57:44.936475", "validation_points": [] }, { "test_case_id": "TC-RESTful-004", "test_case_name": "资源集合复数命名检查", "test_case_severity": "MEDIUM", "status": "跳过", "message": "由于关键的前置测试失败而被跳过: 关键测试 'TC-STATUS-001' 失败 (状态: 失败)。消息: ", "duration_seconds": 7.916998583823442e-06, "timestamp": "2025-07-11T18:57:44.936501", "validation_points": [] }, { "test_case_id": "TC-RESTful-002", "test_case_name": "资源路径名词检查", "test_case_severity": "MEDIUM", "status": "跳过", "message": "由于关键的前置测试失败而被跳过: 关键测试 'TC-STATUS-001' 失败 (状态: 失败)。消息: ", "duration_seconds": 8.458999218419194e-06, "timestamp": "2025-07-11T18:57:44.936530", "validation_points": [] }, { "test_case_id": "TC-DMS-CORE-SCHEMA-001", "test_case_name": "DMS核心存储服务API响应格式检查", "test_case_severity": "HIGH", "status": "跳过", "message": "由于关键的前置测试失败而被跳过: 关键测试 'TC-STATUS-001' 失败 (状态: 失败)。消息: ", "duration_seconds": 7.1250105975195765e-06, "timestamp": "2025-07-11T18:57:44.936553", "validation_points": [] }, { "test_case_id": "TC-CORE-FUNC-001", "test_case_name": "返回体JSON Schema验证", "test_case_severity": "CRITICAL", "status": "跳过", "message": "由于关键的前置测试失败而被跳过: 关键测试 'TC-STATUS-001' 失败 (状态: 失败)。消息: ", "duration_seconds": 7.0829992182552814e-06, "timestamp": "2025-07-11T18:57:44.936576", "validation_points": [] }, { "test_case_id": "TC-RESTful-003", "test_case_name": "时间字段ISO 8601格式检查", "test_case_severity": "MEDIUM", "status": "跳过", "message": "由于关键的前置测试失败而被跳过: 关键测试 'TC-STATUS-001' 失败 (状态: 失败)。消息: ", "duration_seconds": 7.1250105975195765e-06, "timestamp": "2025-07-11T18:57:44.936599", "validation_points": [] }, { "test_case_id": "TC-DMS-URL-VERSION-001", "test_case_name": "DMS API URL版本号检查", "test_case_severity": "MEDIUM", "status": "跳过", "message": "由于关键的前置测试失败而被跳过: 关键测试 'TC-STATUS-001' 失败 (状态: 失败)。消息: ", "duration_seconds": 6.95799826644361e-06, "timestamp": "2025-07-11T18:57:44.936622", "validation_points": [] }, { "test_case_id": "TC-CORE-FUNC-002", "test_case_name": "灵活的返回体JSON Schema验证", "test_case_severity": "CRITICAL", "status": "跳过", "message": "由于关键的前置测试失败而被跳过: 关键测试 'TC-STATUS-001' 失败 (状态: 失败)。消息: ", "duration_seconds": 7.041002390906215e-06, "timestamp": "2025-07-11T18:57:44.936644", "validation_points": [] }, { "test_case_id": "TC-SECURITY-001", "test_case_name": "HTTPS 协议强制性检查", "test_case_severity": "HIGH", "status": "跳过", "message": "由于关键的前置测试失败而被跳过: 关键测试 'TC-STATUS-001' 失败 (状态: 失败)。消息: ", "duration_seconds": 6.95799826644361e-06, "timestamp": "2025-07-11T18:57:44.936667", "validation_points": [] }, { "test_case_id": "TC-ERROR-4001-QUERY", "test_case_name": "查询参数类型不匹配检查", "test_case_severity": "MEDIUM", "status": "跳过", "message": "由于关键的前置测试失败而被跳过: 关键测试 'TC-STATUS-001' 失败 (状态: 失败)。消息: ", "duration_seconds": 7.084003300406039e-06, "timestamp": "2025-07-11T18:57:44.936691", "validation_points": [] }, { "test_case_id": "TC-ERROR-4001-BODY", "test_case_name": "请求体字段类型不匹配检查", "test_case_severity": "MEDIUM", "status": "跳过", "message": "由于关键的前置测试失败而被跳过: 关键测试 'TC-STATUS-001' 失败 (状态: 失败)。消息: ", "duration_seconds": 6.95799826644361e-06, "timestamp": "2025-07-11T18:57:44.936713", "validation_points": [] }, { "test_case_id": "TC-ERROR-4002", "test_case_name": "数值参数越界检查", "test_case_severity": "MEDIUM", "status": "跳过", "message": "由于关键的前置测试失败而被跳过: 关键测试 'TC-STATUS-001' 失败 (状态: 失败)。消息: ", "duration_seconds": 7.084003300406039e-06, "timestamp": "2025-07-11T18:57:44.936736", "validation_points": [] }, { "test_case_id": "TC-ERROR-4006", "test_case_name": "非法枚举值检查", "test_case_severity": "MEDIUM", "status": "跳过", "message": "由于关键的前置测试失败而被跳过: 关键测试 'TC-STATUS-001' 失败 (状态: 失败)。消息: ", "duration_seconds": 7.50001345295459e-06, "timestamp": "2025-07-11T18:57:44.936760", "validation_points": [] }, { "test_case_id": "TC-ERROR-4003-BODY", "test_case_name": "缺失必填请求体字段检查", "test_case_severity": "HIGH", "status": "跳过", "message": "由于关键的前置测试失败而被跳过: 关键测试 'TC-STATUS-001' 失败 (状态: 失败)。消息: ", "duration_seconds": 7.374997949227691e-06, "timestamp": "2025-07-11T18:57:44.936784", "validation_points": [] }, { "test_case_id": "TC-ERROR-4003-QUERY", "test_case_name": "缺失必填查询参数检查", "test_case_severity": "HIGH", "status": "跳过", "message": "由于关键的前置测试失败而被跳过: 关键测试 'TC-STATUS-001' 失败 (状态: 失败)。消息: ", "duration_seconds": 7.20900425221771e-06, "timestamp": "2025-07-11T18:57:44.936807", "validation_points": [] } ] }, { "endpoint_id": "PUT /api/dms/wb_ml/v1/lujing_test", "endpoint_name": "Update lujing_test", "overall_status": "通过", "duration_seconds": 0.020745, "start_time": "2025-07-11T18:57:44.936892", "end_time": "2025-07-11T18:57:44.957637", "executed_test_cases": [ { "test_case_id": "TC-STATUS-001", "test_case_name": "基本状态码 200 检查", "test_case_severity": "CRITICAL", "status": "通过", "message": "响应状态码为 200,符合预期 200。", "duration_seconds": 0.001000333999400027, "timestamp": "2025-07-11T18:57:44.938050", "validation_points": [ { "passed": true, "message": "响应状态码为 200,符合预期 200。" } ] }, { "test_case_id": "TC-HEADER-001", "test_case_name": "必需请求头Schema验证", "test_case_severity": "HIGH", "status": "失败", "message": "缺少必需的请求头 X-Tenant-ID;缺少必需的请求头 X-Data-Domain;缺少必需的请求头 Authorization", "duration_seconds": 0.0009679579961812124, "timestamp": "2025-07-11T18:57:44.939049", "validation_points": [ { "header": "X-Tenant-ID", "possible_names": [ "X-Tenant-ID" ], "endpoint": "PUT /api/dms/wb_ml/v1/lujing_test" }, { "header": "X-Data-Domain", "possible_names": [ "X-Data-Domain" ], "endpoint": "PUT /api/dms/wb_ml/v1/lujing_test" }, { "header": "Authorization", "possible_names": [ "Authorization" ], "endpoint": "PUT /api/dms/wb_ml/v1/lujing_test" } ] }, { "test_case_id": "TC-SECURITY-002", "test_case_name": "敏感字段加密检查", "test_case_severity": "HIGH", "status": "通过", "message": "未在响应中找到需要检查的敏感字段。", "duration_seconds": 0.0009808750037336722, "timestamp": "2025-07-11T18:57:44.940059", "validation_points": [ { "passed": true, "message": "未在响应中找到需要检查的敏感字段。" } ] }, { "test_case_id": "TC-LLM-COMPLIANCE-001", "test_case_name": "LLM合规性综合检查", "test_case_severity": "MEDIUM", "status": "通过", "message": "合规性标准列表为空,跳过LLM合规性检查。", "duration_seconds": 0.000977624993538484, "timestamp": "2025-07-11T18:57:44.941066", "validation_points": [ { "reason": "compliance_criteria.json is empty or contains an empty list." } ] }, { "test_case_id": "TC-RESTful-001", "test_case_name": "核心命名与结构规范检查", "test_case_severity": "HIGH", "status": "通过", "message": "模块名 'dms' 格式正确 (全小写/数字/中划线)。", "duration_seconds": 0.000912499992409721, "timestamp": "2025-07-11T18:57:44.942016", "validation_points": [ { "passed": true, "message": "模块名 'dms' 格式正确 (全小写/数字/中划线)。" } ] }, { "test_case_id": "TC-DMS-PAGINATION-001", "test_case_name": "分页参数检查", "test_case_severity": "MEDIUM", "status": "失败", "message": "API请求缺少标准分页参数:pageNo, pageSize, isSearchCount", "duration_seconds": 0.0009370420011691749, "timestamp": "2025-07-11T18:57:44.942982", "validation_points": [ { "path": "/api/dms/wb_ml/v1/lujing_test", "method": "PUT", "missing_params": [ "pageNo", "pageSize", "isSearchCount" ], "found_params": { "pageNo": false, "pageSize": false, "isSearchCount": false } } ] }, { "test_case_id": "TC-RESTful-004", "test_case_name": "资源集合复数命名检查", "test_case_severity": "MEDIUM", "status": "通过", "message": "跳过检查:PUT 方法,不适用于资源集合复数检查。", "duration_seconds": 0.0009986670047510415, "timestamp": "2025-07-11T18:57:44.944026", "validation_points": [ { "passed": true, "message": "跳过检查:PUT 方法,不适用于资源集合复数检查。" } ] }, { "test_case_id": "TC-RESTful-002", "test_case_name": "资源路径名词检查", "test_case_severity": "MEDIUM", "status": "通过", "message": "路径 '/api/dms/wb_ml/v1/lujing_test' 符合资源名词命名规范。", "duration_seconds": 0.0010697079997044057, "timestamp": "2025-07-11T18:57:44.945135", "validation_points": [ { "passed": true, "message": "路径 '/api/dms/wb_ml/v1/lujing_test' 符合资源名词命名规范。" } ] }, { "test_case_id": "TC-DMS-CORE-SCHEMA-001", "test_case_name": "DMS核心存储服务API响应格式检查", "test_case_severity": "HIGH", "status": "通过", "message": "字段'code'在schema中未标记为必填(required);字段'message'在schema中未标记为必填(required);字段'data'在schema中未标记为必填(required);响应schema符合标准格式: {'code':int or number or string, 'message':string, 'data': any}", "duration_seconds": 0.0009021669975481927, "timestamp": "2025-07-11T18:57:44.946076", "validation_points": [ { "status_code": "200", "required_fields": [] }, { "status_code": "200", "required_fields": [] }, { "status_code": "200", "required_fields": [] }, { "status_code": "200" } ] }, { "test_case_id": "TC-CORE-FUNC-001", "test_case_name": "返回体JSON Schema验证", "test_case_severity": "CRITICAL", "status": "通过", "message": "针对 PUT http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test (状态码 200) 的响应体 conforms to the JSON schema.", "duration_seconds": 0.0009648749983171001, "timestamp": "2025-07-11T18:57:44.947084", "validation_points": [ { "passed": true, "message": "针对 PUT http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test (状态码 200) 的响应体 conforms to the JSON schema." } ] }, { "test_case_id": "TC-RESTful-003", "test_case_name": "时间字段ISO 8601格式检查", "test_case_severity": "MEDIUM", "status": "通过", "message": "在API规范中未找到可供静态检查的时间相关字段(如 format: date-time 或 常见时间字段名)。", "duration_seconds": 0.0010605830029817298, "timestamp": "2025-07-11T18:57:44.948175", "validation_points": [ { "passed": true, "message": "在API规范中未找到可供静态检查的时间相关字段(如 format: date-time 或 常见时间字段名)。" } ] }, { "test_case_id": "TC-DMS-URL-VERSION-001", "test_case_name": "DMS API URL版本号检查", "test_case_severity": "MEDIUM", "status": "通过", "message": "API路径 '/api/dms/wb_ml/v1/lujing_test' 正确以'/api/'开头;API路径 '/api/dms/wb_ml/v1/lujing_test' 包含版本标识: 'v1'", "duration_seconds": 0.0010904579976340756, "timestamp": "2025-07-11T18:57:44.949313", "validation_points": [ { "full_path": "/api/dms/wb_ml/v1/lujing_test" }, { "pattern_matched": "/v\\d+/", "version_string": "v1", "full_path": "/api/dms/wb_ml/v1/lujing_test" } ] }, { "test_case_id": "TC-CORE-FUNC-002", "test_case_name": "灵活的返回体JSON Schema验证", "test_case_severity": "CRITICAL", "status": "通过", "message": "", "duration_seconds": 0.0010073750017909333, "timestamp": "2025-07-11T18:57:44.950364", "validation_points": [] }, { "test_case_id": "TC-SECURITY-001", "test_case_name": "HTTPS 协议强制性检查", "test_case_severity": "HIGH", "status": "失败", "message": "API通过HTTP (http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test) 响应了成功的状态码 200,这违反了HTTPS强制策略。", "duration_seconds": 0.0009176250023301691, "timestamp": "2025-07-11T18:57:44.951321", "validation_points": [ { "status_code": 200 } ] }, { "test_case_id": "TC-ERROR-4001-QUERY", "test_case_name": "查询参数类型不匹配检查", "test_case_severity": "MEDIUM", "status": "通过", "message": "跳过测试:在查询参数中未找到合适的字段来测试类型不匹配。", "duration_seconds": 0.0010636670049279928, "timestamp": "2025-07-11T18:57:44.952417", "validation_points": [ { "passed": true, "message": "跳过测试:在查询参数中未找到合适的字段来测试类型不匹配。" } ] }, { "test_case_id": "TC-ERROR-4001-BODY", "test_case_name": "请求体字段类型不匹配检查", "test_case_severity": "MEDIUM", "status": "失败", "message": "当请求体字段 'version' 类型不匹配时, 业务错误码应为 -1,但实际为 0。", "duration_seconds": 0.0010901250061579049, "timestamp": "2025-07-11T18:57:44.953540", "validation_points": [ { "expected_code": -1, "actual_code": 0, "response_body": { "code": 0, "data": true, "message": "创建成功" } } ] }, { "test_case_id": "TC-ERROR-4002", "test_case_name": "数值参数越界检查", "test_case_severity": "MEDIUM", "status": "失败", "message": "当 body 字段 'record_count' 值为 10001 (超出范围: min=0, max=10000) 时, 业务错误码应为 -1,但实际为 0。", "duration_seconds": 0.0010466249950695783, "timestamp": "2025-07-11T18:57:44.954619", "validation_points": [ { "expected_code": -1, "actual_code": 0, "response_body": { "code": 0, "data": true, "message": "创建成功" } } ] }, { "test_case_id": "TC-ERROR-4006", "test_case_name": "非法枚举值检查", "test_case_severity": "MEDIUM", "status": "通过", "message": "跳过测试:未找到具有明确枚举值限制的字段。", "duration_seconds": 0.0009400419949088246, "timestamp": "2025-07-11T18:57:44.955592", "validation_points": [ { "passed": true, "message": "跳过测试:未找到具有明确枚举值限制的字段。" } ] }, { "test_case_id": "TC-ERROR-4003-BODY", "test_case_name": "缺失必填请求体字段检查", "test_case_severity": "HIGH", "status": "失败", "message": "当移除必填请求体字段 'data' 时, API应返回状态码 200,但实际为 400。", "duration_seconds": 0.0009332500048913062, "timestamp": "2025-07-11T18:57:44.956563", "validation_points": [ { "expected_status": 200, "actual_status": 400 } ] }, { "test_case_id": "TC-ERROR-4003-QUERY", "test_case_name": "缺失必填查询参数检查", "test_case_severity": "HIGH", "status": "通过", "message": "跳过测试:在API规范中未找到合适的必填查询参数用于移除测试。", "duration_seconds": 0.0010077920014737174, "timestamp": "2025-07-11T18:57:44.957613", "validation_points": [ { "passed": true, "message": "跳过测试:在API规范中未找到合适的必填查询参数用于移除测试。" } ] } ] }, { "endpoint_id": "DELETE /api/dms/wb_ml/v1/lujing_test", "endpoint_name": "Delete lujing_test", "overall_status": "通过", "duration_seconds": 0.019397, "start_time": "2025-07-11T18:57:44.957692", "end_time": "2025-07-11T18:57:44.977089", "executed_test_cases": [ { "test_case_id": "TC-STATUS-001", "test_case_name": "基本状态码 200 检查", "test_case_severity": "CRITICAL", "status": "通过", "message": "响应状态码为 200,符合预期 200。", "duration_seconds": 0.0008742919890210032, "timestamp": "2025-07-11T18:57:44.958732", "validation_points": [ { "passed": true, "message": "响应状态码为 200,符合预期 200。" } ] }, { "test_case_id": "TC-HEADER-001", "test_case_name": "必需请求头Schema验证", "test_case_severity": "HIGH", "status": "失败", "message": "缺少必需的请求头 X-Tenant-ID;缺少必需的请求头 X-Data-Domain;缺少必需的请求头 Authorization", "duration_seconds": 0.000913208001293242, "timestamp": "2025-07-11T18:57:44.959677", "validation_points": [ { "header": "X-Tenant-ID", "possible_names": [ "X-Tenant-ID" ], "endpoint": "DELETE /api/dms/wb_ml/v1/lujing_test" }, { "header": "X-Data-Domain", "possible_names": [ "X-Data-Domain" ], "endpoint": "DELETE /api/dms/wb_ml/v1/lujing_test" }, { "header": "Authorization", "possible_names": [ "Authorization" ], "endpoint": "DELETE /api/dms/wb_ml/v1/lujing_test" } ] }, { "test_case_id": "TC-SECURITY-002", "test_case_name": "敏感字段加密检查", "test_case_severity": "HIGH", "status": "通过", "message": "未在响应中找到需要检查的敏感字段。", "duration_seconds": 0.0008582910086261109, "timestamp": "2025-07-11T18:57:44.960563", "validation_points": [ { "passed": true, "message": "未在响应中找到需要检查的敏感字段。" } ] }, { "test_case_id": "TC-LLM-COMPLIANCE-001", "test_case_name": "LLM合规性综合检查", "test_case_severity": "MEDIUM", "status": "通过", "message": "合规性标准列表为空,跳过LLM合规性检查。", "duration_seconds": 0.0009342910052509978, "timestamp": "2025-07-11T18:57:44.961531", "validation_points": [ { "reason": "compliance_criteria.json is empty or contains an empty list." } ] }, { "test_case_id": "TC-RESTful-001", "test_case_name": "核心命名与结构规范检查", "test_case_severity": "HIGH", "status": "通过", "message": "模块名 'dms' 格式正确 (全小写/数字/中划线)。", "duration_seconds": 0.0008924590074457228, "timestamp": "2025-07-11T18:57:44.962461", "validation_points": [ { "passed": true, "message": "模块名 'dms' 格式正确 (全小写/数字/中划线)。" } ] }, { "test_case_id": "TC-DMS-PAGINATION-001", "test_case_name": "分页参数检查", "test_case_severity": "MEDIUM", "status": "失败", "message": "API请求缺少标准分页参数:pageNo, pageSize, isSearchCount", "duration_seconds": 0.000843875008285977, "timestamp": "2025-07-11T18:57:44.963333", "validation_points": [ { "path": "/api/dms/wb_ml/v1/lujing_test", "method": "DELETE", "missing_params": [ "pageNo", "pageSize", "isSearchCount" ], "found_params": { "pageNo": false, "pageSize": false, "isSearchCount": false } } ] }, { "test_case_id": "TC-RESTful-004", "test_case_name": "资源集合复数命名检查", "test_case_severity": "MEDIUM", "status": "通过", "message": "跳过检查:DELETE 方法,不适用于资源集合复数检查。", "duration_seconds": 0.000860916989040561, "timestamp": "2025-07-11T18:57:44.964232", "validation_points": [ { "passed": true, "message": "跳过检查:DELETE 方法,不适用于资源集合复数检查。" } ] }, { "test_case_id": "TC-RESTful-002", "test_case_name": "资源路径名词检查", "test_case_severity": "MEDIUM", "status": "通过", "message": "路径 '/api/dms/wb_ml/v1/lujing_test' 符合资源名词命名规范。", "duration_seconds": 0.0010030830017058179, "timestamp": "2025-07-11T18:57:44.965278", "validation_points": [ { "passed": true, "message": "路径 '/api/dms/wb_ml/v1/lujing_test' 符合资源名词命名规范。" } ] }, { "test_case_id": "TC-DMS-CORE-SCHEMA-001", "test_case_name": "DMS核心存储服务API响应格式检查", "test_case_severity": "HIGH", "status": "通过", "message": "字段'code'在schema中未标记为必填(required);字段'message'在schema中未标记为必填(required);字段'data'在schema中未标记为必填(required);响应schema符合标准格式: {'code':int or number or string, 'message':string, 'data': any}", "duration_seconds": 0.0009108340018428862, "timestamp": "2025-07-11T18:57:44.966235", "validation_points": [ { "status_code": "200", "required_fields": [] }, { "status_code": "200", "required_fields": [] }, { "status_code": "200", "required_fields": [] }, { "status_code": "200" } ] }, { "test_case_id": "TC-CORE-FUNC-001", "test_case_name": "返回体JSON Schema验证", "test_case_severity": "CRITICAL", "status": "通过", "message": "针对 DELETE http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test (状态码 200) 的响应体 conforms to the JSON schema.", "duration_seconds": 0.0010819159942911938, "timestamp": "2025-07-11T18:57:44.967362", "validation_points": [ { "passed": true, "message": "针对 DELETE http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test (状态码 200) 的响应体 conforms to the JSON schema." } ] }, { "test_case_id": "TC-RESTful-003", "test_case_name": "时间字段ISO 8601格式检查", "test_case_severity": "MEDIUM", "status": "通过", "message": "在API规范中未找到可供静态检查的时间相关字段(如 format: date-time 或 常见时间字段名)。", "duration_seconds": 0.0010299159912392497, "timestamp": "2025-07-11T18:57:44.968428", "validation_points": [ { "passed": true, "message": "在API规范中未找到可供静态检查的时间相关字段(如 format: date-time 或 常见时间字段名)。" } ] }, { "test_case_id": "TC-DMS-URL-VERSION-001", "test_case_name": "DMS API URL版本号检查", "test_case_severity": "MEDIUM", "status": "通过", "message": "API路径 '/api/dms/wb_ml/v1/lujing_test' 正确以'/api/'开头;API路径 '/api/dms/wb_ml/v1/lujing_test' 包含版本标识: 'v1'", "duration_seconds": 0.0008674999990034848, "timestamp": "2025-07-11T18:57:44.969341", "validation_points": [ { "full_path": "/api/dms/wb_ml/v1/lujing_test" }, { "pattern_matched": "/v\\d+/", "version_string": "v1", "full_path": "/api/dms/wb_ml/v1/lujing_test" } ] }, { "test_case_id": "TC-CORE-FUNC-002", "test_case_name": "灵活的返回体JSON Schema验证", "test_case_severity": "CRITICAL", "status": "通过", "message": "", "duration_seconds": 0.0009243749955203384, "timestamp": "2025-07-11T18:57:44.970302", "validation_points": [] }, { "test_case_id": "TC-SECURITY-001", "test_case_name": "HTTPS 协议强制性检查", "test_case_severity": "HIGH", "status": "失败", "message": "API通过HTTP (http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test) 响应了成功的状态码 200,这违反了HTTPS强制策略。", "duration_seconds": 0.0008695839933352545, "timestamp": "2025-07-11T18:57:44.971208", "validation_points": [ { "status_code": 200 } ] }, { "test_case_id": "TC-ERROR-4001-QUERY", "test_case_name": "查询参数类型不匹配检查", "test_case_severity": "MEDIUM", "status": "通过", "message": "跳过测试:在查询参数中未找到合适的字段来测试类型不匹配。", "duration_seconds": 0.000946375002968125, "timestamp": "2025-07-11T18:57:44.972186", "validation_points": [ { "passed": true, "message": "跳过测试:在查询参数中未找到合适的字段来测试类型不匹配。" } ] }, { "test_case_id": "TC-ERROR-4001-BODY", "test_case_name": "请求体字段类型不匹配检查", "test_case_severity": "MEDIUM", "status": "失败", "message": "当请求体字段 'version' 类型不匹配时, 业务错误码应为 -1,但实际为 404。", "duration_seconds": 0.0009848750050878152, "timestamp": "2025-07-11T18:57:44.973208", "validation_points": [ { "expected_code": -1, "actual_code": 404, "response_body": { "code": 404, "data": false, "message": "未找到要删除的资源" } } ] }, { "test_case_id": "TC-ERROR-4002", "test_case_name": "数值参数越界检查", "test_case_severity": "MEDIUM", "status": "通过", "message": "跳过测试:未找到具有明确范围限制的数值字段。", "duration_seconds": 0.0009810829942580312, "timestamp": "2025-07-11T18:57:44.974222", "validation_points": [ { "passed": true, "message": "跳过测试:未找到具有明确范围限制的数值字段。" } ] }, { "test_case_id": "TC-ERROR-4006", "test_case_name": "非法枚举值检查", "test_case_severity": "MEDIUM", "status": "通过", "message": "跳过测试:未找到具有明确枚举值限制的字段。", "duration_seconds": 0.0009192080033244565, "timestamp": "2025-07-11T18:57:44.975181", "validation_points": [ { "passed": true, "message": "跳过测试:未找到具有明确枚举值限制的字段。" } ] }, { "test_case_id": "TC-ERROR-4003-BODY", "test_case_name": "缺失必填请求体字段检查", "test_case_severity": "HIGH", "status": "失败", "message": "当移除必填请求体字段 'data' 时, API应返回状态码 200,但实际为 400。", "duration_seconds": 0.0009034169925143942, "timestamp": "2025-07-11T18:57:44.976130", "validation_points": [ { "expected_status": 200, "actual_status": 400 } ] }, { "test_case_id": "TC-ERROR-4003-QUERY", "test_case_name": "缺失必填查询参数检查", "test_case_severity": "HIGH", "status": "通过", "message": "跳过测试:在API规范中未找到合适的必填查询参数用于移除测试。", "duration_seconds": 0.0008984579908428714, "timestamp": "2025-07-11T18:57:44.977066", "validation_points": [ { "passed": true, "message": "跳过测试:在API规范中未找到合适的必填查询参数用于移除测试。" } ] } ] }, { "endpoint_id": "POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report", "endpoint_name": "Create wb_dr_pro_daily_report", "overall_status": "通过", "duration_seconds": 0.020481, "start_time": "2025-07-11T18:57:44.977146", "end_time": "2025-07-11T18:57:44.997627", "executed_test_cases": [ { "test_case_id": "TC-STATUS-001", "test_case_name": "基本状态码 200 检查", "test_case_severity": "CRITICAL", "status": "通过", "message": "响应状态码为 200,符合预期 200。", "duration_seconds": 0.001053999993018806, "timestamp": "2025-07-11T18:57:44.978369", "validation_points": [ { "passed": true, "message": "响应状态码为 200,符合预期 200。" } ] }, { "test_case_id": "TC-HEADER-001", "test_case_name": "必需请求头Schema验证", "test_case_severity": "HIGH", "status": "失败", "message": "缺少必需的请求头 X-Tenant-ID;缺少必需的请求头 X-Data-Domain;缺少必需的请求头 Authorization", "duration_seconds": 0.0010827079968294129, "timestamp": "2025-07-11T18:57:44.979493", "validation_points": [ { "header": "X-Tenant-ID", "possible_names": [ "X-Tenant-ID" ], "endpoint": "POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report" }, { "header": "X-Data-Domain", "possible_names": [ "X-Data-Domain" ], "endpoint": "POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report" }, { "header": "Authorization", "possible_names": [ "Authorization" ], "endpoint": "POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report" } ] }, { "test_case_id": "TC-SECURITY-002", "test_case_name": "敏感字段加密检查", "test_case_severity": "HIGH", "status": "通过", "message": "未在响应中找到需要检查的敏感字段。", "duration_seconds": 0.000985834005405195, "timestamp": "2025-07-11T18:57:44.980508", "validation_points": [ { "passed": true, "message": "未在响应中找到需要检查的敏感字段。" } ] }, { "test_case_id": "TC-LLM-COMPLIANCE-001", "test_case_name": "LLM合规性综合检查", "test_case_severity": "MEDIUM", "status": "通过", "message": "合规性标准列表为空,跳过LLM合规性检查。", "duration_seconds": 0.0010168750013690442, "timestamp": "2025-07-11T18:57:44.981553", "validation_points": [ { "reason": "compliance_criteria.json is empty or contains an empty list." } ] }, { "test_case_id": "TC-RESTful-001", "test_case_name": "核心命名与结构规范检查", "test_case_severity": "HIGH", "status": "通过", "message": "模块名 'dms' 格式正确 (全小写/数字/中划线)。", "duration_seconds": 0.0009342919947812334, "timestamp": "2025-07-11T18:57:44.982525", "validation_points": [ { "passed": true, "message": "模块名 'dms' 格式正确 (全小写/数字/中划线)。" } ] }, { "test_case_id": "TC-DMS-PAGINATION-001", "test_case_name": "分页参数检查", "test_case_severity": "MEDIUM", "status": "失败", "message": "API请求缺少标准分页参数:pageNo, pageSize, isSearchCount", "duration_seconds": 0.0009629999985918403, "timestamp": "2025-07-11T18:57:44.983517", "validation_points": [ { "path": "/api/dms/wb_dr/v1/wb_dr_pro_daily_report", "method": "POST", "missing_params": [ "pageNo", "pageSize", "isSearchCount" ], "found_params": { "pageNo": false, "pageSize": false, "isSearchCount": false } } ] }, { "test_case_id": "TC-RESTful-004", "test_case_name": "资源集合复数命名检查", "test_case_severity": "MEDIUM", "status": "失败", "message": "路径 '/api/dms/wb_dr/v1/wb_dr_pro_daily_report' 的最后一个路径分段 'wb_dr_pro_daily_report' 可能不是复数形式,建议对资源集合使用复数命名。", "duration_seconds": 0.0009224999957950786, "timestamp": "2025-07-11T18:57:44.984478", "validation_points": [ { "path": "/api/dms/wb_dr/v1/wb_dr_pro_daily_report", "segment": "wb_dr_pro_daily_report" } ] }, { "test_case_id": "TC-RESTful-002", "test_case_name": "资源路径名词检查", "test_case_severity": "MEDIUM", "status": "通过", "message": "路径 '/api/dms/wb_dr/v1/wb_dr_pro_daily_report' 符合资源名词命名规范。", "duration_seconds": 0.0010158329969272017, "timestamp": "2025-07-11T18:57:44.985540", "validation_points": [ { "passed": true, "message": "路径 '/api/dms/wb_dr/v1/wb_dr_pro_daily_report' 符合资源名词命名规范。" } ] }, { "test_case_id": "TC-DMS-CORE-SCHEMA-001", "test_case_name": "DMS核心存储服务API响应格式检查", "test_case_severity": "HIGH", "status": "通过", "message": "字段'code'在schema中未标记为必填(required);字段'message'在schema中未标记为必填(required);字段'data'在schema中未标记为必填(required);响应schema符合标准格式: {'code':int or number or string, 'message':string, 'data': any}", "duration_seconds": 0.0009250000002793968, "timestamp": "2025-07-11T18:57:44.986504", "validation_points": [ { "status_code": "200", "required_fields": [] }, { "status_code": "200", "required_fields": [] }, { "status_code": "200", "required_fields": [] }, { "status_code": "200" } ] }, { "test_case_id": "TC-CORE-FUNC-001", "test_case_name": "返回体JSON Schema验证", "test_case_severity": "CRITICAL", "status": "通过", "message": "针对 POST http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report (状态码 200) 的响应体 conforms to the JSON schema.", "duration_seconds": 0.0009760419925441965, "timestamp": "2025-07-11T18:57:44.987518", "validation_points": [ { "passed": true, "message": "针对 POST http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report (状态码 200) 的响应体 conforms to the JSON schema." } ] }, { "test_case_id": "TC-RESTful-003", "test_case_name": "时间字段ISO 8601格式检查", "test_case_severity": "MEDIUM", "status": "通过", "message": "在API规范中未找到可供静态检查的时间相关字段(如 format: date-time 或 常见时间字段名)。", "duration_seconds": 0.0008733330032555386, "timestamp": "2025-07-11T18:57:44.988423", "validation_points": [ { "passed": true, "message": "在API规范中未找到可供静态检查的时间相关字段(如 format: date-time 或 常见时间字段名)。" } ] }, { "test_case_id": "TC-DMS-URL-VERSION-001", "test_case_name": "DMS API URL版本号检查", "test_case_severity": "MEDIUM", "status": "通过", "message": "API路径 '/api/dms/wb_dr/v1/wb_dr_pro_daily_report' 正确以'/api/'开头;API路径 '/api/dms/wb_dr/v1/wb_dr_pro_daily_report' 包含版本标识: 'v1'", "duration_seconds": 0.0008797080081421882, "timestamp": "2025-07-11T18:57:44.989341", "validation_points": [ { "full_path": "/api/dms/wb_dr/v1/wb_dr_pro_daily_report" }, { "pattern_matched": "/v\\d+/", "version_string": "v1", "full_path": "/api/dms/wb_dr/v1/wb_dr_pro_daily_report" } ] }, { "test_case_id": "TC-CORE-FUNC-002", "test_case_name": "灵活的返回体JSON Schema验证", "test_case_severity": "CRITICAL", "status": "通过", "message": "", "duration_seconds": 0.0009472499950788915, "timestamp": "2025-07-11T18:57:44.990332", "validation_points": [] }, { "test_case_id": "TC-SECURITY-001", "test_case_name": "HTTPS 协议强制性检查", "test_case_severity": "HIGH", "status": "失败", "message": "API通过HTTP (http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report) 响应了成功的状态码 200,这违反了HTTPS强制策略。", "duration_seconds": 0.0010222080018138513, "timestamp": "2025-07-11T18:57:44.991393", "validation_points": [ { "status_code": 200 } ] }, { "test_case_id": "TC-ERROR-4001-QUERY", "test_case_name": "查询参数类型不匹配检查", "test_case_severity": "MEDIUM", "status": "通过", "message": "跳过测试:在查询参数中未找到合适的字段来测试类型不匹配。", "duration_seconds": 0.0010270000057062134, "timestamp": "2025-07-11T18:57:44.992453", "validation_points": [ { "passed": true, "message": "跳过测试:在查询参数中未找到合适的字段来测试类型不匹配。" } ] }, { "test_case_id": "TC-ERROR-4001-BODY", "test_case_name": "请求体字段类型不匹配检查", "test_case_severity": "MEDIUM", "status": "失败", "message": "当请求体字段 'version' 类型不匹配时, 业务错误码应为 -1,但实际为 0。", "duration_seconds": 0.0010416669974802062, "timestamp": "2025-07-11T18:57:44.993524", "validation_points": [ { "expected_code": -1, "actual_code": 0, "response_body": { "code": 0, "data": true, "message": "创建成功" } } ] }, { "test_case_id": "TC-ERROR-4002", "test_case_name": "数值参数越界检查", "test_case_severity": "MEDIUM", "status": "失败", "message": "当 body 字段 'record_count' 值为 10001 (超出范围: min=0, max=10000) 时, 业务错误码应为 -1,但实际为 0。", "duration_seconds": 0.0010707499895943329, "timestamp": "2025-07-11T18:57:44.994632", "validation_points": [ { "expected_code": -1, "actual_code": 0, "response_body": { "code": 0, "data": true, "message": "创建成功" } } ] }, { "test_case_id": "TC-ERROR-4006", "test_case_name": "非法枚举值检查", "test_case_severity": "MEDIUM", "status": "通过", "message": "跳过测试:未找到具有明确枚举值限制的字段。", "duration_seconds": 0.0009773749916348606, "timestamp": "2025-07-11T18:57:44.995641", "validation_points": [ { "passed": true, "message": "跳过测试:未找到具有明确枚举值限制的字段。" } ] }, { "test_case_id": "TC-ERROR-4003-BODY", "test_case_name": "缺失必填请求体字段检查", "test_case_severity": "HIGH", "status": "失败", "message": "当移除必填请求体字段 'data' 时, API应返回状态码 200,但实际为 400。", "duration_seconds": 0.0009569579997332767, "timestamp": "2025-07-11T18:57:44.996642", "validation_points": [ { "expected_status": 200, "actual_status": 400 } ] }, { "test_case_id": "TC-ERROR-4003-QUERY", "test_case_name": "缺失必填查询参数检查", "test_case_severity": "HIGH", "status": "通过", "message": "跳过测试:在API规范中未找到合适的必填查询参数用于移除测试。", "duration_seconds": 0.000916457996936515, "timestamp": "2025-07-11T18:57:44.997604", "validation_points": [ { "passed": true, "message": "跳过测试:在API规范中未找到合适的必填查询参数用于移除测试。" } ] } ] }, { "endpoint_id": "POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0", "endpoint_name": "List wb_dr_pro_daily_report", "overall_status": "通过", "duration_seconds": 0.017931, "start_time": "2025-07-11T18:57:44.997689", "end_time": "2025-07-11T18:57:45.015620", "executed_test_cases": [ { "test_case_id": "TC-STATUS-001", "test_case_name": "基本状态码 200 检查", "test_case_severity": "CRITICAL", "status": "通过", "message": "响应状态码为 200,符合预期 200。", "duration_seconds": 0.0007948749989736825, "timestamp": "2025-07-11T18:57:44.998641", "validation_points": [ { "passed": true, "message": "响应状态码为 200,符合预期 200。" } ] }, { "test_case_id": "TC-HEADER-001", "test_case_name": "必需请求头Schema验证", "test_case_severity": "HIGH", "status": "失败", "message": "缺少必需的请求头 X-Tenant-ID;缺少必需的请求头 X-Data-Domain;缺少必需的请求头 Authorization", "duration_seconds": 0.0008827499987091869, "timestamp": "2025-07-11T18:57:44.999556", "validation_points": [ { "header": "X-Tenant-ID", "possible_names": [ "X-Tenant-ID" ], "endpoint": "POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0" }, { "header": "X-Data-Domain", "possible_names": [ "X-Data-Domain" ], "endpoint": "POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0" }, { "header": "Authorization", "possible_names": [ "Authorization" ], "endpoint": "POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0" } ] }, { "test_case_id": "TC-SECURITY-002", "test_case_name": "敏感字段加密检查", "test_case_severity": "HIGH", "status": "通过", "message": "未在响应中找到需要检查的敏感字段。", "duration_seconds": 0.0010054159938590601, "timestamp": "2025-07-11T18:57:45.000596", "validation_points": [ { "passed": true, "message": "未在响应中找到需要检查的敏感字段。" } ] }, { "test_case_id": "TC-LLM-COMPLIANCE-001", "test_case_name": "LLM合规性综合检查", "test_case_severity": "MEDIUM", "status": "通过", "message": "合规性标准列表为空,跳过LLM合规性检查。", "duration_seconds": 0.0008809999999357387, "timestamp": "2025-07-11T18:57:45.001506", "validation_points": [ { "reason": "compliance_criteria.json is empty or contains an empty list." } ] }, { "test_case_id": "TC-RESTful-001", "test_case_name": "核心命名与结构规范检查", "test_case_severity": "HIGH", "status": "失败", "message": "模块名 'dms' 格式正确 (全小写/数字/中划线)。;响应中包含一个主列表,但其键名 'data' 不是 'list'。", "duration_seconds": 0.0008612910023657605, "timestamp": "2025-07-11T18:57:45.002403", "validation_points": [ { "passed": true, "message": "模块名 'dms' 格式正确 (全小写/数字/中划线)。" }, { "keys": [ "code", "data", "message" ] } ] }, { "test_case_id": "TC-DMS-PAGINATION-001", "test_case_name": "分页参数检查", "test_case_severity": "MEDIUM", "status": "失败", "message": "API请求缺少标准分页参数:pageNo, pageSize, isSearchCount", "duration_seconds": 0.0008901249966584146, "timestamp": "2025-07-11T18:57:45.003322", "validation_points": [ { "path": "/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0", "method": "POST", "missing_params": [ "pageNo", "pageSize", "isSearchCount" ], "found_params": { "pageNo": false, "pageSize": false, "isSearchCount": false } } ] }, { "test_case_id": "TC-RESTful-004", "test_case_name": "资源集合复数命名检查", "test_case_severity": "MEDIUM", "status": "失败", "message": "路径 '/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0' 的最后一个路径分段 '1.0.0' 可能不是复数形式,建议对资源集合使用复数命名。", "duration_seconds": 0.0008342079963767901, "timestamp": "2025-07-11T18:57:45.004197", "validation_points": [ { "path": "/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0", "segment": "1.0.0" } ] }, { "test_case_id": "TC-RESTful-002", "test_case_name": "资源路径名词检查", "test_case_severity": "MEDIUM", "status": "通过", "message": "路径 '/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0' 符合资源名词命名规范。", "duration_seconds": 0.0008134579984471202, "timestamp": "2025-07-11T18:57:45.005049", "validation_points": [ { "passed": true, "message": "路径 '/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0' 符合资源名词命名规范。" } ] }, { "test_case_id": "TC-DMS-CORE-SCHEMA-001", "test_case_name": "DMS核心存储服务API响应格式检查", "test_case_severity": "HIGH", "status": "通过", "message": "字段'code'在schema中未标记为必填(required);字段'message'在schema中未标记为必填(required);字段'data'在schema中未标记为必填(required);响应schema符合标准格式: {'code':int or number or string, 'message':string, 'data': any}", "duration_seconds": 0.0007592910114908591, "timestamp": "2025-07-11T18:57:45.005849", "validation_points": [ { "status_code": "200", "required_fields": [] }, { "status_code": "200", "required_fields": [] }, { "status_code": "200", "required_fields": [] }, { "status_code": "200" } ] }, { "test_case_id": "TC-CORE-FUNC-001", "test_case_name": "返回体JSON Schema验证", "test_case_severity": "CRITICAL", "status": "通过", "message": "针对 POST http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0 (状态码 200) 的响应体 conforms to the JSON schema.", "duration_seconds": 0.0009497919963905588, "timestamp": "2025-07-11T18:57:45.006837", "validation_points": [ { "passed": true, "message": "针对 POST http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0 (状态码 200) 的响应体 conforms to the JSON schema." } ] }, { "test_case_id": "TC-RESTful-003", "test_case_name": "时间字段ISO 8601格式检查", "test_case_severity": "MEDIUM", "status": "失败", "message": "时间字段 'data[].update_date' (format: date-time) 缺少建议的 `pattern` (^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}([+-]\\d{2}:\\d{2}|Z)$) 来强制执行ISO 8601格式。", "duration_seconds": 0.0007714160019531846, "timestamp": "2025-07-11T18:57:45.007651", "validation_points": [ { "field": "data[].update_date" } ] }, { "test_case_id": "TC-DMS-URL-VERSION-001", "test_case_name": "DMS API URL版本号检查", "test_case_severity": "MEDIUM", "status": "通过", "message": "API路径 '/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0' 正确以'/api/'开头;API路径 '/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0' 包含版本标识: 'v1'", "duration_seconds": 0.0008008339937077835, "timestamp": "2025-07-11T18:57:45.008488", "validation_points": [ { "full_path": "/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0" }, { "pattern_matched": "/v\\d+/", "version_string": "v1", "full_path": "/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0" } ] }, { "test_case_id": "TC-CORE-FUNC-002", "test_case_name": "灵活的返回体JSON Schema验证", "test_case_severity": "CRITICAL", "status": "通过", "message": "", "duration_seconds": 0.0008351249998668209, "timestamp": "2025-07-11T18:57:45.009359", "validation_points": [] }, { "test_case_id": "TC-SECURITY-001", "test_case_name": "HTTPS 协议强制性检查", "test_case_severity": "HIGH", "status": "失败", "message": "API通过HTTP (http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0) 响应了成功的状态码 200,这违反了HTTPS强制策略。", "duration_seconds": 0.0008065419970080256, "timestamp": "2025-07-11T18:57:45.010205", "validation_points": [ { "status_code": 200 } ] }, { "test_case_id": "TC-ERROR-4001-QUERY", "test_case_name": "查询参数类型不匹配检查", "test_case_severity": "MEDIUM", "status": "通过", "message": "跳过测试:在查询参数中未找到合适的字段来测试类型不匹配。", "duration_seconds": 0.0010220840049441904, "timestamp": "2025-07-11T18:57:45.011260", "validation_points": [ { "passed": true, "message": "跳过测试:在查询参数中未找到合适的字段来测试类型不匹配。" } ] }, { "test_case_id": "TC-ERROR-4001-BODY", "test_case_name": "请求体字段类型不匹配检查", "test_case_severity": "MEDIUM", "status": "通过", "message": "跳过测试:在请求体中未找到合适的字段来测试类型不匹配。", "duration_seconds": 0.0008989170019049197, "timestamp": "2025-07-11T18:57:45.012191", "validation_points": [ { "passed": true, "message": "跳过测试:在请求体中未找到合适的字段来测试类型不匹配。" } ] }, { "test_case_id": "TC-ERROR-4002", "test_case_name": "数值参数越界检查", "test_case_severity": "MEDIUM", "status": "通过", "message": "跳过测试:未找到具有明确范围限制的数值字段。", "duration_seconds": 0.0008531249914085492, "timestamp": "2025-07-11T18:57:45.013083", "validation_points": [ { "passed": true, "message": "跳过测试:未找到具有明确范围限制的数值字段。" } ] }, { "test_case_id": "TC-ERROR-4006", "test_case_name": "非法枚举值检查", "test_case_severity": "MEDIUM", "status": "通过", "message": "跳过测试:未找到具有明确枚举值限制的字段。", "duration_seconds": 0.0008066250011324883, "timestamp": "2025-07-11T18:57:45.013921", "validation_points": [ { "passed": true, "message": "跳过测试:未找到具有明确枚举值限制的字段。" } ] }, { "test_case_id": "TC-ERROR-4003-BODY", "test_case_name": "缺失必填请求体字段检查", "test_case_severity": "HIGH", "status": "通过", "message": "跳过测试:在API规范中未找到合适的必填请求体字段用于移除测试。", "duration_seconds": 0.000810041994554922, "timestamp": "2025-07-11T18:57:45.014768", "validation_points": [ { "passed": true, "message": "跳过测试:在API规范中未找到合适的必填请求体字段用于移除测试。" } ] }, { "test_case_id": "TC-ERROR-4003-QUERY", "test_case_name": "缺失必填查询参数检查", "test_case_severity": "HIGH", "status": "通过", "message": "跳过测试:在API规范中未找到合适的必填查询参数用于移除测试。", "duration_seconds": 0.0007917909970274195, "timestamp": "2025-07-11T18:57:45.015596", "validation_points": [ { "passed": true, "message": "跳过测试:在API规范中未找到合适的必填查询参数用于移除测试。" } ] } ] }, { "endpoint_id": "GET /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0/{id}", "endpoint_name": "Read wb_dr_pro_daily_report", "overall_status": "失败", "duration_seconds": 0.00148, "start_time": "2025-07-11T18:57:45.015678", "end_time": "2025-07-11T18:57:45.017158", "executed_test_cases": [ { "test_case_id": "TC-STATUS-001", "test_case_name": "基本状态码 200 检查", "test_case_severity": "CRITICAL", "status": "失败", "message": "期望状态码 200,但收到 404。", "duration_seconds": 0.0008529159968020394, "timestamp": "2025-07-11T18:57:45.016690", "validation_points": [ { "expected_status": 200, "actual_status": 404, "request_url": "http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0/param_id", "response_body_sample": "{\"code\": 404, \"message\": \"资源 'wb_dr_pro_daily_report' with ID 'param_id' 未找到.\"}" } ] }, { "test_case_id": "TC-HEADER-001", "test_case_name": "必需请求头Schema验证", "test_case_severity": "HIGH", "status": "跳过", "message": "由于关键的前置测试失败而被跳过: 关键测试 'TC-STATUS-001' 失败 (状态: 失败)。消息: ", "duration_seconds": 8.709001122042537e-06, "timestamp": "2025-07-11T18:57:45.016734", "validation_points": [] }, { "test_case_id": "TC-SECURITY-002", "test_case_name": "敏感字段加密检查", "test_case_severity": "HIGH", "status": "跳过", "message": "由于关键的前置测试失败而被跳过: 关键测试 'TC-STATUS-001' 失败 (状态: 失败)。消息: ", "duration_seconds": 7.374997949227691e-06, "timestamp": "2025-07-11T18:57:45.016759", "validation_points": [] }, { "test_case_id": "TC-LLM-COMPLIANCE-001", "test_case_name": "LLM合规性综合检查", "test_case_severity": "MEDIUM", "status": "跳过", "message": "由于关键的前置测试失败而被跳过: 关键测试 'TC-STATUS-001' 失败 (状态: 失败)。消息: ", "duration_seconds": 7.000009645707905e-06, "timestamp": "2025-07-11T18:57:45.016782", "validation_points": [] }, { "test_case_id": "TC-RESTful-001", "test_case_name": "核心命名与结构规范检查", "test_case_severity": "HIGH", "status": "跳过", "message": "由于关键的前置测试失败而被跳过: 关键测试 'TC-STATUS-001' 失败 (状态: 失败)。消息: ", "duration_seconds": 6.95799826644361e-06, "timestamp": "2025-07-11T18:57:45.016805", "validation_points": [] }, { "test_case_id": "TC-DMS-PAGINATION-001", "test_case_name": "分页参数检查", "test_case_severity": "MEDIUM", "status": "跳过", "message": "由于关键的前置测试失败而被跳过: 关键测试 'TC-STATUS-001' 失败 (状态: 失败)。消息: ", "duration_seconds": 7.000009645707905e-06, "timestamp": "2025-07-11T18:57:45.016828", "validation_points": [] }, { "test_case_id": "TC-RESTful-004", "test_case_name": "资源集合复数命名检查", "test_case_severity": "MEDIUM", "status": "跳过", "message": "由于关键的前置测试失败而被跳过: 关键测试 'TC-STATUS-001' 失败 (状态: 失败)。消息: ", "duration_seconds": 6.750007742084563e-06, "timestamp": "2025-07-11T18:57:45.016851", "validation_points": [] }, { "test_case_id": "TC-RESTful-002", "test_case_name": "资源路径名词检查", "test_case_severity": "MEDIUM", "status": "跳过", "message": "由于关键的前置测试失败而被跳过: 关键测试 'TC-STATUS-001' 失败 (状态: 失败)。消息: ", "duration_seconds": 6.832997314631939e-06, "timestamp": "2025-07-11T18:57:45.016873", "validation_points": [] }, { "test_case_id": "TC-DMS-CORE-SCHEMA-001", "test_case_name": "DMS核心存储服务API响应格式检查", "test_case_severity": "HIGH", "status": "跳过", "message": "由于关键的前置测试失败而被跳过: 关键测试 'TC-STATUS-001' 失败 (状态: 失败)。消息: ", "duration_seconds": 7.124996045604348e-06, "timestamp": "2025-07-11T18:57:45.016896", "validation_points": [] }, { "test_case_id": "TC-CORE-FUNC-001", "test_case_name": "返回体JSON Schema验证", "test_case_severity": "CRITICAL", "status": "跳过", "message": "由于关键的前置测试失败而被跳过: 关键测试 'TC-STATUS-001' 失败 (状态: 失败)。消息: ", "duration_seconds": 6.917005521245301e-06, "timestamp": "2025-07-11T18:57:45.016919", "validation_points": [] }, { "test_case_id": "TC-RESTful-003", "test_case_name": "时间字段ISO 8601格式检查", "test_case_severity": "MEDIUM", "status": "跳过", "message": "由于关键的前置测试失败而被跳过: 关键测试 'TC-STATUS-001' 失败 (状态: 失败)。消息: ", "duration_seconds": 6.791000487282872e-06, "timestamp": "2025-07-11T18:57:45.016941", "validation_points": [] }, { "test_case_id": "TC-DMS-URL-VERSION-001", "test_case_name": "DMS API URL版本号检查", "test_case_severity": "MEDIUM", "status": "跳过", "message": "由于关键的前置测试失败而被跳过: 关键测试 'TC-STATUS-001' 失败 (状态: 失败)。消息: ", "duration_seconds": 6.791000487282872e-06, "timestamp": "2025-07-11T18:57:45.016963", "validation_points": [] }, { "test_case_id": "TC-CORE-FUNC-002", "test_case_name": "灵活的返回体JSON Schema验证", "test_case_severity": "CRITICAL", "status": "跳过", "message": "由于关键的前置测试失败而被跳过: 关键测试 'TC-STATUS-001' 失败 (状态: 失败)。消息: ", "duration_seconds": 6.791000487282872e-06, "timestamp": "2025-07-11T18:57:45.016985", "validation_points": [] }, { "test_case_id": "TC-SECURITY-001", "test_case_name": "HTTPS 协议强制性检查", "test_case_severity": "HIGH", "status": "跳过", "message": "由于关键的前置测试失败而被跳过: 关键测试 'TC-STATUS-001' 失败 (状态: 失败)。消息: ", "duration_seconds": 6.917005521245301e-06, "timestamp": "2025-07-11T18:57:45.017008", "validation_points": [] }, { "test_case_id": "TC-ERROR-4001-QUERY", "test_case_name": "查询参数类型不匹配检查", "test_case_severity": "MEDIUM", "status": "跳过", "message": "由于关键的前置测试失败而被跳过: 关键测试 'TC-STATUS-001' 失败 (状态: 失败)。消息: ", "duration_seconds": 6.874994141981006e-06, "timestamp": "2025-07-11T18:57:45.017030", "validation_points": [] }, { "test_case_id": "TC-ERROR-4001-BODY", "test_case_name": "请求体字段类型不匹配检查", "test_case_severity": "MEDIUM", "status": "跳过", "message": "由于关键的前置测试失败而被跳过: 关键测试 'TC-STATUS-001' 失败 (状态: 失败)。消息: ", "duration_seconds": 6.667003617621958e-06, "timestamp": "2025-07-11T18:57:45.017052", "validation_points": [] }, { "test_case_id": "TC-ERROR-4002", "test_case_name": "数值参数越界检查", "test_case_severity": "MEDIUM", "status": "跳过", "message": "由于关键的前置测试失败而被跳过: 关键测试 'TC-STATUS-001' 失败 (状态: 失败)。消息: ", "duration_seconds": 8.332994184456766e-06, "timestamp": "2025-07-11T18:57:45.017076", "validation_points": [] }, { "test_case_id": "TC-ERROR-4006", "test_case_name": "非法枚举值检查", "test_case_severity": "MEDIUM", "status": "跳过", "message": "由于关键的前置测试失败而被跳过: 关键测试 'TC-STATUS-001' 失败 (状态: 失败)。消息: ", "duration_seconds": 6.791000487282872e-06, "timestamp": "2025-07-11T18:57:45.017099", "validation_points": [] }, { "test_case_id": "TC-ERROR-4003-BODY", "test_case_name": "缺失必填请求体字段检查", "test_case_severity": "HIGH", "status": "跳过", "message": "由于关键的前置测试失败而被跳过: 关键测试 'TC-STATUS-001' 失败 (状态: 失败)。消息: ", "duration_seconds": 6.791000487282872e-06, "timestamp": "2025-07-11T18:57:45.017121", "validation_points": [] }, { "test_case_id": "TC-ERROR-4003-QUERY", "test_case_name": "缺失必填查询参数检查", "test_case_severity": "HIGH", "status": "跳过", "message": "由于关键的前置测试失败而被跳过: 关键测试 'TC-STATUS-001' 失败 (状态: 失败)。消息: ", "duration_seconds": 6.750007742084563e-06, "timestamp": "2025-07-11T18:57:45.017143", "validation_points": [] } ] }, { "endpoint_id": "PUT /api/dms/wb_dr/v1/wb_dr_pro_daily_report", "endpoint_name": "Update wb_dr_pro_daily_report", "overall_status": "通过", "duration_seconds": 0.020972, "start_time": "2025-07-11T18:57:45.017206", "end_time": "2025-07-11T18:57:45.038178", "executed_test_cases": [ { "test_case_id": "TC-STATUS-001", "test_case_name": "基本状态码 200 检查", "test_case_severity": "CRITICAL", "status": "通过", "message": "响应状态码为 200,符合预期 200。", "duration_seconds": 0.000985999999102205, "timestamp": "2025-07-11T18:57:45.018357", "validation_points": [ { "passed": true, "message": "响应状态码为 200,符合预期 200。" } ] }, { "test_case_id": "TC-HEADER-001", "test_case_name": "必需请求头Schema验证", "test_case_severity": "HIGH", "status": "失败", "message": "缺少必需的请求头 X-Tenant-ID;缺少必需的请求头 X-Data-Domain;缺少必需的请求头 Authorization", "duration_seconds": 0.0011382920056348667, "timestamp": "2025-07-11T18:57:45.019535", "validation_points": [ { "header": "X-Tenant-ID", "possible_names": [ "X-Tenant-ID" ], "endpoint": "PUT /api/dms/wb_dr/v1/wb_dr_pro_daily_report" }, { "header": "X-Data-Domain", "possible_names": [ "X-Data-Domain" ], "endpoint": "PUT /api/dms/wb_dr/v1/wb_dr_pro_daily_report" }, { "header": "Authorization", "possible_names": [ "Authorization" ], "endpoint": "PUT /api/dms/wb_dr/v1/wb_dr_pro_daily_report" } ] }, { "test_case_id": "TC-SECURITY-002", "test_case_name": "敏感字段加密检查", "test_case_severity": "HIGH", "status": "通过", "message": "未在响应中找到需要检查的敏感字段。", "duration_seconds": 0.0009992919949581847, "timestamp": "2025-07-11T18:57:45.020562", "validation_points": [ { "passed": true, "message": "未在响应中找到需要检查的敏感字段。" } ] }, { "test_case_id": "TC-LLM-COMPLIANCE-001", "test_case_name": "LLM合规性综合检查", "test_case_severity": "MEDIUM", "status": "通过", "message": "合规性标准列表为空,跳过LLM合规性检查。", "duration_seconds": 0.001051917002769187, "timestamp": "2025-07-11T18:57:45.021654", "validation_points": [ { "reason": "compliance_criteria.json is empty or contains an empty list." } ] }, { "test_case_id": "TC-RESTful-001", "test_case_name": "核心命名与结构规范检查", "test_case_severity": "HIGH", "status": "通过", "message": "模块名 'dms' 格式正确 (全小写/数字/中划线)。", "duration_seconds": 0.0010076250036945567, "timestamp": "2025-07-11T18:57:45.022700", "validation_points": [ { "passed": true, "message": "模块名 'dms' 格式正确 (全小写/数字/中划线)。" } ] }, { "test_case_id": "TC-DMS-PAGINATION-001", "test_case_name": "分页参数检查", "test_case_severity": "MEDIUM", "status": "失败", "message": "API请求缺少标准分页参数:pageNo, pageSize, isSearchCount", "duration_seconds": 0.00087554199853912, "timestamp": "2025-07-11T18:57:45.023608", "validation_points": [ { "path": "/api/dms/wb_dr/v1/wb_dr_pro_daily_report", "method": "PUT", "missing_params": [ "pageNo", "pageSize", "isSearchCount" ], "found_params": { "pageNo": false, "pageSize": false, "isSearchCount": false } } ] }, { "test_case_id": "TC-RESTful-004", "test_case_name": "资源集合复数命名检查", "test_case_severity": "MEDIUM", "status": "通过", "message": "跳过检查:PUT 方法,不适用于资源集合复数检查。", "duration_seconds": 0.00137945800088346, "timestamp": "2025-07-11T18:57:45.025032", "validation_points": [ { "passed": true, "message": "跳过检查:PUT 方法,不适用于资源集合复数检查。" } ] }, { "test_case_id": "TC-RESTful-002", "test_case_name": "资源路径名词检查", "test_case_severity": "MEDIUM", "status": "通过", "message": "路径 '/api/dms/wb_dr/v1/wb_dr_pro_daily_report' 符合资源名词命名规范。", "duration_seconds": 0.0010381249885540456, "timestamp": "2025-07-11T18:57:45.026112", "validation_points": [ { "passed": true, "message": "路径 '/api/dms/wb_dr/v1/wb_dr_pro_daily_report' 符合资源名词命名规范。" } ] }, { "test_case_id": "TC-DMS-CORE-SCHEMA-001", "test_case_name": "DMS核心存储服务API响应格式检查", "test_case_severity": "HIGH", "status": "通过", "message": "字段'code'在schema中未标记为必填(required);字段'message'在schema中未标记为必填(required);字段'data'在schema中未标记为必填(required);响应schema符合标准格式: {'code':int or number or string, 'message':string, 'data': any}", "duration_seconds": 0.0009269159927498549, "timestamp": "2025-07-11T18:57:45.027076", "validation_points": [ { "status_code": "200", "required_fields": [] }, { "status_code": "200", "required_fields": [] }, { "status_code": "200", "required_fields": [] }, { "status_code": "200" } ] }, { "test_case_id": "TC-CORE-FUNC-001", "test_case_name": "返回体JSON Schema验证", "test_case_severity": "CRITICAL", "status": "通过", "message": "针对 PUT http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report (状态码 200) 的响应体 conforms to the JSON schema.", "duration_seconds": 0.0010271670034853742, "timestamp": "2025-07-11T18:57:45.028140", "validation_points": [ { "passed": true, "message": "针对 PUT http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report (状态码 200) 的响应体 conforms to the JSON schema." } ] }, { "test_case_id": "TC-RESTful-003", "test_case_name": "时间字段ISO 8601格式检查", "test_case_severity": "MEDIUM", "status": "通过", "message": "在API规范中未找到可供静态检查的时间相关字段(如 format: date-time 或 常见时间字段名)。", "duration_seconds": 0.0009042919991770759, "timestamp": "2025-07-11T18:57:45.029075", "validation_points": [ { "passed": true, "message": "在API规范中未找到可供静态检查的时间相关字段(如 format: date-time 或 常见时间字段名)。" } ] }, { "test_case_id": "TC-DMS-URL-VERSION-001", "test_case_name": "DMS API URL版本号检查", "test_case_severity": "MEDIUM", "status": "通过", "message": "API路径 '/api/dms/wb_dr/v1/wb_dr_pro_daily_report' 正确以'/api/'开头;API路径 '/api/dms/wb_dr/v1/wb_dr_pro_daily_report' 包含版本标识: 'v1'", "duration_seconds": 0.000913790994673036, "timestamp": "2025-07-11T18:57:45.030026", "validation_points": [ { "full_path": "/api/dms/wb_dr/v1/wb_dr_pro_daily_report" }, { "pattern_matched": "/v\\d+/", "version_string": "v1", "full_path": "/api/dms/wb_dr/v1/wb_dr_pro_daily_report" } ] }, { "test_case_id": "TC-CORE-FUNC-002", "test_case_name": "灵活的返回体JSON Schema验证", "test_case_severity": "CRITICAL", "status": "通过", "message": "", "duration_seconds": 0.0008957499958341941, "timestamp": "2025-07-11T18:57:45.030965", "validation_points": [] }, { "test_case_id": "TC-SECURITY-001", "test_case_name": "HTTPS 协议强制性检查", "test_case_severity": "HIGH", "status": "失败", "message": "API通过HTTP (http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report) 响应了成功的状态码 200,这违反了HTTPS强制策略。", "duration_seconds": 0.0009657499904278666, "timestamp": "2025-07-11T18:57:45.031970", "validation_points": [ { "status_code": 200 } ] }, { "test_case_id": "TC-ERROR-4001-QUERY", "test_case_name": "查询参数类型不匹配检查", "test_case_severity": "MEDIUM", "status": "通过", "message": "跳过测试:在查询参数中未找到合适的字段来测试类型不匹配。", "duration_seconds": 0.0010442919883644208, "timestamp": "2025-07-11T18:57:45.033045", "validation_points": [ { "passed": true, "message": "跳过测试:在查询参数中未找到合适的字段来测试类型不匹配。" } ] }, { "test_case_id": "TC-ERROR-4001-BODY", "test_case_name": "请求体字段类型不匹配检查", "test_case_severity": "MEDIUM", "status": "失败", "message": "当请求体字段 'version' 类型不匹配时, 业务错误码应为 -1,但实际为 0。", "duration_seconds": 0.001040457995259203, "timestamp": "2025-07-11T18:57:45.034115", "validation_points": [ { "expected_code": -1, "actual_code": 0, "response_body": { "code": 0, "data": true, "message": "创建成功" } } ] }, { "test_case_id": "TC-ERROR-4002", "test_case_name": "数值参数越界检查", "test_case_severity": "MEDIUM", "status": "失败", "message": "当 body 字段 'record_count' 值为 10001 (超出范围: min=0, max=10000) 时, 业务错误码应为 -1,但实际为 0。", "duration_seconds": 0.001064041003701277, "timestamp": "2025-07-11T18:57:45.035211", "validation_points": [ { "expected_code": -1, "actual_code": 0, "response_body": { "code": 0, "data": true, "message": "创建成功" } } ] }, { "test_case_id": "TC-ERROR-4006", "test_case_name": "非法枚举值检查", "test_case_severity": "MEDIUM", "status": "通过", "message": "跳过测试:未找到具有明确枚举值限制的字段。", "duration_seconds": 0.0009317500080214813, "timestamp": "2025-07-11T18:57:45.036176", "validation_points": [ { "passed": true, "message": "跳过测试:未找到具有明确枚举值限制的字段。" } ] }, { "test_case_id": "TC-ERROR-4003-BODY", "test_case_name": "缺失必填请求体字段检查", "test_case_severity": "HIGH", "status": "失败", "message": "当移除必填请求体字段 'data' 时, API应返回状态码 200,但实际为 400。", "duration_seconds": 0.0009794579964363948, "timestamp": "2025-07-11T18:57:45.037192", "validation_points": [ { "expected_status": 200, "actual_status": 400 } ] }, { "test_case_id": "TC-ERROR-4003-QUERY", "test_case_name": "缺失必填查询参数检查", "test_case_severity": "HIGH", "status": "通过", "message": "跳过测试:在API规范中未找到合适的必填查询参数用于移除测试。", "duration_seconds": 0.0009248749993275851, "timestamp": "2025-07-11T18:57:45.038155", "validation_points": [ { "passed": true, "message": "跳过测试:在API规范中未找到合适的必填查询参数用于移除测试。" } ] } ] }, { "endpoint_id": "DELETE /api/dms/wb_dr/v1/wb_dr_pro_daily_report", "endpoint_name": "Delete wb_dr_pro_daily_report", "overall_status": "通过", "duration_seconds": 0.018922, "start_time": "2025-07-11T18:57:45.038235", "end_time": "2025-07-11T18:57:45.057157", "executed_test_cases": [ { "test_case_id": "TC-STATUS-001", "test_case_name": "基本状态码 200 检查", "test_case_severity": "CRITICAL", "status": "通过", "message": "响应状态码为 200,符合预期 200。", "duration_seconds": 0.0009182499925373122, "timestamp": "2025-07-11T18:57:45.039319", "validation_points": [ { "passed": true, "message": "响应状态码为 200,符合预期 200。" } ] }, { "test_case_id": "TC-HEADER-001", "test_case_name": "必需请求头Schema验证", "test_case_severity": "HIGH", "status": "失败", "message": "缺少必需的请求头 X-Tenant-ID;缺少必需的请求头 X-Data-Domain;缺少必需的请求头 Authorization", "duration_seconds": 0.0010118339996552095, "timestamp": "2025-07-11T18:57:45.040372", "validation_points": [ { "header": "X-Tenant-ID", "possible_names": [ "X-Tenant-ID" ], "endpoint": "DELETE /api/dms/wb_dr/v1/wb_dr_pro_daily_report" }, { "header": "X-Data-Domain", "possible_names": [ "X-Data-Domain" ], "endpoint": "DELETE /api/dms/wb_dr/v1/wb_dr_pro_daily_report" }, { "header": "Authorization", "possible_names": [ "Authorization" ], "endpoint": "DELETE /api/dms/wb_dr/v1/wb_dr_pro_daily_report" } ] }, { "test_case_id": "TC-SECURITY-002", "test_case_name": "敏感字段加密检查", "test_case_severity": "HIGH", "status": "通过", "message": "未在响应中找到需要检查的敏感字段。", "duration_seconds": 0.0009284579864470288, "timestamp": "2025-07-11T18:57:45.041330", "validation_points": [ { "passed": true, "message": "未在响应中找到需要检查的敏感字段。" } ] }, { "test_case_id": "TC-LLM-COMPLIANCE-001", "test_case_name": "LLM合规性综合检查", "test_case_severity": "MEDIUM", "status": "通过", "message": "合规性标准列表为空,跳过LLM合规性检查。", "duration_seconds": 0.0009248339920304716, "timestamp": "2025-07-11T18:57:45.042293", "validation_points": [ { "reason": "compliance_criteria.json is empty or contains an empty list." } ] }, { "test_case_id": "TC-RESTful-001", "test_case_name": "核心命名与结构规范检查", "test_case_severity": "HIGH", "status": "通过", "message": "模块名 'dms' 格式正确 (全小写/数字/中划线)。", "duration_seconds": 0.0009065829945029691, "timestamp": "2025-07-11T18:57:45.043238", "validation_points": [ { "passed": true, "message": "模块名 'dms' 格式正确 (全小写/数字/中划线)。" } ] }, { "test_case_id": "TC-DMS-PAGINATION-001", "test_case_name": "分页参数检查", "test_case_severity": "MEDIUM", "status": "失败", "message": "API请求缺少标准分页参数:pageNo, pageSize, isSearchCount", "duration_seconds": 0.0008258750021923333, "timestamp": "2025-07-11T18:57:45.044094", "validation_points": [ { "path": "/api/dms/wb_dr/v1/wb_dr_pro_daily_report", "method": "DELETE", "missing_params": [ "pageNo", "pageSize", "isSearchCount" ], "found_params": { "pageNo": false, "pageSize": false, "isSearchCount": false } } ] }, { "test_case_id": "TC-RESTful-004", "test_case_name": "资源集合复数命名检查", "test_case_severity": "MEDIUM", "status": "通过", "message": "跳过检查:DELETE 方法,不适用于资源集合复数检查。", "duration_seconds": 0.0008165839972207323, "timestamp": "2025-07-11T18:57:45.044948", "validation_points": [ { "passed": true, "message": "跳过检查:DELETE 方法,不适用于资源集合复数检查。" } ] }, { "test_case_id": "TC-RESTful-002", "test_case_name": "资源路径名词检查", "test_case_severity": "MEDIUM", "status": "通过", "message": "路径 '/api/dms/wb_dr/v1/wb_dr_pro_daily_report' 符合资源名词命名规范。", "duration_seconds": 0.0008638330036774278, "timestamp": "2025-07-11T18:57:45.045854", "validation_points": [ { "passed": true, "message": "路径 '/api/dms/wb_dr/v1/wb_dr_pro_daily_report' 符合资源名词命名规范。" } ] }, { "test_case_id": "TC-DMS-CORE-SCHEMA-001", "test_case_name": "DMS核心存储服务API响应格式检查", "test_case_severity": "HIGH", "status": "通过", "message": "字段'code'在schema中未标记为必填(required);字段'message'在schema中未标记为必填(required);字段'data'在schema中未标记为必填(required);响应schema符合标准格式: {'code':int or number or string, 'message':string, 'data': any}", "duration_seconds": 0.0008437080105068162, "timestamp": "2025-07-11T18:57:45.046735", "validation_points": [ { "status_code": "200", "required_fields": [] }, { "status_code": "200", "required_fields": [] }, { "status_code": "200", "required_fields": [] }, { "status_code": "200" } ] }, { "test_case_id": "TC-CORE-FUNC-001", "test_case_name": "返回体JSON Schema验证", "test_case_severity": "CRITICAL", "status": "通过", "message": "针对 DELETE http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report (状态码 200) 的响应体 conforms to the JSON schema.", "duration_seconds": 0.0009139579924521968, "timestamp": "2025-07-11T18:57:45.047687", "validation_points": [ { "passed": true, "message": "针对 DELETE http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report (状态码 200) 的响应体 conforms to the JSON schema." } ] }, { "test_case_id": "TC-RESTful-003", "test_case_name": "时间字段ISO 8601格式检查", "test_case_severity": "MEDIUM", "status": "通过", "message": "在API规范中未找到可供静态检查的时间相关字段(如 format: date-time 或 常见时间字段名)。", "duration_seconds": 0.0008617499988758937, "timestamp": "2025-07-11T18:57:45.048582", "validation_points": [ { "passed": true, "message": "在API规范中未找到可供静态检查的时间相关字段(如 format: date-time 或 常见时间字段名)。" } ] }, { "test_case_id": "TC-DMS-URL-VERSION-001", "test_case_name": "DMS API URL版本号检查", "test_case_severity": "MEDIUM", "status": "通过", "message": "API路径 '/api/dms/wb_dr/v1/wb_dr_pro_daily_report' 正确以'/api/'开头;API路径 '/api/dms/wb_dr/v1/wb_dr_pro_daily_report' 包含版本标识: 'v1'", "duration_seconds": 0.0009531249961582944, "timestamp": "2025-07-11T18:57:45.049572", "validation_points": [ { "full_path": "/api/dms/wb_dr/v1/wb_dr_pro_daily_report" }, { "pattern_matched": "/v\\d+/", "version_string": "v1", "full_path": "/api/dms/wb_dr/v1/wb_dr_pro_daily_report" } ] }, { "test_case_id": "TC-CORE-FUNC-002", "test_case_name": "灵活的返回体JSON Schema验证", "test_case_severity": "CRITICAL", "status": "通过", "message": "", "duration_seconds": 0.0008376250043511391, "timestamp": "2025-07-11T18:57:45.050449", "validation_points": [] }, { "test_case_id": "TC-SECURITY-001", "test_case_name": "HTTPS 协议强制性检查", "test_case_severity": "HIGH", "status": "失败", "message": "API通过HTTP (http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report) 响应了成功的状态码 200,这违反了HTTPS强制策略。", "duration_seconds": 0.0008717500022612512, "timestamp": "2025-07-11T18:57:45.051364", "validation_points": [ { "status_code": 200 } ] }, { "test_case_id": "TC-ERROR-4001-QUERY", "test_case_name": "查询参数类型不匹配检查", "test_case_severity": "MEDIUM", "status": "通过", "message": "跳过测试:在查询参数中未找到合适的字段来测试类型不匹配。", "duration_seconds": 0.0010064160014735535, "timestamp": "2025-07-11T18:57:45.052404", "validation_points": [ { "passed": true, "message": "跳过测试:在查询参数中未找到合适的字段来测试类型不匹配。" } ] }, { "test_case_id": "TC-ERROR-4001-BODY", "test_case_name": "请求体字段类型不匹配检查", "test_case_severity": "MEDIUM", "status": "失败", "message": "当请求体字段 'version' 类型不匹配时, 业务错误码应为 -1,但实际为 404。", "duration_seconds": 0.0009657080081524327, "timestamp": "2025-07-11T18:57:45.053401", "validation_points": [ { "expected_code": -1, "actual_code": 404, "response_body": { "code": 404, "data": false, "message": "未找到要删除的资源" } } ] }, { "test_case_id": "TC-ERROR-4002", "test_case_name": "数值参数越界检查", "test_case_severity": "MEDIUM", "status": "通过", "message": "跳过测试:未找到具有明确范围限制的数值字段。", "duration_seconds": 0.0009448329947190359, "timestamp": "2025-07-11T18:57:45.054377", "validation_points": [ { "passed": true, "message": "跳过测试:未找到具有明确范围限制的数值字段。" } ] }, { "test_case_id": "TC-ERROR-4006", "test_case_name": "非法枚举值检查", "test_case_severity": "MEDIUM", "status": "通过", "message": "跳过测试:未找到具有明确枚举值限制的字段。", "duration_seconds": 0.0008181669982150197, "timestamp": "2025-07-11T18:57:45.055225", "validation_points": [ { "passed": true, "message": "跳过测试:未找到具有明确枚举值限制的字段。" } ] }, { "test_case_id": "TC-ERROR-4003-BODY", "test_case_name": "缺失必填请求体字段检查", "test_case_severity": "HIGH", "status": "失败", "message": "当移除必填请求体字段 'data' 时, API应返回状态码 200,但实际为 400。", "duration_seconds": 0.0009573749994160607, "timestamp": "2025-07-11T18:57:45.056223", "validation_points": [ { "expected_status": 200, "actual_status": 400 } ] }, { "test_case_id": "TC-ERROR-4003-QUERY", "test_case_name": "缺失必填查询参数检查", "test_case_severity": "HIGH", "status": "通过", "message": "跳过测试:在API规范中未找到合适的必填查询参数用于移除测试。", "duration_seconds": 0.0008685000066179782, "timestamp": "2025-07-11T18:57:45.057129", "validation_points": [ { "passed": true, "message": "跳过测试:在API规范中未找到合适的必填查询参数用于移除测试。" } ] } ] } ], "stage_results": [ { "stage_id": "dms_crud_scenario_stage", "stage_name": "DMS Full CRUD Scenario", "description": "Performs a full Create -> Read -> Update -> Read -> Delete -> List workflow for a single DMS business object. (Scenario for: lujing_test)", "api_group_name": "Global (所有API)", "tags": [ "dms", "crud", "scenario" ], "overall_status": "失败", "duration_seconds": "0.00", "start_time": "2025-07-11T18:57:44", "end_time": "2025-07-11T18:57:44", "message": "测试阶段因步骤 'Step 1: Create Resource' 的状态 (失败) 而中止.", "executed_steps_count": 1, "executed_steps": [ { "step_name": "Step 1: Create Resource", "description": null, "lookup_key": "CREATE", "resolved_endpoint": "POST /api/dms/wb_ml/v1/lujing_test", "status": "失败", "message": "预期状态码为 [200, 201], 实际为 400.; Expected response data to be true, but it was 'None'.", "duration_seconds": "0.0000", "timestamp": "2025-07-11T18:57:44+0800", "validation_points": [ { "passed": false, "message": "预期状态码为 [200, 201], 实际为 400." }, { "passed": false, "message": "Expected response data to be true, but it was 'None'." } ], "api_call_curl": "N/A", "api_operation_spec": null, "request_details": { "method": "POST", "url": "http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test", "headers": { "Content-Type": "application/json", "Accept": "application/json" }, "params": {}, "json_data": { "data": [ { "description": "test-entry-from-scenario" } ] }, "body": { "data": [ { "description": "test-entry-from-scenario" } ] }, "data": null, "timeout": 30 }, "extracted_outputs": {}, "context_after_step_summary": { "pk_name": "description", "pk_value": "c3782722-693c-41e0-8f7a-6121c09ab40e", "current_payload": { "description": "test-entry-from-scenario" }, "update_payload": { "description": "updated-test-entry-from-scenario" }, "scenario_endpoints": { "create": { "method": "POST", "path": "/api/dms/wb_ml/v1/lujing_test", "title": "Create lujing_test", "summary": "Create lujing_test", "description": "Create lujing_test", "operationId": "create_lujing_test", "tags": [ "wb_ml" ], "parameters": [], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "version": { "type": "string", "example": "1.0.0" }, "act": { "type": "integer", "example": 0 }, "data": { "type": "array", "items": { "properties": { "description": { "description": "一个简单的描述字段", "title": "描述", "type": "string" }, "lujing_test_id": { "description": "主键 for lujing_test", "title": "主键", "type": "string" }, "record_count": { "maximum": 10000, "minimum": 0, "title": "记录数", "type": "integer" }, "status": { "enum": [ "active", "inactive", "archived" ], "title": "状态", "type": "string" }, "update_date": { "format": "date-time", "title": "更新日期", "type": "string" } }, "required": [ "lujing_test_id", "status" ], "title": "测试", "type": "object" } } }, "required": [ "data" ] } } } }, "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "type": "object", "properties": { "code": { "type": "integer" }, "message": { "type": "string" }, "data": { "type": "boolean" } } } } } } }, "_source_format": "dms", "_dms_raw_record": { "add_tree": "Y", "create_user": "admin", "domain": "wb_ml", "flow_state": "7", "id": "lujing_test.1.0.0", "name": "lujing_test", "title": "测试", "type": "business-data", "update_date": "2025-07-01 14:34:58", "version": "1.0.0" }, "_test_mode": "standalone" }, "list": { "method": "POST", "path": "/api/dms/wb_ml/v1/lujing_test/1.0.0", "title": "List lujing_test", "summary": "List lujing_test", "description": "List lujing_test", "operationId": "list_lujing_test", "tags": [ "wb_ml" ], "parameters": [], "requestBody": { "content": { "application/json": { "schema": {} } } }, "responses": { "200": { "description": "Successful Operation", "content": { "application/json": { "schema": { "type": "object", "properties": { "code": { "type": "integer" }, "message": { "type": "string" }, "data": { "type": "array", "items": { "properties": { "description": { "description": "一个简单的描述字段", "title": "描述", "type": "string" }, "lujing_test_id": { "description": "主键 for lujing_test", "title": "主键", "type": "string" }, "record_count": { "maximum": 10000, "minimum": 0, "title": "记录数", "type": "integer" }, "status": { "enum": [ "active", "inactive", "archived" ], "title": "状态", "type": "string" }, "update_date": { "format": "date-time", "title": "更新日期", "type": "string" } }, "required": [ "lujing_test_id", "status" ], "title": "测试", "type": "object" } } } } } } } }, "_source_format": "dms", "_dms_raw_record": { "add_tree": "Y", "create_user": "admin", "domain": "wb_ml", "flow_state": "7", "id": "lujing_test.1.0.0", "name": "lujing_test", "title": "测试", "type": "business-data", "update_date": "2025-07-01 14:34:58", "version": "1.0.0" }, "_test_mode": "scenario_only" }, "read": { "method": "GET", "path": "/api/dms/wb_ml/v1/lujing_test/1.0.0/{id}", "title": "Read lujing_test", "summary": "Read lujing_test", "description": "Read lujing_test", "operationId": "read_lujing_test", "tags": [ "wb_ml" ], "parameters": [ { "name": "id", "in": "path", "required": true, "description": "The ID of the lujing_test, maps to description", "schema": { "description": "一个简单的描述字段", "title": "描述", "type": "string" } } ], "requestBody": null, "responses": { "200": { "description": "Successful Operation", "content": { "application/json": { "schema": { "type": "object", "properties": { "code": { "type": "integer" }, "message": { "type": "string" }, "data": { "properties": { "description": { "description": "一个简单的描述字段", "title": "描述", "type": "string" }, "lujing_test_id": { "description": "主键 for lujing_test", "title": "主键", "type": "string" }, "record_count": { "maximum": 10000, "minimum": 0, "title": "记录数", "type": "integer" }, "status": { "enum": [ "active", "inactive", "archived" ], "title": "状态", "type": "string" }, "update_date": { "format": "date-time", "title": "更新日期", "type": "string" } }, "required": [ "lujing_test_id", "status" ], "title": "测试", "type": "object" } } } } } } }, "_source_format": "dms", "_dms_raw_record": { "add_tree": "Y", "create_user": "admin", "domain": "wb_ml", "flow_state": "7", "id": "lujing_test.1.0.0", "name": "lujing_test", "title": "测试", "type": "business-data", "update_date": "2025-07-01 14:34:58", "version": "1.0.0" }, "_test_mode": "scenario_only" }, "update": { "method": "PUT", "path": "/api/dms/wb_ml/v1/lujing_test", "title": "Update lujing_test", "summary": "Update lujing_test", "description": "Update lujing_test", "operationId": "update_lujing_test", "tags": [ "wb_ml" ], "parameters": [], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "version": { "type": "string", "example": "1.0.0" }, "act": { "type": "integer", "example": 0 }, "data": { "type": "array", "items": { "properties": { "description": { "description": "一个简单的描述字段", "title": "描述", "type": "string" }, "lujing_test_id": { "description": "主键 for lujing_test", "title": "主键", "type": "string" }, "record_count": { "maximum": 10000, "minimum": 0, "title": "记录数", "type": "integer" }, "status": { "enum": [ "active", "inactive", "archived" ], "title": "状态", "type": "string" }, "update_date": { "format": "date-time", "title": "更新日期", "type": "string" } }, "required": [ "lujing_test_id", "status" ], "title": "测试", "type": "object" } } }, "required": [ "data" ] } } } }, "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "type": "object", "properties": { "code": { "type": "integer" }, "message": { "type": "string" }, "data": { "type": "boolean" } } } } } } }, "_source_format": "dms", "_dms_raw_record": { "add_tree": "Y", "create_user": "admin", "domain": "wb_ml", "flow_state": "7", "id": "lujing_test.1.0.0", "name": "lujing_test", "title": "测试", "type": "business-data", "update_date": "2025-07-01 14:34:58", "version": "1.0.0" }, "_test_mode": "scenario_only" }, "delete": { "method": "DELETE", "path": "/api/dms/wb_ml/v1/lujing_test", "title": "Delete lujing_test", "summary": "Delete lujing_test", "description": "Delete lujing_test", "operationId": "delete_lujing_test", "tags": [ "wb_ml" ], "parameters": [], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "version": { "type": "string", "example": "1.0.0" }, "data": { "type": "array", "items": { "type": "object", "properties": { "description": { "description": "一个简单的描述字段", "title": "描述", "type": "string" } }, "required": [ "description" ] } } }, "required": [ "data" ] } } } }, "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "type": "object", "properties": { "code": { "type": "integer" }, "message": { "type": "string" }, "data": { "type": "boolean" } } } } } } }, "_source_format": "dms", "_dms_raw_record": { "add_tree": "Y", "create_user": "admin", "domain": "wb_ml", "flow_state": "7", "id": "lujing_test.1.0.0", "name": "lujing_test", "title": "测试", "type": "business-data", "update_date": "2025-07-01 14:34:58", "version": "1.0.0" }, "_test_mode": "scenario_only" } } } } ], "final_stage_context_summary": { "pk_name": "description", "pk_value": "c3782722-693c-41e0-8f7a-6121c09ab40e", "current_payload": "Type: dict, Keys/Count: 1", "update_payload": "Type: dict, Keys/Count: 1", "scenario_endpoints": "Type: dict, Keys/Count: 5" } }, { "stage_id": "dms_crud_scenario_stage", "stage_name": "DMS Full CRUD Scenario", "description": "Performs a full Create -> Read -> Update -> Read -> Delete -> List workflow for a single DMS business object. (Scenario for: lujing_test)", "api_group_name": "Global (所有API)", "tags": [ "dms", "crud", "scenario" ], "overall_status": "失败", "duration_seconds": "0.00", "start_time": "2025-07-11T18:57:45", "end_time": "2025-07-11T18:57:45", "message": "测试阶段因步骤 'Step 1: Create Resource' 的状态 (失败) 而中止.", "executed_steps_count": 1, "executed_steps": [ { "step_name": "Step 1: Create Resource", "description": null, "lookup_key": "CREATE", "resolved_endpoint": "POST /api/dms/wb_ml/v1/lujing_test", "status": "失败", "message": "预期状态码为 [200, 201], 实际为 400.; Expected response data to be true, but it was 'None'.", "duration_seconds": "0.0000", "timestamp": "2025-07-11T18:57:45+0800", "validation_points": [ { "passed": false, "message": "预期状态码为 [200, 201], 实际为 400." }, { "passed": false, "message": "Expected response data to be true, but it was 'None'." } ], "api_call_curl": "N/A", "api_operation_spec": null, "request_details": { "method": "POST", "url": "http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test", "headers": { "Content-Type": "application/json", "Accept": "application/json" }, "params": {}, "json_data": { "data": [ { "description": "test-entry-from-scenario" } ] }, "body": { "data": [ { "description": "test-entry-from-scenario" } ] }, "data": null, "timeout": 30 }, "extracted_outputs": {}, "context_after_step_summary": { "pk_name": "description", "pk_value": "b54b5f8c-01ac-49c2-a846-2bdb8454b087", "current_payload": { "description": "test-entry-from-scenario" }, "update_payload": { "description": "updated-test-entry-from-scenario" }, "scenario_endpoints": { "create": { "method": "POST", "path": "/api/dms/wb_ml/v1/lujing_test", "title": "Create lujing_test", "summary": "Create lujing_test", "description": "Create lujing_test", "operationId": "create_lujing_test", "tags": [ "wb_ml" ], "parameters": [], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "version": { "type": "string", "example": "1.0.0" }, "act": { "type": "integer", "example": 0 }, "data": { "type": "array", "items": { "properties": { "description": { "description": "一个简单的描述字段", "title": "描述", "type": "string" }, "lujing_test_id": { "description": "主键 for lujing_test", "title": "主键", "type": "string" }, "record_count": { "maximum": 10000, "minimum": 0, "title": "记录数", "type": "integer" }, "status": { "enum": [ "active", "inactive", "archived" ], "title": "状态", "type": "string" }, "update_date": { "format": "date-time", "title": "更新日期", "type": "string" } }, "required": [ "lujing_test_id", "status" ], "title": "测试", "type": "object" } } }, "required": [ "data" ] } } } }, "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "type": "object", "properties": { "code": { "type": "integer" }, "message": { "type": "string" }, "data": { "type": "boolean" } } } } } } }, "_source_format": "dms", "_dms_raw_record": { "add_tree": "Y", "create_user": "admin", "domain": "wb_ml", "flow_state": "7", "id": "lujing_test.1.0.0", "name": "lujing_test", "title": "测试", "type": "business-data", "update_date": "2025-07-01 14:34:58", "version": "1.0.0" }, "_test_mode": "standalone" }, "list": { "method": "POST", "path": "/api/dms/wb_ml/v1/lujing_test/1.0.0", "title": "List lujing_test", "summary": "List lujing_test", "description": "List lujing_test", "operationId": "list_lujing_test", "tags": [ "wb_ml" ], "parameters": [], "requestBody": { "content": { "application/json": { "schema": {} } } }, "responses": { "200": { "description": "Successful Operation", "content": { "application/json": { "schema": { "type": "object", "properties": { "code": { "type": "integer" }, "message": { "type": "string" }, "data": { "type": "array", "items": { "properties": { "description": { "description": "一个简单的描述字段", "title": "描述", "type": "string" }, "lujing_test_id": { "description": "主键 for lujing_test", "title": "主键", "type": "string" }, "record_count": { "maximum": 10000, "minimum": 0, "title": "记录数", "type": "integer" }, "status": { "enum": [ "active", "inactive", "archived" ], "title": "状态", "type": "string" }, "update_date": { "format": "date-time", "title": "更新日期", "type": "string" } }, "required": [ "lujing_test_id", "status" ], "title": "测试", "type": "object" } } } } } } } }, "_source_format": "dms", "_dms_raw_record": { "add_tree": "Y", "create_user": "admin", "domain": "wb_ml", "flow_state": "7", "id": "lujing_test.1.0.0", "name": "lujing_test", "title": "测试", "type": "business-data", "update_date": "2025-07-01 14:34:58", "version": "1.0.0" }, "_test_mode": "scenario_only" }, "read": { "method": "GET", "path": "/api/dms/wb_ml/v1/lujing_test/1.0.0/{id}", "title": "Read lujing_test", "summary": "Read lujing_test", "description": "Read lujing_test", "operationId": "read_lujing_test", "tags": [ "wb_ml" ], "parameters": [ { "name": "id", "in": "path", "required": true, "description": "The ID of the lujing_test, maps to description", "schema": { "description": "一个简单的描述字段", "title": "描述", "type": "string" } } ], "requestBody": null, "responses": { "200": { "description": "Successful Operation", "content": { "application/json": { "schema": { "type": "object", "properties": { "code": { "type": "integer" }, "message": { "type": "string" }, "data": { "properties": { "description": { "description": "一个简单的描述字段", "title": "描述", "type": "string" }, "lujing_test_id": { "description": "主键 for lujing_test", "title": "主键", "type": "string" }, "record_count": { "maximum": 10000, "minimum": 0, "title": "记录数", "type": "integer" }, "status": { "enum": [ "active", "inactive", "archived" ], "title": "状态", "type": "string" }, "update_date": { "format": "date-time", "title": "更新日期", "type": "string" } }, "required": [ "lujing_test_id", "status" ], "title": "测试", "type": "object" } } } } } } }, "_source_format": "dms", "_dms_raw_record": { "add_tree": "Y", "create_user": "admin", "domain": "wb_ml", "flow_state": "7", "id": "lujing_test.1.0.0", "name": "lujing_test", "title": "测试", "type": "business-data", "update_date": "2025-07-01 14:34:58", "version": "1.0.0" }, "_test_mode": "scenario_only" }, "update": { "method": "PUT", "path": "/api/dms/wb_ml/v1/lujing_test", "title": "Update lujing_test", "summary": "Update lujing_test", "description": "Update lujing_test", "operationId": "update_lujing_test", "tags": [ "wb_ml" ], "parameters": [], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "version": { "type": "string", "example": "1.0.0" }, "act": { "type": "integer", "example": 0 }, "data": { "type": "array", "items": { "properties": { "description": { "description": "一个简单的描述字段", "title": "描述", "type": "string" }, "lujing_test_id": { "description": "主键 for lujing_test", "title": "主键", "type": "string" }, "record_count": { "maximum": 10000, "minimum": 0, "title": "记录数", "type": "integer" }, "status": { "enum": [ "active", "inactive", "archived" ], "title": "状态", "type": "string" }, "update_date": { "format": "date-time", "title": "更新日期", "type": "string" } }, "required": [ "lujing_test_id", "status" ], "title": "测试", "type": "object" } } }, "required": [ "data" ] } } } }, "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "type": "object", "properties": { "code": { "type": "integer" }, "message": { "type": "string" }, "data": { "type": "boolean" } } } } } } }, "_source_format": "dms", "_dms_raw_record": { "add_tree": "Y", "create_user": "admin", "domain": "wb_ml", "flow_state": "7", "id": "lujing_test.1.0.0", "name": "lujing_test", "title": "测试", "type": "business-data", "update_date": "2025-07-01 14:34:58", "version": "1.0.0" }, "_test_mode": "scenario_only" }, "delete": { "method": "DELETE", "path": "/api/dms/wb_ml/v1/lujing_test", "title": "Delete lujing_test", "summary": "Delete lujing_test", "description": "Delete lujing_test", "operationId": "delete_lujing_test", "tags": [ "wb_ml" ], "parameters": [], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "version": { "type": "string", "example": "1.0.0" }, "data": { "type": "array", "items": { "type": "object", "properties": { "description": { "description": "一个简单的描述字段", "title": "描述", "type": "string" } }, "required": [ "description" ] } } }, "required": [ "data" ] } } } }, "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "type": "object", "properties": { "code": { "type": "integer" }, "message": { "type": "string" }, "data": { "type": "boolean" } } } } } } }, "_source_format": "dms", "_dms_raw_record": { "add_tree": "Y", "create_user": "admin", "domain": "wb_ml", "flow_state": "7", "id": "lujing_test.1.0.0", "name": "lujing_test", "title": "测试", "type": "business-data", "update_date": "2025-07-01 14:34:58", "version": "1.0.0" }, "_test_mode": "scenario_only" } } } } ], "final_stage_context_summary": { "pk_name": "description", "pk_value": "b54b5f8c-01ac-49c2-a846-2bdb8454b087", "current_payload": "Type: dict, Keys/Count: 1", "update_payload": "Type: dict, Keys/Count: 1", "scenario_endpoints": "Type: dict, Keys/Count: 5" } } ], "api_call_details_summary": [] }