2432 lines
95 KiB
JSON
2432 lines
95 KiB
JSON
{
|
||
"start_time": "2025-06-27T19:45:29.102123",
|
||
"end_time": "2025-06-27T19:45:31.586519",
|
||
"duration_seconds": "2.48",
|
||
"overall_summary": {
|
||
"total_endpoints_defined": 6,
|
||
"endpoints_tested": 6,
|
||
"endpoints_passed": 6,
|
||
"endpoints_failed": 0,
|
||
"endpoints_error": 0,
|
||
"endpoints_skipped": 0,
|
||
"endpoints_partial_success": 0,
|
||
"endpoint_success_rate": "100.00%",
|
||
"total_test_cases_applicable": 120,
|
||
"total_test_cases_executed": 120,
|
||
"test_cases_passed": 88,
|
||
"test_cases_failed": 32,
|
||
"test_cases_error": 0,
|
||
"test_cases_skipped_in_endpoint": 0,
|
||
"test_case_success_rate": "73.33%",
|
||
"total_stages_defined": 1,
|
||
"total_stages_executed": 1,
|
||
"stages_passed": 0,
|
||
"stages_failed": 1,
|
||
"stages_error": 0,
|
||
"stages_skipped": 0,
|
||
"stage_success_rate": "0.00%"
|
||
},
|
||
"errors": [],
|
||
"endpoint_results": [
|
||
{
|
||
"endpoint_id": "POST /api/dms/{dms_instance_code}/v1/message/push/{schema}/{version}",
|
||
"endpoint_name": "数据推送接口",
|
||
"overall_status": "通过",
|
||
"duration_seconds": 0.649301,
|
||
"start_time": "2025-06-27T19:45:29.103040",
|
||
"end_time": "2025-06-27T19:45:29.752341",
|
||
"executed_test_cases": [
|
||
{
|
||
"test_case_id": "TC-HEADER-001",
|
||
"test_case_name": "必需请求头Schema验证",
|
||
"test_case_severity": "HIGH",
|
||
"status": "失败",
|
||
"message": "缺少必需的请求头 X-Tenant-ID;缺少必需的请求头 X-Data-Domain",
|
||
"duration_seconds": 0.21747695794329047,
|
||
"timestamp": "2025-06-27T19:45:29.320683",
|
||
"validation_points": [
|
||
{
|
||
"header": "X-Tenant-ID",
|
||
"possible_names": [
|
||
"X-Tenant-ID"
|
||
],
|
||
"endpoint": "POST /api/dms/{dms_instance_code}/v1/message/push/{schema}/{version}"
|
||
},
|
||
{
|
||
"header": "X-Data-Domain",
|
||
"possible_names": [
|
||
"X-Data-Domain"
|
||
],
|
||
"endpoint": "POST /api/dms/{dms_instance_code}/v1/message/push/{schema}/{version}"
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"test_case_id": "TC-STATUS-001",
|
||
"test_case_name": "基本状态码 200 检查",
|
||
"test_case_severity": "CRITICAL",
|
||
"status": "通过",
|
||
"message": "响应状态码为 200,符合预期 200。",
|
||
"duration_seconds": 0.029502791934646666,
|
||
"timestamp": "2025-06-27T19:45:29.350235",
|
||
"validation_points": [
|
||
{
|
||
"passed": true,
|
||
"message": "响应状态码为 200,符合预期 200。"
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"test_case_id": "TC-SECURITY-002",
|
||
"test_case_name": "敏感字段加密检查",
|
||
"test_case_severity": "HIGH",
|
||
"status": "通过",
|
||
"message": "未在响应中找到需要检查的敏感字段。",
|
||
"duration_seconds": 0.051820875029079616,
|
||
"timestamp": "2025-06-27T19:45:29.402125",
|
||
"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.020493124960921705,
|
||
"timestamp": "2025-06-27T19:45:29.422671",
|
||
"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' 格式正确 (全小写/数字/中划线)。;规范中未找到响应码 200 或其类别(2XX, default)的匹配定义,跳过空数组与null的检查。",
|
||
"duration_seconds": 0.022655708016827703,
|
||
"timestamp": "2025-06-27T19:45:29.445433",
|
||
"validation_points": [
|
||
{
|
||
"passed": true,
|
||
"message": "模块名 'dms' 格式正确 (全小写/数字/中划线)。"
|
||
},
|
||
{
|
||
"passed": true,
|
||
"message": "规范中未找到响应码 200 或其类别(2XX, default)的匹配定义,跳过空数组与null的检查。"
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"test_case_id": "TC-DMS-PAGINATION-001",
|
||
"test_case_name": "分页参数检查",
|
||
"test_case_severity": "MEDIUM",
|
||
"status": "通过",
|
||
"message": "跳过检查:API不符合分页参数检查的准入规则(需包含'查询'/'列表'等关键词,且不包含'详情'等关键词)",
|
||
"duration_seconds": 0.024649833096191287,
|
||
"timestamp": "2025-06-27T19:45:29.470134",
|
||
"validation_points": [
|
||
{
|
||
"path": "/api/dms/{dms_instance_code}/v1/message/push/{schema}/{version}",
|
||
"method": "POST",
|
||
"summary": "数据推送接口",
|
||
"contains_include_keyword": false,
|
||
"contains_exclude_keyword": false
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"test_case_id": "TC-RESTful-004",
|
||
"test_case_name": "资源集合复数命名检查",
|
||
"test_case_severity": "MEDIUM",
|
||
"status": "通过",
|
||
"message": "路径 '/api/dms/{dms_instance_code}/v1/message/push/{schema}/{version}' 的最后一个路径分段 'push' 是动词,不需要使用复数形式。",
|
||
"duration_seconds": 0.04775454197078943,
|
||
"timestamp": "2025-06-27T19:45:29.517998",
|
||
"validation_points": [
|
||
{
|
||
"passed": true,
|
||
"message": "路径 '/api/dms/{dms_instance_code}/v1/message/push/{schema}/{version}' 的最后一个路径分段 'push' 是动词,不需要使用复数形式。"
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"test_case_id": "TC-RESTful-002",
|
||
"test_case_name": "资源路径名词检查",
|
||
"test_case_severity": "MEDIUM",
|
||
"status": "通过",
|
||
"message": "路径 '/api/dms/{dms_instance_code}/v1/message/push/{schema}/{version}' 符合资源名词命名规范。",
|
||
"duration_seconds": 0.021517583983950317,
|
||
"timestamp": "2025-06-27T19:45:29.539627",
|
||
"validation_points": [
|
||
{
|
||
"passed": true,
|
||
"message": "路径 '/api/dms/{dms_instance_code}/v1/message/push/{schema}/{version}' 符合资源名词命名规范。"
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"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.018171791918575764,
|
||
"timestamp": "2025-06-27T19:45:29.558095",
|
||
"validation_points": [
|
||
{
|
||
"status_code": "201",
|
||
"required_fields": []
|
||
},
|
||
{
|
||
"status_code": "201",
|
||
"required_fields": []
|
||
},
|
||
{
|
||
"status_code": "201",
|
||
"required_fields": []
|
||
},
|
||
{
|
||
"status_code": "201"
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"test_case_id": "TC-CORE-FUNC-001",
|
||
"test_case_name": "返回体JSON Schema验证",
|
||
"test_case_severity": "CRITICAL",
|
||
"status": "通过",
|
||
"message": "标准Schema验证步骤完成(未发现问题,或schema不适用/未为此响应定义)。",
|
||
"duration_seconds": 0.018400457920506597,
|
||
"timestamp": "2025-06-27T19:45:29.576655",
|
||
"validation_points": [
|
||
{
|
||
"passed": true,
|
||
"message": "标准Schema验证步骤完成(未发现问题,或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.016989791998639703,
|
||
"timestamp": "2025-06-27T19:45:29.593772",
|
||
"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/{dms_instance_code}/v1/message/push/{schema}/{version}' 正确以'/api/'开头;API路径 '/api/dms/{dms_instance_code}/v1/message/push/{schema}/{version}' 包含版本标识: 'v1'",
|
||
"duration_seconds": 0.017356166034005582,
|
||
"timestamp": "2025-06-27T19:45:29.611452",
|
||
"validation_points": [
|
||
{
|
||
"full_path": "/api/dms/{dms_instance_code}/v1/message/push/{schema}/{version}"
|
||
},
|
||
{
|
||
"pattern_matched": "/v\\d+/",
|
||
"version_string": "v1",
|
||
"full_path": "/api/dms/{dms_instance_code}/v1/message/push/{schema}/{version}"
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"test_case_id": "TC-CORE-FUNC-002",
|
||
"test_case_name": "灵活的返回体JSON Schema验证",
|
||
"test_case_severity": "CRITICAL",
|
||
"status": "通过",
|
||
"message": "",
|
||
"duration_seconds": 0.019079916994087398,
|
||
"timestamp": "2025-06-27T19:45:29.630736",
|
||
"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:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/message/push/example_schema/example_version) 响应了成功的状态码 200,这违反了HTTPS强制策略。",
|
||
"duration_seconds": 0.01706862507853657,
|
||
"timestamp": "2025-06-27T19:45:29.647990",
|
||
"validation_points": [
|
||
{
|
||
"status_code": 200
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"test_case_id": "TC-ERROR-4001-QUERY",
|
||
"test_case_name": "查询参数类型不匹配检查",
|
||
"test_case_severity": "MEDIUM",
|
||
"status": "通过",
|
||
"message": "跳过测试:在查询参数中未找到合适的字段来测试类型不匹配。",
|
||
"duration_seconds": 0.016478750039823353,
|
||
"timestamp": "2025-06-27T19:45:29.664528",
|
||
"validation_points": [
|
||
{
|
||
"passed": true,
|
||
"message": "跳过测试:在查询参数中未找到合适的字段来测试类型不匹配。"
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"test_case_id": "TC-ERROR-4001-BODY",
|
||
"test_case_name": "请求体字段类型不匹配检查",
|
||
"test_case_severity": "MEDIUM",
|
||
"status": "失败",
|
||
"message": "当请求体字段 'isSearchCount' 类型不匹配时, 业务错误码应为 -1,但实际为 4006。",
|
||
"duration_seconds": 0.01751866703853011,
|
||
"timestamp": "2025-06-27T19:45:29.682166",
|
||
"validation_points": [
|
||
{
|
||
"expected_code": -1,
|
||
"actual_code": 4006,
|
||
"response_body": {
|
||
"code": 4006,
|
||
"message": "est officia in sit culpa",
|
||
"data": {
|
||
"total": 15,
|
||
"list": [
|
||
{
|
||
"dsid": "97",
|
||
"dataRegion": "ullamco est irure quis in",
|
||
"gasReleaseMon": null,
|
||
"gasReleaseYear": null,
|
||
"releaseGasCum": null,
|
||
"key": 123
|
||
}
|
||
]
|
||
}
|
||
}
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"test_case_id": "TC-ERROR-4002",
|
||
"test_case_name": "数值参数越界检查",
|
||
"test_case_severity": "MEDIUM",
|
||
"status": "通过",
|
||
"message": "跳过测试:未找到具有明确范围限制的数值字段。",
|
||
"duration_seconds": 0.017366333049722016,
|
||
"timestamp": "2025-06-27T19:45:29.699647",
|
||
"validation_points": [
|
||
{
|
||
"passed": true,
|
||
"message": "跳过测试:未找到具有明确范围限制的数值字段。"
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"test_case_id": "TC-ERROR-4006",
|
||
"test_case_name": "非法枚举值检查",
|
||
"test_case_severity": "MEDIUM",
|
||
"status": "失败",
|
||
"message": "当 body 字段 'logic' 值为 'invalid_enum_duxdyb' (合法值为: ['AND', 'OR']) 时, 业务错误码应为 -1,但实际为 4006。",
|
||
"duration_seconds": 0.019719208008609712,
|
||
"timestamp": "2025-06-27T19:45:29.719422",
|
||
"validation_points": [
|
||
{
|
||
"expected_code": -1,
|
||
"actual_code": 4006,
|
||
"response_body": {
|
||
"code": 4006,
|
||
"message": "est officia in sit culpa",
|
||
"data": {
|
||
"total": 15,
|
||
"list": [
|
||
{
|
||
"dsid": "97",
|
||
"dataRegion": "ullamco est irure quis in",
|
||
"gasReleaseMon": null,
|
||
"gasReleaseYear": null,
|
||
"releaseGasCum": null,
|
||
"key": 123
|
||
}
|
||
]
|
||
}
|
||
}
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"test_case_id": "TC-ERROR-4003-BODY",
|
||
"test_case_name": "缺失必填请求体字段检查",
|
||
"test_case_severity": "HIGH",
|
||
"status": "通过",
|
||
"message": "跳过测试:在API规范中未找到合适的必填请求体字段用于移除测试。",
|
||
"duration_seconds": 0.016752416966482997,
|
||
"timestamp": "2025-06-27T19:45:29.736277",
|
||
"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.01596245903056115,
|
||
"timestamp": "2025-06-27T19:45:29.752301",
|
||
"validation_points": [
|
||
{
|
||
"passed": true,
|
||
"message": "跳过测试:在API规范中未找到合适的必填查询参数用于移除测试。"
|
||
}
|
||
]
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"endpoint_id": "POST /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}",
|
||
"endpoint_name": "地质单元列表查询",
|
||
"overall_status": "通过",
|
||
"duration_seconds": 0.35963,
|
||
"start_time": "2025-06-27T19:45:29.752416",
|
||
"end_time": "2025-06-27T19:45:30.112046",
|
||
"executed_test_cases": [
|
||
{
|
||
"test_case_id": "TC-HEADER-001",
|
||
"test_case_name": "必需请求头Schema验证",
|
||
"test_case_severity": "HIGH",
|
||
"status": "失败",
|
||
"message": "缺少必需的请求头 X-Tenant-ID;缺少必需的请求头 X-Data-Domain",
|
||
"duration_seconds": 0.03913349995855242,
|
||
"timestamp": "2025-06-27T19:45:29.791732",
|
||
"validation_points": [
|
||
{
|
||
"header": "X-Tenant-ID",
|
||
"possible_names": [
|
||
"X-Tenant-ID"
|
||
],
|
||
"endpoint": "POST /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}"
|
||
},
|
||
{
|
||
"header": "X-Data-Domain",
|
||
"possible_names": [
|
||
"X-Data-Domain"
|
||
],
|
||
"endpoint": "POST /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}"
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"test_case_id": "TC-STATUS-001",
|
||
"test_case_name": "基本状态码 200 检查",
|
||
"test_case_severity": "CRITICAL",
|
||
"status": "通过",
|
||
"message": "响应状态码为 200,符合预期 200。",
|
||
"duration_seconds": 0.017061250051483512,
|
||
"timestamp": "2025-06-27T19:45:29.808839",
|
||
"validation_points": [
|
||
{
|
||
"passed": true,
|
||
"message": "响应状态码为 200,符合预期 200。"
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"test_case_id": "TC-SECURITY-002",
|
||
"test_case_name": "敏感字段加密检查",
|
||
"test_case_severity": "HIGH",
|
||
"status": "通过",
|
||
"message": "未在响应中找到需要检查的敏感字段。",
|
||
"duration_seconds": 0.014446750050410628,
|
||
"timestamp": "2025-06-27T19:45:29.823339",
|
||
"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.017980917007662356,
|
||
"timestamp": "2025-06-27T19:45:29.841369",
|
||
"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' 格式正确 (全小写/数字/中划线)。;规范中未找到响应码 200 或其类别(2XX, default)的匹配定义,跳过空数组与null的检查。",
|
||
"duration_seconds": 0.016650708974339068,
|
||
"timestamp": "2025-06-27T19:45:29.858152",
|
||
"validation_points": [
|
||
{
|
||
"passed": true,
|
||
"message": "模块名 'dms' 格式正确 (全小写/数字/中划线)。"
|
||
},
|
||
{
|
||
"passed": true,
|
||
"message": "规范中未找到响应码 200 或其类别(2XX, default)的匹配定义,跳过空数组与null的检查。"
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"test_case_id": "TC-DMS-PAGINATION-001",
|
||
"test_case_name": "分页参数检查",
|
||
"test_case_severity": "MEDIUM",
|
||
"status": "通过",
|
||
"message": "API请求包含所有标准分页参数:pageNo、pageSize和isSearchCount",
|
||
"duration_seconds": 0.021125041996128857,
|
||
"timestamp": "2025-06-27T19:45:29.879333",
|
||
"validation_points": [
|
||
{
|
||
"path": "/api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}",
|
||
"method": "POST"
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"test_case_id": "TC-RESTful-004",
|
||
"test_case_name": "资源集合复数命名检查",
|
||
"test_case_severity": "MEDIUM",
|
||
"status": "失败",
|
||
"message": "路径 '/api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}' 的最后一个路径分段 'cd_geo_unit' 可能不是复数形式,建议对资源集合使用复数命名。",
|
||
"duration_seconds": 0.02252791600767523,
|
||
"timestamp": "2025-06-27T19:45:29.902180",
|
||
"validation_points": [
|
||
{
|
||
"path": "/api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}",
|
||
"segment": "cd_geo_unit"
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"test_case_id": "TC-RESTful-002",
|
||
"test_case_name": "资源路径名词检查",
|
||
"test_case_severity": "MEDIUM",
|
||
"status": "通过",
|
||
"message": "路径 '/api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}' 符合资源名词命名规范。",
|
||
"duration_seconds": 0.01743879192508757,
|
||
"timestamp": "2025-06-27T19:45:29.919787",
|
||
"validation_points": [
|
||
{
|
||
"passed": true,
|
||
"message": "路径 '/api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}' 符合资源名词命名规范。"
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"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.016433666925877333,
|
||
"timestamp": "2025-06-27T19:45:29.936339",
|
||
"validation_points": [
|
||
{
|
||
"status_code": "201",
|
||
"required_fields": []
|
||
},
|
||
{
|
||
"status_code": "201",
|
||
"required_fields": []
|
||
},
|
||
{
|
||
"status_code": "201",
|
||
"required_fields": []
|
||
},
|
||
{
|
||
"status_code": "201"
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"test_case_id": "TC-CORE-FUNC-001",
|
||
"test_case_name": "返回体JSON Schema验证",
|
||
"test_case_severity": "CRITICAL",
|
||
"status": "通过",
|
||
"message": "标准Schema验证步骤完成(未发现问题,或schema不适用/未为此响应定义)。",
|
||
"duration_seconds": 0.01465470902621746,
|
||
"timestamp": "2025-06-27T19:45:29.951096",
|
||
"validation_points": [
|
||
{
|
||
"passed": true,
|
||
"message": "标准Schema验证步骤完成(未发现问题,或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.016281249932944775,
|
||
"timestamp": "2025-06-27T19:45:29.967422",
|
||
"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/{dms_instance_code}/v1/cd_geo_unit/{version}' 正确以'/api/'开头;API路径 '/api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}' 包含版本标识: 'v1'",
|
||
"duration_seconds": 0.016751999966800213,
|
||
"timestamp": "2025-06-27T19:45:29.984273",
|
||
"validation_points": [
|
||
{
|
||
"full_path": "/api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}"
|
||
},
|
||
{
|
||
"pattern_matched": "/v\\d+/",
|
||
"version_string": "v1",
|
||
"full_path": "/api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}"
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"test_case_id": "TC-CORE-FUNC-002",
|
||
"test_case_name": "灵活的返回体JSON Schema验证",
|
||
"test_case_severity": "CRITICAL",
|
||
"status": "通过",
|
||
"message": "",
|
||
"duration_seconds": 0.019198124995455146,
|
||
"timestamp": "2025-06-27T19:45:30.003581",
|
||
"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:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit/1.0.0) 响应了成功的状态码 200,这违反了HTTPS强制策略。",
|
||
"duration_seconds": 0.014542833901941776,
|
||
"timestamp": "2025-06-27T19:45:30.018262",
|
||
"validation_points": [
|
||
{
|
||
"status_code": 200
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"test_case_id": "TC-ERROR-4001-QUERY",
|
||
"test_case_name": "查询参数类型不匹配检查",
|
||
"test_case_severity": "MEDIUM",
|
||
"status": "失败",
|
||
"message": "当查询参数 'pageNo' (路径: 'pageNo') 类型不匹配时, 业务错误码应为 -1,但实际为 46。",
|
||
"duration_seconds": 0.014386542025022209,
|
||
"timestamp": "2025-06-27T19:45:30.032696",
|
||
"validation_points": [
|
||
{
|
||
"expected_code": -1,
|
||
"actual_code": 46,
|
||
"response_body": {
|
||
"code": 46,
|
||
"message": "Excepteur nisi tempor anim",
|
||
"data": {
|
||
"total": 62,
|
||
"list": [
|
||
{
|
||
"dsid": "21",
|
||
"dataRegion": "tempor",
|
||
"gasReleaseMon": null,
|
||
"gasReleaseYear": null,
|
||
"releaseGasCum": null
|
||
}
|
||
]
|
||
}
|
||
}
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"test_case_id": "TC-ERROR-4001-BODY",
|
||
"test_case_name": "请求体字段类型不匹配检查",
|
||
"test_case_severity": "MEDIUM",
|
||
"status": "失败",
|
||
"message": "当请求体字段 'isSearchCount' 类型不匹配时, 业务错误码应为 -1,但实际为 49。",
|
||
"duration_seconds": 0.014036917011253536,
|
||
"timestamp": "2025-06-27T19:45:30.046782",
|
||
"validation_points": [
|
||
{
|
||
"expected_code": -1,
|
||
"actual_code": 49,
|
||
"response_body": {
|
||
"code": 49,
|
||
"message": "officia voluptate",
|
||
"data": {
|
||
"total": 23,
|
||
"list": [
|
||
{
|
||
"dsid": "49",
|
||
"dataRegion": "in enim tempor reprehenderit",
|
||
"gasReleaseMon": null,
|
||
"gasReleaseYear": null,
|
||
"releaseGasCum": null
|
||
},
|
||
{
|
||
"dsid": "20",
|
||
"dataRegion": "anim Excepteur",
|
||
"gasReleaseMon": null,
|
||
"gasReleaseYear": null,
|
||
"releaseGasCum": null
|
||
},
|
||
{
|
||
"dsid": "18",
|
||
"dataRegion": "officia dolore et pariatur",
|
||
"gasReleaseMon": null,
|
||
"gasReleaseYear": null,
|
||
"releaseGasCum": null
|
||
}
|
||
]
|
||
}
|
||
}
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"test_case_id": "TC-ERROR-4002",
|
||
"test_case_name": "数值参数越界检查",
|
||
"test_case_severity": "MEDIUM",
|
||
"status": "失败",
|
||
"message": "当 query 字段 'pageNo' 值为 0.0 (超出范围: min=1.0, max=None) 时, 业务错误码应为 -1,但实际为 54。",
|
||
"duration_seconds": 0.01403941703028977,
|
||
"timestamp": "2025-06-27T19:45:30.060874",
|
||
"validation_points": [
|
||
{
|
||
"expected_code": -1,
|
||
"actual_code": 54,
|
||
"response_body": {
|
||
"code": 54,
|
||
"message": "culpa",
|
||
"data": {
|
||
"total": 69,
|
||
"list": [
|
||
{
|
||
"dsid": "84",
|
||
"dataRegion": "ullamco eu Lorem",
|
||
"gasReleaseMon": null,
|
||
"gasReleaseYear": null,
|
||
"releaseGasCum": null
|
||
},
|
||
{
|
||
"dsid": "80",
|
||
"dataRegion": "incididunt dolore officia dolore aliqua",
|
||
"gasReleaseMon": null,
|
||
"gasReleaseYear": null,
|
||
"releaseGasCum": null
|
||
}
|
||
]
|
||
}
|
||
}
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"test_case_id": "TC-ERROR-4006",
|
||
"test_case_name": "非法枚举值检查",
|
||
"test_case_severity": "MEDIUM",
|
||
"status": "失败",
|
||
"message": "当 body 字段 'logic' 值为 'invalid_enum_sqa6ew' (合法值为: ['AND', 'OR']) 时, 业务错误码应为 -1,但实际为 17。",
|
||
"duration_seconds": 0.016965707996860147,
|
||
"timestamp": "2025-06-27T19:45:30.077955",
|
||
"validation_points": [
|
||
{
|
||
"expected_code": -1,
|
||
"actual_code": 17,
|
||
"response_body": {
|
||
"code": 17,
|
||
"message": "dolor ad irure dolore",
|
||
"data": {
|
||
"total": 6,
|
||
"list": [
|
||
{
|
||
"dsid": "88",
|
||
"dataRegion": "dolor enim anim",
|
||
"gasReleaseMon": null,
|
||
"gasReleaseYear": null,
|
||
"releaseGasCum": null
|
||
},
|
||
{
|
||
"dsid": "5",
|
||
"dataRegion": "Lorem qui ut ullamco",
|
||
"gasReleaseMon": null,
|
||
"gasReleaseYear": null,
|
||
"releaseGasCum": null
|
||
}
|
||
]
|
||
}
|
||
}
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"test_case_id": "TC-ERROR-4003-BODY",
|
||
"test_case_name": "缺失必填请求体字段检查",
|
||
"test_case_severity": "HIGH",
|
||
"status": "通过",
|
||
"message": "跳过测试:在API规范中未找到合适的必填请求体字段用于移除测试。",
|
||
"duration_seconds": 0.019067542045377195,
|
||
"timestamp": "2025-06-27T19:45:30.097134",
|
||
"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.0148162089753896,
|
||
"timestamp": "2025-06-27T19:45:30.112004",
|
||
"validation_points": [
|
||
{
|
||
"passed": true,
|
||
"message": "跳过测试:在API规范中未找到合适的必填查询参数用于移除测试。"
|
||
}
|
||
]
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"endpoint_id": "PUT /api/dms/{dms_instance_code}/v1/cd_geo_unit",
|
||
"endpoint_name": "地质单元数据修改",
|
||
"overall_status": "通过",
|
||
"duration_seconds": 0.488145,
|
||
"start_time": "2025-06-27T19:45:30.112110",
|
||
"end_time": "2025-06-27T19:45:30.600255",
|
||
"executed_test_cases": [
|
||
{
|
||
"test_case_id": "TC-HEADER-001",
|
||
"test_case_name": "必需请求头Schema验证",
|
||
"test_case_severity": "HIGH",
|
||
"status": "失败",
|
||
"message": "缺少必需的请求头 X-Tenant-ID;缺少必需的请求头 X-Data-Domain",
|
||
"duration_seconds": 0.014923624927178025,
|
||
"timestamp": "2025-06-27T19:45:30.127214",
|
||
"validation_points": [
|
||
{
|
||
"header": "X-Tenant-ID",
|
||
"possible_names": [
|
||
"X-Tenant-ID"
|
||
],
|
||
"endpoint": "PUT /api/dms/{dms_instance_code}/v1/cd_geo_unit"
|
||
},
|
||
{
|
||
"header": "X-Data-Domain",
|
||
"possible_names": [
|
||
"X-Data-Domain"
|
||
],
|
||
"endpoint": "PUT /api/dms/{dms_instance_code}/v1/cd_geo_unit"
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"test_case_id": "TC-STATUS-001",
|
||
"test_case_name": "基本状态码 200 检查",
|
||
"test_case_severity": "CRITICAL",
|
||
"status": "通过",
|
||
"message": "响应状态码为 200,符合预期 200。",
|
||
"duration_seconds": 0.014566625002771616,
|
||
"timestamp": "2025-06-27T19:45:30.141824",
|
||
"validation_points": [
|
||
{
|
||
"passed": true,
|
||
"message": "响应状态码为 200,符合预期 200。"
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"test_case_id": "TC-SECURITY-002",
|
||
"test_case_name": "敏感字段加密检查",
|
||
"test_case_severity": "HIGH",
|
||
"status": "通过",
|
||
"message": "未在响应中找到需要检查的敏感字段。",
|
||
"duration_seconds": 0.012823958066292107,
|
||
"timestamp": "2025-06-27T19:45:30.154695",
|
||
"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.015723916934803128,
|
||
"timestamp": "2025-06-27T19:45:30.170470",
|
||
"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.015531042008660734,
|
||
"timestamp": "2025-06-27T19:45:30.186331",
|
||
"validation_points": [
|
||
{
|
||
"passed": true,
|
||
"message": "模块名 'dms' 格式正确 (全小写/数字/中划线)。"
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"test_case_id": "TC-DMS-PAGINATION-001",
|
||
"test_case_name": "分页参数检查",
|
||
"test_case_severity": "MEDIUM",
|
||
"status": "通过",
|
||
"message": "跳过检查:API不符合分页参数检查的准入规则(需包含'查询'/'列表'等关键词,且不包含'详情'等关键词)",
|
||
"duration_seconds": 0.017218458000570536,
|
||
"timestamp": "2025-06-27T19:45:30.203603",
|
||
"validation_points": [
|
||
{
|
||
"path": "/api/dms/{dms_instance_code}/v1/cd_geo_unit",
|
||
"method": "PUT",
|
||
"summary": "地质单元数据修改",
|
||
"contains_include_keyword": false,
|
||
"contains_exclude_keyword": false
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"test_case_id": "TC-RESTful-004",
|
||
"test_case_name": "资源集合复数命名检查",
|
||
"test_case_severity": "MEDIUM",
|
||
"status": "通过",
|
||
"message": "跳过检查:PUT 方法,不适用于资源集合复数检查。",
|
||
"duration_seconds": 0.01613070908933878,
|
||
"timestamp": "2025-06-27T19:45:30.220051",
|
||
"validation_points": [
|
||
{
|
||
"passed": true,
|
||
"message": "跳过检查:PUT 方法,不适用于资源集合复数检查。"
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"test_case_id": "TC-RESTful-002",
|
||
"test_case_name": "资源路径名词检查",
|
||
"test_case_severity": "MEDIUM",
|
||
"status": "通过",
|
||
"message": "路径 '/api/dms/{dms_instance_code}/v1/cd_geo_unit' 符合资源名词命名规范。",
|
||
"duration_seconds": 0.014832124928943813,
|
||
"timestamp": "2025-06-27T19:45:30.235224",
|
||
"validation_points": [
|
||
{
|
||
"passed": true,
|
||
"message": "路径 '/api/dms/{dms_instance_code}/v1/cd_geo_unit' 符合资源名词命名规范。"
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"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.015197583008557558,
|
||
"timestamp": "2025-06-27T19:45:30.250730",
|
||
"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:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit (状态码 200) 的响应体 conforms to the JSON schema.",
|
||
"duration_seconds": 0.020597875001840293,
|
||
"timestamp": "2025-06-27T19:45:30.271576",
|
||
"validation_points": [
|
||
{
|
||
"passed": true,
|
||
"message": "针对 PUT http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit (状态码 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.01484295807313174,
|
||
"timestamp": "2025-06-27T19:45:30.286529",
|
||
"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/{dms_instance_code}/v1/cd_geo_unit' 正确以'/api/'开头;API路径 '/api/dms/{dms_instance_code}/v1/cd_geo_unit' 包含版本标识: 'v1'",
|
||
"duration_seconds": 0.017746041994541883,
|
||
"timestamp": "2025-06-27T19:45:30.304372",
|
||
"validation_points": [
|
||
{
|
||
"full_path": "/api/dms/{dms_instance_code}/v1/cd_geo_unit"
|
||
},
|
||
{
|
||
"pattern_matched": "/v\\d+/",
|
||
"version_string": "v1",
|
||
"full_path": "/api/dms/{dms_instance_code}/v1/cd_geo_unit"
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"test_case_id": "TC-CORE-FUNC-002",
|
||
"test_case_name": "灵活的返回体JSON Schema验证",
|
||
"test_case_severity": "CRITICAL",
|
||
"status": "通过",
|
||
"message": "",
|
||
"duration_seconds": 0.013353415997698903,
|
||
"timestamp": "2025-06-27T19:45:30.317828",
|
||
"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:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit) 响应了成功的状态码 200,这违反了HTTPS强制策略。",
|
||
"duration_seconds": 0.014880749979056418,
|
||
"timestamp": "2025-06-27T19:45:30.332797",
|
||
"validation_points": [
|
||
{
|
||
"status_code": 200
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"test_case_id": "TC-ERROR-4001-QUERY",
|
||
"test_case_name": "查询参数类型不匹配检查",
|
||
"test_case_severity": "MEDIUM",
|
||
"status": "失败",
|
||
"message": "当查询参数 'id' (路径: 'id') 类型不匹配时, 业务错误码应为 -1,但实际为 94。",
|
||
"duration_seconds": 0.0203073340235278,
|
||
"timestamp": "2025-06-27T19:45:30.353161",
|
||
"validation_points": [
|
||
{
|
||
"expected_code": -1,
|
||
"actual_code": 94,
|
||
"response_body": {
|
||
"code": 94,
|
||
"message": "pariatur officia incididunt dolor",
|
||
"data": false
|
||
}
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"test_case_id": "TC-ERROR-4001-BODY",
|
||
"test_case_name": "请求体字段类型不匹配检查",
|
||
"test_case_severity": "MEDIUM",
|
||
"status": "失败",
|
||
"message": "当请求体字段 'id' 类型不匹配时, 业务错误码应为 -1,但实际为 61。",
|
||
"duration_seconds": 0.014924291986972094,
|
||
"timestamp": "2025-06-27T19:45:30.368135",
|
||
"validation_points": [
|
||
{
|
||
"expected_code": -1,
|
||
"actual_code": 61,
|
||
"response_body": {
|
||
"code": 61,
|
||
"message": "adipisicing elit nisi sed",
|
||
"data": false
|
||
}
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"test_case_id": "TC-ERROR-4002",
|
||
"test_case_name": "数值参数越界检查",
|
||
"test_case_severity": "MEDIUM",
|
||
"status": "通过",
|
||
"message": "跳过测试:未找到具有明确范围限制的数值字段。",
|
||
"duration_seconds": 0.015453208005055785,
|
||
"timestamp": "2025-06-27T19:45:30.383634",
|
||
"validation_points": [
|
||
{
|
||
"passed": true,
|
||
"message": "跳过测试:未找到具有明确范围限制的数值字段。"
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"test_case_id": "TC-ERROR-4006",
|
||
"test_case_name": "非法枚举值检查",
|
||
"test_case_severity": "MEDIUM",
|
||
"status": "通过",
|
||
"message": "跳过测试:未找到具有明确枚举值限制的字段。",
|
||
"duration_seconds": 0.014014375046826899,
|
||
"timestamp": "2025-06-27T19:45:30.397695",
|
||
"validation_points": [
|
||
{
|
||
"passed": true,
|
||
"message": "跳过测试:未找到具有明确枚举值限制的字段。"
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"test_case_id": "TC-ERROR-4003-BODY",
|
||
"test_case_name": "缺失必填请求体字段检查",
|
||
"test_case_severity": "HIGH",
|
||
"status": "失败",
|
||
"message": "当移除必填请求体字段 'id' 时, 业务错误码应为 -1,但实际为 4003。",
|
||
"duration_seconds": 0.17137999995611608,
|
||
"timestamp": "2025-06-27T19:45:30.569191",
|
||
"validation_points": [
|
||
{
|
||
"expected_code": -1,
|
||
"actual_code": 4003,
|
||
"response_body": {
|
||
"code": 4003
|
||
}
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"test_case_id": "TC-ERROR-4003-QUERY",
|
||
"test_case_name": "缺失必填查询参数检查",
|
||
"test_case_severity": "HIGH",
|
||
"status": "失败",
|
||
"message": "当移除必填查询参数 'id' 时, 业务错误码应为 -1,但实际为 31。",
|
||
"duration_seconds": 0.030840000021271408,
|
||
"timestamp": "2025-06-27T19:45:30.600147",
|
||
"validation_points": [
|
||
{
|
||
"expected_code": -1,
|
||
"actual_code": 31,
|
||
"response_body": {
|
||
"code": 31,
|
||
"message": "in consequat",
|
||
"data": false
|
||
}
|
||
}
|
||
]
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"endpoint_id": "DELETE /api/dms/{dms_instance_code}/v1/cd_geo_unit",
|
||
"endpoint_name": "地质单元数据删除",
|
||
"overall_status": "通过",
|
||
"duration_seconds": 0.323514,
|
||
"start_time": "2025-06-27T19:45:30.600333",
|
||
"end_time": "2025-06-27T19:45:30.923847",
|
||
"executed_test_cases": [
|
||
{
|
||
"test_case_id": "TC-HEADER-001",
|
||
"test_case_name": "必需请求头Schema验证",
|
||
"test_case_severity": "HIGH",
|
||
"status": "失败",
|
||
"message": "缺少必需的请求头 X-Tenant-ID;缺少必需的请求头 X-Data-Domain",
|
||
"duration_seconds": 0.01884987496305257,
|
||
"timestamp": "2025-06-27T19:45:30.619374",
|
||
"validation_points": [
|
||
{
|
||
"header": "X-Tenant-ID",
|
||
"possible_names": [
|
||
"X-Tenant-ID"
|
||
],
|
||
"endpoint": "DELETE /api/dms/{dms_instance_code}/v1/cd_geo_unit"
|
||
},
|
||
{
|
||
"header": "X-Data-Domain",
|
||
"possible_names": [
|
||
"X-Data-Domain"
|
||
],
|
||
"endpoint": "DELETE /api/dms/{dms_instance_code}/v1/cd_geo_unit"
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"test_case_id": "TC-STATUS-001",
|
||
"test_case_name": "基本状态码 200 检查",
|
||
"test_case_severity": "CRITICAL",
|
||
"status": "通过",
|
||
"message": "响应状态码为 200,符合预期 200。",
|
||
"duration_seconds": 0.016467166948132217,
|
||
"timestamp": "2025-06-27T19:45:30.635886",
|
||
"validation_points": [
|
||
{
|
||
"passed": true,
|
||
"message": "响应状态码为 200,符合预期 200。"
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"test_case_id": "TC-SECURITY-002",
|
||
"test_case_name": "敏感字段加密检查",
|
||
"test_case_severity": "HIGH",
|
||
"status": "通过",
|
||
"message": "未在响应中找到需要检查的敏感字段。",
|
||
"duration_seconds": 0.014552042004652321,
|
||
"timestamp": "2025-06-27T19:45:30.650493",
|
||
"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.021500792005099356,
|
||
"timestamp": "2025-06-27T19:45:30.672041",
|
||
"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.015082416939549148,
|
||
"timestamp": "2025-06-27T19:45:30.687247",
|
||
"validation_points": [
|
||
{
|
||
"passed": true,
|
||
"message": "模块名 'dms' 格式正确 (全小写/数字/中划线)。"
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"test_case_id": "TC-DMS-PAGINATION-001",
|
||
"test_case_name": "分页参数检查",
|
||
"test_case_severity": "MEDIUM",
|
||
"status": "通过",
|
||
"message": "跳过检查:API不符合分页参数检查的准入规则(需包含'查询'/'列表'等关键词,且不包含'详情'等关键词)",
|
||
"duration_seconds": 0.015323625062592328,
|
||
"timestamp": "2025-06-27T19:45:30.702616",
|
||
"validation_points": [
|
||
{
|
||
"path": "/api/dms/{dms_instance_code}/v1/cd_geo_unit",
|
||
"method": "DELETE",
|
||
"summary": "地质单元数据删除",
|
||
"contains_include_keyword": false,
|
||
"contains_exclude_keyword": false
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"test_case_id": "TC-RESTful-004",
|
||
"test_case_name": "资源集合复数命名检查",
|
||
"test_case_severity": "MEDIUM",
|
||
"status": "通过",
|
||
"message": "跳过检查:DELETE 方法,不适用于资源集合复数检查。",
|
||
"duration_seconds": 0.01544070802628994,
|
||
"timestamp": "2025-06-27T19:45:30.718151",
|
||
"validation_points": [
|
||
{
|
||
"passed": true,
|
||
"message": "跳过检查:DELETE 方法,不适用于资源集合复数检查。"
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"test_case_id": "TC-RESTful-002",
|
||
"test_case_name": "资源路径名词检查",
|
||
"test_case_severity": "MEDIUM",
|
||
"status": "通过",
|
||
"message": "路径 '/api/dms/{dms_instance_code}/v1/cd_geo_unit' 符合资源名词命名规范。",
|
||
"duration_seconds": 0.014589667087420821,
|
||
"timestamp": "2025-06-27T19:45:30.732859",
|
||
"validation_points": [
|
||
{
|
||
"passed": true,
|
||
"message": "路径 '/api/dms/{dms_instance_code}/v1/cd_geo_unit' 符合资源名词命名规范。"
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"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.016855792026035488,
|
||
"timestamp": "2025-06-27T19:45:30.749803",
|
||
"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:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit (状态码 200) 的响应体 conforms to the JSON schema.",
|
||
"duration_seconds": 0.019488749909214675,
|
||
"timestamp": "2025-06-27T19:45:30.769393",
|
||
"validation_points": [
|
||
{
|
||
"passed": true,
|
||
"message": "针对 DELETE http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit (状态码 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.014152209041640162,
|
||
"timestamp": "2025-06-27T19:45:30.783593",
|
||
"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/{dms_instance_code}/v1/cd_geo_unit' 正确以'/api/'开头;API路径 '/api/dms/{dms_instance_code}/v1/cd_geo_unit' 包含版本标识: 'v1'",
|
||
"duration_seconds": 0.015622625011019409,
|
||
"timestamp": "2025-06-27T19:45:30.799311",
|
||
"validation_points": [
|
||
{
|
||
"full_path": "/api/dms/{dms_instance_code}/v1/cd_geo_unit"
|
||
},
|
||
{
|
||
"pattern_matched": "/v\\d+/",
|
||
"version_string": "v1",
|
||
"full_path": "/api/dms/{dms_instance_code}/v1/cd_geo_unit"
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"test_case_id": "TC-CORE-FUNC-002",
|
||
"test_case_name": "灵活的返回体JSON Schema验证",
|
||
"test_case_severity": "CRITICAL",
|
||
"status": "通过",
|
||
"message": "",
|
||
"duration_seconds": 0.014411500073038042,
|
||
"timestamp": "2025-06-27T19:45:30.813848",
|
||
"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:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit) 响应了成功的状态码 200,这违反了HTTPS强制策略。",
|
||
"duration_seconds": 0.015044374973513186,
|
||
"timestamp": "2025-06-27T19:45:30.828987",
|
||
"validation_points": [
|
||
{
|
||
"status_code": 200
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"test_case_id": "TC-ERROR-4001-QUERY",
|
||
"test_case_name": "查询参数类型不匹配检查",
|
||
"test_case_severity": "MEDIUM",
|
||
"status": "失败",
|
||
"message": "当查询参数 'id' (路径: 'id') 类型不匹配时, 业务错误码应为 -1,但实际为 58。",
|
||
"duration_seconds": 0.01675312500447035,
|
||
"timestamp": "2025-06-27T19:45:30.845794",
|
||
"validation_points": [
|
||
{
|
||
"expected_code": -1,
|
||
"actual_code": 58,
|
||
"response_body": {
|
||
"code": 58,
|
||
"message": "veniam",
|
||
"data": false
|
||
}
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"test_case_id": "TC-ERROR-4001-BODY",
|
||
"test_case_name": "请求体字段类型不匹配检查",
|
||
"test_case_severity": "MEDIUM",
|
||
"status": "失败",
|
||
"message": "当请求体字段 'version' 类型不匹配时, 业务错误码应为 -1,但实际为 60。",
|
||
"duration_seconds": 0.01948137499857694,
|
||
"timestamp": "2025-06-27T19:45:30.865326",
|
||
"validation_points": [
|
||
{
|
||
"expected_code": -1,
|
||
"actual_code": 60,
|
||
"response_body": {
|
||
"code": 60,
|
||
"message": "labore ex",
|
||
"data": true
|
||
}
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"test_case_id": "TC-ERROR-4002",
|
||
"test_case_name": "数值参数越界检查",
|
||
"test_case_severity": "MEDIUM",
|
||
"status": "通过",
|
||
"message": "跳过测试:未找到具有明确范围限制的数值字段。",
|
||
"duration_seconds": 0.015197625034488738,
|
||
"timestamp": "2025-06-27T19:45:30.880582",
|
||
"validation_points": [
|
||
{
|
||
"passed": true,
|
||
"message": "跳过测试:未找到具有明确范围限制的数值字段。"
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"test_case_id": "TC-ERROR-4006",
|
||
"test_case_name": "非法枚举值检查",
|
||
"test_case_severity": "MEDIUM",
|
||
"status": "通过",
|
||
"message": "跳过测试:未找到具有明确枚举值限制的字段。",
|
||
"duration_seconds": 0.014214584021829069,
|
||
"timestamp": "2025-06-27T19:45:30.894855",
|
||
"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.014721750048920512,
|
||
"timestamp": "2025-06-27T19:45:30.909700",
|
||
"validation_points": [
|
||
{
|
||
"passed": true,
|
||
"message": "跳过测试:在API规范中未找到合适的必填请求体字段用于移除测试。"
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"test_case_id": "TC-ERROR-4003-QUERY",
|
||
"test_case_name": "缺失必填查询参数检查",
|
||
"test_case_severity": "HIGH",
|
||
"status": "失败",
|
||
"message": "当移除必填查询参数 'id' 时, 业务错误码应为 -1,但实际为 43。",
|
||
"duration_seconds": 0.014005374978296459,
|
||
"timestamp": "2025-06-27T19:45:30.923754",
|
||
"validation_points": [
|
||
{
|
||
"expected_code": -1,
|
||
"actual_code": 43,
|
||
"response_body": {
|
||
"code": 43,
|
||
"message": "dolor irure laborum",
|
||
"data": true
|
||
}
|
||
}
|
||
]
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"endpoint_id": "POST /api/dms/{dms_instance_code}/v1/cd_geo_unit",
|
||
"endpoint_name": "地质单元数据添加",
|
||
"overall_status": "通过",
|
||
"duration_seconds": 0.313823,
|
||
"start_time": "2025-06-27T19:45:30.923931",
|
||
"end_time": "2025-06-27T19:45:31.237754",
|
||
"executed_test_cases": [
|
||
{
|
||
"test_case_id": "TC-HEADER-001",
|
||
"test_case_name": "必需请求头Schema验证",
|
||
"test_case_severity": "HIGH",
|
||
"status": "失败",
|
||
"message": "缺少必需的请求头 X-Tenant-ID;缺少必需的请求头 X-Data-Domain",
|
||
"duration_seconds": 0.016740582999773324,
|
||
"timestamp": "2025-06-27T19:45:30.940870",
|
||
"validation_points": [
|
||
{
|
||
"header": "X-Tenant-ID",
|
||
"possible_names": [
|
||
"X-Tenant-ID"
|
||
],
|
||
"endpoint": "POST /api/dms/{dms_instance_code}/v1/cd_geo_unit"
|
||
},
|
||
{
|
||
"header": "X-Data-Domain",
|
||
"possible_names": [
|
||
"X-Data-Domain"
|
||
],
|
||
"endpoint": "POST /api/dms/{dms_instance_code}/v1/cd_geo_unit"
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"test_case_id": "TC-STATUS-001",
|
||
"test_case_name": "基本状态码 200 检查",
|
||
"test_case_severity": "CRITICAL",
|
||
"status": "通过",
|
||
"message": "响应状态码为 200,符合预期 200。",
|
||
"duration_seconds": 0.015740334056317806,
|
||
"timestamp": "2025-06-27T19:45:30.956654",
|
||
"validation_points": [
|
||
{
|
||
"passed": true,
|
||
"message": "响应状态码为 200,符合预期 200。"
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"test_case_id": "TC-SECURITY-002",
|
||
"test_case_name": "敏感字段加密检查",
|
||
"test_case_severity": "HIGH",
|
||
"status": "通过",
|
||
"message": "未在响应中找到需要检查的敏感字段。",
|
||
"duration_seconds": 0.019772375002503395,
|
||
"timestamp": "2025-06-27T19:45:30.976483",
|
||
"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.014847708051092923,
|
||
"timestamp": "2025-06-27T19:45:30.991374",
|
||
"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' 格式正确 (全小写/数字/中划线)。;规范中未找到响应码 200 或其类别(2XX, default)的匹配定义,跳过空数组与null的检查。",
|
||
"duration_seconds": 0.014542750082910061,
|
||
"timestamp": "2025-06-27T19:45:31.006037",
|
||
"validation_points": [
|
||
{
|
||
"passed": true,
|
||
"message": "模块名 'dms' 格式正确 (全小写/数字/中划线)。"
|
||
},
|
||
{
|
||
"passed": true,
|
||
"message": "规范中未找到响应码 200 或其类别(2XX, default)的匹配定义,跳过空数组与null的检查。"
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"test_case_id": "TC-DMS-PAGINATION-001",
|
||
"test_case_name": "分页参数检查",
|
||
"test_case_severity": "MEDIUM",
|
||
"status": "通过",
|
||
"message": "跳过检查:API不符合分页参数检查的准入规则(需包含'查询'/'列表'等关键词,且不包含'详情'等关键词)",
|
||
"duration_seconds": 0.014591249986551702,
|
||
"timestamp": "2025-06-27T19:45:31.020767",
|
||
"validation_points": [
|
||
{
|
||
"path": "/api/dms/{dms_instance_code}/v1/cd_geo_unit",
|
||
"method": "POST",
|
||
"summary": "地质单元数据添加",
|
||
"contains_include_keyword": false,
|
||
"contains_exclude_keyword": false
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"test_case_id": "TC-RESTful-004",
|
||
"test_case_name": "资源集合复数命名检查",
|
||
"test_case_severity": "MEDIUM",
|
||
"status": "失败",
|
||
"message": "路径 '/api/dms/{dms_instance_code}/v1/cd_geo_unit' 的最后一个路径分段 'cd_geo_unit' 可能不是复数形式,建议对资源集合使用复数命名。",
|
||
"duration_seconds": 0.017484833020716906,
|
||
"timestamp": "2025-06-27T19:45:31.038341",
|
||
"validation_points": [
|
||
{
|
||
"path": "/api/dms/{dms_instance_code}/v1/cd_geo_unit",
|
||
"segment": "cd_geo_unit"
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"test_case_id": "TC-RESTful-002",
|
||
"test_case_name": "资源路径名词检查",
|
||
"test_case_severity": "MEDIUM",
|
||
"status": "通过",
|
||
"message": "路径 '/api/dms/{dms_instance_code}/v1/cd_geo_unit' 符合资源名词命名规范。",
|
||
"duration_seconds": 0.014622832997702062,
|
||
"timestamp": "2025-06-27T19:45:31.053066",
|
||
"validation_points": [
|
||
{
|
||
"passed": true,
|
||
"message": "路径 '/api/dms/{dms_instance_code}/v1/cd_geo_unit' 符合资源名词命名规范。"
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"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.017133999965153635,
|
||
"timestamp": "2025-06-27T19:45:31.070292",
|
||
"validation_points": [
|
||
{
|
||
"status_code": "201",
|
||
"required_fields": []
|
||
},
|
||
{
|
||
"status_code": "201",
|
||
"required_fields": []
|
||
},
|
||
{
|
||
"status_code": "201",
|
||
"required_fields": []
|
||
},
|
||
{
|
||
"status_code": "201"
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"test_case_id": "TC-CORE-FUNC-001",
|
||
"test_case_name": "返回体JSON Schema验证",
|
||
"test_case_severity": "CRITICAL",
|
||
"status": "通过",
|
||
"message": "标准Schema验证步骤完成(未发现问题,或schema不适用/未为此响应定义)。",
|
||
"duration_seconds": 0.013739917078055441,
|
||
"timestamp": "2025-06-27T19:45:31.084132",
|
||
"validation_points": [
|
||
{
|
||
"passed": true,
|
||
"message": "标准Schema验证步骤完成(未发现问题,或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.014668958960101008,
|
||
"timestamp": "2025-06-27T19:45:31.098840",
|
||
"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/{dms_instance_code}/v1/cd_geo_unit' 正确以'/api/'开头;API路径 '/api/dms/{dms_instance_code}/v1/cd_geo_unit' 包含版本标识: 'v1'",
|
||
"duration_seconds": 0.0191781249595806,
|
||
"timestamp": "2025-06-27T19:45:31.118126",
|
||
"validation_points": [
|
||
{
|
||
"full_path": "/api/dms/{dms_instance_code}/v1/cd_geo_unit"
|
||
},
|
||
{
|
||
"pattern_matched": "/v\\d+/",
|
||
"version_string": "v1",
|
||
"full_path": "/api/dms/{dms_instance_code}/v1/cd_geo_unit"
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"test_case_id": "TC-CORE-FUNC-002",
|
||
"test_case_name": "灵活的返回体JSON Schema验证",
|
||
"test_case_severity": "CRITICAL",
|
||
"status": "通过",
|
||
"message": "",
|
||
"duration_seconds": 0.013365749968215823,
|
||
"timestamp": "2025-06-27T19:45:31.131607",
|
||
"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:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit) 响应了成功的状态码 200,这违反了HTTPS强制策略。",
|
||
"duration_seconds": 0.01351558300666511,
|
||
"timestamp": "2025-06-27T19:45:31.145221",
|
||
"validation_points": [
|
||
{
|
||
"status_code": 200
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"test_case_id": "TC-ERROR-4001-QUERY",
|
||
"test_case_name": "查询参数类型不匹配检查",
|
||
"test_case_severity": "MEDIUM",
|
||
"status": "通过",
|
||
"message": "跳过测试:在查询参数中未找到合适的字段来测试类型不匹配。",
|
||
"duration_seconds": 0.0130636669928208,
|
||
"timestamp": "2025-06-27T19:45:31.158331",
|
||
"validation_points": [
|
||
{
|
||
"passed": true,
|
||
"message": "跳过测试:在查询参数中未找到合适的字段来测试类型不匹配。"
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"test_case_id": "TC-ERROR-4001-BODY",
|
||
"test_case_name": "请求体字段类型不匹配检查",
|
||
"test_case_severity": "MEDIUM",
|
||
"status": "失败",
|
||
"message": "当请求体字段 'version' 类型不匹配时, 业务错误码应为 -1,但实际为 2。",
|
||
"duration_seconds": 0.01287016598507762,
|
||
"timestamp": "2025-06-27T19:45:31.171250",
|
||
"validation_points": [
|
||
{
|
||
"expected_code": -1,
|
||
"actual_code": 2,
|
||
"response_body": {
|
||
"code": 2,
|
||
"message": "Lorem",
|
||
"data": false
|
||
}
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"test_case_id": "TC-ERROR-4002",
|
||
"test_case_name": "数值参数越界检查",
|
||
"test_case_severity": "MEDIUM",
|
||
"status": "通过",
|
||
"message": "跳过测试:未找到具有明确范围限制的数值字段。",
|
||
"duration_seconds": 0.017723624943755567,
|
||
"timestamp": "2025-06-27T19:45:31.189023",
|
||
"validation_points": [
|
||
{
|
||
"passed": true,
|
||
"message": "跳过测试:未找到具有明确范围限制的数值字段。"
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"test_case_id": "TC-ERROR-4006",
|
||
"test_case_name": "非法枚举值检查",
|
||
"test_case_severity": "MEDIUM",
|
||
"status": "通过",
|
||
"message": "跳过测试:未找到具有明确枚举值限制的字段。",
|
||
"duration_seconds": 0.018415499944239855,
|
||
"timestamp": "2025-06-27T19:45:31.207492",
|
||
"validation_points": [
|
||
{
|
||
"passed": true,
|
||
"message": "跳过测试:未找到具有明确枚举值限制的字段。"
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"test_case_id": "TC-ERROR-4003-BODY",
|
||
"test_case_name": "缺失必填请求体字段检查",
|
||
"test_case_severity": "HIGH",
|
||
"status": "失败",
|
||
"message": "当移除必填请求体字段 'data.0.bsflag' 时, 业务错误码应为 -1,但实际为 54。",
|
||
"duration_seconds": 0.015332458075135946,
|
||
"timestamp": "2025-06-27T19:45:31.222937",
|
||
"validation_points": [
|
||
{
|
||
"expected_code": -1,
|
||
"actual_code": 54,
|
||
"response_body": {
|
||
"code": 54,
|
||
"message": "proident",
|
||
"data": false
|
||
}
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"test_case_id": "TC-ERROR-4003-QUERY",
|
||
"test_case_name": "缺失必填查询参数检查",
|
||
"test_case_severity": "HIGH",
|
||
"status": "通过",
|
||
"message": "跳过测试:在API规范中未找到合适的必填查询参数用于移除测试。",
|
||
"duration_seconds": 0.014687708928249776,
|
||
"timestamp": "2025-06-27T19:45:31.237715",
|
||
"validation_points": [
|
||
{
|
||
"passed": true,
|
||
"message": "跳过测试:在API规范中未找到合适的必填查询参数用于移除测试。"
|
||
}
|
||
]
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"endpoint_id": "GET /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}/{id}",
|
||
"endpoint_name": "地质单元查询详情",
|
||
"overall_status": "通过",
|
||
"duration_seconds": 0.310755,
|
||
"start_time": "2025-06-27T19:45:31.237818",
|
||
"end_time": "2025-06-27T19:45:31.548573",
|
||
"executed_test_cases": [
|
||
{
|
||
"test_case_id": "TC-HEADER-001",
|
||
"test_case_name": "必需请求头Schema验证",
|
||
"test_case_severity": "HIGH",
|
||
"status": "失败",
|
||
"message": "缺少必需的请求头 X-Tenant-ID;缺少必需的请求头 X-Data-Domain",
|
||
"duration_seconds": 0.015616875025443733,
|
||
"timestamp": "2025-06-27T19:45:31.253610",
|
||
"validation_points": [
|
||
{
|
||
"header": "X-Tenant-ID",
|
||
"possible_names": [
|
||
"X-Tenant-ID"
|
||
],
|
||
"endpoint": "GET /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}/{id}"
|
||
},
|
||
{
|
||
"header": "X-Data-Domain",
|
||
"possible_names": [
|
||
"X-Data-Domain"
|
||
],
|
||
"endpoint": "GET /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}/{id}"
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"test_case_id": "TC-STATUS-001",
|
||
"test_case_name": "基本状态码 200 检查",
|
||
"test_case_severity": "CRITICAL",
|
||
"status": "通过",
|
||
"message": "响应状态码为 200,符合预期 200。",
|
||
"duration_seconds": 0.014164124964736402,
|
||
"timestamp": "2025-06-27T19:45:31.267828",
|
||
"validation_points": [
|
||
{
|
||
"passed": true,
|
||
"message": "响应状态码为 200,符合预期 200。"
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"test_case_id": "TC-SECURITY-002",
|
||
"test_case_name": "敏感字段加密检查",
|
||
"test_case_severity": "HIGH",
|
||
"status": "通过",
|
||
"message": "未在响应中找到需要检查的敏感字段。",
|
||
"duration_seconds": 0.01590658293571323,
|
||
"timestamp": "2025-06-27T19:45:31.283792",
|
||
"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.018614665954373777,
|
||
"timestamp": "2025-06-27T19:45:31.302451",
|
||
"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.01360079098958522,
|
||
"timestamp": "2025-06-27T19:45:31.316155",
|
||
"validation_points": [
|
||
{
|
||
"passed": true,
|
||
"message": "模块名 'dms' 格式正确 (全小写/数字/中划线)。"
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"test_case_id": "TC-DMS-PAGINATION-001",
|
||
"test_case_name": "分页参数检查",
|
||
"test_case_severity": "MEDIUM",
|
||
"status": "通过",
|
||
"message": "跳过检查:API不符合分页参数检查的准入规则(需包含'查询'/'列表'等关键词,且不包含'详情'等关键词)",
|
||
"duration_seconds": 0.013839541003108025,
|
||
"timestamp": "2025-06-27T19:45:31.330040",
|
||
"validation_points": [
|
||
{
|
||
"path": "/api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}/{id}",
|
||
"method": "GET",
|
||
"summary": "地质单元查询详情",
|
||
"contains_include_keyword": true,
|
||
"contains_exclude_keyword": true
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"test_case_id": "TC-RESTful-004",
|
||
"test_case_name": "资源集合复数命名检查",
|
||
"test_case_severity": "MEDIUM",
|
||
"status": "失败",
|
||
"message": "路径 '/api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}/{id}' 的最后一个路径分段 'cd_geo_unit' 可能不是复数形式,建议对资源集合使用复数命名。",
|
||
"duration_seconds": 0.013254791963845491,
|
||
"timestamp": "2025-06-27T19:45:31.343392",
|
||
"validation_points": [
|
||
{
|
||
"path": "/api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}/{id}",
|
||
"segment": "cd_geo_unit"
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"test_case_id": "TC-RESTful-002",
|
||
"test_case_name": "资源路径名词检查",
|
||
"test_case_severity": "MEDIUM",
|
||
"status": "通过",
|
||
"message": "路径 '/api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}/{id}' 符合资源名词命名规范。",
|
||
"duration_seconds": 0.01333358301781118,
|
||
"timestamp": "2025-06-27T19:45:31.356818",
|
||
"validation_points": [
|
||
{
|
||
"passed": true,
|
||
"message": "路径 '/api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}/{id}' 符合资源名词命名规范。"
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"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.016100708045996726,
|
||
"timestamp": "2025-06-27T19:45:31.373022",
|
||
"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": "针对 GET http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit/1.0.0/example_id (状态码 200) 的响应体 conforms to the JSON schema.",
|
||
"duration_seconds": 0.01896604197099805,
|
||
"timestamp": "2025-06-27T19:45:31.392080",
|
||
"validation_points": [
|
||
{
|
||
"passed": true,
|
||
"message": "针对 GET http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit/1.0.0/example_id (状态码 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.014594084001146257,
|
||
"timestamp": "2025-06-27T19:45:31.406727",
|
||
"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/{dms_instance_code}/v1/cd_geo_unit/{version}/{id}' 正确以'/api/'开头;API路径 '/api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}/{id}' 包含版本标识: 'v1'",
|
||
"duration_seconds": 0.015024874941445887,
|
||
"timestamp": "2025-06-27T19:45:31.421849",
|
||
"validation_points": [
|
||
{
|
||
"full_path": "/api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}/{id}"
|
||
},
|
||
{
|
||
"pattern_matched": "/v\\d+/",
|
||
"version_string": "v1",
|
||
"full_path": "/api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}/{id}"
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"test_case_id": "TC-CORE-FUNC-002",
|
||
"test_case_name": "灵活的返回体JSON Schema验证",
|
||
"test_case_severity": "CRITICAL",
|
||
"status": "通过",
|
||
"message": "",
|
||
"duration_seconds": 0.01406216702889651,
|
||
"timestamp": "2025-06-27T19:45:31.435996",
|
||
"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:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit/1.0.0/example_id) 响应了成功的状态码 200,这违反了HTTPS强制策略。",
|
||
"duration_seconds": 0.015230124932713807,
|
||
"timestamp": "2025-06-27T19:45:31.451311",
|
||
"validation_points": [
|
||
{
|
||
"status_code": 200
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"test_case_id": "TC-ERROR-4001-QUERY",
|
||
"test_case_name": "查询参数类型不匹配检查",
|
||
"test_case_severity": "MEDIUM",
|
||
"status": "通过",
|
||
"message": "跳过测试:在查询参数中未找到合适的字段来测试类型不匹配。",
|
||
"duration_seconds": 0.01747774996329099,
|
||
"timestamp": "2025-06-27T19:45:31.468847",
|
||
"validation_points": [
|
||
{
|
||
"passed": true,
|
||
"message": "跳过测试:在查询参数中未找到合适的字段来测试类型不匹配。"
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"test_case_id": "TC-ERROR-4001-BODY",
|
||
"test_case_name": "请求体字段类型不匹配检查",
|
||
"test_case_severity": "MEDIUM",
|
||
"status": "失败",
|
||
"message": "当请求体字段 'isSearchCount' 类型不匹配时, 业务错误码应为 -1,但实际为 33。",
|
||
"duration_seconds": 0.016274459077976644,
|
||
"timestamp": "2025-06-27T19:45:31.485272",
|
||
"validation_points": [
|
||
{
|
||
"expected_code": -1,
|
||
"actual_code": 33,
|
||
"response_body": {
|
||
"code": 33,
|
||
"message": "pariatur commodo",
|
||
"data": {
|
||
"total": 16,
|
||
"list": [
|
||
{
|
||
"dsid": "86",
|
||
"dataRegion": "aute sunt eu",
|
||
"gasReleaseMon": null,
|
||
"gasReleaseYear": null,
|
||
"releaseGasCum": null
|
||
},
|
||
{
|
||
"dsid": "5",
|
||
"dataRegion": "ipsum",
|
||
"gasReleaseMon": null,
|
||
"gasReleaseYear": null,
|
||
"releaseGasCum": null
|
||
}
|
||
]
|
||
}
|
||
}
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"test_case_id": "TC-ERROR-4002",
|
||
"test_case_name": "数值参数越界检查",
|
||
"test_case_severity": "MEDIUM",
|
||
"status": "通过",
|
||
"message": "跳过测试:未找到具有明确范围限制的数值字段。",
|
||
"duration_seconds": 0.018606667057611048,
|
||
"timestamp": "2025-06-27T19:45:31.503937",
|
||
"validation_points": [
|
||
{
|
||
"passed": true,
|
||
"message": "跳过测试:未找到具有明确范围限制的数值字段。"
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"test_case_id": "TC-ERROR-4006",
|
||
"test_case_name": "非法枚举值检查",
|
||
"test_case_severity": "MEDIUM",
|
||
"status": "失败",
|
||
"message": "当 body 字段 'logic' 值为 'invalid_enum_g09w7a' (合法值为: ['AND', 'OR']) 时, 业务错误码应为 -1,但实际为 16。",
|
||
"duration_seconds": 0.015167415956966579,
|
||
"timestamp": "2025-06-27T19:45:31.519176",
|
||
"validation_points": [
|
||
{
|
||
"expected_code": -1,
|
||
"actual_code": 16,
|
||
"response_body": {
|
||
"code": 16,
|
||
"message": "velit pariatur sint mollit",
|
||
"data": {
|
||
"total": 78,
|
||
"list": [
|
||
{
|
||
"dsid": "40",
|
||
"dataRegion": "non id exercitation",
|
||
"gasReleaseMon": null,
|
||
"gasReleaseYear": null,
|
||
"releaseGasCum": null
|
||
},
|
||
{
|
||
"dsid": "52",
|
||
"dataRegion": "dolor",
|
||
"gasReleaseMon": null,
|
||
"gasReleaseYear": null,
|
||
"releaseGasCum": null
|
||
}
|
||
]
|
||
}
|
||
}
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"test_case_id": "TC-ERROR-4003-BODY",
|
||
"test_case_name": "缺失必填请求体字段检查",
|
||
"test_case_severity": "HIGH",
|
||
"status": "通过",
|
||
"message": "跳过测试:在API规范中未找到合适的必填请求体字段用于移除测试。",
|
||
"duration_seconds": 0.014122250024229288,
|
||
"timestamp": "2025-06-27T19:45:31.533395",
|
||
"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.015069708926603198,
|
||
"timestamp": "2025-06-27T19:45:31.548520",
|
||
"validation_points": [
|
||
{
|
||
"passed": true,
|
||
"message": "跳过测试:在API规范中未找到合适的必填查询参数用于移除测试。"
|
||
}
|
||
]
|
||
}
|
||
]
|
||
}
|
||
],
|
||
"stage_results": [
|
||
{
|
||
"stage_id": "generic_crud_validation_stage",
|
||
"stage_name": "Generic CRUD Validation Stage",
|
||
"description": "Performs a generic CRUD (Create, List, Read, Update, Delete) flow. It tries to dynamically discover API operations based on common keywords and HTTP methods. Field names for IDs, names, features, and JSON paths for list/detail objects are configurable via class attributes or can be set in `before_stage` based on `api_group_name`.",
|
||
"api_group_name": "地质单元",
|
||
"tags": [
|
||
"crud",
|
||
"generic_validation"
|
||
],
|
||
"overall_status": "失败",
|
||
"duration_seconds": "0.03",
|
||
"start_time": "2025-06-27T19:45:31",
|
||
"end_time": "2025-06-27T19:45:31",
|
||
"message": "测试阶段因步骤 'List and Find Created Resource' 的状态 (失败) 而中止.",
|
||
"executed_steps_count": 2,
|
||
"executed_steps": [
|
||
{
|
||
"step_name": "Create New Resource",
|
||
"description": null,
|
||
"lookup_key": "地质单元数据添加",
|
||
"resolved_endpoint": "POST /api/dms/{dms_instance_code}/v1/cd_geo_unit",
|
||
"status": "通过",
|
||
"message": "",
|
||
"duration_seconds": "0.0000",
|
||
"timestamp": "2025-06-27T19:45:31+0800",
|
||
"validation_points": [
|
||
{
|
||
"passed": true,
|
||
"message": "状态码匹配 (200)."
|
||
}
|
||
],
|
||
"api_call_curl": "N/A",
|
||
"request_details": {
|
||
"method": "POST",
|
||
"url": "http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/your_dms_instance_code/v1/cd_geo_unit",
|
||
"headers": {
|
||
"tenant-id": "your-tenant-id",
|
||
"Content-Type": "application/json",
|
||
"Accept": "application/json",
|
||
"Authorization": "Bearer your-test-token"
|
||
},
|
||
"params": {},
|
||
"json_data": {
|
||
"version": "1.0.0",
|
||
"data": [
|
||
{
|
||
"wellCommonName": "TestResource_1751024731_413683",
|
||
"dataRegion": "Feature_1751024731"
|
||
}
|
||
]
|
||
},
|
||
"body": {
|
||
"version": "1.0.0",
|
||
"data": [
|
||
{
|
||
"wellCommonName": "TestResource_1751024731_413683",
|
||
"dataRegion": "Feature_1751024731"
|
||
}
|
||
]
|
||
},
|
||
"data": null,
|
||
"timeout": 30
|
||
},
|
||
"extracted_outputs": {},
|
||
"context_after_step_summary": {
|
||
"unique_resource_name": "TestResource_1751024731_413683",
|
||
"updated_resource_name": "TestResource_1751024731_413683_UPDATED",
|
||
"unique_feature_value": "Feature_1751024731",
|
||
"updated_feature_value": "Feature_1751024731_UPDATED",
|
||
"cfg_list_path_in_listresponse": "data.list",
|
||
"cfg_name_field_in_listitem": "wellCommonName",
|
||
"cfg_id_field_in_listitem": "dsid",
|
||
"cfg_resource_object_path_in_detailresponse": "data.list.0",
|
||
"cfg_name_field_in_detailresponse": "wellCommonName",
|
||
"cfg_id_field_in_detailresponse": "dsid",
|
||
"cfg_resource_object_path_in_updateresponse": "data.list.0",
|
||
"cfg_feature_field_name_for_validation": "dataRegion",
|
||
"dms_instance_code": "your_dms_instance_code",
|
||
"api_version": "1.0.0"
|
||
}
|
||
},
|
||
{
|
||
"step_name": "List and Find Created Resource",
|
||
"description": null,
|
||
"lookup_key": "地质单元列表查询",
|
||
"resolved_endpoint": "POST /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}",
|
||
"status": "失败",
|
||
"message": "Resource not found: Name 'TestResource_1751024731_413683' (field: wellCommonName) not found in list at path 'data.list'.",
|
||
"duration_seconds": "0.0000",
|
||
"timestamp": "2025-06-27T19:45:31+0800",
|
||
"validation_points": [
|
||
{
|
||
"passed": true,
|
||
"message": "状态码匹配 (200)."
|
||
},
|
||
{
|
||
"passed": false,
|
||
"message": "Resource not found: Name 'TestResource_1751024731_413683' (field: wellCommonName) not found in list at path 'data.list'."
|
||
}
|
||
],
|
||
"api_call_curl": "N/A",
|
||
"request_details": {
|
||
"method": "POST",
|
||
"url": "http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/your_dms_instance_code/v1/cd_geo_unit/1.0.0",
|
||
"headers": {
|
||
"tenant-id": "your-tenant-id",
|
||
"Content-Type": "application/json",
|
||
"Accept": "application/json",
|
||
"Authorization": "Bearer your-test-token"
|
||
},
|
||
"params": {
|
||
"pageNo": 1,
|
||
"pageSize": 10
|
||
},
|
||
"json_data": {
|
||
"isSearchCount": true,
|
||
"query": {
|
||
"fields": [
|
||
"dsid",
|
||
"wellCommonName",
|
||
"dataRegion"
|
||
],
|
||
"filter": {
|
||
"key": "wellCommonName",
|
||
"symbol": "=",
|
||
"realValue": [
|
||
"TestResource_1751024731_413683"
|
||
]
|
||
}
|
||
}
|
||
},
|
||
"body": {
|
||
"isSearchCount": true,
|
||
"query": {
|
||
"fields": [
|
||
"dsid",
|
||
"wellCommonName",
|
||
"dataRegion"
|
||
],
|
||
"filter": {
|
||
"key": "wellCommonName",
|
||
"symbol": "=",
|
||
"realValue": [
|
||
"TestResource_1751024731_413683"
|
||
]
|
||
}
|
||
}
|
||
},
|
||
"data": null,
|
||
"timeout": 30
|
||
},
|
||
"extracted_outputs": {},
|
||
"context_after_step_summary": {
|
||
"unique_resource_name": "TestResource_1751024731_413683",
|
||
"updated_resource_name": "TestResource_1751024731_413683_UPDATED",
|
||
"unique_feature_value": "Feature_1751024731",
|
||
"updated_feature_value": "Feature_1751024731_UPDATED",
|
||
"cfg_list_path_in_listresponse": "data.list",
|
||
"cfg_name_field_in_listitem": "wellCommonName",
|
||
"cfg_id_field_in_listitem": "dsid",
|
||
"cfg_resource_object_path_in_detailresponse": "data.list.0",
|
||
"cfg_name_field_in_detailresponse": "wellCommonName",
|
||
"cfg_id_field_in_detailresponse": "dsid",
|
||
"cfg_resource_object_path_in_updateresponse": "data.list.0",
|
||
"cfg_feature_field_name_for_validation": "dataRegion",
|
||
"dms_instance_code": "your_dms_instance_code",
|
||
"api_version": "1.0.0"
|
||
}
|
||
}
|
||
],
|
||
"final_stage_context_summary": {
|
||
"unique_resource_name": "TestResource_1751024731_413683",
|
||
"updated_resource_name": "TestResource_1751024731_413683_UPDATED",
|
||
"unique_feature_value": "Feature_1751024731",
|
||
"updated_feature_value": "Feature_1751024731_UPDATED",
|
||
"cfg_list_path_in_listresponse": "data.list",
|
||
"cfg_name_field_in_listitem": "wellCommonName",
|
||
"cfg_id_field_in_listitem": "dsid",
|
||
"cfg_resource_object_path_in_detailresponse": "data.list.0",
|
||
"cfg_name_field_in_detailresponse": "wellCommonName",
|
||
"cfg_id_field_in_detailresponse": "dsid",
|
||
"cfg_resource_object_path_in_updateresponse": "data.list.0",
|
||
"cfg_feature_field_name_for_validation": "dataRegion",
|
||
"dms_instance_code": "your_dms_instance_code",
|
||
"api_version": "1.0.0"
|
||
}
|
||
}
|
||
],
|
||
"api_call_details_summary": []
|
||
} |