2025-07-11 18:58:18 +08:00

4475 lines
234 KiB
JSON
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{
"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": []
}