2025-05-28 17:59:13,667 - __main__ - DEBUG - 已启用详细日志模式 2025-05-28 17:59:13,667 - __main__ - INFO - 主输出目录设置为: /Users/zpc01/workspace/zzlh/compliance 2025-05-28 17:59:13,667 - ddms_compliance_suite.test_case_registry - INFO - 开始从目录 './custom_testcases' 及其子目录发现测试用例... 2025-05-28 17:59:13,668 - ddms_compliance_suite.test_case_registry - DEBUG - 成功导入模块: basic_checks 从 ./custom_testcases/basic_checks.py 2025-05-28 17:59:13,668 - ddms_compliance_suite.test_case_registry - INFO - 已注册测试用例: 'TC-STATUS-001' (基本状态码 200 检查) 来自类 'StatusCode200Check' (路径: ./custom_testcases/basic_checks.py) 2025-05-28 17:59:13,668 - ddms_compliance_suite.test_case_registry - DEBUG - 成功导入模块: basic_api_sanity_check_case 从 ./custom_testcases/setup_checks/basic_api_sanity_check_case.py 2025-05-28 17:59:13,669 - ddms_compliance_suite.test_case_registry - DEBUG - 成功导入模块: https_mandatory_case 从 ./custom_testcases/compliance_catalog/security/https_mandatory_case.py 2025-05-28 17:59:13,669 - ddms_compliance_suite.test_case_registry - INFO - 已注册测试用例: 'TC-SECURITY-001' (HTTPS Protocol Mandatory Verification) 来自类 'HTTPSMandatoryCase' (路径: ./custom_testcases/compliance_catalog/security/https_mandatory_case.py) 2025-05-28 17:59:13,669 - ddms_compliance_suite.test_case_registry - DEBUG - 成功导入模块: url_llm_checks 从 ./custom_testcases/compliance_catalog/normative_spec/url_llm_checks.py 2025-05-28 17:59:13,669 - ddms_compliance_suite.test_case_registry - DEBUG - 成功导入模块: http_method_usage_case 从 ./custom_testcases/compliance_catalog/normative_spec/http_method_usage_case.py 2025-05-28 17:59:13,669 - ddms_compliance_suite.test_case_registry - DEBUG - 成功导入模块: missing_required_field_query_case 从 ./custom_testcases/compliance_catalog/error_handling/missing_required_field_query_case.py 2025-05-28 17:59:13,670 - ddms_compliance_suite.test_case_registry - INFO - 已注册测试用例: 'TC-ERROR-4003-QUERY' (Error Code 4003 - Missing Required Query Parameter Validation) 来自类 'MissingRequiredFieldQueryCase' (路径: ./custom_testcases/compliance_catalog/error_handling/missing_required_field_query_case.py) 2025-05-28 17:59:13,670 - ddms_compliance_suite.test_case_registry - DEBUG - 成功导入模块: type_mismatch_body_case 从 ./custom_testcases/compliance_catalog/error_handling/type_mismatch_body_case.py 2025-05-28 17:59:13,670 - ddms_compliance_suite.test_case_registry - INFO - 已注册测试用例: 'TC-ERROR-4001-BODY' (Error Code 4001 - Request Body Type Mismatch Validation) 来自类 'TypeMismatchBodyCase' (路径: ./custom_testcases/compliance_catalog/error_handling/type_mismatch_body_case.py) 2025-05-28 17:59:13,670 - ddms_compliance_suite.test_case_registry - DEBUG - 成功导入模块: missing_required_field_body_case 从 ./custom_testcases/compliance_catalog/error_handling/missing_required_field_body_case.py 2025-05-28 17:59:13,670 - ddms_compliance_suite.test_case_registry - INFO - 已注册测试用例: 'TC-ERROR-4003-BODY' (Error Code 4003 - Missing Required Request Body Field Validation) 来自类 'MissingRequiredFieldBodyCase' (路径: ./custom_testcases/compliance_catalog/error_handling/missing_required_field_body_case.py) 2025-05-28 17:59:13,670 - ddms_compliance_suite.test_case_registry - DEBUG - 成功导入模块: type_mismatch_query_param_case 从 ./custom_testcases/compliance_catalog/error_handling/type_mismatch_query_param_case.py 2025-05-28 17:59:13,670 - ddms_compliance_suite.test_case_registry - INFO - 已注册测试用例: 'TC-ERROR-4001-QUERY' (Error Code 4001 - Query Parameter Type Mismatch Validation) 来自类 'TypeMismatchQueryParamCase' (路径: ./custom_testcases/compliance_catalog/error_handling/type_mismatch_query_param_case.py) 2025-05-28 17:59:13,670 - ddms_compliance_suite.test_case_registry - DEBUG - 成功导入模块: schema_validation_case 从 ./custom_testcases/compliance_catalog/core_functionality/schema_validation_case.py 2025-05-28 17:59:13,670 - ddms_compliance_suite.test_case_registry - INFO - 已注册测试用例: 'TC-CORE-FUNC-001' (Response Body JSON Schema Validation) 来自类 'ResponseSchemaValidationCase' (路径: ./custom_testcases/compliance_catalog/core_functionality/schema_validation_case.py) 2025-05-28 17:59:13,670 - ddms_compliance_suite.test_case_registry - INFO - 已根据 execution_order (主要) 和类名 (次要) 对 7 个测试用例类进行了排序。 2025-05-28 17:59:13,670 - ddms_compliance_suite.test_case_registry - INFO - 测试用例发现完成。总共注册了 7 个独特的测试用例 (基于ID)。发现并排序了 7 个测试用例类。 2025-05-28 17:59:13,670 - ddms_compliance_suite.llm_utils.llm_service - INFO - LLMService initialized for model 'qwen-plus' at https://dashscope.aliyuncs.com/compatible-mode/v1 2025-05-28 17:59:13,670 - ddms_compliance_suite.test_orchestrator - INFO - LLMService initialized successfully with model: qwen-plus. 2025-05-28 17:59:13,670 - __main__ - INFO - 从YAPI文件运行测试: assets/doc/井筒API示例_simple.json 2025-05-28 17:59:13,670 - ddms_compliance_suite.test_orchestrator - INFO - 从YAPI文件加载API定义: assets/doc/井筒API示例_simple.json 2025-05-28 17:59:13,670 - ddms_compliance_suite.input_parser.parser - INFO - Parsing YAPI spec from: assets/doc/井筒API示例_simple.json 2025-05-28 17:59:13,671 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-STATUS-001' 适用于端点 'POST /api/dms/{dms_instance_code}/v1/message/push/{schema}/{version}'。 2025-05-28 17:59:13,671 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-CORE-FUNC-001' 适用于端点 'POST /api/dms/{dms_instance_code}/v1/message/push/{schema}/{version}'。 2025-05-28 17:59:13,671 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-SECURITY-001' 适用于端点 'POST /api/dms/{dms_instance_code}/v1/message/push/{schema}/{version}'。 2025-05-28 17:59:13,671 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4001-QUERY' 适用于端点 'POST /api/dms/{dms_instance_code}/v1/message/push/{schema}/{version}'。 2025-05-28 17:59:13,671 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4001-BODY' 适用于端点 'POST /api/dms/{dms_instance_code}/v1/message/push/{schema}/{version}'。 2025-05-28 17:59:13,671 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4003-BODY' 适用于端点 'POST /api/dms/{dms_instance_code}/v1/message/push/{schema}/{version}'。 2025-05-28 17:59:13,671 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4003-QUERY' 适用于端点 'POST /api/dms/{dms_instance_code}/v1/message/push/{schema}/{version}'。 2025-05-28 17:59:13,671 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-STATUS-001' 适用于端点 'POST /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}'。 2025-05-28 17:59:13,671 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-CORE-FUNC-001' 适用于端点 'POST /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}'。 2025-05-28 17:59:13,671 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-SECURITY-001' 适用于端点 'POST /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}'。 2025-05-28 17:59:13,671 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4001-QUERY' 适用于端点 'POST /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}'。 2025-05-28 17:59:13,671 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4001-BODY' 适用于端点 'POST /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}'。 2025-05-28 17:59:13,671 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4003-BODY' 适用于端点 'POST /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}'。 2025-05-28 17:59:13,671 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4003-QUERY' 适用于端点 'POST /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}'。 2025-05-28 17:59:13,671 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-STATUS-001' 适用于端点 'PUT /api/dms/{dms_instance_code}/v1/cd_geo_unit'。 2025-05-28 17:59:13,671 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-CORE-FUNC-001' 适用于端点 'PUT /api/dms/{dms_instance_code}/v1/cd_geo_unit'。 2025-05-28 17:59:13,671 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-SECURITY-001' 适用于端点 'PUT /api/dms/{dms_instance_code}/v1/cd_geo_unit'。 2025-05-28 17:59:13,671 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4001-QUERY' 适用于端点 'PUT /api/dms/{dms_instance_code}/v1/cd_geo_unit'。 2025-05-28 17:59:13,671 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4001-BODY' 适用于端点 'PUT /api/dms/{dms_instance_code}/v1/cd_geo_unit'。 2025-05-28 17:59:13,671 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4003-BODY' 适用于端点 'PUT /api/dms/{dms_instance_code}/v1/cd_geo_unit'。 2025-05-28 17:59:13,671 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4003-QUERY' 适用于端点 'PUT /api/dms/{dms_instance_code}/v1/cd_geo_unit'。 2025-05-28 17:59:13,671 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-STATUS-001' 适用于端点 'DELETE /api/dms/{dms_instance_code}/v1/cd_geo_unit'。 2025-05-28 17:59:13,671 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-CORE-FUNC-001' 适用于端点 'DELETE /api/dms/{dms_instance_code}/v1/cd_geo_unit'。 2025-05-28 17:59:13,671 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-SECURITY-001' 适用于端点 'DELETE /api/dms/{dms_instance_code}/v1/cd_geo_unit'。 2025-05-28 17:59:13,671 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4001-QUERY' 适用于端点 'DELETE /api/dms/{dms_instance_code}/v1/cd_geo_unit'。 2025-05-28 17:59:13,671 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4001-BODY' 适用于端点 'DELETE /api/dms/{dms_instance_code}/v1/cd_geo_unit'。 2025-05-28 17:59:13,671 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4003-BODY' 适用于端点 'DELETE /api/dms/{dms_instance_code}/v1/cd_geo_unit'。 2025-05-28 17:59:13,671 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4003-QUERY' 适用于端点 'DELETE /api/dms/{dms_instance_code}/v1/cd_geo_unit'。 2025-05-28 17:59:13,671 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-STATUS-001' 适用于端点 'POST /api/dms/{dms_instance_code}/v1/cd_geo_unit'。 2025-05-28 17:59:13,671 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-CORE-FUNC-001' 适用于端点 'POST /api/dms/{dms_instance_code}/v1/cd_geo_unit'。 2025-05-28 17:59:13,671 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-SECURITY-001' 适用于端点 'POST /api/dms/{dms_instance_code}/v1/cd_geo_unit'。 2025-05-28 17:59:13,671 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4001-QUERY' 适用于端点 'POST /api/dms/{dms_instance_code}/v1/cd_geo_unit'。 2025-05-28 17:59:13,671 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4001-BODY' 适用于端点 'POST /api/dms/{dms_instance_code}/v1/cd_geo_unit'。 2025-05-28 17:59:13,671 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4003-BODY' 适用于端点 'POST /api/dms/{dms_instance_code}/v1/cd_geo_unit'。 2025-05-28 17:59:13,671 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4003-QUERY' 适用于端点 'POST /api/dms/{dms_instance_code}/v1/cd_geo_unit'。 2025-05-28 17:59:13,671 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-STATUS-001' 适用于端点 'GET /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}/{id}'。 2025-05-28 17:59:13,671 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-CORE-FUNC-001' 适用于端点 'GET /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}/{id}'。 2025-05-28 17:59:13,671 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-SECURITY-001' 适用于端点 'GET /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}/{id}'。 2025-05-28 17:59:13,671 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4001-QUERY' 适用于端点 'GET /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}/{id}'。 2025-05-28 17:59:13,671 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4001-BODY' 适用于端点 'GET /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}/{id}'。 2025-05-28 17:59:13,671 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4003-BODY' 适用于端点 'GET /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}/{id}'。 2025-05-28 17:59:13,671 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4003-QUERY' 适用于端点 'GET /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}/{id}'。 2025-05-28 17:59:13,671 - ddms_compliance_suite.test_orchestrator - INFO - 开始为端点测试: POST /api/dms/{dms_instance_code}/v1/message/push/{schema}/{version} (数据推送接口) 2025-05-28 17:59:13,671 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-STATUS-001' 适用于端点 'POST /api/dms/{dms_instance_code}/v1/message/push/{schema}/{version}'。 2025-05-28 17:59:13,671 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-CORE-FUNC-001' 适用于端点 'POST /api/dms/{dms_instance_code}/v1/message/push/{schema}/{version}'。 2025-05-28 17:59:13,671 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-SECURITY-001' 适用于端点 'POST /api/dms/{dms_instance_code}/v1/message/push/{schema}/{version}'。 2025-05-28 17:59:13,671 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4001-QUERY' 适用于端点 'POST /api/dms/{dms_instance_code}/v1/message/push/{schema}/{version}'。 2025-05-28 17:59:13,671 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4001-BODY' 适用于端点 'POST /api/dms/{dms_instance_code}/v1/message/push/{schema}/{version}'。 2025-05-28 17:59:13,671 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4003-BODY' 适用于端点 'POST /api/dms/{dms_instance_code}/v1/message/push/{schema}/{version}'。 2025-05-28 17:59:13,671 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4003-QUERY' 适用于端点 'POST /api/dms/{dms_instance_code}/v1/message/push/{schema}/{version}'。 2025-05-28 17:59:13,671 - ddms_compliance_suite.test_orchestrator - INFO - 端点 'POST /api/dms/{dms_instance_code}/v1/message/push/{schema}/{version}' 发现了 7 个适用的测试用例 (已排序): ['TC-STATUS-001', 'TC-CORE-FUNC-001', 'TC-SECURITY-001', 'TC-ERROR-4001-QUERY', 'TC-ERROR-4001-BODY', 'TC-ERROR-4003-BODY', 'TC-ERROR-4003-QUERY'] 2025-05-28 17:59:13,671 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-STATUS-001' for 'POST /api/dms/{dms_instance_code}/v1/message/push/{schema}/{version}' 2025-05-28 17:59:13,671 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. 2025-05-28 17:59:13,671 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['yapi_categories'] 2025-05-28 17:59:13,671 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... 2025-05-28 17:59:13,671 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... 2025-05-28 17:59:13,671 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True,丢弃 '$$ref': #/components/schemas/RdbQueryPageInput 2025-05-28 17:59:13,671 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True,丢弃 '$$ref': #/components/schemas/QueryVO 2025-05-28 17:59:13,671 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True,丢弃 '$$ref': #/components/schemas/FilterVO 2025-05-28 17:59:13,671 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True,丢弃 '$ref': #/components/schemas/FilterVO 2025-05-28 17:59:13,671 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True,丢弃 '$$ref': #/components/schemas/FilterVO 2025-05-28 17:59:13,671 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True,丢弃 '$ref': #/components/schemas/FilterVO 2025-05-28 17:59:13,671 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[0] ('dms_instance_code') 的 schema... 2025-05-28 17:59:13,671 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[1] ('schema') 的 schema... 2025-05-28 17:59:13,671 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[2] ('version') 的 schema... 2025-05-28 17:59:13,671 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[3] ('tenant-id') 的 schema... 2025-05-28 17:59:13,671 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[4] ('Authorization') 的 schema... 2025-05-28 17:59:13,671 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '201' content 'application/json' 的 schema... 2025-05-28 17:59:13,671 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 2025-05-28 17:59:13,671 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: StatusCode200Check 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_yapi_id', '_yapi_raw_data', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['yapi_categories']) 2025-05-28 17:59:13,671 - testcase.TC-STATUS-001 - INFO - 测试用例 TC-STATUS-001 (基本状态码 200 检查) 已针对端点 'POST /api/dms/{dms_instance_code}/v1/message/push/{schema}/{version}' 初始化。 2025-05-28 17:59:13,671 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-STATUS-001' (基本状态码 200 检查) for endpoint 'POST /api/dms/{dms_instance_code}/v1/message/push/{schema}/{version}' 2025-05-28 17:59:13,671 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial path param for 'post__api_dms_dms_instance_code_v1_message_push_schema_version_135716': dms_instance_code = example_dms_instance_code 2025-05-28 17:59:13,671 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial path param for 'post__api_dms_dms_instance_code_v1_message_push_schema_version_135716': schema = example_schema 2025-05-28 17:59:13,671 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial path param for 'post__api_dms_dms_instance_code_v1_message_push_schema_version_135716': version = example_version 2025-05-28 17:59:13,671 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial custom header param for 'post__api_dms_dms_instance_code_v1_message_push_schema_version_135716': tenant-id = header_val_tenant-id 2025-05-28 17:59:13,671 - ddms_compliance_suite.test_orchestrator - DEBUG - Skipping standard header 'Authorization' in parameter processing for 'post__api_dms_dms_instance_code_v1_message_push_schema_version_135716'. It will be handled separately. 2025-05-28 17:59:13,671 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'post__api_dms_dms_instance_code_v1_message_push_schema_version_135716': application/json 2025-05-28 17:59:13,671 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'post__api_dms_dms_instance_code_v1_message_push_schema_version_135716': application/json 2025-05-28 17:59:13,671 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body). Properties: ['isSearchCount', 'query'] 2025-05-28 17:59:13,671 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 使用 schema 中的 'default' 值 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.isSearchCount): True 2025-05-28 17:59:13,671 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query). Properties: ['dataRegions', 'fields', 'filter', 'groupFields', 'groupFilter', 'sort'] 2025-05-28 17:59:13,671 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.dataRegions). Items schema: {'description': '数据域,如:JD、DG、TL', 'type': 'string'}, minItems: 1 2025-05-28 17:59:13,671 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.dataRegions[0]): example_string 2025-05-28 17:59:13,671 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.fields). Items schema: {'description': '查询的字段', 'type': 'string'}, minItems: 1 2025-05-28 17:59:13,671 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.fields[0]): example_string 2025-05-28 17:59:13,672 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.filter). Properties: ['key', 'logic', 'realValue', 'singleValue', 'subFilter', 'symbol'] 2025-05-28 17:59:13,672 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.filter.key): example_string 2025-05-28 17:59:13,672 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.filter.logic): example_string 2025-05-28 17:59:13,672 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.filter.realValue). Items schema: {'description': '条件值', 'type': 'object', 'properties': {}}, minItems: 1 2025-05-28 17:59:13,672 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.filter.realValue[0]). Properties: [] 2025-05-28 17:59:13,672 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.filter.singleValue). Properties: [] 2025-05-28 17:59:13,672 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.filter.subFilter). Items schema: {'type': 'string'}, minItems: 1 2025-05-28 17:59:13,672 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.filter.subFilter[0]): example_string 2025-05-28 17:59:13,672 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.filter.symbol): example_string 2025-05-28 17:59:13,672 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.groupFields). Items schema: {'description': '分组字段group by', 'type': 'string'}, minItems: 1 2025-05-28 17:59:13,672 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.groupFields[0]): example_string 2025-05-28 17:59:13,672 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.groupFilter). Properties: ['key', 'logic', 'realValue', 'singleValue', 'subFilter', 'symbol'] 2025-05-28 17:59:13,672 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.groupFilter.key): example_string 2025-05-28 17:59:13,672 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.groupFilter.logic): example_string 2025-05-28 17:59:13,672 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.groupFilter.realValue). Items schema: {'description': '条件值', 'type': 'object', 'properties': {}}, minItems: 1 2025-05-28 17:59:13,672 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.groupFilter.realValue[0]). Properties: [] 2025-05-28 17:59:13,672 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.groupFilter.singleValue). Properties: [] 2025-05-28 17:59:13,672 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.groupFilter.subFilter). Items schema: {'type': 'string'}, minItems: 1 2025-05-28 17:59:13,672 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.groupFilter.subFilter[0]): example_string 2025-05-28 17:59:13,672 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.groupFilter.symbol): example_string 2025-05-28 17:59:13,672 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.sort). Properties: [] 2025-05-28 17:59:13,672 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'post__api_dms_dms_instance_code_v1_message_push_schema_version_135716' (type: ) 2025-05-28 17:59:13,672 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {'dms_instance_code': 'example_dms_instance_code', 'schema': 'example_schema', 'version': 'example_version'} 2025-05-28 17:59:13,672 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/message/push/example_schema/example_version 2025-05-28 17:59:13,751 - testcase.TC-STATUS-001 - INFO - 状态码验证通过: 200 == 200 for http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/message/push/example_schema/example_version 2025-05-28 17:59:13,751 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-STATUS-001' 执行成功。 2025-05-28 17:59:13,751 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-STATUS-001' 执行完毕,状态: 通过 2025-05-28 17:59:13,751 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-CORE-FUNC-001' for 'POST /api/dms/{dms_instance_code}/v1/message/push/{schema}/{version}' 2025-05-28 17:59:13,751 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. 2025-05-28 17:59:13,751 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['yapi_categories'] 2025-05-28 17:59:13,751 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... 2025-05-28 17:59:13,751 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... 2025-05-28 17:59:13,751 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True,丢弃 '$$ref': #/components/schemas/RdbQueryPageInput 2025-05-28 17:59:13,751 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True,丢弃 '$$ref': #/components/schemas/QueryVO 2025-05-28 17:59:13,751 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True,丢弃 '$$ref': #/components/schemas/FilterVO 2025-05-28 17:59:13,752 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True,丢弃 '$ref': #/components/schemas/FilterVO 2025-05-28 17:59:13,752 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True,丢弃 '$$ref': #/components/schemas/FilterVO 2025-05-28 17:59:13,752 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True,丢弃 '$ref': #/components/schemas/FilterVO 2025-05-28 17:59:13,752 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[0] ('dms_instance_code') 的 schema... 2025-05-28 17:59:13,752 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[1] ('schema') 的 schema... 2025-05-28 17:59:13,752 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[2] ('version') 的 schema... 2025-05-28 17:59:13,752 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[3] ('tenant-id') 的 schema... 2025-05-28 17:59:13,752 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[4] ('Authorization') 的 schema... 2025-05-28 17:59:13,752 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '201' content 'application/json' 的 schema... 2025-05-28 17:59:13,752 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 2025-05-28 17:59:13,752 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: ResponseSchemaValidationCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_yapi_id', '_yapi_raw_data', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['yapi_categories']) 2025-05-28 17:59:13,752 - testcase.TC-CORE-FUNC-001 - INFO - 测试用例 'TC-CORE-FUNC-001' 已为端点 'POST /api/dms/{dms_instance_code}/v1/message/push/{schema}/{version}' 初始化。 2025-05-28 17:59:13,752 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-CORE-FUNC-001' (Response Body JSON Schema Validation) for endpoint 'POST /api/dms/{dms_instance_code}/v1/message/push/{schema}/{version}' 2025-05-28 17:59:13,752 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial path param for 'post__api_dms_dms_instance_code_v1_message_push_schema_version_135716': dms_instance_code = example_dms_instance_code 2025-05-28 17:59:13,752 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial path param for 'post__api_dms_dms_instance_code_v1_message_push_schema_version_135716': schema = example_schema 2025-05-28 17:59:13,752 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial path param for 'post__api_dms_dms_instance_code_v1_message_push_schema_version_135716': version = example_version 2025-05-28 17:59:13,752 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial custom header param for 'post__api_dms_dms_instance_code_v1_message_push_schema_version_135716': tenant-id = header_val_tenant-id 2025-05-28 17:59:13,752 - ddms_compliance_suite.test_orchestrator - DEBUG - Skipping standard header 'Authorization' in parameter processing for 'post__api_dms_dms_instance_code_v1_message_push_schema_version_135716'. It will be handled separately. 2025-05-28 17:59:13,752 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'post__api_dms_dms_instance_code_v1_message_push_schema_version_135716': application/json 2025-05-28 17:59:13,752 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'post__api_dms_dms_instance_code_v1_message_push_schema_version_135716': application/json 2025-05-28 17:59:13,752 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body). Properties: ['isSearchCount', 'query'] 2025-05-28 17:59:13,752 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 使用 schema 中的 'default' 值 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.isSearchCount): True 2025-05-28 17:59:13,752 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query). Properties: ['dataRegions', 'fields', 'filter', 'groupFields', 'groupFilter', 'sort'] 2025-05-28 17:59:13,752 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.dataRegions). Items schema: {'description': '数据域,如:JD、DG、TL', 'type': 'string'}, minItems: 1 2025-05-28 17:59:13,752 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.dataRegions[0]): example_string 2025-05-28 17:59:13,752 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.fields). Items schema: {'description': '查询的字段', 'type': 'string'}, minItems: 1 2025-05-28 17:59:13,752 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.fields[0]): example_string 2025-05-28 17:59:13,752 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.filter). Properties: ['key', 'logic', 'realValue', 'singleValue', 'subFilter', 'symbol'] 2025-05-28 17:59:13,752 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.filter.key): example_string 2025-05-28 17:59:13,752 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.filter.logic): example_string 2025-05-28 17:59:13,752 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.filter.realValue). Items schema: {'description': '条件值', 'type': 'object', 'properties': {}}, minItems: 1 2025-05-28 17:59:13,752 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.filter.realValue[0]). Properties: [] 2025-05-28 17:59:13,752 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.filter.singleValue). Properties: [] 2025-05-28 17:59:13,752 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.filter.subFilter). Items schema: {'type': 'string'}, minItems: 1 2025-05-28 17:59:13,752 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.filter.subFilter[0]): example_string 2025-05-28 17:59:13,752 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.filter.symbol): example_string 2025-05-28 17:59:13,752 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.groupFields). Items schema: {'description': '分组字段group by', 'type': 'string'}, minItems: 1 2025-05-28 17:59:13,752 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.groupFields[0]): example_string 2025-05-28 17:59:13,752 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.groupFilter). Properties: ['key', 'logic', 'realValue', 'singleValue', 'subFilter', 'symbol'] 2025-05-28 17:59:13,752 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.groupFilter.key): example_string 2025-05-28 17:59:13,752 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.groupFilter.logic): example_string 2025-05-28 17:59:13,752 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.groupFilter.realValue). Items schema: {'description': '条件值', 'type': 'object', 'properties': {}}, minItems: 1 2025-05-28 17:59:13,752 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.groupFilter.realValue[0]). Properties: [] 2025-05-28 17:59:13,752 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.groupFilter.singleValue). Properties: [] 2025-05-28 17:59:13,752 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.groupFilter.subFilter). Items schema: {'type': 'string'}, minItems: 1 2025-05-28 17:59:13,752 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.groupFilter.subFilter[0]): example_string 2025-05-28 17:59:13,752 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.groupFilter.symbol): example_string 2025-05-28 17:59:13,752 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.sort). Properties: [] 2025-05-28 17:59:13,752 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'post__api_dms_dms_instance_code_v1_message_push_schema_version_135716' (type: ) 2025-05-28 17:59:13,752 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {'dms_instance_code': 'example_dms_instance_code', 'schema': 'example_schema', 'version': 'example_version'} 2025-05-28 17:59:13,752 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/message/push/example_schema/example_version 2025-05-28 17:59:13,785 - testcase.TC-CORE-FUNC-001 - INFO - 响应包含JSON体,但在API规范中未找到针对状态码 200 的JSON schema。跳过schema验证。 2025-05-28 17:59:13,785 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-CORE-FUNC-001' 执行成功。 2025-05-28 17:59:13,785 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-CORE-FUNC-001' 执行完毕,状态: 通过 2025-05-28 17:59:13,785 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-SECURITY-001' for 'POST /api/dms/{dms_instance_code}/v1/message/push/{schema}/{version}' 2025-05-28 17:59:13,785 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. 2025-05-28 17:59:13,785 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['yapi_categories'] 2025-05-28 17:59:13,785 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... 2025-05-28 17:59:13,785 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... 2025-05-28 17:59:13,785 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True,丢弃 '$$ref': #/components/schemas/RdbQueryPageInput 2025-05-28 17:59:13,785 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True,丢弃 '$$ref': #/components/schemas/QueryVO 2025-05-28 17:59:13,785 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True,丢弃 '$$ref': #/components/schemas/FilterVO 2025-05-28 17:59:13,785 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True,丢弃 '$ref': #/components/schemas/FilterVO 2025-05-28 17:59:13,785 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True,丢弃 '$$ref': #/components/schemas/FilterVO 2025-05-28 17:59:13,785 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True,丢弃 '$ref': #/components/schemas/FilterVO 2025-05-28 17:59:13,785 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[0] ('dms_instance_code') 的 schema... 2025-05-28 17:59:13,785 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[1] ('schema') 的 schema... 2025-05-28 17:59:13,785 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[2] ('version') 的 schema... 2025-05-28 17:59:13,785 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[3] ('tenant-id') 的 schema... 2025-05-28 17:59:13,785 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[4] ('Authorization') 的 schema... 2025-05-28 17:59:13,785 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '201' content 'application/json' 的 schema... 2025-05-28 17:59:13,785 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 2025-05-28 17:59:13,785 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: HTTPSMandatoryCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_yapi_id', '_yapi_raw_data', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['yapi_categories']) 2025-05-28 17:59:13,785 - testcase.TC-SECURITY-001 - INFO - 测试用例 'TC-SECURITY-001' 已为端点 'POST /api/dms/{dms_instance_code}/v1/message/push/{schema}/{version}' 初始化。 2025-05-28 17:59:13,785 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-SECURITY-001' (HTTPS Protocol Mandatory Verification) for endpoint 'POST /api/dms/{dms_instance_code}/v1/message/push/{schema}/{version}' 2025-05-28 17:59:13,785 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial path param for 'post__api_dms_dms_instance_code_v1_message_push_schema_version_135716': dms_instance_code = example_dms_instance_code 2025-05-28 17:59:13,785 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial path param for 'post__api_dms_dms_instance_code_v1_message_push_schema_version_135716': schema = example_schema 2025-05-28 17:59:13,785 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial path param for 'post__api_dms_dms_instance_code_v1_message_push_schema_version_135716': version = example_version 2025-05-28 17:59:13,785 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial custom header param for 'post__api_dms_dms_instance_code_v1_message_push_schema_version_135716': tenant-id = header_val_tenant-id 2025-05-28 17:59:13,785 - ddms_compliance_suite.test_orchestrator - DEBUG - Skipping standard header 'Authorization' in parameter processing for 'post__api_dms_dms_instance_code_v1_message_push_schema_version_135716'. It will be handled separately. 2025-05-28 17:59:13,785 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'post__api_dms_dms_instance_code_v1_message_push_schema_version_135716': application/json 2025-05-28 17:59:13,785 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'post__api_dms_dms_instance_code_v1_message_push_schema_version_135716': application/json 2025-05-28 17:59:13,785 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body). Properties: ['isSearchCount', 'query'] 2025-05-28 17:59:13,785 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 使用 schema 中的 'default' 值 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.isSearchCount): True 2025-05-28 17:59:13,785 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query). Properties: ['dataRegions', 'fields', 'filter', 'groupFields', 'groupFilter', 'sort'] 2025-05-28 17:59:13,785 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.dataRegions). Items schema: {'description': '数据域,如:JD、DG、TL', 'type': 'string'}, minItems: 1 2025-05-28 17:59:13,785 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.dataRegions[0]): example_string 2025-05-28 17:59:13,785 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.fields). Items schema: {'description': '查询的字段', 'type': 'string'}, minItems: 1 2025-05-28 17:59:13,785 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.fields[0]): example_string 2025-05-28 17:59:13,785 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.filter). Properties: ['key', 'logic', 'realValue', 'singleValue', 'subFilter', 'symbol'] 2025-05-28 17:59:13,785 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.filter.key): example_string 2025-05-28 17:59:13,785 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.filter.logic): example_string 2025-05-28 17:59:13,785 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.filter.realValue). Items schema: {'description': '条件值', 'type': 'object', 'properties': {}}, minItems: 1 2025-05-28 17:59:13,785 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.filter.realValue[0]). Properties: [] 2025-05-28 17:59:13,785 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.filter.singleValue). Properties: [] 2025-05-28 17:59:13,785 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.filter.subFilter). Items schema: {'type': 'string'}, minItems: 1 2025-05-28 17:59:13,785 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.filter.subFilter[0]): example_string 2025-05-28 17:59:13,785 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.filter.symbol): example_string 2025-05-28 17:59:13,785 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.groupFields). Items schema: {'description': '分组字段group by', 'type': 'string'}, minItems: 1 2025-05-28 17:59:13,785 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.groupFields[0]): example_string 2025-05-28 17:59:13,785 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.groupFilter). Properties: ['key', 'logic', 'realValue', 'singleValue', 'subFilter', 'symbol'] 2025-05-28 17:59:13,786 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.groupFilter.key): example_string 2025-05-28 17:59:13,786 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.groupFilter.logic): example_string 2025-05-28 17:59:13,786 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.groupFilter.realValue). Items schema: {'description': '条件值', 'type': 'object', 'properties': {}}, minItems: 1 2025-05-28 17:59:13,786 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.groupFilter.realValue[0]). Properties: [] 2025-05-28 17:59:13,786 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.groupFilter.singleValue). Properties: [] 2025-05-28 17:59:13,786 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.groupFilter.subFilter). Items schema: {'type': 'string'}, minItems: 1 2025-05-28 17:59:13,786 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.groupFilter.subFilter[0]): example_string 2025-05-28 17:59:13,786 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.groupFilter.symbol): example_string 2025-05-28 17:59:13,786 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.sort). Properties: [] 2025-05-28 17:59:13,786 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'post__api_dms_dms_instance_code_v1_message_push_schema_version_135716' (type: ) 2025-05-28 17:59:13,786 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {'dms_instance_code': 'example_dms_instance_code', 'schema': 'example_schema', 'version': 'example_version'} 2025-05-28 17:59:13,786 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/message/push/example_schema/example_version 2025-05-28 17:59:13,786 - testcase.TC-SECURITY-001 - WARNING - 原始URL 'http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/message/push/example_schema/example_version' 不是HTTPS。跳过此测试用例的URL修改。 2025-05-28 17:59:13,807 - testcase.TC-SECURITY-001 - ERROR - 安全漏洞:API允许通过HTTP成功响应 (200)。 2025-05-28 17:59:13,807 - ddms_compliance_suite.test_orchestrator - DEBUG -  ❌ 测试用例 'TC-SECURITY-001' 执行失败。 2025-05-28 17:59:13,807 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-SECURITY-001' 执行完毕,状态: 失败 2025-05-28 17:59:13,807 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-ERROR-4001-QUERY' for 'POST /api/dms/{dms_instance_code}/v1/message/push/{schema}/{version}' 2025-05-28 17:59:13,807 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. 2025-05-28 17:59:13,807 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['yapi_categories'] 2025-05-28 17:59:13,807 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... 2025-05-28 17:59:13,807 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... 2025-05-28 17:59:13,807 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True,丢弃 '$$ref': #/components/schemas/RdbQueryPageInput 2025-05-28 17:59:13,807 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True,丢弃 '$$ref': #/components/schemas/QueryVO 2025-05-28 17:59:13,807 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True,丢弃 '$$ref': #/components/schemas/FilterVO 2025-05-28 17:59:13,807 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True,丢弃 '$ref': #/components/schemas/FilterVO 2025-05-28 17:59:13,807 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True,丢弃 '$$ref': #/components/schemas/FilterVO 2025-05-28 17:59:13,807 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True,丢弃 '$ref': #/components/schemas/FilterVO 2025-05-28 17:59:13,807 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[0] ('dms_instance_code') 的 schema... 2025-05-28 17:59:13,807 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[1] ('schema') 的 schema... 2025-05-28 17:59:13,807 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[2] ('version') 的 schema... 2025-05-28 17:59:13,807 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[3] ('tenant-id') 的 schema... 2025-05-28 17:59:13,807 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[4] ('Authorization') 的 schema... 2025-05-28 17:59:13,807 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '201' content 'application/json' 的 schema... 2025-05-28 17:59:13,807 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 2025-05-28 17:59:13,807 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: TypeMismatchQueryParamCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_yapi_id', '_yapi_raw_data', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['yapi_categories']) 2025-05-28 17:59:13,807 - testcase.TC-ERROR-4001-QUERY - INFO - [TC-ERROR-4001-QUERY] Initializing: Looking for a simple type query parameter for type mismatch test. 2025-05-28 17:59:13,807 - testcase.TC-ERROR-4001-QUERY - INFO - _find_first_simple_type_parameter: No suitable simple type field found for query parameters. 2025-05-28 17:59:13,807 - testcase.TC-ERROR-4001-QUERY - INFO - [TC-ERROR-4001-QUERY] No suitable simple type query parameter found for type mismatch test. 2025-05-28 17:59:13,807 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-ERROR-4001-QUERY' (Error Code 4001 - Query Parameter Type Mismatch Validation) for endpoint 'POST /api/dms/{dms_instance_code}/v1/message/push/{schema}/{version}' 2025-05-28 17:59:13,807 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial path param for 'post__api_dms_dms_instance_code_v1_message_push_schema_version_135716': dms_instance_code = example_dms_instance_code 2025-05-28 17:59:13,807 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial path param for 'post__api_dms_dms_instance_code_v1_message_push_schema_version_135716': schema = example_schema 2025-05-28 17:59:13,807 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial path param for 'post__api_dms_dms_instance_code_v1_message_push_schema_version_135716': version = example_version 2025-05-28 17:59:13,807 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial custom header param for 'post__api_dms_dms_instance_code_v1_message_push_schema_version_135716': tenant-id = header_val_tenant-id 2025-05-28 17:59:13,807 - ddms_compliance_suite.test_orchestrator - DEBUG - Skipping standard header 'Authorization' in parameter processing for 'post__api_dms_dms_instance_code_v1_message_push_schema_version_135716'. It will be handled separately. 2025-05-28 17:59:13,807 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'post__api_dms_dms_instance_code_v1_message_push_schema_version_135716': application/json 2025-05-28 17:59:13,807 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'post__api_dms_dms_instance_code_v1_message_push_schema_version_135716': application/json 2025-05-28 17:59:13,807 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body). Properties: ['isSearchCount', 'query'] 2025-05-28 17:59:13,807 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 使用 schema 中的 'default' 值 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.isSearchCount): True 2025-05-28 17:59:13,807 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query). Properties: ['dataRegions', 'fields', 'filter', 'groupFields', 'groupFilter', 'sort'] 2025-05-28 17:59:13,807 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.dataRegions). Items schema: {'description': '数据域,如:JD、DG、TL', 'type': 'string'}, minItems: 1 2025-05-28 17:59:13,807 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.dataRegions[0]): example_string 2025-05-28 17:59:13,807 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.fields). Items schema: {'description': '查询的字段', 'type': 'string'}, minItems: 1 2025-05-28 17:59:13,807 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.fields[0]): example_string 2025-05-28 17:59:13,807 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.filter). Properties: ['key', 'logic', 'realValue', 'singleValue', 'subFilter', 'symbol'] 2025-05-28 17:59:13,807 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.filter.key): example_string 2025-05-28 17:59:13,807 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.filter.logic): example_string 2025-05-28 17:59:13,807 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.filter.realValue). Items schema: {'description': '条件值', 'type': 'object', 'properties': {}}, minItems: 1 2025-05-28 17:59:13,807 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.filter.realValue[0]). Properties: [] 2025-05-28 17:59:13,807 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.filter.singleValue). Properties: [] 2025-05-28 17:59:13,807 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.filter.subFilter). Items schema: {'type': 'string'}, minItems: 1 2025-05-28 17:59:13,807 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.filter.subFilter[0]): example_string 2025-05-28 17:59:13,807 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.filter.symbol): example_string 2025-05-28 17:59:13,807 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.groupFields). Items schema: {'description': '分组字段group by', 'type': 'string'}, minItems: 1 2025-05-28 17:59:13,807 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.groupFields[0]): example_string 2025-05-28 17:59:13,807 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.groupFilter). Properties: ['key', 'logic', 'realValue', 'singleValue', 'subFilter', 'symbol'] 2025-05-28 17:59:13,807 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.groupFilter.key): example_string 2025-05-28 17:59:13,807 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.groupFilter.logic): example_string 2025-05-28 17:59:13,807 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.groupFilter.realValue). Items schema: {'description': '条件值', 'type': 'object', 'properties': {}}, minItems: 1 2025-05-28 17:59:13,807 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.groupFilter.realValue[0]). Properties: [] 2025-05-28 17:59:13,807 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.groupFilter.singleValue). Properties: [] 2025-05-28 17:59:13,807 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.groupFilter.subFilter). Items schema: {'type': 'string'}, minItems: 1 2025-05-28 17:59:13,807 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.groupFilter.subFilter[0]): example_string 2025-05-28 17:59:13,807 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.groupFilter.symbol): example_string 2025-05-28 17:59:13,807 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.sort). Properties: [] 2025-05-28 17:59:13,807 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'post__api_dms_dms_instance_code_v1_message_push_schema_version_135716' (type: ) 2025-05-28 17:59:13,807 - testcase.TC-ERROR-4001-QUERY - INFO - [TC-ERROR-4001-QUERY] No target field or original type identified for query param type mismatch. Skipping query param modification. 2025-05-28 17:59:13,807 - testcase.TC-ERROR-4001-QUERY - DEBUG - Hook: generate_headers, current keys: ['tenant-id', 'Content-Type', 'Accept'] 2025-05-28 17:59:13,807 - testcase.TC-ERROR-4001-QUERY - DEBUG - TC-ERROR-4001-QUERY is focused on query parameters, generate_request_body will not modify the body. 2025-05-28 17:59:13,807 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {'dms_instance_code': 'example_dms_instance_code', 'schema': 'example_schema', 'version': 'example_version'} 2025-05-28 17:59:13,807 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/message/push/example_schema/example_version 2025-05-28 17:59:13,807 - testcase.TC-ERROR-4001-QUERY - DEBUG - Hook: modify_request_url, original URL: http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/message/push/example_schema/example_version 2025-05-28 17:59:13,807 - testcase.TC-ERROR-4001-QUERY - DEBUG - Test case 'TC-ERROR-4001-QUERY' did not modify the URL via modify_request_url hook. 2025-05-28 17:59:13,808 - testcase.TC-ERROR-4001-QUERY - DEBUG - Hook: validate_request_url, url: http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/message/push/example_schema/example_version 2025-05-28 17:59:13,808 - testcase.TC-ERROR-4001-QUERY - DEBUG - Hook: validate_request_headers, header keys: ['tenant-id', 'Content-Type', 'Accept'] 2025-05-28 17:59:13,808 - testcase.TC-ERROR-4001-QUERY - DEBUG - Hook: validate_request_body, body type: 2025-05-28 17:59:13,825 - testcase.TC-ERROR-4001-QUERY - INFO - [TC-ERROR-4001-QUERY] Skipped type mismatch (query) validation: No target query parameter was identified. 2025-05-28 17:59:13,825 - testcase.TC-ERROR-4001-QUERY - DEBUG - Hook: check_performance, elapsed: 0.016968965530395508 2025-05-28 17:59:13,825 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-ERROR-4001-QUERY' 执行成功。 2025-05-28 17:59:13,825 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-ERROR-4001-QUERY' 执行完毕,状态: 通过 2025-05-28 17:59:13,825 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-ERROR-4001-BODY' for 'POST /api/dms/{dms_instance_code}/v1/message/push/{schema}/{version}' 2025-05-28 17:59:13,825 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. 2025-05-28 17:59:13,825 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['yapi_categories'] 2025-05-28 17:59:13,825 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... 2025-05-28 17:59:13,825 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... 2025-05-28 17:59:13,825 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True,丢弃 '$$ref': #/components/schemas/RdbQueryPageInput 2025-05-28 17:59:13,825 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True,丢弃 '$$ref': #/components/schemas/QueryVO 2025-05-28 17:59:13,825 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True,丢弃 '$$ref': #/components/schemas/FilterVO 2025-05-28 17:59:13,825 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True,丢弃 '$ref': #/components/schemas/FilterVO 2025-05-28 17:59:13,825 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True,丢弃 '$$ref': #/components/schemas/FilterVO 2025-05-28 17:59:13,825 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True,丢弃 '$ref': #/components/schemas/FilterVO 2025-05-28 17:59:13,825 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[0] ('dms_instance_code') 的 schema... 2025-05-28 17:59:13,825 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[1] ('schema') 的 schema... 2025-05-28 17:59:13,825 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[2] ('version') 的 schema... 2025-05-28 17:59:13,825 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[3] ('tenant-id') 的 schema... 2025-05-28 17:59:13,825 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[4] ('Authorization') 的 schema... 2025-05-28 17:59:13,825 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '201' content 'application/json' 的 schema... 2025-05-28 17:59:13,825 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 2025-05-28 17:59:13,825 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: TypeMismatchBodyCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_yapi_id', '_yapi_raw_data', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['yapi_categories']) 2025-05-28 17:59:13,825 - testcase.TC-ERROR-4001-BODY - INFO - [TC-ERROR-4001-BODY] Initializing: Looking for a simple type field in request body for type mismatch test. 2025-05-28 17:59:13,825 - testcase.TC-ERROR-4001-BODY - DEBUG - Found request body schema under content type: application/json 2025-05-28 17:59:13,825 - testcase.TC-ERROR-4001-BODY - DEBUG - _find_simple_type_field_in_schema: Searching for simple type field in 'request body' schema... 2025-05-28 17:59:13,825 - testcase.TC-ERROR-4001-BODY - INFO - Found simple type field: Path=isSearchCount, Type=boolean 2025-05-28 17:59:13,825 - testcase.TC-ERROR-4001-BODY - INFO - _find_simple_type_field_in_schema: Found simple type field in 'request body': Path=isSearchCount, Type=boolean 2025-05-28 17:59:13,825 - testcase.TC-ERROR-4001-BODY - INFO - [TC-ERROR-4001-BODY] Target field for type mismatch (body): isSearchCount, Original Type: boolean 2025-05-28 17:59:13,825 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-ERROR-4001-BODY' (Error Code 4001 - Request Body Type Mismatch Validation) for endpoint 'POST /api/dms/{dms_instance_code}/v1/message/push/{schema}/{version}' 2025-05-28 17:59:13,825 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial path param for 'post__api_dms_dms_instance_code_v1_message_push_schema_version_135716': dms_instance_code = example_dms_instance_code 2025-05-28 17:59:13,825 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial path param for 'post__api_dms_dms_instance_code_v1_message_push_schema_version_135716': schema = example_schema 2025-05-28 17:59:13,825 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial path param for 'post__api_dms_dms_instance_code_v1_message_push_schema_version_135716': version = example_version 2025-05-28 17:59:13,825 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial custom header param for 'post__api_dms_dms_instance_code_v1_message_push_schema_version_135716': tenant-id = header_val_tenant-id 2025-05-28 17:59:13,825 - ddms_compliance_suite.test_orchestrator - DEBUG - Skipping standard header 'Authorization' in parameter processing for 'post__api_dms_dms_instance_code_v1_message_push_schema_version_135716'. It will be handled separately. 2025-05-28 17:59:13,825 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'post__api_dms_dms_instance_code_v1_message_push_schema_version_135716': application/json 2025-05-28 17:59:13,825 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'post__api_dms_dms_instance_code_v1_message_push_schema_version_135716': application/json 2025-05-28 17:59:13,825 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body). Properties: ['isSearchCount', 'query'] 2025-05-28 17:59:13,825 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 使用 schema 中的 'default' 值 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.isSearchCount): True 2025-05-28 17:59:13,825 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query). Properties: ['dataRegions', 'fields', 'filter', 'groupFields', 'groupFilter', 'sort'] 2025-05-28 17:59:13,825 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.dataRegions). Items schema: {'description': '数据域,如:JD、DG、TL', 'type': 'string'}, minItems: 1 2025-05-28 17:59:13,825 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.dataRegions[0]): example_string 2025-05-28 17:59:13,825 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.fields). Items schema: {'description': '查询的字段', 'type': 'string'}, minItems: 1 2025-05-28 17:59:13,825 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.fields[0]): example_string 2025-05-28 17:59:13,825 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.filter). Properties: ['key', 'logic', 'realValue', 'singleValue', 'subFilter', 'symbol'] 2025-05-28 17:59:13,825 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.filter.key): example_string 2025-05-28 17:59:13,825 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.filter.logic): example_string 2025-05-28 17:59:13,825 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.filter.realValue). Items schema: {'description': '条件值', 'type': 'object', 'properties': {}}, minItems: 1 2025-05-28 17:59:13,825 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.filter.realValue[0]). Properties: [] 2025-05-28 17:59:13,825 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.filter.singleValue). Properties: [] 2025-05-28 17:59:13,825 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.filter.subFilter). Items schema: {'type': 'string'}, minItems: 1 2025-05-28 17:59:13,825 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.filter.subFilter[0]): example_string 2025-05-28 17:59:13,825 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.filter.symbol): example_string 2025-05-28 17:59:13,825 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.groupFields). Items schema: {'description': '分组字段group by', 'type': 'string'}, minItems: 1 2025-05-28 17:59:13,825 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.groupFields[0]): example_string 2025-05-28 17:59:13,825 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.groupFilter). Properties: ['key', 'logic', 'realValue', 'singleValue', 'subFilter', 'symbol'] 2025-05-28 17:59:13,825 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.groupFilter.key): example_string 2025-05-28 17:59:13,825 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.groupFilter.logic): example_string 2025-05-28 17:59:13,825 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.groupFilter.realValue). Items schema: {'description': '条件值', 'type': 'object', 'properties': {}}, minItems: 1 2025-05-28 17:59:13,825 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.groupFilter.realValue[0]). Properties: [] 2025-05-28 17:59:13,825 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.groupFilter.singleValue). Properties: [] 2025-05-28 17:59:13,825 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.groupFilter.subFilter). Items schema: {'type': 'string'}, minItems: 1 2025-05-28 17:59:13,825 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.groupFilter.subFilter[0]): example_string 2025-05-28 17:59:13,825 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.groupFilter.symbol): example_string 2025-05-28 17:59:13,825 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.sort). Properties: [] 2025-05-28 17:59:13,825 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'post__api_dms_dms_instance_code_v1_message_push_schema_version_135716' (type: ) 2025-05-28 17:59:13,825 - testcase.TC-ERROR-4001-BODY - DEBUG - TC-ERROR-4001-BODY is focused on request body, generate_query_params will not modify query parameters. 2025-05-28 17:59:13,825 - testcase.TC-ERROR-4001-BODY - DEBUG - Hook: generate_headers, current keys: ['tenant-id', 'Content-Type', 'Accept'] 2025-05-28 17:59:13,825 - testcase.TC-ERROR-4001-BODY - DEBUG - [TC-ERROR-4001-BODY] Preparing to modify request body for type mismatch. Target path: ['isSearchCount'], Original type: boolean 2025-05-28 17:59:13,825 - testcase.TC-ERROR-4001-BODY - INFO - [TC-ERROR-4001-BODY] Generated mismatched value 'not-a-boolean' for original type 'boolean' at path 'isSearchCount'. 2025-05-28 17:59:13,825 - ddms_compliance_suite.utils.schema_utils - INFO - [Util] 在路径 isSearchCount (键 'isSearchCount') 处设置值为 'not-a-boolean' 2025-05-28 17:59:13,825 - testcase.TC-ERROR-4001-BODY - DEBUG - [TC-ERROR-4001-BODY] Successfully set mismatched value at path using util_set_value_at_path. 2025-05-28 17:59:13,825 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {'dms_instance_code': 'example_dms_instance_code', 'schema': 'example_schema', 'version': 'example_version'} 2025-05-28 17:59:13,825 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/message/push/example_schema/example_version 2025-05-28 17:59:13,825 - testcase.TC-ERROR-4001-BODY - DEBUG - Hook: modify_request_url, original URL: http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/message/push/example_schema/example_version 2025-05-28 17:59:13,825 - testcase.TC-ERROR-4001-BODY - DEBUG - Test case 'TC-ERROR-4001-BODY' did not modify the URL via modify_request_url hook. 2025-05-28 17:59:13,825 - testcase.TC-ERROR-4001-BODY - DEBUG - Hook: validate_request_url, url: http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/message/push/example_schema/example_version 2025-05-28 17:59:13,825 - testcase.TC-ERROR-4001-BODY - DEBUG - Hook: validate_request_headers, header keys: ['tenant-id', 'Content-Type', 'Accept'] 2025-05-28 17:59:13,825 - testcase.TC-ERROR-4001-BODY - DEBUG - Hook: validate_request_body, body type: DEBUG: curlify generated command (raw): curl -H 'User-Agent: python-requests/2.32.3' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'tenant-id: header_val_tenant-id' -H 'Content-Type: application/json' -H 'Content-Length: 477' -d '{"isSearchCount": true, "query": {"dataRegions": ["example_string"], "fields": ["example_string"], "filter": {"key": "example_string", "logic": "example_string", "realValue": [{}], "singleValue": {}, "subFilter": ["example_string"], "symbol": "example_string"}, "groupFields": ["example_string"], "groupFilter": {"key": "example_string", "logic": "example_string", "realValue": [{}], "singleValue": {}, "subFilter": ["example_string"], "symbol": "example_string"}, "sort": {}}}' --insecure http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/message/push/example_schema/example_version DEBUG: curlify generated command (repr): 'curl -H \'User-Agent: python-requests/2.32.3\' -H \'Accept-Encoding: gzip, deflate, br, zstd\' -H \'Accept: application/json\' -H \'Connection: keep-alive\' -H \'tenant-id: header_val_tenant-id\' -H \'Content-Type: application/json\' -H \'Content-Length: 477\' -d \'{"isSearchCount": true, "query": {"dataRegions": ["example_string"], "fields": ["example_string"], "filter": {"key": "example_string", "logic": "example_string", "realValue": [{}], "singleValue": {}, "subFilter": ["example_string"], "symbol": "example_string"}, "groupFields": ["example_string"], "groupFilter": {"key": "example_string", "logic": "example_string", "realValue": [{}], "singleValue": {}, "subFilter": ["example_string"], "symbol": "example_string"}, "sort": {}}}\' --insecure http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/message/push/example_schema/example_version' DEBUG: curlify generated command (raw): curl -H 'User-Agent: python-requests/2.32.3' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'tenant-id: header_val_tenant-id' -H 'Content-Type: application/json' -H 'Content-Length: 477' -d '{"isSearchCount": true, "query": {"dataRegions": ["example_string"], "fields": ["example_string"], "filter": {"key": "example_string", "logic": "example_string", "realValue": [{}], "singleValue": {}, "subFilter": ["example_string"], "symbol": "example_string"}, "groupFields": ["example_string"], "groupFilter": {"key": "example_string", "logic": "example_string", "realValue": [{}], "singleValue": {}, "subFilter": ["example_string"], "symbol": "example_string"}, "sort": {}}}' --insecure http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/message/push/example_schema/example_version DEBUG: curlify generated command (repr): 'curl -H \'User-Agent: python-requests/2.32.3\' -H \'Accept-Encoding: gzip, deflate, br, zstd\' -H \'Accept: application/json\' -H \'Connection: keep-alive\' -H \'tenant-id: header_val_tenant-id\' -H \'Content-Type: application/json\' -H \'Content-Length: 477\' -d \'{"isSearchCount": true, "query": {"dataRegions": ["example_string"], "fields": ["example_string"], "filter": {"key": "example_string", "logic": "example_string", "realValue": [{}], "singleValue": {}, "subFilter": ["example_string"], "symbol": "example_string"}, "groupFields": ["example_string"], "groupFilter": {"key": "example_string", "logic": "example_string", "realValue": [{}], "singleValue": {}, "subFilter": ["example_string"], "symbol": "example_string"}, "sort": {}}}\' --insecure http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/message/push/example_schema/example_version' DEBUG: curlify generated command (raw): curl -H 'User-Agent: python-requests/2.32.3' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'tenant-id: header_val_tenant-id' -H 'Content-Type: application/json' -H 'Content-Length: 477' -d '{"isSearchCount": true, "query": {"dataRegions": ["example_string"], "fields": ["example_string"], "filter": {"key": "example_string", "logic": "example_string", "realValue": [{}], "singleValue": {}, "subFilter": ["example_string"], "symbol": "example_string"}, "groupFields": ["example_string"], "groupFilter": {"key": "example_string", "logic": "example_string", "realValue": [{}], "singleValue": {}, "subFilter": ["example_string"], "symbol": "example_string"}, "sort": {}}}' --insecure http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/message/push/example_schema/example_version DEBUG: curlify generated command (repr): 'curl -H \'User-Agent: python-requests/2.32.3\' -H \'Accept-Encoding: gzip, deflate, br, zstd\' -H \'Accept: application/json\' -H \'Connection: keep-alive\' -H \'tenant-id: header_val_tenant-id\' -H \'Content-Type: application/json\' -H \'Content-Length: 477\' -d \'{"isSearchCount": true, "query": {"dataRegions": ["example_string"], "fields": ["example_string"], "filter": {"key": "example_string", "logic": "example_string", "realValue": [{}], "singleValue": {}, "subFilter": ["example_string"], "symbol": "example_string"}, "groupFields": ["example_string"], "groupFilter": {"key": "example_string", "logic": "example_string", "realValue": [{}], "singleValue": {}, "subFilter": ["example_string"], "symbol": "example_string"}, "sort": {}}}\' --insecure http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/message/push/example_schema/example_version' DEBUG: curlify generated command (raw): curl -H 'User-Agent: python-requests/2.32.3' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'tenant-id: header_val_tenant-id' -H 'Content-Type: application/json' -H 'Content-Length: 477' -d '{"isSearchCount": true, "query": {"dataRegions": ["example_string"], "fields": ["example_string"], "filter": {"key": "example_string", "logic": "example_string", "realValue": [{}], "singleValue": {}, "subFilter": ["example_string"], "symbol": "example_string"}, "groupFields": ["example_string"], "groupFilter": {"key": "example_string", "logic": "example_string", "realValue": [{}], "singleValue": {}, "subFilter": ["example_string"], "symbol": "example_string"}, "sort": {}}}' --insecure http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/message/push/example_schema/example_version DEBUG: curlify generated command (repr): 'curl -H \'User-Agent: python-requests/2.32.3\' -H \'Accept-Encoding: gzip, deflate, br, zstd\' -H \'Accept: application/json\' -H \'Connection: keep-alive\' -H \'tenant-id: header_val_tenant-id\' -H \'Content-Type: application/json\' -H \'Content-Length: 477\' -d \'{"isSearchCount": true, "query": {"dataRegions": ["example_string"], "fields": ["example_string"], "filter": {"key": "example_string", "logic": "example_string", "realValue": [{}], "singleValue": {}, "subFilter": ["example_string"], "symbol": "example_string"}, "groupFields": ["example_string"], "groupFilter": {"key": "example_string", "logic": "example_string", "realValue": [{}], "singleValue": {}, "subFilter": ["example_string"], "symbol": "example_string"}, "sort": {}}}\' --insecure http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/message/push/example_schema/example_version' 2025-05-28 17:59:13,843 - testcase.TC-ERROR-4001-BODY - WARNING - TC-ERROR-4001-BODY: Failed. 当请求体字段 'isSearchCount' 类型不匹配时,期望API返回状态码在 [400, 422] 中,或返回4xx客户端错误且业务码为 '4001'. 实际收到状态码 200. 响应体中的业务码 ('code') 为 '67'. (Field: body.isSearchCount) 2025-05-28 17:59:13,843 - testcase.TC-ERROR-4001-BODY - DEBUG - Hook: check_performance, elapsed: 0.016962051391601562 2025-05-28 17:59:13,843 - ddms_compliance_suite.test_orchestrator - DEBUG -  ❌ 测试用例 'TC-ERROR-4001-BODY' 执行失败。 2025-05-28 17:59:13,843 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-ERROR-4001-BODY' 执行完毕,状态: 失败 2025-05-28 17:59:13,843 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-ERROR-4003-BODY' for 'POST /api/dms/{dms_instance_code}/v1/message/push/{schema}/{version}' 2025-05-28 17:59:13,843 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. 2025-05-28 17:59:13,843 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['yapi_categories'] 2025-05-28 17:59:13,843 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... 2025-05-28 17:59:13,843 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... 2025-05-28 17:59:13,843 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True,丢弃 '$$ref': #/components/schemas/RdbQueryPageInput 2025-05-28 17:59:13,843 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True,丢弃 '$$ref': #/components/schemas/QueryVO 2025-05-28 17:59:13,843 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True,丢弃 '$$ref': #/components/schemas/FilterVO 2025-05-28 17:59:13,843 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True,丢弃 '$ref': #/components/schemas/FilterVO 2025-05-28 17:59:13,843 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True,丢弃 '$$ref': #/components/schemas/FilterVO 2025-05-28 17:59:13,843 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True,丢弃 '$ref': #/components/schemas/FilterVO 2025-05-28 17:59:13,843 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[0] ('dms_instance_code') 的 schema... 2025-05-28 17:59:13,843 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[1] ('schema') 的 schema... 2025-05-28 17:59:13,843 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[2] ('version') 的 schema... 2025-05-28 17:59:13,843 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[3] ('tenant-id') 的 schema... 2025-05-28 17:59:13,843 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[4] ('Authorization') 的 schema... 2025-05-28 17:59:13,843 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '201' content 'application/json' 的 schema... 2025-05-28 17:59:13,843 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 2025-05-28 17:59:13,843 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: MissingRequiredFieldBodyCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_yapi_id', '_yapi_raw_data', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['yapi_categories']) 2025-05-28 17:59:13,843 - ddms_compliance_suite.utils.schema_utils - DEBUG - [Util] 递归查找路径: [], 当前层级必填字段: [], 属性: ['isSearchCount', 'query'] 2025-05-28 17:59:13,843 - ddms_compliance_suite.utils.schema_utils - DEBUG - [Util] 在路径 root 未通过任何策略找到可移除的必填字段。 2025-05-28 17:59:13,843 - testcase.TC-ERROR-4003-BODY - INFO - No removable (required) field path found in 'request body' schema. 2025-05-28 17:59:13,843 - testcase.TC-ERROR-4003-BODY - INFO - 在请求体 schema 中未找到可用于测试 "必填字段缺失" 的字段(通过基类方法)。 2025-05-28 17:59:13,843 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-ERROR-4003-BODY' (Error Code 4003 - Missing Required Request Body Field Validation) for endpoint 'POST /api/dms/{dms_instance_code}/v1/message/push/{schema}/{version}' 2025-05-28 17:59:13,843 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial path param for 'post__api_dms_dms_instance_code_v1_message_push_schema_version_135716': dms_instance_code = example_dms_instance_code 2025-05-28 17:59:13,843 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial path param for 'post__api_dms_dms_instance_code_v1_message_push_schema_version_135716': schema = example_schema 2025-05-28 17:59:13,843 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial path param for 'post__api_dms_dms_instance_code_v1_message_push_schema_version_135716': version = example_version 2025-05-28 17:59:13,843 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial custom header param for 'post__api_dms_dms_instance_code_v1_message_push_schema_version_135716': tenant-id = header_val_tenant-id 2025-05-28 17:59:13,843 - ddms_compliance_suite.test_orchestrator - DEBUG - Skipping standard header 'Authorization' in parameter processing for 'post__api_dms_dms_instance_code_v1_message_push_schema_version_135716'. It will be handled separately. 2025-05-28 17:59:13,843 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'post__api_dms_dms_instance_code_v1_message_push_schema_version_135716': application/json 2025-05-28 17:59:13,843 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'post__api_dms_dms_instance_code_v1_message_push_schema_version_135716': application/json 2025-05-28 17:59:13,843 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body). Properties: ['isSearchCount', 'query'] 2025-05-28 17:59:13,843 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 使用 schema 中的 'default' 值 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.isSearchCount): True 2025-05-28 17:59:13,843 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query). Properties: ['dataRegions', 'fields', 'filter', 'groupFields', 'groupFilter', 'sort'] 2025-05-28 17:59:13,843 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.dataRegions). Items schema: {'description': '数据域,如:JD、DG、TL', 'type': 'string'}, minItems: 1 2025-05-28 17:59:13,843 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.dataRegions[0]): example_string 2025-05-28 17:59:13,843 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.fields). Items schema: {'description': '查询的字段', 'type': 'string'}, minItems: 1 2025-05-28 17:59:13,843 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.fields[0]): example_string 2025-05-28 17:59:13,843 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.filter). Properties: ['key', 'logic', 'realValue', 'singleValue', 'subFilter', 'symbol'] 2025-05-28 17:59:13,843 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.filter.key): example_string 2025-05-28 17:59:13,843 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.filter.logic): example_string 2025-05-28 17:59:13,843 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.filter.realValue). Items schema: {'description': '条件值', 'type': 'object', 'properties': {}}, minItems: 1 2025-05-28 17:59:13,843 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.filter.realValue[0]). Properties: [] 2025-05-28 17:59:13,843 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.filter.singleValue). Properties: [] 2025-05-28 17:59:13,843 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.filter.subFilter). Items schema: {'type': 'string'}, minItems: 1 2025-05-28 17:59:13,843 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.filter.subFilter[0]): example_string 2025-05-28 17:59:13,843 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.filter.symbol): example_string 2025-05-28 17:59:13,843 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.groupFields). Items schema: {'description': '分组字段group by', 'type': 'string'}, minItems: 1 2025-05-28 17:59:13,843 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.groupFields[0]): example_string 2025-05-28 17:59:13,843 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.groupFilter). Properties: ['key', 'logic', 'realValue', 'singleValue', 'subFilter', 'symbol'] 2025-05-28 17:59:13,843 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.groupFilter.key): example_string 2025-05-28 17:59:13,843 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.groupFilter.logic): example_string 2025-05-28 17:59:13,843 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.groupFilter.realValue). Items schema: {'description': '条件值', 'type': 'object', 'properties': {}}, minItems: 1 2025-05-28 17:59:13,843 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.groupFilter.realValue[0]). Properties: [] 2025-05-28 17:59:13,843 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.groupFilter.singleValue). Properties: [] 2025-05-28 17:59:13,843 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.groupFilter.subFilter). Items schema: {'type': 'string'}, minItems: 1 2025-05-28 17:59:13,843 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.groupFilter.subFilter[0]): example_string 2025-05-28 17:59:13,843 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.groupFilter.symbol): example_string 2025-05-28 17:59:13,843 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.sort). Properties: [] 2025-05-28 17:59:13,843 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'post__api_dms_dms_instance_code_v1_message_push_schema_version_135716' (type: ) 2025-05-28 17:59:13,843 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {'dms_instance_code': 'example_dms_instance_code', 'schema': 'example_schema', 'version': 'example_version'} 2025-05-28 17:59:13,843 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/message/push/example_schema/example_version 2025-05-28 17:59:13,860 - testcase.TC-ERROR-4003-BODY - INFO - 由于未识别到可移除的必填请求体字段,跳过此测试用例的验证。 2025-05-28 17:59:13,860 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-ERROR-4003-BODY' 执行成功。 2025-05-28 17:59:13,860 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-ERROR-4003-BODY' 执行完毕,状态: 通过 2025-05-28 17:59:13,860 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-ERROR-4003-QUERY' for 'POST /api/dms/{dms_instance_code}/v1/message/push/{schema}/{version}' 2025-05-28 17:59:13,860 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. 2025-05-28 17:59:13,860 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['yapi_categories'] 2025-05-28 17:59:13,860 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... 2025-05-28 17:59:13,860 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... 2025-05-28 17:59:13,860 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True,丢弃 '$$ref': #/components/schemas/RdbQueryPageInput 2025-05-28 17:59:13,860 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True,丢弃 '$$ref': #/components/schemas/QueryVO 2025-05-28 17:59:13,860 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True,丢弃 '$$ref': #/components/schemas/FilterVO 2025-05-28 17:59:13,860 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True,丢弃 '$ref': #/components/schemas/FilterVO 2025-05-28 17:59:13,860 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True,丢弃 '$$ref': #/components/schemas/FilterVO 2025-05-28 17:59:13,860 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True,丢弃 '$ref': #/components/schemas/FilterVO 2025-05-28 17:59:13,860 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[0] ('dms_instance_code') 的 schema... 2025-05-28 17:59:13,860 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[1] ('schema') 的 schema... 2025-05-28 17:59:13,860 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[2] ('version') 的 schema... 2025-05-28 17:59:13,860 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[3] ('tenant-id') 的 schema... 2025-05-28 17:59:13,860 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[4] ('Authorization') 的 schema... 2025-05-28 17:59:13,860 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '201' content 'application/json' 的 schema... 2025-05-28 17:59:13,860 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 2025-05-28 17:59:13,860 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: MissingRequiredFieldQueryCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_yapi_id', '_yapi_raw_data', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['yapi_categories']) 2025-05-28 17:59:13,860 - testcase.TC-ERROR-4003-QUERY - INFO - No required 'query' parameter found in endpoint_spec. 2025-05-28 17:59:13,860 - testcase.TC-ERROR-4003-QUERY - INFO - 测试用例 TC-ERROR-4003-QUERY (Error Code 4003 - Missing Required Query Parameter Validation) 已针对端点 'POST /api/dms/{dms_instance_code}/v1/message/push/{schema}/{version}' 初始化。Target param to remove: None 2025-05-28 17:59:13,860 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-ERROR-4003-QUERY' (Error Code 4003 - Missing Required Query Parameter Validation) for endpoint 'POST /api/dms/{dms_instance_code}/v1/message/push/{schema}/{version}' 2025-05-28 17:59:13,860 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial path param for 'post__api_dms_dms_instance_code_v1_message_push_schema_version_135716': dms_instance_code = example_dms_instance_code 2025-05-28 17:59:13,860 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial path param for 'post__api_dms_dms_instance_code_v1_message_push_schema_version_135716': schema = example_schema 2025-05-28 17:59:13,860 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial path param for 'post__api_dms_dms_instance_code_v1_message_push_schema_version_135716': version = example_version 2025-05-28 17:59:13,860 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial custom header param for 'post__api_dms_dms_instance_code_v1_message_push_schema_version_135716': tenant-id = header_val_tenant-id 2025-05-28 17:59:13,860 - ddms_compliance_suite.test_orchestrator - DEBUG - Skipping standard header 'Authorization' in parameter processing for 'post__api_dms_dms_instance_code_v1_message_push_schema_version_135716'. It will be handled separately. 2025-05-28 17:59:13,860 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'post__api_dms_dms_instance_code_v1_message_push_schema_version_135716': application/json 2025-05-28 17:59:13,860 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'post__api_dms_dms_instance_code_v1_message_push_schema_version_135716': application/json 2025-05-28 17:59:13,860 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body). Properties: ['isSearchCount', 'query'] 2025-05-28 17:59:13,860 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 使用 schema 中的 'default' 值 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.isSearchCount): True 2025-05-28 17:59:13,860 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query). Properties: ['dataRegions', 'fields', 'filter', 'groupFields', 'groupFilter', 'sort'] 2025-05-28 17:59:13,860 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.dataRegions). Items schema: {'description': '数据域,如:JD、DG、TL', 'type': 'string'}, minItems: 1 2025-05-28 17:59:13,860 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.dataRegions[0]): example_string 2025-05-28 17:59:13,860 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.fields). Items schema: {'description': '查询的字段', 'type': 'string'}, minItems: 1 2025-05-28 17:59:13,860 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.fields[0]): example_string 2025-05-28 17:59:13,860 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.filter). Properties: ['key', 'logic', 'realValue', 'singleValue', 'subFilter', 'symbol'] 2025-05-28 17:59:13,860 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.filter.key): example_string 2025-05-28 17:59:13,860 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.filter.logic): example_string 2025-05-28 17:59:13,860 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.filter.realValue). Items schema: {'description': '条件值', 'type': 'object', 'properties': {}}, minItems: 1 2025-05-28 17:59:13,860 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.filter.realValue[0]). Properties: [] 2025-05-28 17:59:13,860 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.filter.singleValue). Properties: [] 2025-05-28 17:59:13,860 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.filter.subFilter). Items schema: {'type': 'string'}, minItems: 1 2025-05-28 17:59:13,860 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.filter.subFilter[0]): example_string 2025-05-28 17:59:13,860 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.filter.symbol): example_string 2025-05-28 17:59:13,860 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.groupFields). Items schema: {'description': '分组字段group by', 'type': 'string'}, minItems: 1 2025-05-28 17:59:13,860 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.groupFields[0]): example_string 2025-05-28 17:59:13,860 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.groupFilter). Properties: ['key', 'logic', 'realValue', 'singleValue', 'subFilter', 'symbol'] 2025-05-28 17:59:13,860 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.groupFilter.key): example_string 2025-05-28 17:59:13,860 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.groupFilter.logic): example_string 2025-05-28 17:59:13,860 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.groupFilter.realValue). Items schema: {'description': '条件值', 'type': 'object', 'properties': {}}, minItems: 1 2025-05-28 17:59:13,860 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.groupFilter.realValue[0]). Properties: [] 2025-05-28 17:59:13,860 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.groupFilter.singleValue). Properties: [] 2025-05-28 17:59:13,860 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.groupFilter.subFilter). Items schema: {'type': 'string'}, minItems: 1 2025-05-28 17:59:13,860 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.groupFilter.subFilter[0]): example_string 2025-05-28 17:59:13,860 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.groupFilter.symbol): example_string 2025-05-28 17:59:13,860 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.sort). Properties: [] 2025-05-28 17:59:13,861 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'post__api_dms_dms_instance_code_v1_message_push_schema_version_135716' (type: ) 2025-05-28 17:59:13,861 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {'dms_instance_code': 'example_dms_instance_code', 'schema': 'example_schema', 'version': 'example_version'} 2025-05-28 17:59:13,861 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/message/push/example_schema/example_version 2025-05-28 17:59:13,878 - testcase.TC-ERROR-4003-QUERY - INFO - 由于未识别到可移除的必填查询参数,跳过此测试用例。 2025-05-28 17:59:13,878 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-ERROR-4003-QUERY' 执行成功。 2025-05-28 17:59:13,878 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-ERROR-4003-QUERY' 执行完毕,状态: 通过 2025-05-28 17:59:13,878 - ddms_compliance_suite.test_orchestrator - INFO - 端点 'POST /api/dms/{dms_instance_code}/v1/message/push/{schema}/{version}' 测试完成,最终状态: 失败 2025-05-28 17:59:13,878 - ddms_compliance_suite.test_orchestrator - INFO - 开始为端点测试: POST /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version} (地质单元列表查询) 2025-05-28 17:59:13,878 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-STATUS-001' 适用于端点 'POST /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}'。 2025-05-28 17:59:13,878 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-CORE-FUNC-001' 适用于端点 'POST /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}'。 2025-05-28 17:59:13,878 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-SECURITY-001' 适用于端点 'POST /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}'。 2025-05-28 17:59:13,878 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4001-QUERY' 适用于端点 'POST /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}'。 2025-05-28 17:59:13,878 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4001-BODY' 适用于端点 'POST /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}'。 2025-05-28 17:59:13,878 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4003-BODY' 适用于端点 'POST /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}'。 2025-05-28 17:59:13,878 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4003-QUERY' 适用于端点 'POST /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}'。 2025-05-28 17:59:13,878 - ddms_compliance_suite.test_orchestrator - INFO - 端点 'POST /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}' 发现了 7 个适用的测试用例 (已排序): ['TC-STATUS-001', 'TC-CORE-FUNC-001', 'TC-SECURITY-001', 'TC-ERROR-4001-QUERY', 'TC-ERROR-4001-BODY', 'TC-ERROR-4003-BODY', 'TC-ERROR-4003-QUERY'] 2025-05-28 17:59:13,878 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-STATUS-001' for 'POST /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}' 2025-05-28 17:59:13,878 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. 2025-05-28 17:59:13,878 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['yapi_categories'] 2025-05-28 17:59:13,878 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... 2025-05-28 17:59:13,878 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... 2025-05-28 17:59:13,878 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True,丢弃 '$$ref': #/components/schemas/RdbQueryPageInput 2025-05-28 17:59:13,878 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True,丢弃 '$$ref': #/components/schemas/QueryVO 2025-05-28 17:59:13,878 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True,丢弃 '$$ref': #/components/schemas/FilterVO 2025-05-28 17:59:13,878 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True,丢弃 '$ref': #/components/schemas/FilterVO 2025-05-28 17:59:13,878 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True,丢弃 '$$ref': #/components/schemas/FilterVO 2025-05-28 17:59:13,879 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True,丢弃 '$ref': #/components/schemas/FilterVO 2025-05-28 17:59:13,879 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[0] ('dms_instance_code') 的 schema... 2025-05-28 17:59:13,879 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[1] ('version') 的 schema... 2025-05-28 17:59:13,879 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[2] ('pageNo') 的 schema... 2025-05-28 17:59:13,879 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[3] ('pageSize') 的 schema... 2025-05-28 17:59:13,879 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[4] ('tenant-id') 的 schema... 2025-05-28 17:59:13,879 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[5] ('Authorization') 的 schema... 2025-05-28 17:59:13,879 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '201' content 'application/json' 的 schema... 2025-05-28 17:59:13,879 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 2025-05-28 17:59:13,879 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: StatusCode200Check 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_yapi_id', '_yapi_raw_data', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['yapi_categories']) 2025-05-28 17:59:13,879 - testcase.TC-STATUS-001 - INFO - 测试用例 TC-STATUS-001 (基本状态码 200 检查) 已针对端点 'POST /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}' 初始化。 2025-05-28 17:59:13,879 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-STATUS-001' (基本状态码 200 检查) for endpoint 'POST /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}' 2025-05-28 17:59:13,879 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial path param for 'post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751': dms_instance_code = example_dms_instance_code 2025-05-28 17:59:13,879 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial path param for 'post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751': version = 1.0.0 2025-05-28 17:59:13,879 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial query param for 'post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751': pageNo = query_val_pageNo 2025-05-28 17:59:13,879 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial query param for 'post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751': pageSize = query_val_pageSize 2025-05-28 17:59:13,879 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial custom header param for 'post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751': tenant-id = header_val_tenant-id 2025-05-28 17:59:13,879 - ddms_compliance_suite.test_orchestrator - DEBUG - Skipping standard header 'Authorization' in parameter processing for 'post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751'. It will be handled separately. 2025-05-28 17:59:13,879 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751': application/json 2025-05-28 17:59:13,879 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751': application/json 2025-05-28 17:59:13,880 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body). Properties: ['isSearchCount', 'query'] 2025-05-28 17:59:13,880 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 使用 schema 中的 'default' 值 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.isSearchCount): True 2025-05-28 17:59:13,880 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query). Properties: ['dataRegions', 'fields', 'filter', 'groupFields', 'groupFilter', 'sort'] 2025-05-28 17:59:13,880 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.dataRegions). Items schema: {'description': '数据域,如:JD、DG、TL', 'type': 'string'}, minItems: 1 2025-05-28 17:59:13,880 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.dataRegions[0]): example_string 2025-05-28 17:59:13,880 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.fields). Items schema: {'description': '查询的字段', 'type': 'string'}, minItems: 1 2025-05-28 17:59:13,880 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.fields[0]): example_string 2025-05-28 17:59:13,880 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.filter). Properties: ['key', 'logic', 'realValue', 'singleValue', 'subFilter', 'symbol'] 2025-05-28 17:59:13,880 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.filter.key): example_string 2025-05-28 17:59:13,880 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.filter.logic): example_string 2025-05-28 17:59:13,880 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.filter.realValue). Items schema: {'description': '条件值', 'type': 'object', 'properties': {}}, minItems: 1 2025-05-28 17:59:13,880 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.filter.realValue[0]). Properties: [] 2025-05-28 17:59:13,880 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.filter.singleValue). Properties: [] 2025-05-28 17:59:13,880 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.filter.subFilter). Items schema: {'type': 'string'}, minItems: 1 2025-05-28 17:59:13,880 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.filter.subFilter[0]): example_string 2025-05-28 17:59:13,880 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.filter.symbol): example_string 2025-05-28 17:59:13,880 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.groupFields). Items schema: {'description': '分组字段group by', 'type': 'string'}, minItems: 1 2025-05-28 17:59:13,880 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.groupFields[0]): example_string 2025-05-28 17:59:13,880 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.groupFilter). Properties: ['key', 'logic', 'realValue', 'singleValue', 'subFilter', 'symbol'] 2025-05-28 17:59:13,880 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.groupFilter.key): example_string 2025-05-28 17:59:13,880 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.groupFilter.logic): example_string 2025-05-28 17:59:13,881 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.groupFilter.realValue). Items schema: {'description': '条件值', 'type': 'object', 'properties': {}}, minItems: 1 2025-05-28 17:59:13,881 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.groupFilter.realValue[0]). Properties: [] 2025-05-28 17:59:13,881 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.groupFilter.singleValue). Properties: [] 2025-05-28 17:59:13,881 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.groupFilter.subFilter). Items schema: {'type': 'string'}, minItems: 1 2025-05-28 17:59:13,881 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.groupFilter.subFilter[0]): example_string 2025-05-28 17:59:13,881 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.groupFilter.symbol): example_string 2025-05-28 17:59:13,881 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.sort). Properties: [] 2025-05-28 17:59:13,881 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751' (type: ) 2025-05-28 17:59:13,881 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {'dms_instance_code': 'example_dms_instance_code', 'version': '1.0.0'} 2025-05-28 17:59:13,881 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit/1.0.0 2025-05-28 17:59:13,900 - testcase.TC-STATUS-001 - INFO - 状态码验证通过: 200 == 200 for http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit/1.0.0 2025-05-28 17:59:13,900 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-STATUS-001' 执行成功。 2025-05-28 17:59:13,900 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-STATUS-001' 执行完毕,状态: 通过 2025-05-28 17:59:13,900 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-CORE-FUNC-001' for 'POST /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}' 2025-05-28 17:59:13,900 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. 2025-05-28 17:59:13,900 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['yapi_categories'] 2025-05-28 17:59:13,900 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... 2025-05-28 17:59:13,900 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... 2025-05-28 17:59:13,900 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True,丢弃 '$$ref': #/components/schemas/RdbQueryPageInput 2025-05-28 17:59:13,900 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True,丢弃 '$$ref': #/components/schemas/QueryVO 2025-05-28 17:59:13,900 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True,丢弃 '$$ref': #/components/schemas/FilterVO 2025-05-28 17:59:13,900 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True,丢弃 '$ref': #/components/schemas/FilterVO 2025-05-28 17:59:13,900 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True,丢弃 '$$ref': #/components/schemas/FilterVO 2025-05-28 17:59:13,900 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True,丢弃 '$ref': #/components/schemas/FilterVO 2025-05-28 17:59:13,900 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[0] ('dms_instance_code') 的 schema... 2025-05-28 17:59:13,900 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[1] ('version') 的 schema... 2025-05-28 17:59:13,900 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[2] ('pageNo') 的 schema... 2025-05-28 17:59:13,900 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[3] ('pageSize') 的 schema... 2025-05-28 17:59:13,900 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[4] ('tenant-id') 的 schema... 2025-05-28 17:59:13,900 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[5] ('Authorization') 的 schema... 2025-05-28 17:59:13,900 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '201' content 'application/json' 的 schema... 2025-05-28 17:59:13,900 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 2025-05-28 17:59:13,900 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: ResponseSchemaValidationCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_yapi_id', '_yapi_raw_data', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['yapi_categories']) 2025-05-28 17:59:13,900 - testcase.TC-CORE-FUNC-001 - INFO - 测试用例 'TC-CORE-FUNC-001' 已为端点 'POST /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}' 初始化。 2025-05-28 17:59:13,900 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-CORE-FUNC-001' (Response Body JSON Schema Validation) for endpoint 'POST /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}' 2025-05-28 17:59:13,900 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial path param for 'post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751': dms_instance_code = example_dms_instance_code 2025-05-28 17:59:13,900 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial path param for 'post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751': version = 1.0.0 2025-05-28 17:59:13,900 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial query param for 'post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751': pageNo = query_val_pageNo 2025-05-28 17:59:13,900 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial query param for 'post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751': pageSize = query_val_pageSize 2025-05-28 17:59:13,900 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial custom header param for 'post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751': tenant-id = header_val_tenant-id 2025-05-28 17:59:13,900 - ddms_compliance_suite.test_orchestrator - DEBUG - Skipping standard header 'Authorization' in parameter processing for 'post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751'. It will be handled separately. 2025-05-28 17:59:13,900 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751': application/json 2025-05-28 17:59:13,900 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751': application/json 2025-05-28 17:59:13,900 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body). Properties: ['isSearchCount', 'query'] 2025-05-28 17:59:13,900 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 使用 schema 中的 'default' 值 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.isSearchCount): True 2025-05-28 17:59:13,900 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query). Properties: ['dataRegions', 'fields', 'filter', 'groupFields', 'groupFilter', 'sort'] 2025-05-28 17:59:13,900 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.dataRegions). Items schema: {'description': '数据域,如:JD、DG、TL', 'type': 'string'}, minItems: 1 2025-05-28 17:59:13,900 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.dataRegions[0]): example_string 2025-05-28 17:59:13,900 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.fields). Items schema: {'description': '查询的字段', 'type': 'string'}, minItems: 1 2025-05-28 17:59:13,900 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.fields[0]): example_string 2025-05-28 17:59:13,900 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.filter). Properties: ['key', 'logic', 'realValue', 'singleValue', 'subFilter', 'symbol'] 2025-05-28 17:59:13,900 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.filter.key): example_string 2025-05-28 17:59:13,900 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.filter.logic): example_string 2025-05-28 17:59:13,900 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.filter.realValue). Items schema: {'description': '条件值', 'type': 'object', 'properties': {}}, minItems: 1 2025-05-28 17:59:13,900 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.filter.realValue[0]). Properties: [] 2025-05-28 17:59:13,900 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.filter.singleValue). Properties: [] 2025-05-28 17:59:13,900 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.filter.subFilter). Items schema: {'type': 'string'}, minItems: 1 2025-05-28 17:59:13,900 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.filter.subFilter[0]): example_string 2025-05-28 17:59:13,900 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.filter.symbol): example_string 2025-05-28 17:59:13,901 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.groupFields). Items schema: {'description': '分组字段group by', 'type': 'string'}, minItems: 1 2025-05-28 17:59:13,901 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.groupFields[0]): example_string 2025-05-28 17:59:13,901 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.groupFilter). Properties: ['key', 'logic', 'realValue', 'singleValue', 'subFilter', 'symbol'] 2025-05-28 17:59:13,901 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.groupFilter.key): example_string 2025-05-28 17:59:13,901 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.groupFilter.logic): example_string 2025-05-28 17:59:13,901 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.groupFilter.realValue). Items schema: {'description': '条件值', 'type': 'object', 'properties': {}}, minItems: 1 2025-05-28 17:59:13,901 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.groupFilter.realValue[0]). Properties: [] 2025-05-28 17:59:13,901 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.groupFilter.singleValue). Properties: [] 2025-05-28 17:59:13,901 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.groupFilter.subFilter). Items schema: {'type': 'string'}, minItems: 1 2025-05-28 17:59:13,901 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.groupFilter.subFilter[0]): example_string 2025-05-28 17:59:13,901 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.groupFilter.symbol): example_string 2025-05-28 17:59:13,901 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.sort). Properties: [] 2025-05-28 17:59:13,901 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751' (type: ) 2025-05-28 17:59:13,901 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {'dms_instance_code': 'example_dms_instance_code', 'version': '1.0.0'} 2025-05-28 17:59:13,901 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit/1.0.0 DEBUG: curlify generated command (raw): curl -H 'User-Agent: python-requests/2.32.3' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'tenant-id: header_val_tenant-id' -H 'Content-Type: application/json' -H 'Content-Length: 488' -d '{"isSearchCount": "not-a-boolean", "query": {"dataRegions": ["example_string"], "fields": ["example_string"], "filter": {"key": "example_string", "logic": "example_string", "realValue": [{}], "singleValue": {}, "subFilter": ["example_string"], "symbol": "example_string"}, "groupFields": ["example_string"], "groupFilter": {"key": "example_string", "logic": "example_string", "realValue": [{}], "singleValue": {}, "subFilter": ["example_string"], "symbol": "example_string"}, "sort": {}}}' --insecure http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/message/push/example_schema/example_version DEBUG: curlify generated command (repr): 'curl -H \'User-Agent: python-requests/2.32.3\' -H \'Accept-Encoding: gzip, deflate, br, zstd\' -H \'Accept: application/json\' -H \'Connection: keep-alive\' -H \'tenant-id: header_val_tenant-id\' -H \'Content-Type: application/json\' -H \'Content-Length: 488\' -d \'{"isSearchCount": "not-a-boolean", "query": {"dataRegions": ["example_string"], "fields": ["example_string"], "filter": {"key": "example_string", "logic": "example_string", "realValue": [{}], "singleValue": {}, "subFilter": ["example_string"], "symbol": "example_string"}, "groupFields": ["example_string"], "groupFilter": {"key": "example_string", "logic": "example_string", "realValue": [{}], "singleValue": {}, "subFilter": ["example_string"], "symbol": "example_string"}, "sort": {}}}\' --insecure http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/message/push/example_schema/example_version' DEBUG: curlify generated command (raw): curl -H 'User-Agent: python-requests/2.32.3' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'tenant-id: header_val_tenant-id' -H 'Content-Type: application/json' -H 'Content-Length: 477' -d '{"isSearchCount": true, "query": {"dataRegions": ["example_string"], "fields": ["example_string"], "filter": {"key": "example_string", "logic": "example_string", "realValue": [{}], "singleValue": {}, "subFilter": ["example_string"], "symbol": "example_string"}, "groupFields": ["example_string"], "groupFilter": {"key": "example_string", "logic": "example_string", "realValue": [{}], "singleValue": {}, "subFilter": ["example_string"], "symbol": "example_string"}, "sort": {}}}' --insecure http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/message/push/example_schema/example_version DEBUG: curlify generated command (repr): 'curl -H \'User-Agent: python-requests/2.32.3\' -H \'Accept-Encoding: gzip, deflate, br, zstd\' -H \'Accept: application/json\' -H \'Connection: keep-alive\' -H \'tenant-id: header_val_tenant-id\' -H \'Content-Type: application/json\' -H \'Content-Length: 477\' -d \'{"isSearchCount": true, "query": {"dataRegions": ["example_string"], "fields": ["example_string"], "filter": {"key": "example_string", "logic": "example_string", "realValue": [{}], "singleValue": {}, "subFilter": ["example_string"], "symbol": "example_string"}, "groupFields": ["example_string"], "groupFilter": {"key": "example_string", "logic": "example_string", "realValue": [{}], "singleValue": {}, "subFilter": ["example_string"], "symbol": "example_string"}, "sort": {}}}\' --insecure http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/message/push/example_schema/example_version' DEBUG: curlify generated command (raw): curl -H 'User-Agent: python-requests/2.32.3' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'tenant-id: header_val_tenant-id' -H 'Content-Type: application/json' -H 'Content-Length: 477' -d '{"isSearchCount": true, "query": {"dataRegions": ["example_string"], "fields": ["example_string"], "filter": {"key": "example_string", "logic": "example_string", "realValue": [{}], "singleValue": {}, "subFilter": ["example_string"], "symbol": "example_string"}, "groupFields": ["example_string"], "groupFilter": {"key": "example_string", "logic": "example_string", "realValue": [{}], "singleValue": {}, "subFilter": ["example_string"], "symbol": "example_string"}, "sort": {}}}' --insecure http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/message/push/example_schema/example_version DEBUG: curlify generated command (repr): 'curl -H \'User-Agent: python-requests/2.32.3\' -H \'Accept-Encoding: gzip, deflate, br, zstd\' -H \'Accept: application/json\' -H \'Connection: keep-alive\' -H \'tenant-id: header_val_tenant-id\' -H \'Content-Type: application/json\' -H \'Content-Length: 477\' -d \'{"isSearchCount": true, "query": {"dataRegions": ["example_string"], "fields": ["example_string"], "filter": {"key": "example_string", "logic": "example_string", "realValue": [{}], "singleValue": {}, "subFilter": ["example_string"], "symbol": "example_string"}, "groupFields": ["example_string"], "groupFilter": {"key": "example_string", "logic": "example_string", "realValue": [{}], "singleValue": {}, "subFilter": ["example_string"], "symbol": "example_string"}, "sort": {}}}\' --insecure http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/message/push/example_schema/example_version' DEBUG: curlify generated command (raw): curl -H 'User-Agent: python-requests/2.32.3' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'tenant-id: header_val_tenant-id' -H 'Content-Type: application/json' -H 'Content-Length: 477' -d '{"isSearchCount": true, "query": {"dataRegions": ["example_string"], "fields": ["example_string"], "filter": {"key": "example_string", "logic": "example_string", "realValue": [{}], "singleValue": {}, "subFilter": ["example_string"], "symbol": "example_string"}, "groupFields": ["example_string"], "groupFilter": {"key": "example_string", "logic": "example_string", "realValue": [{}], "singleValue": {}, "subFilter": ["example_string"], "symbol": "example_string"}, "sort": {}}}' --insecure 'http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit/1.0.0?pageNo=query_val_pageNo&pageSize=query_val_pageSize' DEBUG: curlify generated command (repr): 'curl -H \'User-Agent: python-requests/2.32.3\' -H \'Accept-Encoding: gzip, deflate, br, zstd\' -H \'Accept: application/json\' -H \'Connection: keep-alive\' -H \'tenant-id: header_val_tenant-id\' -H \'Content-Type: application/json\' -H \'Content-Length: 477\' -d \'{"isSearchCount": true, "query": {"dataRegions": ["example_string"], "fields": ["example_string"], "filter": {"key": "example_string", "logic": "example_string", "realValue": [{}], "singleValue": {}, "subFilter": ["example_string"], "symbol": "example_string"}, "groupFields": ["example_string"], "groupFilter": {"key": "example_string", "logic": "example_string", "realValue": [{}], "singleValue": {}, "subFilter": ["example_string"], "symbol": "example_string"}, "sort": {}}}\' --insecure \'http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit/1.0.0?pageNo=query_val_pageNo&pageSize=query_val_pageSize\'' 2025-05-28 17:59:13,924 - testcase.TC-CORE-FUNC-001 - INFO - 响应包含JSON体,但在API规范中未找到针对状态码 200 的JSON schema。跳过schema验证。 2025-05-28 17:59:13,924 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-CORE-FUNC-001' 执行成功。 2025-05-28 17:59:13,924 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-CORE-FUNC-001' 执行完毕,状态: 通过 2025-05-28 17:59:13,924 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-SECURITY-001' for 'POST /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}' 2025-05-28 17:59:13,924 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. 2025-05-28 17:59:13,924 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['yapi_categories'] 2025-05-28 17:59:13,924 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... 2025-05-28 17:59:13,924 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... 2025-05-28 17:59:13,924 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True,丢弃 '$$ref': #/components/schemas/RdbQueryPageInput 2025-05-28 17:59:13,924 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True,丢弃 '$$ref': #/components/schemas/QueryVO 2025-05-28 17:59:13,924 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True,丢弃 '$$ref': #/components/schemas/FilterVO 2025-05-28 17:59:13,925 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True,丢弃 '$ref': #/components/schemas/FilterVO 2025-05-28 17:59:13,925 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True,丢弃 '$$ref': #/components/schemas/FilterVO 2025-05-28 17:59:13,925 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True,丢弃 '$ref': #/components/schemas/FilterVO 2025-05-28 17:59:13,925 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[0] ('dms_instance_code') 的 schema... 2025-05-28 17:59:13,925 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[1] ('version') 的 schema... 2025-05-28 17:59:13,925 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[2] ('pageNo') 的 schema... 2025-05-28 17:59:13,925 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[3] ('pageSize') 的 schema... 2025-05-28 17:59:13,925 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[4] ('tenant-id') 的 schema... 2025-05-28 17:59:13,925 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[5] ('Authorization') 的 schema... 2025-05-28 17:59:13,925 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '201' content 'application/json' 的 schema... 2025-05-28 17:59:13,925 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 2025-05-28 17:59:13,925 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: HTTPSMandatoryCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_yapi_id', '_yapi_raw_data', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['yapi_categories']) 2025-05-28 17:59:13,925 - testcase.TC-SECURITY-001 - INFO - 测试用例 'TC-SECURITY-001' 已为端点 'POST /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}' 初始化。 2025-05-28 17:59:13,925 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-SECURITY-001' (HTTPS Protocol Mandatory Verification) for endpoint 'POST /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}' 2025-05-28 17:59:13,925 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial path param for 'post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751': dms_instance_code = example_dms_instance_code 2025-05-28 17:59:13,925 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial path param for 'post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751': version = 1.0.0 2025-05-28 17:59:13,925 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial query param for 'post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751': pageNo = query_val_pageNo 2025-05-28 17:59:13,925 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial query param for 'post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751': pageSize = query_val_pageSize 2025-05-28 17:59:13,925 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial custom header param for 'post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751': tenant-id = header_val_tenant-id 2025-05-28 17:59:13,925 - ddms_compliance_suite.test_orchestrator - DEBUG - Skipping standard header 'Authorization' in parameter processing for 'post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751'. It will be handled separately. 2025-05-28 17:59:13,925 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751': application/json 2025-05-28 17:59:13,925 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751': application/json 2025-05-28 17:59:13,925 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body). Properties: ['isSearchCount', 'query'] 2025-05-28 17:59:13,925 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 使用 schema 中的 'default' 值 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.isSearchCount): True 2025-05-28 17:59:13,925 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query). Properties: ['dataRegions', 'fields', 'filter', 'groupFields', 'groupFilter', 'sort'] 2025-05-28 17:59:13,925 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.dataRegions). Items schema: {'description': '数据域,如:JD、DG、TL', 'type': 'string'}, minItems: 1 2025-05-28 17:59:13,925 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.dataRegions[0]): example_string 2025-05-28 17:59:13,925 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.fields). Items schema: {'description': '查询的字段', 'type': 'string'}, minItems: 1 2025-05-28 17:59:13,925 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.fields[0]): example_string 2025-05-28 17:59:13,925 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.filter). Properties: ['key', 'logic', 'realValue', 'singleValue', 'subFilter', 'symbol'] 2025-05-28 17:59:13,925 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.filter.key): example_string 2025-05-28 17:59:13,925 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.filter.logic): example_string 2025-05-28 17:59:13,925 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.filter.realValue). Items schema: {'description': '条件值', 'type': 'object', 'properties': {}}, minItems: 1 2025-05-28 17:59:13,925 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.filter.realValue[0]). Properties: [] 2025-05-28 17:59:13,925 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.filter.singleValue). Properties: [] 2025-05-28 17:59:13,925 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.filter.subFilter). Items schema: {'type': 'string'}, minItems: 1 2025-05-28 17:59:13,925 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.filter.subFilter[0]): example_string 2025-05-28 17:59:13,925 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.filter.symbol): example_string 2025-05-28 17:59:13,925 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.groupFields). Items schema: {'description': '分组字段group by', 'type': 'string'}, minItems: 1 2025-05-28 17:59:13,925 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.groupFields[0]): example_string 2025-05-28 17:59:13,925 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.groupFilter). Properties: ['key', 'logic', 'realValue', 'singleValue', 'subFilter', 'symbol'] 2025-05-28 17:59:13,925 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.groupFilter.key): example_string 2025-05-28 17:59:13,925 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.groupFilter.logic): example_string 2025-05-28 17:59:13,925 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.groupFilter.realValue). Items schema: {'description': '条件值', 'type': 'object', 'properties': {}}, minItems: 1 2025-05-28 17:59:13,925 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.groupFilter.realValue[0]). Properties: [] 2025-05-28 17:59:13,925 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.groupFilter.singleValue). Properties: [] 2025-05-28 17:59:13,925 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.groupFilter.subFilter). Items schema: {'type': 'string'}, minItems: 1 2025-05-28 17:59:13,925 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.groupFilter.subFilter[0]): example_string 2025-05-28 17:59:13,925 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.groupFilter.symbol): example_string 2025-05-28 17:59:13,925 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.sort). Properties: [] 2025-05-28 17:59:13,925 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751' (type: ) 2025-05-28 17:59:13,925 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {'dms_instance_code': 'example_dms_instance_code', 'version': '1.0.0'} 2025-05-28 17:59:13,925 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit/1.0.0 2025-05-28 17:59:13,925 - testcase.TC-SECURITY-001 - WARNING - 原始URL 'http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit/1.0.0' 不是HTTPS。跳过此测试用例的URL修改。 2025-05-28 17:59:13,943 - testcase.TC-SECURITY-001 - ERROR - 安全漏洞:API允许通过HTTP成功响应 (200)。 2025-05-28 17:59:13,943 - ddms_compliance_suite.test_orchestrator - DEBUG -  ❌ 测试用例 'TC-SECURITY-001' 执行失败。 2025-05-28 17:59:13,943 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-SECURITY-001' 执行完毕,状态: 失败 2025-05-28 17:59:13,943 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-ERROR-4001-QUERY' for 'POST /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}' 2025-05-28 17:59:13,943 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. 2025-05-28 17:59:13,943 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['yapi_categories'] 2025-05-28 17:59:13,943 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... 2025-05-28 17:59:13,943 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... 2025-05-28 17:59:13,943 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True,丢弃 '$$ref': #/components/schemas/RdbQueryPageInput 2025-05-28 17:59:13,943 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True,丢弃 '$$ref': #/components/schemas/QueryVO 2025-05-28 17:59:13,943 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True,丢弃 '$$ref': #/components/schemas/FilterVO 2025-05-28 17:59:13,943 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True,丢弃 '$ref': #/components/schemas/FilterVO 2025-05-28 17:59:13,943 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True,丢弃 '$$ref': #/components/schemas/FilterVO 2025-05-28 17:59:13,943 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True,丢弃 '$ref': #/components/schemas/FilterVO 2025-05-28 17:59:13,943 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[0] ('dms_instance_code') 的 schema... 2025-05-28 17:59:13,943 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[1] ('version') 的 schema... 2025-05-28 17:59:13,943 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[2] ('pageNo') 的 schema... 2025-05-28 17:59:13,943 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[3] ('pageSize') 的 schema... 2025-05-28 17:59:13,943 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[4] ('tenant-id') 的 schema... 2025-05-28 17:59:13,943 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[5] ('Authorization') 的 schema... 2025-05-28 17:59:13,943 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '201' content 'application/json' 的 schema... 2025-05-28 17:59:13,943 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 2025-05-28 17:59:13,943 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: TypeMismatchQueryParamCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_yapi_id', '_yapi_raw_data', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['yapi_categories']) 2025-05-28 17:59:13,943 - testcase.TC-ERROR-4001-QUERY - DEBUG - Test case 'TC-ERROR-4001-QUERY' initialized for endpoint: POST /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version} 2025-05-28 17:59:13,943 - testcase.TC-ERROR-4001-QUERY - INFO - [TC-ERROR-4001-QUERY] Initializing: Looking for a simple type query parameter for type mismatch test. 2025-05-28 17:59:13,943 - testcase.TC-ERROR-4001-QUERY - DEBUG - _find_first_simple_type_parameter: Checking query parameter 'pageNo'. 2025-05-28 17:59:13,943 - testcase.TC-ERROR-4001-QUERY - INFO - _find_first_simple_type_parameter: Found simple type query parameter 'pageNo' (type: string) via its 'schema'. 2025-05-28 17:59:13,943 - testcase.TC-ERROR-4001-QUERY - INFO - [TC-ERROR-4001-QUERY] Target for type mismatch (query): Param='pageNo', Path='pageNo', Type='string' 2025-05-28 17:59:13,943 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-ERROR-4001-QUERY' (Error Code 4001 - Query Parameter Type Mismatch Validation) for endpoint 'POST /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}' 2025-05-28 17:59:13,943 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial path param for 'post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751': dms_instance_code = example_dms_instance_code 2025-05-28 17:59:13,943 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial path param for 'post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751': version = 1.0.0 2025-05-28 17:59:13,943 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial query param for 'post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751': pageNo = query_val_pageNo 2025-05-28 17:59:13,943 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial query param for 'post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751': pageSize = query_val_pageSize 2025-05-28 17:59:13,943 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial custom header param for 'post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751': tenant-id = header_val_tenant-id 2025-05-28 17:59:13,943 - ddms_compliance_suite.test_orchestrator - DEBUG - Skipping standard header 'Authorization' in parameter processing for 'post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751'. It will be handled separately. 2025-05-28 17:59:13,943 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751': application/json 2025-05-28 17:59:13,943 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751': application/json 2025-05-28 17:59:13,944 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body). Properties: ['isSearchCount', 'query'] 2025-05-28 17:59:13,944 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 使用 schema 中的 'default' 值 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.isSearchCount): True 2025-05-28 17:59:13,944 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query). Properties: ['dataRegions', 'fields', 'filter', 'groupFields', 'groupFilter', 'sort'] 2025-05-28 17:59:13,944 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.dataRegions). Items schema: {'description': '数据域,如:JD、DG、TL', 'type': 'string'}, minItems: 1 2025-05-28 17:59:13,944 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.dataRegions[0]): example_string 2025-05-28 17:59:13,944 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.fields). Items schema: {'description': '查询的字段', 'type': 'string'}, minItems: 1 2025-05-28 17:59:13,944 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.fields[0]): example_string 2025-05-28 17:59:13,944 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.filter). Properties: ['key', 'logic', 'realValue', 'singleValue', 'subFilter', 'symbol'] 2025-05-28 17:59:13,944 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.filter.key): example_string 2025-05-28 17:59:13,944 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.filter.logic): example_string 2025-05-28 17:59:13,944 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.filter.realValue). Items schema: {'description': '条件值', 'type': 'object', 'properties': {}}, minItems: 1 2025-05-28 17:59:13,944 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.filter.realValue[0]). Properties: [] 2025-05-28 17:59:13,944 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.filter.singleValue). Properties: [] 2025-05-28 17:59:13,944 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.filter.subFilter). Items schema: {'type': 'string'}, minItems: 1 2025-05-28 17:59:13,944 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.filter.subFilter[0]): example_string 2025-05-28 17:59:13,944 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.filter.symbol): example_string 2025-05-28 17:59:13,944 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.groupFields). Items schema: {'description': '分组字段group by', 'type': 'string'}, minItems: 1 2025-05-28 17:59:13,944 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.groupFields[0]): example_string 2025-05-28 17:59:13,944 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.groupFilter). Properties: ['key', 'logic', 'realValue', 'singleValue', 'subFilter', 'symbol'] 2025-05-28 17:59:13,944 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.groupFilter.key): example_string 2025-05-28 17:59:13,944 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.groupFilter.logic): example_string 2025-05-28 17:59:13,944 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.groupFilter.realValue). Items schema: {'description': '条件值', 'type': 'object', 'properties': {}}, minItems: 1 2025-05-28 17:59:13,944 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.groupFilter.realValue[0]). Properties: [] 2025-05-28 17:59:13,944 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.groupFilter.singleValue). Properties: [] 2025-05-28 17:59:13,944 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.groupFilter.subFilter). Items schema: {'type': 'string'}, minItems: 1 2025-05-28 17:59:13,944 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.groupFilter.subFilter[0]): example_string 2025-05-28 17:59:13,944 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.groupFilter.symbol): example_string 2025-05-28 17:59:13,944 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.sort). Properties: [] 2025-05-28 17:59:13,944 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751' (type: ) 2025-05-28 17:59:13,944 - testcase.TC-ERROR-4001-QUERY - DEBUG - [TC-ERROR-4001-QUERY] Preparing to modify query params for type mismatch. Target path: ['pageNo'], Original type: string 2025-05-28 17:59:13,944 - testcase.TC-ERROR-4001-QUERY - INFO - [TC-ERROR-4001-QUERY] Generated mismatched value '12345' for original type 'string' at query path 'pageNo'. 2025-05-28 17:59:13,944 - ddms_compliance_suite.utils.schema_utils - INFO - [Util] 在路径 pageNo (键 'pageNo') 处设置值为 '12345' 2025-05-28 17:59:13,944 - testcase.TC-ERROR-4001-QUERY - DEBUG - [TC-ERROR-4001-QUERY] Successfully set mismatched value in query params using util_set_value_at_path. 2025-05-28 17:59:13,944 - testcase.TC-ERROR-4001-QUERY - DEBUG - Hook: generate_headers, current keys: ['tenant-id', 'Content-Type', 'Accept'] 2025-05-28 17:59:13,944 - testcase.TC-ERROR-4001-QUERY - DEBUG - TC-ERROR-4001-QUERY is focused on query parameters, generate_request_body will not modify the body. 2025-05-28 17:59:13,944 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {'dms_instance_code': 'example_dms_instance_code', 'version': '1.0.0'} 2025-05-28 17:59:13,944 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit/1.0.0 2025-05-28 17:59:13,944 - testcase.TC-ERROR-4001-QUERY - DEBUG - Hook: modify_request_url, original URL: http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit/1.0.0 2025-05-28 17:59:13,944 - testcase.TC-ERROR-4001-QUERY - DEBUG - Test case 'TC-ERROR-4001-QUERY' did not modify the URL via modify_request_url hook. 2025-05-28 17:59:13,944 - testcase.TC-ERROR-4001-QUERY - DEBUG - Hook: validate_request_url, url: http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit/1.0.0 2025-05-28 17:59:13,944 - testcase.TC-ERROR-4001-QUERY - DEBUG - Hook: validate_request_headers, header keys: ['tenant-id', 'Content-Type', 'Accept'] 2025-05-28 17:59:13,944 - testcase.TC-ERROR-4001-QUERY - DEBUG - Hook: validate_request_body, body type: 2025-05-28 17:59:13,960 - testcase.TC-ERROR-4001-QUERY - WARNING - TC-ERROR-4001-QUERY: Failed. 当查询参数 'pageNo' (路径: 'pageNo') 类型不匹配时,期望API返回状态码在 [400, 422] 中,或返回4xx客户端错误且业务码为 '4001'. 实际收到状态码 200. 响应体中的业务码 ('code') 为 '81'. (Query param: pageNo) 2025-05-28 17:59:13,960 - testcase.TC-ERROR-4001-QUERY - DEBUG - Hook: check_performance, elapsed: 0.016239166259765625 2025-05-28 17:59:13,960 - ddms_compliance_suite.test_orchestrator - DEBUG -  ❌ 测试用例 'TC-ERROR-4001-QUERY' 执行失败。 2025-05-28 17:59:13,960 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-ERROR-4001-QUERY' 执行完毕,状态: 失败 2025-05-28 17:59:13,960 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-ERROR-4001-BODY' for 'POST /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}' 2025-05-28 17:59:13,960 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. 2025-05-28 17:59:13,961 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['yapi_categories'] 2025-05-28 17:59:13,961 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... 2025-05-28 17:59:13,961 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... 2025-05-28 17:59:13,961 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True,丢弃 '$$ref': #/components/schemas/RdbQueryPageInput 2025-05-28 17:59:13,961 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True,丢弃 '$$ref': #/components/schemas/QueryVO 2025-05-28 17:59:13,961 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True,丢弃 '$$ref': #/components/schemas/FilterVO 2025-05-28 17:59:13,961 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True,丢弃 '$ref': #/components/schemas/FilterVO 2025-05-28 17:59:13,961 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True,丢弃 '$$ref': #/components/schemas/FilterVO 2025-05-28 17:59:13,961 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True,丢弃 '$ref': #/components/schemas/FilterVO 2025-05-28 17:59:13,961 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[0] ('dms_instance_code') 的 schema... 2025-05-28 17:59:13,961 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[1] ('version') 的 schema... 2025-05-28 17:59:13,961 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[2] ('pageNo') 的 schema... 2025-05-28 17:59:13,961 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[3] ('pageSize') 的 schema... 2025-05-28 17:59:13,961 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[4] ('tenant-id') 的 schema... 2025-05-28 17:59:13,961 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[5] ('Authorization') 的 schema... 2025-05-28 17:59:13,961 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '201' content 'application/json' 的 schema... 2025-05-28 17:59:13,961 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 2025-05-28 17:59:13,961 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: TypeMismatchBodyCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_yapi_id', '_yapi_raw_data', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['yapi_categories']) 2025-05-28 17:59:13,961 - testcase.TC-ERROR-4001-BODY - DEBUG - Test case 'TC-ERROR-4001-BODY' initialized for endpoint: POST /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version} 2025-05-28 17:59:13,961 - testcase.TC-ERROR-4001-BODY - INFO - [TC-ERROR-4001-BODY] Initializing: Looking for a simple type field in request body for type mismatch test. 2025-05-28 17:59:13,961 - testcase.TC-ERROR-4001-BODY - DEBUG - Found request body schema under content type: application/json 2025-05-28 17:59:13,961 - testcase.TC-ERROR-4001-BODY - DEBUG - _find_simple_type_field_in_schema: Searching for simple type field in 'request body' schema... 2025-05-28 17:59:13,961 - testcase.TC-ERROR-4001-BODY - INFO - Found simple type field: Path=isSearchCount, Type=boolean 2025-05-28 17:59:13,961 - testcase.TC-ERROR-4001-BODY - INFO - _find_simple_type_field_in_schema: Found simple type field in 'request body': Path=isSearchCount, Type=boolean 2025-05-28 17:59:13,961 - testcase.TC-ERROR-4001-BODY - INFO - [TC-ERROR-4001-BODY] Target field for type mismatch (body): isSearchCount, Original Type: boolean 2025-05-28 17:59:13,961 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-ERROR-4001-BODY' (Error Code 4001 - Request Body Type Mismatch Validation) for endpoint 'POST /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}' 2025-05-28 17:59:13,961 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial path param for 'post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751': dms_instance_code = example_dms_instance_code 2025-05-28 17:59:13,961 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial path param for 'post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751': version = 1.0.0 2025-05-28 17:59:13,961 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial query param for 'post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751': pageNo = query_val_pageNo 2025-05-28 17:59:13,961 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial query param for 'post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751': pageSize = query_val_pageSize 2025-05-28 17:59:13,961 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial custom header param for 'post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751': tenant-id = header_val_tenant-id 2025-05-28 17:59:13,961 - ddms_compliance_suite.test_orchestrator - DEBUG - Skipping standard header 'Authorization' in parameter processing for 'post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751'. It will be handled separately. 2025-05-28 17:59:13,961 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751': application/json 2025-05-28 17:59:13,961 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751': application/json 2025-05-28 17:59:13,961 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body). Properties: ['isSearchCount', 'query'] 2025-05-28 17:59:13,961 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 使用 schema 中的 'default' 值 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.isSearchCount): True 2025-05-28 17:59:13,961 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query). Properties: ['dataRegions', 'fields', 'filter', 'groupFields', 'groupFilter', 'sort'] 2025-05-28 17:59:13,961 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.dataRegions). Items schema: {'description': '数据域,如:JD、DG、TL', 'type': 'string'}, minItems: 1 2025-05-28 17:59:13,961 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.dataRegions[0]): example_string 2025-05-28 17:59:13,961 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.fields). Items schema: {'description': '查询的字段', 'type': 'string'}, minItems: 1 2025-05-28 17:59:13,961 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.fields[0]): example_string 2025-05-28 17:59:13,961 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.filter). Properties: ['key', 'logic', 'realValue', 'singleValue', 'subFilter', 'symbol'] 2025-05-28 17:59:13,961 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.filter.key): example_string 2025-05-28 17:59:13,961 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.filter.logic): example_string 2025-05-28 17:59:13,961 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.filter.realValue). Items schema: {'description': '条件值', 'type': 'object', 'properties': {}}, minItems: 1 2025-05-28 17:59:13,961 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.filter.realValue[0]). Properties: [] 2025-05-28 17:59:13,961 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.filter.singleValue). Properties: [] 2025-05-28 17:59:13,961 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.filter.subFilter). Items schema: {'type': 'string'}, minItems: 1 2025-05-28 17:59:13,961 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.filter.subFilter[0]): example_string 2025-05-28 17:59:13,961 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.filter.symbol): example_string 2025-05-28 17:59:13,961 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.groupFields). Items schema: {'description': '分组字段group by', 'type': 'string'}, minItems: 1 2025-05-28 17:59:13,961 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.groupFields[0]): example_string 2025-05-28 17:59:13,961 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.groupFilter). Properties: ['key', 'logic', 'realValue', 'singleValue', 'subFilter', 'symbol'] 2025-05-28 17:59:13,961 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.groupFilter.key): example_string 2025-05-28 17:59:13,961 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.groupFilter.logic): example_string 2025-05-28 17:59:13,961 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.groupFilter.realValue). Items schema: {'description': '条件值', 'type': 'object', 'properties': {}}, minItems: 1 2025-05-28 17:59:13,961 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.groupFilter.realValue[0]). Properties: [] 2025-05-28 17:59:13,961 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.groupFilter.singleValue). Properties: [] 2025-05-28 17:59:13,961 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.groupFilter.subFilter). Items schema: {'type': 'string'}, minItems: 1 2025-05-28 17:59:13,961 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.groupFilter.subFilter[0]): example_string 2025-05-28 17:59:13,961 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.groupFilter.symbol): example_string 2025-05-28 17:59:13,961 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.sort). Properties: [] 2025-05-28 17:59:13,961 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751' (type: ) 2025-05-28 17:59:13,961 - testcase.TC-ERROR-4001-BODY - DEBUG - TC-ERROR-4001-BODY is focused on request body, generate_query_params will not modify query parameters. 2025-05-28 17:59:13,961 - testcase.TC-ERROR-4001-BODY - DEBUG - Hook: generate_headers, current keys: ['tenant-id', 'Content-Type', 'Accept'] 2025-05-28 17:59:13,961 - testcase.TC-ERROR-4001-BODY - DEBUG - [TC-ERROR-4001-BODY] Preparing to modify request body for type mismatch. Target path: ['isSearchCount'], Original type: boolean 2025-05-28 17:59:13,961 - testcase.TC-ERROR-4001-BODY - INFO - [TC-ERROR-4001-BODY] Generated mismatched value 'not-a-boolean' for original type 'boolean' at path 'isSearchCount'. 2025-05-28 17:59:13,961 - ddms_compliance_suite.utils.schema_utils - INFO - [Util] 在路径 isSearchCount (键 'isSearchCount') 处设置值为 'not-a-boolean' 2025-05-28 17:59:13,961 - testcase.TC-ERROR-4001-BODY - DEBUG - [TC-ERROR-4001-BODY] Successfully set mismatched value at path using util_set_value_at_path. 2025-05-28 17:59:13,961 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {'dms_instance_code': 'example_dms_instance_code', 'version': '1.0.0'} 2025-05-28 17:59:13,961 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit/1.0.0 2025-05-28 17:59:13,961 - testcase.TC-ERROR-4001-BODY - DEBUG - Hook: modify_request_url, original URL: http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit/1.0.0 2025-05-28 17:59:13,961 - testcase.TC-ERROR-4001-BODY - DEBUG - Test case 'TC-ERROR-4001-BODY' did not modify the URL via modify_request_url hook. 2025-05-28 17:59:13,961 - testcase.TC-ERROR-4001-BODY - DEBUG - Hook: validate_request_url, url: http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit/1.0.0 2025-05-28 17:59:13,962 - testcase.TC-ERROR-4001-BODY - DEBUG - Hook: validate_request_headers, header keys: ['tenant-id', 'Content-Type', 'Accept'] 2025-05-28 17:59:13,962 - testcase.TC-ERROR-4001-BODY - DEBUG - Hook: validate_request_body, body type: 2025-05-28 17:59:13,977 - testcase.TC-ERROR-4001-BODY - WARNING - TC-ERROR-4001-BODY: Failed. 当请求体字段 'isSearchCount' 类型不匹配时,期望API返回状态码在 [400, 422] 中,或返回4xx客户端错误且业务码为 '4001'. 实际收到状态码 200. 响应体中的业务码 ('code') 为 '64'. (Field: body.isSearchCount) 2025-05-28 17:59:13,978 - testcase.TC-ERROR-4001-BODY - DEBUG - Hook: check_performance, elapsed: 0.0158689022064209 2025-05-28 17:59:13,978 - ddms_compliance_suite.test_orchestrator - DEBUG -  ❌ 测试用例 'TC-ERROR-4001-BODY' 执行失败。 2025-05-28 17:59:13,978 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-ERROR-4001-BODY' 执行完毕,状态: 失败 2025-05-28 17:59:13,978 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-ERROR-4003-BODY' for 'POST /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}' 2025-05-28 17:59:13,978 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. 2025-05-28 17:59:13,978 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['yapi_categories'] 2025-05-28 17:59:13,978 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... 2025-05-28 17:59:13,978 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... 2025-05-28 17:59:13,978 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True,丢弃 '$$ref': #/components/schemas/RdbQueryPageInput 2025-05-28 17:59:13,978 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True,丢弃 '$$ref': #/components/schemas/QueryVO 2025-05-28 17:59:13,978 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True,丢弃 '$$ref': #/components/schemas/FilterVO 2025-05-28 17:59:13,978 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True,丢弃 '$ref': #/components/schemas/FilterVO 2025-05-28 17:59:13,978 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True,丢弃 '$$ref': #/components/schemas/FilterVO 2025-05-28 17:59:13,978 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True,丢弃 '$ref': #/components/schemas/FilterVO 2025-05-28 17:59:13,978 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[0] ('dms_instance_code') 的 schema... 2025-05-28 17:59:13,978 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[1] ('version') 的 schema... 2025-05-28 17:59:13,978 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[2] ('pageNo') 的 schema... 2025-05-28 17:59:13,978 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[3] ('pageSize') 的 schema... 2025-05-28 17:59:13,978 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[4] ('tenant-id') 的 schema... 2025-05-28 17:59:13,978 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[5] ('Authorization') 的 schema... 2025-05-28 17:59:13,978 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '201' content 'application/json' 的 schema... 2025-05-28 17:59:13,978 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 2025-05-28 17:59:13,978 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: MissingRequiredFieldBodyCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_yapi_id', '_yapi_raw_data', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['yapi_categories']) 2025-05-28 17:59:13,978 - ddms_compliance_suite.utils.schema_utils - DEBUG - [Util] 递归查找路径: [], 当前层级必填字段: [], 属性: ['isSearchCount', 'query'] 2025-05-28 17:59:13,978 - ddms_compliance_suite.utils.schema_utils - DEBUG - [Util] 在路径 root 未通过任何策略找到可移除的必填字段。 2025-05-28 17:59:13,978 - testcase.TC-ERROR-4003-BODY - INFO - No removable (required) field path found in 'request body' schema. 2025-05-28 17:59:13,978 - testcase.TC-ERROR-4003-BODY - INFO - 在请求体 schema 中未找到可用于测试 "必填字段缺失" 的字段(通过基类方法)。 2025-05-28 17:59:13,978 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-ERROR-4003-BODY' (Error Code 4003 - Missing Required Request Body Field Validation) for endpoint 'POST /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}' 2025-05-28 17:59:13,978 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial path param for 'post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751': dms_instance_code = example_dms_instance_code 2025-05-28 17:59:13,978 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial path param for 'post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751': version = 1.0.0 2025-05-28 17:59:13,978 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial query param for 'post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751': pageNo = query_val_pageNo 2025-05-28 17:59:13,978 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial query param for 'post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751': pageSize = query_val_pageSize 2025-05-28 17:59:13,978 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial custom header param for 'post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751': tenant-id = header_val_tenant-id 2025-05-28 17:59:13,978 - ddms_compliance_suite.test_orchestrator - DEBUG - Skipping standard header 'Authorization' in parameter processing for 'post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751'. It will be handled separately. 2025-05-28 17:59:13,978 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751': application/json 2025-05-28 17:59:13,978 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751': application/json 2025-05-28 17:59:13,978 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body). Properties: ['isSearchCount', 'query'] 2025-05-28 17:59:13,978 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 使用 schema 中的 'default' 值 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.isSearchCount): True 2025-05-28 17:59:13,978 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query). Properties: ['dataRegions', 'fields', 'filter', 'groupFields', 'groupFilter', 'sort'] 2025-05-28 17:59:13,978 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.dataRegions). Items schema: {'description': '数据域,如:JD、DG、TL', 'type': 'string'}, minItems: 1 2025-05-28 17:59:13,978 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.dataRegions[0]): example_string 2025-05-28 17:59:13,978 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.fields). Items schema: {'description': '查询的字段', 'type': 'string'}, minItems: 1 2025-05-28 17:59:13,978 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.fields[0]): example_string 2025-05-28 17:59:13,978 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.filter). Properties: ['key', 'logic', 'realValue', 'singleValue', 'subFilter', 'symbol'] 2025-05-28 17:59:13,978 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.filter.key): example_string 2025-05-28 17:59:13,978 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.filter.logic): example_string 2025-05-28 17:59:13,978 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.filter.realValue). Items schema: {'description': '条件值', 'type': 'object', 'properties': {}}, minItems: 1 2025-05-28 17:59:13,978 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.filter.realValue[0]). Properties: [] 2025-05-28 17:59:13,978 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.filter.singleValue). Properties: [] 2025-05-28 17:59:13,978 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.filter.subFilter). Items schema: {'type': 'string'}, minItems: 1 2025-05-28 17:59:13,978 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.filter.subFilter[0]): example_string 2025-05-28 17:59:13,978 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.filter.symbol): example_string 2025-05-28 17:59:13,978 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.groupFields). Items schema: {'description': '分组字段group by', 'type': 'string'}, minItems: 1 2025-05-28 17:59:13,978 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.groupFields[0]): example_string 2025-05-28 17:59:13,978 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.groupFilter). Properties: ['key', 'logic', 'realValue', 'singleValue', 'subFilter', 'symbol'] 2025-05-28 17:59:13,978 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.groupFilter.key): example_string 2025-05-28 17:59:13,979 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.groupFilter.logic): example_string 2025-05-28 17:59:13,979 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.groupFilter.realValue). Items schema: {'description': '条件值', 'type': 'object', 'properties': {}}, minItems: 1 2025-05-28 17:59:13,979 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.groupFilter.realValue[0]). Properties: [] 2025-05-28 17:59:13,979 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.groupFilter.singleValue). Properties: [] 2025-05-28 17:59:13,979 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.groupFilter.subFilter). Items schema: {'type': 'string'}, minItems: 1 2025-05-28 17:59:13,979 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.groupFilter.subFilter[0]): example_string 2025-05-28 17:59:13,979 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.groupFilter.symbol): example_string 2025-05-28 17:59:13,979 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.sort). Properties: [] 2025-05-28 17:59:13,979 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751' (type: ) 2025-05-28 17:59:13,979 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {'dms_instance_code': 'example_dms_instance_code', 'version': '1.0.0'} 2025-05-28 17:59:13,979 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit/1.0.0 DEBUG: curlify generated command (raw): curl -H 'User-Agent: python-requests/2.32.3' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'tenant-id: header_val_tenant-id' -H 'Content-Type: application/json' -H 'Content-Length: 477' -d '{"isSearchCount": true, "query": {"dataRegions": ["example_string"], "fields": ["example_string"], "filter": {"key": "example_string", "logic": "example_string", "realValue": [{}], "singleValue": {}, "subFilter": ["example_string"], "symbol": "example_string"}, "groupFields": ["example_string"], "groupFilter": {"key": "example_string", "logic": "example_string", "realValue": [{}], "singleValue": {}, "subFilter": ["example_string"], "symbol": "example_string"}, "sort": {}}}' --insecure 'http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit/1.0.0?pageNo=query_val_pageNo&pageSize=query_val_pageSize' DEBUG: curlify generated command (repr): 'curl -H \'User-Agent: python-requests/2.32.3\' -H \'Accept-Encoding: gzip, deflate, br, zstd\' -H \'Accept: application/json\' -H \'Connection: keep-alive\' -H \'tenant-id: header_val_tenant-id\' -H \'Content-Type: application/json\' -H \'Content-Length: 477\' -d \'{"isSearchCount": true, "query": {"dataRegions": ["example_string"], "fields": ["example_string"], "filter": {"key": "example_string", "logic": "example_string", "realValue": [{}], "singleValue": {}, "subFilter": ["example_string"], "symbol": "example_string"}, "groupFields": ["example_string"], "groupFilter": {"key": "example_string", "logic": "example_string", "realValue": [{}], "singleValue": {}, "subFilter": ["example_string"], "symbol": "example_string"}, "sort": {}}}\' --insecure \'http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit/1.0.0?pageNo=query_val_pageNo&pageSize=query_val_pageSize\'' DEBUG: curlify generated command (raw): curl -H 'User-Agent: python-requests/2.32.3' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'tenant-id: header_val_tenant-id' -H 'Content-Type: application/json' -H 'Content-Length: 477' -d '{"isSearchCount": true, "query": {"dataRegions": ["example_string"], "fields": ["example_string"], "filter": {"key": "example_string", "logic": "example_string", "realValue": [{}], "singleValue": {}, "subFilter": ["example_string"], "symbol": "example_string"}, "groupFields": ["example_string"], "groupFilter": {"key": "example_string", "logic": "example_string", "realValue": [{}], "singleValue": {}, "subFilter": ["example_string"], "symbol": "example_string"}, "sort": {}}}' --insecure 'http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit/1.0.0?pageNo=query_val_pageNo&pageSize=query_val_pageSize' DEBUG: curlify generated command (repr): 'curl -H \'User-Agent: python-requests/2.32.3\' -H \'Accept-Encoding: gzip, deflate, br, zstd\' -H \'Accept: application/json\' -H \'Connection: keep-alive\' -H \'tenant-id: header_val_tenant-id\' -H \'Content-Type: application/json\' -H \'Content-Length: 477\' -d \'{"isSearchCount": true, "query": {"dataRegions": ["example_string"], "fields": ["example_string"], "filter": {"key": "example_string", "logic": "example_string", "realValue": [{}], "singleValue": {}, "subFilter": ["example_string"], "symbol": "example_string"}, "groupFields": ["example_string"], "groupFilter": {"key": "example_string", "logic": "example_string", "realValue": [{}], "singleValue": {}, "subFilter": ["example_string"], "symbol": "example_string"}, "sort": {}}}\' --insecure \'http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit/1.0.0?pageNo=query_val_pageNo&pageSize=query_val_pageSize\'' DEBUG: curlify generated command (raw): curl -H 'User-Agent: python-requests/2.32.3' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'tenant-id: header_val_tenant-id' -H 'Content-Type: application/json' -H 'Content-Length: 477' -d '{"isSearchCount": true, "query": {"dataRegions": ["example_string"], "fields": ["example_string"], "filter": {"key": "example_string", "logic": "example_string", "realValue": [{}], "singleValue": {}, "subFilter": ["example_string"], "symbol": "example_string"}, "groupFields": ["example_string"], "groupFilter": {"key": "example_string", "logic": "example_string", "realValue": [{}], "singleValue": {}, "subFilter": ["example_string"], "symbol": "example_string"}, "sort": {}}}' --insecure 'http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit/1.0.0?pageNo=12345&pageSize=query_val_pageSize' DEBUG: curlify generated command (repr): 'curl -H \'User-Agent: python-requests/2.32.3\' -H \'Accept-Encoding: gzip, deflate, br, zstd\' -H \'Accept: application/json\' -H \'Connection: keep-alive\' -H \'tenant-id: header_val_tenant-id\' -H \'Content-Type: application/json\' -H \'Content-Length: 477\' -d \'{"isSearchCount": true, "query": {"dataRegions": ["example_string"], "fields": ["example_string"], "filter": {"key": "example_string", "logic": "example_string", "realValue": [{}], "singleValue": {}, "subFilter": ["example_string"], "symbol": "example_string"}, "groupFields": ["example_string"], "groupFilter": {"key": "example_string", "logic": "example_string", "realValue": [{}], "singleValue": {}, "subFilter": ["example_string"], "symbol": "example_string"}, "sort": {}}}\' --insecure \'http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit/1.0.0?pageNo=12345&pageSize=query_val_pageSize\'' DEBUG: curlify generated command (raw): curl -H 'User-Agent: python-requests/2.32.3' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'tenant-id: header_val_tenant-id' -H 'Content-Type: application/json' -H 'Content-Length: 488' -d '{"isSearchCount": "not-a-boolean", "query": {"dataRegions": ["example_string"], "fields": ["example_string"], "filter": {"key": "example_string", "logic": "example_string", "realValue": [{}], "singleValue": {}, "subFilter": ["example_string"], "symbol": "example_string"}, "groupFields": ["example_string"], "groupFilter": {"key": "example_string", "logic": "example_string", "realValue": [{}], "singleValue": {}, "subFilter": ["example_string"], "symbol": "example_string"}, "sort": {}}}' --insecure 'http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit/1.0.0?pageNo=query_val_pageNo&pageSize=query_val_pageSize' DEBUG: curlify generated command (repr): 'curl -H \'User-Agent: python-requests/2.32.3\' -H \'Accept-Encoding: gzip, deflate, br, zstd\' -H \'Accept: application/json\' -H \'Connection: keep-alive\' -H \'tenant-id: header_val_tenant-id\' -H \'Content-Type: application/json\' -H \'Content-Length: 488\' -d \'{"isSearchCount": "not-a-boolean", "query": {"dataRegions": ["example_string"], "fields": ["example_string"], "filter": {"key": "example_string", "logic": "example_string", "realValue": [{}], "singleValue": {}, "subFilter": ["example_string"], "symbol": "example_string"}, "groupFields": ["example_string"], "groupFilter": {"key": "example_string", "logic": "example_string", "realValue": [{}], "singleValue": {}, "subFilter": ["example_string"], "symbol": "example_string"}, "sort": {}}}\' --insecure \'http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit/1.0.0?pageNo=query_val_pageNo&pageSize=query_val_pageSize\'' 2025-05-28 17:59:13,993 - testcase.TC-ERROR-4003-BODY - INFO - 由于未识别到可移除的必填请求体字段,跳过此测试用例的验证。 2025-05-28 17:59:13,993 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-ERROR-4003-BODY' 执行成功。 2025-05-28 17:59:13,993 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-ERROR-4003-BODY' 执行完毕,状态: 通过 2025-05-28 17:59:13,993 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-ERROR-4003-QUERY' for 'POST /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}' 2025-05-28 17:59:13,993 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. 2025-05-28 17:59:13,993 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['yapi_categories'] 2025-05-28 17:59:13,993 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... 2025-05-28 17:59:13,993 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... 2025-05-28 17:59:13,993 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True,丢弃 '$$ref': #/components/schemas/RdbQueryPageInput 2025-05-28 17:59:13,993 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True,丢弃 '$$ref': #/components/schemas/QueryVO 2025-05-28 17:59:13,993 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True,丢弃 '$$ref': #/components/schemas/FilterVO 2025-05-28 17:59:13,993 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True,丢弃 '$ref': #/components/schemas/FilterVO 2025-05-28 17:59:13,993 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True,丢弃 '$$ref': #/components/schemas/FilterVO 2025-05-28 17:59:13,993 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True,丢弃 '$ref': #/components/schemas/FilterVO 2025-05-28 17:59:13,993 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[0] ('dms_instance_code') 的 schema... 2025-05-28 17:59:13,993 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[1] ('version') 的 schema... 2025-05-28 17:59:13,993 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[2] ('pageNo') 的 schema... 2025-05-28 17:59:13,994 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[3] ('pageSize') 的 schema... 2025-05-28 17:59:13,994 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[4] ('tenant-id') 的 schema... 2025-05-28 17:59:13,994 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[5] ('Authorization') 的 schema... 2025-05-28 17:59:13,994 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '201' content 'application/json' 的 schema... 2025-05-28 17:59:13,994 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 2025-05-28 17:59:13,994 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: MissingRequiredFieldQueryCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_yapi_id', '_yapi_raw_data', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['yapi_categories']) 2025-05-28 17:59:13,994 - testcase.TC-ERROR-4003-QUERY - INFO - No required 'query' parameter found in endpoint_spec. 2025-05-28 17:59:13,994 - testcase.TC-ERROR-4003-QUERY - INFO - 测试用例 TC-ERROR-4003-QUERY (Error Code 4003 - Missing Required Query Parameter Validation) 已针对端点 'POST /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}' 初始化。Target param to remove: None 2025-05-28 17:59:13,994 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-ERROR-4003-QUERY' (Error Code 4003 - Missing Required Query Parameter Validation) for endpoint 'POST /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}' 2025-05-28 17:59:13,994 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial path param for 'post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751': dms_instance_code = example_dms_instance_code 2025-05-28 17:59:13,994 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial path param for 'post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751': version = 1.0.0 2025-05-28 17:59:13,994 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial query param for 'post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751': pageNo = query_val_pageNo 2025-05-28 17:59:13,994 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial query param for 'post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751': pageSize = query_val_pageSize 2025-05-28 17:59:13,994 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial custom header param for 'post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751': tenant-id = header_val_tenant-id 2025-05-28 17:59:13,994 - ddms_compliance_suite.test_orchestrator - DEBUG - Skipping standard header 'Authorization' in parameter processing for 'post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751'. It will be handled separately. 2025-05-28 17:59:13,994 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751': application/json 2025-05-28 17:59:13,994 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751': application/json 2025-05-28 17:59:13,994 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body). Properties: ['isSearchCount', 'query'] 2025-05-28 17:59:13,994 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 使用 schema 中的 'default' 值 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.isSearchCount): True 2025-05-28 17:59:13,994 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query). Properties: ['dataRegions', 'fields', 'filter', 'groupFields', 'groupFilter', 'sort'] 2025-05-28 17:59:13,994 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.dataRegions). Items schema: {'description': '数据域,如:JD、DG、TL', 'type': 'string'}, minItems: 1 2025-05-28 17:59:13,994 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.dataRegions[0]): example_string 2025-05-28 17:59:13,994 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.fields). Items schema: {'description': '查询的字段', 'type': 'string'}, minItems: 1 2025-05-28 17:59:13,994 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.fields[0]): example_string 2025-05-28 17:59:13,994 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.filter). Properties: ['key', 'logic', 'realValue', 'singleValue', 'subFilter', 'symbol'] 2025-05-28 17:59:13,994 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.filter.key): example_string 2025-05-28 17:59:13,994 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.filter.logic): example_string 2025-05-28 17:59:13,994 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.filter.realValue). Items schema: {'description': '条件值', 'type': 'object', 'properties': {}}, minItems: 1 2025-05-28 17:59:13,994 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.filter.realValue[0]). Properties: [] 2025-05-28 17:59:13,994 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.filter.singleValue). Properties: [] 2025-05-28 17:59:13,994 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.filter.subFilter). Items schema: {'type': 'string'}, minItems: 1 2025-05-28 17:59:13,994 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.filter.subFilter[0]): example_string 2025-05-28 17:59:13,994 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.filter.symbol): example_string 2025-05-28 17:59:13,994 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.groupFields). Items schema: {'description': '分组字段group by', 'type': 'string'}, minItems: 1 2025-05-28 17:59:13,994 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.groupFields[0]): example_string 2025-05-28 17:59:13,994 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.groupFilter). Properties: ['key', 'logic', 'realValue', 'singleValue', 'subFilter', 'symbol'] 2025-05-28 17:59:13,994 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.groupFilter.key): example_string 2025-05-28 17:59:13,994 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.groupFilter.logic): example_string 2025-05-28 17:59:13,994 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.groupFilter.realValue). Items schema: {'description': '条件值', 'type': 'object', 'properties': {}}, minItems: 1 2025-05-28 17:59:13,994 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.groupFilter.realValue[0]). Properties: [] 2025-05-28 17:59:13,994 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.groupFilter.singleValue). Properties: [] 2025-05-28 17:59:13,994 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.groupFilter.subFilter). Items schema: {'type': 'string'}, minItems: 1 2025-05-28 17:59:13,995 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.groupFilter.subFilter[0]): example_string 2025-05-28 17:59:13,995 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.groupFilter.symbol): example_string 2025-05-28 17:59:13,995 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.sort). Properties: [] 2025-05-28 17:59:13,995 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751' (type: ) 2025-05-28 17:59:13,995 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {'dms_instance_code': 'example_dms_instance_code', 'version': '1.0.0'} 2025-05-28 17:59:13,995 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit/1.0.0 2025-05-28 17:59:14,011 - testcase.TC-ERROR-4003-QUERY - INFO - 由于未识别到可移除的必填查询参数,跳过此测试用例。 2025-05-28 17:59:14,011 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-ERROR-4003-QUERY' 执行成功。 2025-05-28 17:59:14,011 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-ERROR-4003-QUERY' 执行完毕,状态: 通过 2025-05-28 17:59:14,011 - ddms_compliance_suite.test_orchestrator - INFO - 端点 'POST /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}' 测试完成,最终状态: 失败 2025-05-28 17:59:14,011 - ddms_compliance_suite.test_orchestrator - INFO - 开始为端点测试: PUT /api/dms/{dms_instance_code}/v1/cd_geo_unit (地质单元数据修改) 2025-05-28 17:59:14,011 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-STATUS-001' 适用于端点 'PUT /api/dms/{dms_instance_code}/v1/cd_geo_unit'。 2025-05-28 17:59:14,011 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-CORE-FUNC-001' 适用于端点 'PUT /api/dms/{dms_instance_code}/v1/cd_geo_unit'。 2025-05-28 17:59:14,011 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-SECURITY-001' 适用于端点 'PUT /api/dms/{dms_instance_code}/v1/cd_geo_unit'。 2025-05-28 17:59:14,011 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4001-QUERY' 适用于端点 'PUT /api/dms/{dms_instance_code}/v1/cd_geo_unit'。 2025-05-28 17:59:14,011 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4001-BODY' 适用于端点 'PUT /api/dms/{dms_instance_code}/v1/cd_geo_unit'。 2025-05-28 17:59:14,011 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4003-BODY' 适用于端点 'PUT /api/dms/{dms_instance_code}/v1/cd_geo_unit'。 2025-05-28 17:59:14,011 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4003-QUERY' 适用于端点 'PUT /api/dms/{dms_instance_code}/v1/cd_geo_unit'。 2025-05-28 17:59:14,011 - ddms_compliance_suite.test_orchestrator - INFO - 端点 'PUT /api/dms/{dms_instance_code}/v1/cd_geo_unit' 发现了 7 个适用的测试用例 (已排序): ['TC-STATUS-001', 'TC-CORE-FUNC-001', 'TC-SECURITY-001', 'TC-ERROR-4001-QUERY', 'TC-ERROR-4001-BODY', 'TC-ERROR-4003-BODY', 'TC-ERROR-4003-QUERY'] 2025-05-28 17:59:14,011 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-STATUS-001' for 'PUT /api/dms/{dms_instance_code}/v1/cd_geo_unit' 2025-05-28 17:59:14,011 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. 2025-05-28 17:59:14,011 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['yapi_categories'] 2025-05-28 17:59:14,011 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... 2025-05-28 17:59:14,011 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... 2025-05-28 17:59:14,011 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[0] ('dms_instance_code') 的 schema... 2025-05-28 17:59:14,011 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[1] ('id') 的 schema... 2025-05-28 17:59:14,011 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[2] ('tenant-id') 的 schema... 2025-05-28 17:59:14,011 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[3] ('Authorization') 的 schema... 2025-05-28 17:59:14,011 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... 2025-05-28 17:59:14,011 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 2025-05-28 17:59:14,011 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: StatusCode200Check 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_yapi_id', '_yapi_raw_data', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['yapi_categories']) 2025-05-28 17:59:14,011 - testcase.TC-STATUS-001 - INFO - 测试用例 TC-STATUS-001 (基本状态码 200 检查) 已针对端点 'PUT /api/dms/{dms_instance_code}/v1/cd_geo_unit' 初始化。 2025-05-28 17:59:14,011 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-STATUS-001' (基本状态码 200 检查) for endpoint 'PUT /api/dms/{dms_instance_code}/v1/cd_geo_unit' 2025-05-28 17:59:14,011 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial path param for 'put__api_dms_dms_instance_code_v1_cd_geo_unit_135749': dms_instance_code = example_dms_instance_code 2025-05-28 17:59:14,011 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial query param for 'put__api_dms_dms_instance_code_v1_cd_geo_unit_135749': id = dsid 2025-05-28 17:59:14,011 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial custom header param for 'put__api_dms_dms_instance_code_v1_cd_geo_unit_135749': tenant-id = header_val_tenant-id 2025-05-28 17:59:14,011 - ddms_compliance_suite.test_orchestrator - DEBUG - Skipping standard header 'Authorization' in parameter processing for 'put__api_dms_dms_instance_code_v1_cd_geo_unit_135749'. It will be handled separately. 2025-05-28 17:59:14,011 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'put__api_dms_dms_instance_code_v1_cd_geo_unit_135749': application/json 2025-05-28 17:59:14,011 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'put__api_dms_dms_instance_code_v1_cd_geo_unit_135749': application/json 2025-05-28 17:59:14,011 - ddms_compliance_suite.test_orchestrator - DEBUG - [put__api_dms_dms_instance_code_v1_cd_geo_unit_135749] 生成 object 类型数据 for (context: put__api_dms_dms_instance_code_v1_cd_geo_unit_135749_body). Properties: ['id', 'version'] 2025-05-28 17:59:14,011 - ddms_compliance_suite.test_orchestrator - DEBUG - [put__api_dms_dms_instance_code_v1_cd_geo_unit_135749] 生成 string 类型数据 ('') for (context: put__api_dms_dms_instance_code_v1_cd_geo_unit_135749_body.id): example_string 2025-05-28 17:59:14,011 - ddms_compliance_suite.test_orchestrator - DEBUG - [put__api_dms_dms_instance_code_v1_cd_geo_unit_135749] 生成 string 类型数据 ('') for (context: put__api_dms_dms_instance_code_v1_cd_geo_unit_135749_body.version): example_string 2025-05-28 17:59:14,011 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'put__api_dms_dms_instance_code_v1_cd_geo_unit_135749' (type: ) 2025-05-28 17:59:14,011 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {'dms_instance_code': 'example_dms_instance_code'} 2025-05-28 17:59:14,011 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit 2025-05-28 17:59:14,026 - testcase.TC-STATUS-001 - INFO - 状态码验证通过: 200 == 200 for http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit 2025-05-28 17:59:14,026 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-STATUS-001' 执行成功。 2025-05-28 17:59:14,026 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-STATUS-001' 执行完毕,状态: 通过 2025-05-28 17:59:14,026 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-CORE-FUNC-001' for 'PUT /api/dms/{dms_instance_code}/v1/cd_geo_unit' 2025-05-28 17:59:14,026 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. 2025-05-28 17:59:14,026 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['yapi_categories'] 2025-05-28 17:59:14,026 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... 2025-05-28 17:59:14,026 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... 2025-05-28 17:59:14,026 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[0] ('dms_instance_code') 的 schema... 2025-05-28 17:59:14,026 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[1] ('id') 的 schema... 2025-05-28 17:59:14,026 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[2] ('tenant-id') 的 schema... 2025-05-28 17:59:14,026 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[3] ('Authorization') 的 schema... 2025-05-28 17:59:14,026 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... 2025-05-28 17:59:14,026 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 2025-05-28 17:59:14,026 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: ResponseSchemaValidationCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_yapi_id', '_yapi_raw_data', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['yapi_categories']) 2025-05-28 17:59:14,026 - testcase.TC-CORE-FUNC-001 - INFO - 测试用例 'TC-CORE-FUNC-001' 已为端点 'PUT /api/dms/{dms_instance_code}/v1/cd_geo_unit' 初始化。 2025-05-28 17:59:14,026 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-CORE-FUNC-001' (Response Body JSON Schema Validation) for endpoint 'PUT /api/dms/{dms_instance_code}/v1/cd_geo_unit' 2025-05-28 17:59:14,026 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial path param for 'put__api_dms_dms_instance_code_v1_cd_geo_unit_135749': dms_instance_code = example_dms_instance_code 2025-05-28 17:59:14,026 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial query param for 'put__api_dms_dms_instance_code_v1_cd_geo_unit_135749': id = dsid 2025-05-28 17:59:14,026 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial custom header param for 'put__api_dms_dms_instance_code_v1_cd_geo_unit_135749': tenant-id = header_val_tenant-id 2025-05-28 17:59:14,026 - ddms_compliance_suite.test_orchestrator - DEBUG - Skipping standard header 'Authorization' in parameter processing for 'put__api_dms_dms_instance_code_v1_cd_geo_unit_135749'. It will be handled separately. 2025-05-28 17:59:14,026 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'put__api_dms_dms_instance_code_v1_cd_geo_unit_135749': application/json 2025-05-28 17:59:14,026 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'put__api_dms_dms_instance_code_v1_cd_geo_unit_135749': application/json 2025-05-28 17:59:14,026 - ddms_compliance_suite.test_orchestrator - DEBUG - [put__api_dms_dms_instance_code_v1_cd_geo_unit_135749] 生成 object 类型数据 for (context: put__api_dms_dms_instance_code_v1_cd_geo_unit_135749_body). Properties: ['id', 'version'] 2025-05-28 17:59:14,026 - ddms_compliance_suite.test_orchestrator - DEBUG - [put__api_dms_dms_instance_code_v1_cd_geo_unit_135749] 生成 string 类型数据 ('') for (context: put__api_dms_dms_instance_code_v1_cd_geo_unit_135749_body.id): example_string 2025-05-28 17:59:14,026 - ddms_compliance_suite.test_orchestrator - DEBUG - [put__api_dms_dms_instance_code_v1_cd_geo_unit_135749] 生成 string 类型数据 ('') for (context: put__api_dms_dms_instance_code_v1_cd_geo_unit_135749_body.version): example_string 2025-05-28 17:59:14,026 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'put__api_dms_dms_instance_code_v1_cd_geo_unit_135749' (type: ) 2025-05-28 17:59:14,026 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {'dms_instance_code': 'example_dms_instance_code'} 2025-05-28 17:59:14,026 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit 2025-05-28 17:59:14,044 - testcase.TC-CORE-FUNC-001 - INFO - 将根据路径 'responses.200.content.application/json.schema' 的schema验证响应体。 2025-05-28 17:59:14,046 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-CORE-FUNC-001' 执行成功。 2025-05-28 17:59:14,046 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-CORE-FUNC-001' 执行完毕,状态: 通过 2025-05-28 17:59:14,046 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-SECURITY-001' for 'PUT /api/dms/{dms_instance_code}/v1/cd_geo_unit' 2025-05-28 17:59:14,046 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. 2025-05-28 17:59:14,046 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['yapi_categories'] 2025-05-28 17:59:14,046 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... 2025-05-28 17:59:14,046 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... 2025-05-28 17:59:14,046 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[0] ('dms_instance_code') 的 schema... 2025-05-28 17:59:14,046 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[1] ('id') 的 schema... 2025-05-28 17:59:14,046 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[2] ('tenant-id') 的 schema... 2025-05-28 17:59:14,046 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[3] ('Authorization') 的 schema... 2025-05-28 17:59:14,046 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... 2025-05-28 17:59:14,046 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 2025-05-28 17:59:14,046 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: HTTPSMandatoryCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_yapi_id', '_yapi_raw_data', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['yapi_categories']) 2025-05-28 17:59:14,046 - testcase.TC-SECURITY-001 - INFO - 测试用例 'TC-SECURITY-001' 已为端点 'PUT /api/dms/{dms_instance_code}/v1/cd_geo_unit' 初始化。 2025-05-28 17:59:14,046 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-SECURITY-001' (HTTPS Protocol Mandatory Verification) for endpoint 'PUT /api/dms/{dms_instance_code}/v1/cd_geo_unit' 2025-05-28 17:59:14,046 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial path param for 'put__api_dms_dms_instance_code_v1_cd_geo_unit_135749': dms_instance_code = example_dms_instance_code 2025-05-28 17:59:14,046 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial query param for 'put__api_dms_dms_instance_code_v1_cd_geo_unit_135749': id = dsid 2025-05-28 17:59:14,046 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial custom header param for 'put__api_dms_dms_instance_code_v1_cd_geo_unit_135749': tenant-id = header_val_tenant-id 2025-05-28 17:59:14,046 - ddms_compliance_suite.test_orchestrator - DEBUG - Skipping standard header 'Authorization' in parameter processing for 'put__api_dms_dms_instance_code_v1_cd_geo_unit_135749'. It will be handled separately. 2025-05-28 17:59:14,046 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'put__api_dms_dms_instance_code_v1_cd_geo_unit_135749': application/json 2025-05-28 17:59:14,046 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'put__api_dms_dms_instance_code_v1_cd_geo_unit_135749': application/json 2025-05-28 17:59:14,046 - ddms_compliance_suite.test_orchestrator - DEBUG - [put__api_dms_dms_instance_code_v1_cd_geo_unit_135749] 生成 object 类型数据 for (context: put__api_dms_dms_instance_code_v1_cd_geo_unit_135749_body). Properties: ['id', 'version'] 2025-05-28 17:59:14,046 - ddms_compliance_suite.test_orchestrator - DEBUG - [put__api_dms_dms_instance_code_v1_cd_geo_unit_135749] 生成 string 类型数据 ('') for (context: put__api_dms_dms_instance_code_v1_cd_geo_unit_135749_body.id): example_string 2025-05-28 17:59:14,046 - ddms_compliance_suite.test_orchestrator - DEBUG - [put__api_dms_dms_instance_code_v1_cd_geo_unit_135749] 生成 string 类型数据 ('') for (context: put__api_dms_dms_instance_code_v1_cd_geo_unit_135749_body.version): example_string 2025-05-28 17:59:14,046 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'put__api_dms_dms_instance_code_v1_cd_geo_unit_135749' (type: ) 2025-05-28 17:59:14,046 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {'dms_instance_code': 'example_dms_instance_code'} 2025-05-28 17:59:14,046 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit 2025-05-28 17:59:14,046 - testcase.TC-SECURITY-001 - WARNING - 原始URL 'http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit' 不是HTTPS。跳过此测试用例的URL修改。 2025-05-28 17:59:14,061 - testcase.TC-SECURITY-001 - ERROR - 安全漏洞:API允许通过HTTP成功响应 (200)。 2025-05-28 17:59:14,061 - ddms_compliance_suite.test_orchestrator - DEBUG -  ❌ 测试用例 'TC-SECURITY-001' 执行失败。 2025-05-28 17:59:14,061 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-SECURITY-001' 执行完毕,状态: 失败 2025-05-28 17:59:14,061 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-ERROR-4001-QUERY' for 'PUT /api/dms/{dms_instance_code}/v1/cd_geo_unit' 2025-05-28 17:59:14,061 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. 2025-05-28 17:59:14,061 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['yapi_categories'] 2025-05-28 17:59:14,061 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... 2025-05-28 17:59:14,061 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... 2025-05-28 17:59:14,061 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[0] ('dms_instance_code') 的 schema... 2025-05-28 17:59:14,061 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[1] ('id') 的 schema... 2025-05-28 17:59:14,061 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[2] ('tenant-id') 的 schema... 2025-05-28 17:59:14,061 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[3] ('Authorization') 的 schema... 2025-05-28 17:59:14,061 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... 2025-05-28 17:59:14,061 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 2025-05-28 17:59:14,061 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: TypeMismatchQueryParamCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_yapi_id', '_yapi_raw_data', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['yapi_categories']) 2025-05-28 17:59:14,061 - testcase.TC-ERROR-4001-QUERY - DEBUG - Test case 'TC-ERROR-4001-QUERY' initialized for endpoint: PUT /api/dms/{dms_instance_code}/v1/cd_geo_unit 2025-05-28 17:59:14,061 - testcase.TC-ERROR-4001-QUERY - INFO - [TC-ERROR-4001-QUERY] Initializing: Looking for a simple type query parameter for type mismatch test. 2025-05-28 17:59:14,061 - testcase.TC-ERROR-4001-QUERY - DEBUG - _find_first_simple_type_parameter: Checking query parameter 'id'. 2025-05-28 17:59:14,061 - testcase.TC-ERROR-4001-QUERY - INFO - _find_first_simple_type_parameter: Found simple type query parameter 'id' (type: string) via its 'schema'. 2025-05-28 17:59:14,061 - testcase.TC-ERROR-4001-QUERY - INFO - [TC-ERROR-4001-QUERY] Target for type mismatch (query): Param='id', Path='id', Type='string' 2025-05-28 17:59:14,061 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-ERROR-4001-QUERY' (Error Code 4001 - Query Parameter Type Mismatch Validation) for endpoint 'PUT /api/dms/{dms_instance_code}/v1/cd_geo_unit' 2025-05-28 17:59:14,061 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial path param for 'put__api_dms_dms_instance_code_v1_cd_geo_unit_135749': dms_instance_code = example_dms_instance_code 2025-05-28 17:59:14,061 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial query param for 'put__api_dms_dms_instance_code_v1_cd_geo_unit_135749': id = dsid 2025-05-28 17:59:14,061 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial custom header param for 'put__api_dms_dms_instance_code_v1_cd_geo_unit_135749': tenant-id = header_val_tenant-id 2025-05-28 17:59:14,061 - ddms_compliance_suite.test_orchestrator - DEBUG - Skipping standard header 'Authorization' in parameter processing for 'put__api_dms_dms_instance_code_v1_cd_geo_unit_135749'. It will be handled separately. 2025-05-28 17:59:14,061 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'put__api_dms_dms_instance_code_v1_cd_geo_unit_135749': application/json 2025-05-28 17:59:14,061 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'put__api_dms_dms_instance_code_v1_cd_geo_unit_135749': application/json 2025-05-28 17:59:14,061 - ddms_compliance_suite.test_orchestrator - DEBUG - [put__api_dms_dms_instance_code_v1_cd_geo_unit_135749] 生成 object 类型数据 for (context: put__api_dms_dms_instance_code_v1_cd_geo_unit_135749_body). Properties: ['id', 'version'] 2025-05-28 17:59:14,061 - ddms_compliance_suite.test_orchestrator - DEBUG - [put__api_dms_dms_instance_code_v1_cd_geo_unit_135749] 生成 string 类型数据 ('') for (context: put__api_dms_dms_instance_code_v1_cd_geo_unit_135749_body.id): example_string 2025-05-28 17:59:14,061 - ddms_compliance_suite.test_orchestrator - DEBUG - [put__api_dms_dms_instance_code_v1_cd_geo_unit_135749] 生成 string 类型数据 ('') for (context: put__api_dms_dms_instance_code_v1_cd_geo_unit_135749_body.version): example_string 2025-05-28 17:59:14,061 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'put__api_dms_dms_instance_code_v1_cd_geo_unit_135749' (type: ) 2025-05-28 17:59:14,061 - testcase.TC-ERROR-4001-QUERY - DEBUG - [TC-ERROR-4001-QUERY] Preparing to modify query params for type mismatch. Target path: ['id'], Original type: string 2025-05-28 17:59:14,061 - testcase.TC-ERROR-4001-QUERY - INFO - [TC-ERROR-4001-QUERY] Generated mismatched value '12345' for original type 'string' at query path 'id'. 2025-05-28 17:59:14,061 - ddms_compliance_suite.utils.schema_utils - INFO - [Util] 在路径 id (键 'id') 处设置值为 '12345' 2025-05-28 17:59:14,061 - testcase.TC-ERROR-4001-QUERY - DEBUG - [TC-ERROR-4001-QUERY] Successfully set mismatched value in query params using util_set_value_at_path. 2025-05-28 17:59:14,061 - testcase.TC-ERROR-4001-QUERY - DEBUG - Hook: generate_headers, current keys: ['tenant-id', 'Content-Type', 'Accept'] 2025-05-28 17:59:14,061 - testcase.TC-ERROR-4001-QUERY - DEBUG - TC-ERROR-4001-QUERY is focused on query parameters, generate_request_body will not modify the body. 2025-05-28 17:59:14,061 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {'dms_instance_code': 'example_dms_instance_code'} 2025-05-28 17:59:14,061 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit 2025-05-28 17:59:14,061 - testcase.TC-ERROR-4001-QUERY - DEBUG - Hook: modify_request_url, original URL: http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit 2025-05-28 17:59:14,061 - testcase.TC-ERROR-4001-QUERY - DEBUG - Test case 'TC-ERROR-4001-QUERY' did not modify the URL via modify_request_url hook. 2025-05-28 17:59:14,061 - testcase.TC-ERROR-4001-QUERY - DEBUG - Hook: validate_request_url, url: http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit 2025-05-28 17:59:14,061 - testcase.TC-ERROR-4001-QUERY - DEBUG - Hook: validate_request_headers, header keys: ['tenant-id', 'Content-Type', 'Accept'] 2025-05-28 17:59:14,061 - testcase.TC-ERROR-4001-QUERY - DEBUG - Hook: validate_request_body, body type: 2025-05-28 17:59:14,076 - testcase.TC-ERROR-4001-QUERY - WARNING - TC-ERROR-4001-QUERY: Failed. 当查询参数 'id' (路径: 'id') 类型不匹配时,期望API返回状态码在 [400, 422] 中,或返回4xx客户端错误且业务码为 '4001'. 实际收到状态码 200. 响应体中的业务码 ('code') 为 '61'. (Query param: id) 2025-05-28 17:59:14,076 - testcase.TC-ERROR-4001-QUERY - DEBUG - Hook: check_performance, elapsed: 0.014267206192016602 2025-05-28 17:59:14,076 - ddms_compliance_suite.test_orchestrator - DEBUG -  ❌ 测试用例 'TC-ERROR-4001-QUERY' 执行失败。 2025-05-28 17:59:14,076 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-ERROR-4001-QUERY' 执行完毕,状态: 失败 2025-05-28 17:59:14,076 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-ERROR-4001-BODY' for 'PUT /api/dms/{dms_instance_code}/v1/cd_geo_unit' 2025-05-28 17:59:14,076 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. 2025-05-28 17:59:14,076 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['yapi_categories'] 2025-05-28 17:59:14,076 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... 2025-05-28 17:59:14,076 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... 2025-05-28 17:59:14,076 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[0] ('dms_instance_code') 的 schema... 2025-05-28 17:59:14,076 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[1] ('id') 的 schema... 2025-05-28 17:59:14,076 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[2] ('tenant-id') 的 schema... 2025-05-28 17:59:14,076 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[3] ('Authorization') 的 schema... 2025-05-28 17:59:14,076 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... 2025-05-28 17:59:14,076 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 2025-05-28 17:59:14,076 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: TypeMismatchBodyCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_yapi_id', '_yapi_raw_data', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['yapi_categories']) 2025-05-28 17:59:14,076 - testcase.TC-ERROR-4001-BODY - DEBUG - Test case 'TC-ERROR-4001-BODY' initialized for endpoint: PUT /api/dms/{dms_instance_code}/v1/cd_geo_unit 2025-05-28 17:59:14,076 - testcase.TC-ERROR-4001-BODY - INFO - [TC-ERROR-4001-BODY] Initializing: Looking for a simple type field in request body for type mismatch test. 2025-05-28 17:59:14,076 - testcase.TC-ERROR-4001-BODY - DEBUG - Found request body schema under content type: application/json 2025-05-28 17:59:14,076 - testcase.TC-ERROR-4001-BODY - DEBUG - _find_simple_type_field_in_schema: Searching for simple type field in 'request body' schema... 2025-05-28 17:59:14,076 - testcase.TC-ERROR-4001-BODY - INFO - Found simple type field: Path=id, Type=string 2025-05-28 17:59:14,076 - testcase.TC-ERROR-4001-BODY - INFO - _find_simple_type_field_in_schema: Found simple type field in 'request body': Path=id, Type=string 2025-05-28 17:59:14,076 - testcase.TC-ERROR-4001-BODY - INFO - [TC-ERROR-4001-BODY] Target field for type mismatch (body): id, Original Type: string 2025-05-28 17:59:14,076 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-ERROR-4001-BODY' (Error Code 4001 - Request Body Type Mismatch Validation) for endpoint 'PUT /api/dms/{dms_instance_code}/v1/cd_geo_unit' 2025-05-28 17:59:14,076 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial path param for 'put__api_dms_dms_instance_code_v1_cd_geo_unit_135749': dms_instance_code = example_dms_instance_code 2025-05-28 17:59:14,076 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial query param for 'put__api_dms_dms_instance_code_v1_cd_geo_unit_135749': id = dsid 2025-05-28 17:59:14,076 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial custom header param for 'put__api_dms_dms_instance_code_v1_cd_geo_unit_135749': tenant-id = header_val_tenant-id 2025-05-28 17:59:14,076 - ddms_compliance_suite.test_orchestrator - DEBUG - Skipping standard header 'Authorization' in parameter processing for 'put__api_dms_dms_instance_code_v1_cd_geo_unit_135749'. It will be handled separately. 2025-05-28 17:59:14,076 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'put__api_dms_dms_instance_code_v1_cd_geo_unit_135749': application/json 2025-05-28 17:59:14,076 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'put__api_dms_dms_instance_code_v1_cd_geo_unit_135749': application/json 2025-05-28 17:59:14,076 - ddms_compliance_suite.test_orchestrator - DEBUG - [put__api_dms_dms_instance_code_v1_cd_geo_unit_135749] 生成 object 类型数据 for (context: put__api_dms_dms_instance_code_v1_cd_geo_unit_135749_body). Properties: ['id', 'version'] 2025-05-28 17:59:14,076 - ddms_compliance_suite.test_orchestrator - DEBUG - [put__api_dms_dms_instance_code_v1_cd_geo_unit_135749] 生成 string 类型数据 ('') for (context: put__api_dms_dms_instance_code_v1_cd_geo_unit_135749_body.id): example_string 2025-05-28 17:59:14,076 - ddms_compliance_suite.test_orchestrator - DEBUG - [put__api_dms_dms_instance_code_v1_cd_geo_unit_135749] 生成 string 类型数据 ('') for (context: put__api_dms_dms_instance_code_v1_cd_geo_unit_135749_body.version): example_string 2025-05-28 17:59:14,076 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'put__api_dms_dms_instance_code_v1_cd_geo_unit_135749' (type: ) 2025-05-28 17:59:14,076 - testcase.TC-ERROR-4001-BODY - DEBUG - TC-ERROR-4001-BODY is focused on request body, generate_query_params will not modify query parameters. 2025-05-28 17:59:14,076 - testcase.TC-ERROR-4001-BODY - DEBUG - Hook: generate_headers, current keys: ['tenant-id', 'Content-Type', 'Accept'] 2025-05-28 17:59:14,076 - testcase.TC-ERROR-4001-BODY - DEBUG - [TC-ERROR-4001-BODY] Preparing to modify request body for type mismatch. Target path: ['id'], Original type: string 2025-05-28 17:59:14,076 - testcase.TC-ERROR-4001-BODY - INFO - [TC-ERROR-4001-BODY] Generated mismatched value '12345' for original type 'string' at path 'id'. 2025-05-28 17:59:14,076 - ddms_compliance_suite.utils.schema_utils - INFO - [Util] 在路径 id (键 'id') 处设置值为 '12345' 2025-05-28 17:59:14,076 - testcase.TC-ERROR-4001-BODY - DEBUG - [TC-ERROR-4001-BODY] Successfully set mismatched value at path using util_set_value_at_path. 2025-05-28 17:59:14,076 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {'dms_instance_code': 'example_dms_instance_code'} 2025-05-28 17:59:14,076 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit 2025-05-28 17:59:14,076 - testcase.TC-ERROR-4001-BODY - DEBUG - Hook: modify_request_url, original URL: http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit 2025-05-28 17:59:14,076 - testcase.TC-ERROR-4001-BODY - DEBUG - Test case 'TC-ERROR-4001-BODY' did not modify the URL via modify_request_url hook. 2025-05-28 17:59:14,076 - testcase.TC-ERROR-4001-BODY - DEBUG - Hook: validate_request_url, url: http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit 2025-05-28 17:59:14,076 - testcase.TC-ERROR-4001-BODY - DEBUG - Hook: validate_request_headers, header keys: ['tenant-id', 'Content-Type', 'Accept'] 2025-05-28 17:59:14,076 - testcase.TC-ERROR-4001-BODY - DEBUG - Hook: validate_request_body, body type: DEBUG: curlify generated command (raw): curl -H 'User-Agent: python-requests/2.32.3' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'tenant-id: header_val_tenant-id' -H 'Content-Type: application/json' -H 'Content-Length: 477' -d '{"isSearchCount": true, "query": {"dataRegions": ["example_string"], "fields": ["example_string"], "filter": {"key": "example_string", "logic": "example_string", "realValue": [{}], "singleValue": {}, "subFilter": ["example_string"], "symbol": "example_string"}, "groupFields": ["example_string"], "groupFilter": {"key": "example_string", "logic": "example_string", "realValue": [{}], "singleValue": {}, "subFilter": ["example_string"], "symbol": "example_string"}, "sort": {}}}' --insecure 'http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit/1.0.0?pageNo=query_val_pageNo&pageSize=query_val_pageSize' DEBUG: curlify generated command (repr): 'curl -H \'User-Agent: python-requests/2.32.3\' -H \'Accept-Encoding: gzip, deflate, br, zstd\' -H \'Accept: application/json\' -H \'Connection: keep-alive\' -H \'tenant-id: header_val_tenant-id\' -H \'Content-Type: application/json\' -H \'Content-Length: 477\' -d \'{"isSearchCount": true, "query": {"dataRegions": ["example_string"], "fields": ["example_string"], "filter": {"key": "example_string", "logic": "example_string", "realValue": [{}], "singleValue": {}, "subFilter": ["example_string"], "symbol": "example_string"}, "groupFields": ["example_string"], "groupFilter": {"key": "example_string", "logic": "example_string", "realValue": [{}], "singleValue": {}, "subFilter": ["example_string"], "symbol": "example_string"}, "sort": {}}}\' --insecure \'http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit/1.0.0?pageNo=query_val_pageNo&pageSize=query_val_pageSize\'' DEBUG: curlify generated command (raw): curl -H 'User-Agent: python-requests/2.32.3' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'tenant-id: header_val_tenant-id' -H 'Content-Type: application/json' -H 'Content-Length: 477' -d '{"isSearchCount": true, "query": {"dataRegions": ["example_string"], "fields": ["example_string"], "filter": {"key": "example_string", "logic": "example_string", "realValue": [{}], "singleValue": {}, "subFilter": ["example_string"], "symbol": "example_string"}, "groupFields": ["example_string"], "groupFilter": {"key": "example_string", "logic": "example_string", "realValue": [{}], "singleValue": {}, "subFilter": ["example_string"], "symbol": "example_string"}, "sort": {}}}' --insecure 'http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit/1.0.0?pageNo=query_val_pageNo&pageSize=query_val_pageSize' DEBUG: curlify generated command (repr): 'curl -H \'User-Agent: python-requests/2.32.3\' -H \'Accept-Encoding: gzip, deflate, br, zstd\' -H \'Accept: application/json\' -H \'Connection: keep-alive\' -H \'tenant-id: header_val_tenant-id\' -H \'Content-Type: application/json\' -H \'Content-Length: 477\' -d \'{"isSearchCount": true, "query": {"dataRegions": ["example_string"], "fields": ["example_string"], "filter": {"key": "example_string", "logic": "example_string", "realValue": [{}], "singleValue": {}, "subFilter": ["example_string"], "symbol": "example_string"}, "groupFields": ["example_string"], "groupFilter": {"key": "example_string", "logic": "example_string", "realValue": [{}], "singleValue": {}, "subFilter": ["example_string"], "symbol": "example_string"}, "sort": {}}}\' --insecure \'http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit/1.0.0?pageNo=query_val_pageNo&pageSize=query_val_pageSize\'' DEBUG: curlify generated command (raw): curl -X PUT -H 'User-Agent: python-requests/2.32.3' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'tenant-id: header_val_tenant-id' -H 'Content-Type: application/json' -H 'Content-Length: 53' -d '{"id": "example_string", "version": "example_string"}' --insecure 'http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit?id=dsid' DEBUG: curlify generated command (repr): 'curl -X PUT -H \'User-Agent: python-requests/2.32.3\' -H \'Accept-Encoding: gzip, deflate, br, zstd\' -H \'Accept: application/json\' -H \'Connection: keep-alive\' -H \'tenant-id: header_val_tenant-id\' -H \'Content-Type: application/json\' -H \'Content-Length: 53\' -d \'{"id": "example_string", "version": "example_string"}\' --insecure \'http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit?id=dsid\'' DEBUG: curlify generated command (raw): curl -X PUT -H 'User-Agent: python-requests/2.32.3' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'tenant-id: header_val_tenant-id' -H 'Content-Type: application/json' -H 'Content-Length: 53' -d '{"id": "example_string", "version": "example_string"}' --insecure 'http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit?id=dsid' DEBUG: curlify generated command (repr): 'curl -X PUT -H \'User-Agent: python-requests/2.32.3\' -H \'Accept-Encoding: gzip, deflate, br, zstd\' -H \'Accept: application/json\' -H \'Connection: keep-alive\' -H \'tenant-id: header_val_tenant-id\' -H \'Content-Type: application/json\' -H \'Content-Length: 53\' -d \'{"id": "example_string", "version": "example_string"}\' --insecure \'http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit?id=dsid\'' DEBUG: curlify generated command (raw): curl -X PUT -H 'User-Agent: python-requests/2.32.3' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'tenant-id: header_val_tenant-id' -H 'Content-Type: application/json' -H 'Content-Length: 53' -d '{"id": "example_string", "version": "example_string"}' --insecure 'http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit?id=dsid' DEBUG: curlify generated command (repr): 'curl -X PUT -H \'User-Agent: python-requests/2.32.3\' -H \'Accept-Encoding: gzip, deflate, br, zstd\' -H \'Accept: application/json\' -H \'Connection: keep-alive\' -H \'tenant-id: header_val_tenant-id\' -H \'Content-Type: application/json\' -H \'Content-Length: 53\' -d \'{"id": "example_string", "version": "example_string"}\' --insecure \'http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit?id=dsid\'' DEBUG: curlify generated command (raw): curl -X PUT -H 'User-Agent: python-requests/2.32.3' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'tenant-id: header_val_tenant-id' -H 'Content-Type: application/json' -H 'Content-Length: 53' -d '{"id": "example_string", "version": "example_string"}' --insecure 'http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit?id=12345' DEBUG: curlify generated command (repr): 'curl -X PUT -H \'User-Agent: python-requests/2.32.3\' -H \'Accept-Encoding: gzip, deflate, br, zstd\' -H \'Accept: application/json\' -H \'Connection: keep-alive\' -H \'tenant-id: header_val_tenant-id\' -H \'Content-Type: application/json\' -H \'Content-Length: 53\' -d \'{"id": "example_string", "version": "example_string"}\' --insecure \'http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit?id=12345\'' DEBUG: curlify generated command (raw): curl -X PUT -H 'User-Agent: python-requests/2.32.3' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'tenant-id: header_val_tenant-id' -H 'Content-Type: application/json' -H 'Content-Length: 42' -d '{"id": 12345, "version": "example_string"}' --insecure 'http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit?id=dsid' 2025-05-28 17:59:14,091 - testcase.TC-ERROR-4001-BODY - WARNING - TC-ERROR-4001-BODY: Failed. 当请求体字段 'id' 类型不匹配时,期望API返回状态码在 [400, 422] 中,或返回4xx客户端错误且业务码为 '4001'. 实际收到状态码 200. 响应体中的业务码 ('code') 为 '38'. (Field: body.id) 2025-05-28 17:59:14,091 - testcase.TC-ERROR-4001-BODY - DEBUG - Hook: check_performance, elapsed: 0.014911174774169922 2025-05-28 17:59:14,091 - ddms_compliance_suite.test_orchestrator - DEBUG -  ❌ 测试用例 'TC-ERROR-4001-BODY' 执行失败。 2025-05-28 17:59:14,091 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-ERROR-4001-BODY' 执行完毕,状态: 失败 2025-05-28 17:59:14,091 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-ERROR-4003-BODY' for 'PUT /api/dms/{dms_instance_code}/v1/cd_geo_unit' 2025-05-28 17:59:14,091 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. 2025-05-28 17:59:14,091 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['yapi_categories'] 2025-05-28 17:59:14,091 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... 2025-05-28 17:59:14,091 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... 2025-05-28 17:59:14,091 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[0] ('dms_instance_code') 的 schema... 2025-05-28 17:59:14,091 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[1] ('id') 的 schema... 2025-05-28 17:59:14,091 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[2] ('tenant-id') 的 schema... 2025-05-28 17:59:14,091 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[3] ('Authorization') 的 schema... 2025-05-28 17:59:14,091 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... 2025-05-28 17:59:14,091 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 2025-05-28 17:59:14,091 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: MissingRequiredFieldBodyCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_yapi_id', '_yapi_raw_data', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['yapi_categories']) 2025-05-28 17:59:14,091 - ddms_compliance_suite.utils.schema_utils - DEBUG - [Util] 递归查找路径: [], 当前层级必填字段: ['id', 'version'], 属性: ['id', 'version'] 2025-05-28 17:59:14,091 - ddms_compliance_suite.utils.schema_utils - INFO - [Util] 策略1: 在路径 root 找到可直接移除的必填字段: 'id' 2025-05-28 17:59:14,091 - testcase.TC-ERROR-4003-BODY - INFO - Found a removable field path in 'request body' schema: 'id' 2025-05-28 17:59:14,091 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-ERROR-4003-BODY' (Error Code 4003 - Missing Required Request Body Field Validation) for endpoint 'PUT /api/dms/{dms_instance_code}/v1/cd_geo_unit' 2025-05-28 17:59:14,091 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial path param for 'put__api_dms_dms_instance_code_v1_cd_geo_unit_135749': dms_instance_code = example_dms_instance_code 2025-05-28 17:59:14,092 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial query param for 'put__api_dms_dms_instance_code_v1_cd_geo_unit_135749': id = dsid 2025-05-28 17:59:14,092 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial custom header param for 'put__api_dms_dms_instance_code_v1_cd_geo_unit_135749': tenant-id = header_val_tenant-id 2025-05-28 17:59:14,092 - ddms_compliance_suite.test_orchestrator - DEBUG - Skipping standard header 'Authorization' in parameter processing for 'put__api_dms_dms_instance_code_v1_cd_geo_unit_135749'. It will be handled separately. 2025-05-28 17:59:14,092 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'put__api_dms_dms_instance_code_v1_cd_geo_unit_135749': application/json 2025-05-28 17:59:14,092 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'put__api_dms_dms_instance_code_v1_cd_geo_unit_135749': application/json 2025-05-28 17:59:14,092 - ddms_compliance_suite.test_orchestrator - DEBUG - [put__api_dms_dms_instance_code_v1_cd_geo_unit_135749] 生成 object 类型数据 for (context: put__api_dms_dms_instance_code_v1_cd_geo_unit_135749_body). Properties: ['id', 'version'] 2025-05-28 17:59:14,092 - ddms_compliance_suite.test_orchestrator - DEBUG - [put__api_dms_dms_instance_code_v1_cd_geo_unit_135749] 生成 string 类型数据 ('') for (context: put__api_dms_dms_instance_code_v1_cd_geo_unit_135749_body.id): example_string 2025-05-28 17:59:14,092 - ddms_compliance_suite.test_orchestrator - DEBUG - [put__api_dms_dms_instance_code_v1_cd_geo_unit_135749] 生成 string 类型数据 ('') for (context: put__api_dms_dms_instance_code_v1_cd_geo_unit_135749_body.version): example_string 2025-05-28 17:59:14,092 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'put__api_dms_dms_instance_code_v1_cd_geo_unit_135749' (type: ) 2025-05-28 17:59:14,092 - ddms_compliance_suite.utils.schema_utils - INFO - [Util] 从路径 'id' 成功移除字段 'id' (原值: 'example_string')。 2025-05-28 17:59:14,092 - testcase.TC-ERROR-4003-BODY - INFO - 为进行必填字段缺失测试,已通过工具方法从请求体中移除字段路径 'id'。 2025-05-28 17:59:14,092 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {'dms_instance_code': 'example_dms_instance_code'} 2025-05-28 17:59:14,092 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit 2025-05-28 17:59:14,107 - testcase.TC-ERROR-4003-BODY - INFO - TC-ERROR-4003-BODY: Passed (Fallback). HTTP status 200 (4xx) with matching business code '4003'. (Removed field: body.id) 2025-05-28 17:59:14,107 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-ERROR-4003-BODY' 执行成功。 2025-05-28 17:59:14,107 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-ERROR-4003-BODY' 执行完毕,状态: 通过 2025-05-28 17:59:14,107 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-ERROR-4003-QUERY' for 'PUT /api/dms/{dms_instance_code}/v1/cd_geo_unit' 2025-05-28 17:59:14,107 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. 2025-05-28 17:59:14,107 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['yapi_categories'] 2025-05-28 17:59:14,107 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... 2025-05-28 17:59:14,107 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... 2025-05-28 17:59:14,107 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[0] ('dms_instance_code') 的 schema... 2025-05-28 17:59:14,107 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[1] ('id') 的 schema... 2025-05-28 17:59:14,107 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[2] ('tenant-id') 的 schema... 2025-05-28 17:59:14,107 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[3] ('Authorization') 的 schema... 2025-05-28 17:59:14,107 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... 2025-05-28 17:59:14,108 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 2025-05-28 17:59:14,108 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: MissingRequiredFieldQueryCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_yapi_id', '_yapi_raw_data', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['yapi_categories']) 2025-05-28 17:59:14,108 - testcase.TC-ERROR-4003-QUERY - INFO - Found required 'query' parameter: 'id'. 2025-05-28 17:59:14,108 - testcase.TC-ERROR-4003-QUERY - INFO - 测试用例 TC-ERROR-4003-QUERY (Error Code 4003 - Missing Required Query Parameter Validation) 已针对端点 'PUT /api/dms/{dms_instance_code}/v1/cd_geo_unit' 初始化。Target param to remove: id 2025-05-28 17:59:14,108 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-ERROR-4003-QUERY' (Error Code 4003 - Missing Required Query Parameter Validation) for endpoint 'PUT /api/dms/{dms_instance_code}/v1/cd_geo_unit' 2025-05-28 17:59:14,108 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial path param for 'put__api_dms_dms_instance_code_v1_cd_geo_unit_135749': dms_instance_code = example_dms_instance_code 2025-05-28 17:59:14,108 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial query param for 'put__api_dms_dms_instance_code_v1_cd_geo_unit_135749': id = dsid 2025-05-28 17:59:14,108 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial custom header param for 'put__api_dms_dms_instance_code_v1_cd_geo_unit_135749': tenant-id = header_val_tenant-id 2025-05-28 17:59:14,108 - ddms_compliance_suite.test_orchestrator - DEBUG - Skipping standard header 'Authorization' in parameter processing for 'put__api_dms_dms_instance_code_v1_cd_geo_unit_135749'. It will be handled separately. 2025-05-28 17:59:14,108 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'put__api_dms_dms_instance_code_v1_cd_geo_unit_135749': application/json 2025-05-28 17:59:14,108 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'put__api_dms_dms_instance_code_v1_cd_geo_unit_135749': application/json 2025-05-28 17:59:14,108 - ddms_compliance_suite.test_orchestrator - DEBUG - [put__api_dms_dms_instance_code_v1_cd_geo_unit_135749] 生成 object 类型数据 for (context: put__api_dms_dms_instance_code_v1_cd_geo_unit_135749_body). Properties: ['id', 'version'] 2025-05-28 17:59:14,108 - ddms_compliance_suite.test_orchestrator - DEBUG - [put__api_dms_dms_instance_code_v1_cd_geo_unit_135749] 生成 string 类型数据 ('') for (context: put__api_dms_dms_instance_code_v1_cd_geo_unit_135749_body.id): example_string 2025-05-28 17:59:14,108 - ddms_compliance_suite.test_orchestrator - DEBUG - [put__api_dms_dms_instance_code_v1_cd_geo_unit_135749] 生成 string 类型数据 ('') for (context: put__api_dms_dms_instance_code_v1_cd_geo_unit_135749_body.version): example_string 2025-05-28 17:59:14,108 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'put__api_dms_dms_instance_code_v1_cd_geo_unit_135749' (type: ) 2025-05-28 17:59:14,108 - testcase.TC-ERROR-4003-QUERY - INFO - 为进行必填查询参数缺失测试,已从查询参数中移除 'id' (原值: 'dsid')。 2025-05-28 17:59:14,108 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {'dms_instance_code': 'example_dms_instance_code'} 2025-05-28 17:59:14,108 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit 2025-05-28 17:59:14,121 - testcase.TC-ERROR-4003-QUERY - WARNING - TC-ERROR-4003-QUERY: Failed. 当移除必填查询参数 'id' 时,期望API返回状态码在 [400, 422] 中,或返回4xx客户端错误且业务码为 '4003'. 实际收到状态码 200. 响应体中的业务码 ('code') 为 '95'. (Removed query param: id) 2025-05-28 17:59:14,121 - ddms_compliance_suite.test_orchestrator - DEBUG -  ❌ 测试用例 'TC-ERROR-4003-QUERY' 执行失败。 2025-05-28 17:59:14,121 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-ERROR-4003-QUERY' 执行完毕,状态: 失败 2025-05-28 17:59:14,121 - ddms_compliance_suite.test_orchestrator - INFO - 端点 'PUT /api/dms/{dms_instance_code}/v1/cd_geo_unit' 测试完成,最终状态: 失败 2025-05-28 17:59:14,121 - ddms_compliance_suite.test_orchestrator - INFO - 开始为端点测试: DELETE /api/dms/{dms_instance_code}/v1/cd_geo_unit (地质单元数据删除) 2025-05-28 17:59:14,121 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-STATUS-001' 适用于端点 'DELETE /api/dms/{dms_instance_code}/v1/cd_geo_unit'。 2025-05-28 17:59:14,121 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-CORE-FUNC-001' 适用于端点 'DELETE /api/dms/{dms_instance_code}/v1/cd_geo_unit'。 2025-05-28 17:59:14,121 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-SECURITY-001' 适用于端点 'DELETE /api/dms/{dms_instance_code}/v1/cd_geo_unit'。 2025-05-28 17:59:14,121 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4001-QUERY' 适用于端点 'DELETE /api/dms/{dms_instance_code}/v1/cd_geo_unit'。 2025-05-28 17:59:14,121 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4001-BODY' 适用于端点 'DELETE /api/dms/{dms_instance_code}/v1/cd_geo_unit'。 2025-05-28 17:59:14,121 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4003-BODY' 适用于端点 'DELETE /api/dms/{dms_instance_code}/v1/cd_geo_unit'。 2025-05-28 17:59:14,121 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4003-QUERY' 适用于端点 'DELETE /api/dms/{dms_instance_code}/v1/cd_geo_unit'。 2025-05-28 17:59:14,121 - ddms_compliance_suite.test_orchestrator - INFO - 端点 'DELETE /api/dms/{dms_instance_code}/v1/cd_geo_unit' 发现了 7 个适用的测试用例 (已排序): ['TC-STATUS-001', 'TC-CORE-FUNC-001', 'TC-SECURITY-001', 'TC-ERROR-4001-QUERY', 'TC-ERROR-4001-BODY', 'TC-ERROR-4003-BODY', 'TC-ERROR-4003-QUERY'] 2025-05-28 17:59:14,121 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-STATUS-001' for 'DELETE /api/dms/{dms_instance_code}/v1/cd_geo_unit' 2025-05-28 17:59:14,121 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. 2025-05-28 17:59:14,121 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['yapi_categories'] 2025-05-28 17:59:14,121 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... 2025-05-28 17:59:14,121 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... 2025-05-28 17:59:14,121 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[0] ('dms_instance_code') 的 schema... 2025-05-28 17:59:14,121 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[1] ('id') 的 schema... 2025-05-28 17:59:14,121 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[2] ('tenant-id') 的 schema... 2025-05-28 17:59:14,121 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[3] ('Authorization') 的 schema... 2025-05-28 17:59:14,121 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... 2025-05-28 17:59:14,121 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 2025-05-28 17:59:14,121 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: StatusCode200Check 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_yapi_id', '_yapi_raw_data', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['yapi_categories']) 2025-05-28 17:59:14,121 - testcase.TC-STATUS-001 - INFO - 测试用例 TC-STATUS-001 (基本状态码 200 检查) 已针对端点 'DELETE /api/dms/{dms_instance_code}/v1/cd_geo_unit' 初始化。 2025-05-28 17:59:14,122 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-STATUS-001' (基本状态码 200 检查) for endpoint 'DELETE /api/dms/{dms_instance_code}/v1/cd_geo_unit' 2025-05-28 17:59:14,122 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial path param for 'delete__api_dms_dms_instance_code_v1_cd_geo_unit_135750': dms_instance_code = example_dms_instance_code 2025-05-28 17:59:14,122 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial query param for 'delete__api_dms_dms_instance_code_v1_cd_geo_unit_135750': id = dsid 2025-05-28 17:59:14,122 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial custom header param for 'delete__api_dms_dms_instance_code_v1_cd_geo_unit_135750': tenant-id = header_val_tenant-id 2025-05-28 17:59:14,122 - ddms_compliance_suite.test_orchestrator - DEBUG - Skipping standard header 'Authorization' in parameter processing for 'delete__api_dms_dms_instance_code_v1_cd_geo_unit_135750'. It will be handled separately. 2025-05-28 17:59:14,122 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'delete__api_dms_dms_instance_code_v1_cd_geo_unit_135750': application/json 2025-05-28 17:59:14,122 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'delete__api_dms_dms_instance_code_v1_cd_geo_unit_135750': application/json 2025-05-28 17:59:14,122 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete__api_dms_dms_instance_code_v1_cd_geo_unit_135750] 生成 object 类型数据 for (context: delete__api_dms_dms_instance_code_v1_cd_geo_unit_135750_body). Properties: ['version', 'data'] 2025-05-28 17:59:14,122 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete__api_dms_dms_instance_code_v1_cd_geo_unit_135750] 生成 string 类型数据 ('') for (context: delete__api_dms_dms_instance_code_v1_cd_geo_unit_135750_body.version): example_string 2025-05-28 17:59:14,122 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete__api_dms_dms_instance_code_v1_cd_geo_unit_135750] 生成 array 类型数据 for (context: delete__api_dms_dms_instance_code_v1_cd_geo_unit_135750_body.data). Items schema: {'type': 'string'}, minItems: 1 2025-05-28 17:59:14,122 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete__api_dms_dms_instance_code_v1_cd_geo_unit_135750] 生成 string 类型数据 ('') for (context: delete__api_dms_dms_instance_code_v1_cd_geo_unit_135750_body.data[0]): example_string 2025-05-28 17:59:14,122 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'delete__api_dms_dms_instance_code_v1_cd_geo_unit_135750' (type: ) 2025-05-28 17:59:14,122 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {'dms_instance_code': 'example_dms_instance_code'} 2025-05-28 17:59:14,122 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit 2025-05-28 17:59:14,139 - testcase.TC-STATUS-001 - INFO - 状态码验证通过: 200 == 200 for http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit 2025-05-28 17:59:14,139 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-STATUS-001' 执行成功。 2025-05-28 17:59:14,139 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-STATUS-001' 执行完毕,状态: 通过 2025-05-28 17:59:14,139 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-CORE-FUNC-001' for 'DELETE /api/dms/{dms_instance_code}/v1/cd_geo_unit' 2025-05-28 17:59:14,139 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. 2025-05-28 17:59:14,139 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['yapi_categories'] 2025-05-28 17:59:14,139 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... 2025-05-28 17:59:14,139 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... 2025-05-28 17:59:14,139 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[0] ('dms_instance_code') 的 schema... 2025-05-28 17:59:14,139 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[1] ('id') 的 schema... 2025-05-28 17:59:14,139 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[2] ('tenant-id') 的 schema... 2025-05-28 17:59:14,139 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[3] ('Authorization') 的 schema... 2025-05-28 17:59:14,139 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... 2025-05-28 17:59:14,139 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 2025-05-28 17:59:14,139 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: ResponseSchemaValidationCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_yapi_id', '_yapi_raw_data', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['yapi_categories']) 2025-05-28 17:59:14,139 - testcase.TC-CORE-FUNC-001 - INFO - 测试用例 'TC-CORE-FUNC-001' 已为端点 'DELETE /api/dms/{dms_instance_code}/v1/cd_geo_unit' 初始化。 2025-05-28 17:59:14,139 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-CORE-FUNC-001' (Response Body JSON Schema Validation) for endpoint 'DELETE /api/dms/{dms_instance_code}/v1/cd_geo_unit' 2025-05-28 17:59:14,139 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial path param for 'delete__api_dms_dms_instance_code_v1_cd_geo_unit_135750': dms_instance_code = example_dms_instance_code 2025-05-28 17:59:14,139 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial query param for 'delete__api_dms_dms_instance_code_v1_cd_geo_unit_135750': id = dsid 2025-05-28 17:59:14,139 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial custom header param for 'delete__api_dms_dms_instance_code_v1_cd_geo_unit_135750': tenant-id = header_val_tenant-id 2025-05-28 17:59:14,139 - ddms_compliance_suite.test_orchestrator - DEBUG - Skipping standard header 'Authorization' in parameter processing for 'delete__api_dms_dms_instance_code_v1_cd_geo_unit_135750'. It will be handled separately. 2025-05-28 17:59:14,139 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'delete__api_dms_dms_instance_code_v1_cd_geo_unit_135750': application/json 2025-05-28 17:59:14,139 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'delete__api_dms_dms_instance_code_v1_cd_geo_unit_135750': application/json 2025-05-28 17:59:14,139 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete__api_dms_dms_instance_code_v1_cd_geo_unit_135750] 生成 object 类型数据 for (context: delete__api_dms_dms_instance_code_v1_cd_geo_unit_135750_body). Properties: ['version', 'data'] 2025-05-28 17:59:14,139 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete__api_dms_dms_instance_code_v1_cd_geo_unit_135750] 生成 string 类型数据 ('') for (context: delete__api_dms_dms_instance_code_v1_cd_geo_unit_135750_body.version): example_string 2025-05-28 17:59:14,139 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete__api_dms_dms_instance_code_v1_cd_geo_unit_135750] 生成 array 类型数据 for (context: delete__api_dms_dms_instance_code_v1_cd_geo_unit_135750_body.data). Items schema: {'type': 'string'}, minItems: 1 2025-05-28 17:59:14,139 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete__api_dms_dms_instance_code_v1_cd_geo_unit_135750] 生成 string 类型数据 ('') for (context: delete__api_dms_dms_instance_code_v1_cd_geo_unit_135750_body.data[0]): example_string 2025-05-28 17:59:14,139 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'delete__api_dms_dms_instance_code_v1_cd_geo_unit_135750' (type: ) 2025-05-28 17:59:14,139 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {'dms_instance_code': 'example_dms_instance_code'} 2025-05-28 17:59:14,139 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit 2025-05-28 17:59:14,153 - testcase.TC-CORE-FUNC-001 - INFO - 将根据路径 'responses.200.content.application/json.schema' 的schema验证响应体。 2025-05-28 17:59:14,153 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-CORE-FUNC-001' 执行成功。 2025-05-28 17:59:14,153 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-CORE-FUNC-001' 执行完毕,状态: 通过 2025-05-28 17:59:14,153 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-SECURITY-001' for 'DELETE /api/dms/{dms_instance_code}/v1/cd_geo_unit' 2025-05-28 17:59:14,153 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. 2025-05-28 17:59:14,153 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['yapi_categories'] 2025-05-28 17:59:14,153 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... 2025-05-28 17:59:14,153 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... 2025-05-28 17:59:14,153 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[0] ('dms_instance_code') 的 schema... 2025-05-28 17:59:14,153 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[1] ('id') 的 schema... 2025-05-28 17:59:14,153 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[2] ('tenant-id') 的 schema... 2025-05-28 17:59:14,153 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[3] ('Authorization') 的 schema... 2025-05-28 17:59:14,153 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... 2025-05-28 17:59:14,153 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 2025-05-28 17:59:14,153 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: HTTPSMandatoryCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_yapi_id', '_yapi_raw_data', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['yapi_categories']) 2025-05-28 17:59:14,153 - testcase.TC-SECURITY-001 - INFO - 测试用例 'TC-SECURITY-001' 已为端点 'DELETE /api/dms/{dms_instance_code}/v1/cd_geo_unit' 初始化。 2025-05-28 17:59:14,153 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-SECURITY-001' (HTTPS Protocol Mandatory Verification) for endpoint 'DELETE /api/dms/{dms_instance_code}/v1/cd_geo_unit' 2025-05-28 17:59:14,153 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial path param for 'delete__api_dms_dms_instance_code_v1_cd_geo_unit_135750': dms_instance_code = example_dms_instance_code 2025-05-28 17:59:14,153 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial query param for 'delete__api_dms_dms_instance_code_v1_cd_geo_unit_135750': id = dsid 2025-05-28 17:59:14,153 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial custom header param for 'delete__api_dms_dms_instance_code_v1_cd_geo_unit_135750': tenant-id = header_val_tenant-id 2025-05-28 17:59:14,153 - ddms_compliance_suite.test_orchestrator - DEBUG - Skipping standard header 'Authorization' in parameter processing for 'delete__api_dms_dms_instance_code_v1_cd_geo_unit_135750'. It will be handled separately. 2025-05-28 17:59:14,153 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'delete__api_dms_dms_instance_code_v1_cd_geo_unit_135750': application/json 2025-05-28 17:59:14,153 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'delete__api_dms_dms_instance_code_v1_cd_geo_unit_135750': application/json 2025-05-28 17:59:14,153 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete__api_dms_dms_instance_code_v1_cd_geo_unit_135750] 生成 object 类型数据 for (context: delete__api_dms_dms_instance_code_v1_cd_geo_unit_135750_body). Properties: ['version', 'data'] 2025-05-28 17:59:14,153 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete__api_dms_dms_instance_code_v1_cd_geo_unit_135750] 生成 string 类型数据 ('') for (context: delete__api_dms_dms_instance_code_v1_cd_geo_unit_135750_body.version): example_string 2025-05-28 17:59:14,153 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete__api_dms_dms_instance_code_v1_cd_geo_unit_135750] 生成 array 类型数据 for (context: delete__api_dms_dms_instance_code_v1_cd_geo_unit_135750_body.data). Items schema: {'type': 'string'}, minItems: 1 2025-05-28 17:59:14,153 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete__api_dms_dms_instance_code_v1_cd_geo_unit_135750] 生成 string 类型数据 ('') for (context: delete__api_dms_dms_instance_code_v1_cd_geo_unit_135750_body.data[0]): example_string 2025-05-28 17:59:14,153 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'delete__api_dms_dms_instance_code_v1_cd_geo_unit_135750' (type: ) 2025-05-28 17:59:14,153 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {'dms_instance_code': 'example_dms_instance_code'} 2025-05-28 17:59:14,153 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit 2025-05-28 17:59:14,153 - testcase.TC-SECURITY-001 - WARNING - 原始URL 'http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit' 不是HTTPS。跳过此测试用例的URL修改。 2025-05-28 17:59:14,168 - testcase.TC-SECURITY-001 - ERROR - 安全漏洞:API允许通过HTTP成功响应 (200)。 2025-05-28 17:59:14,168 - ddms_compliance_suite.test_orchestrator - DEBUG -  ❌ 测试用例 'TC-SECURITY-001' 执行失败。 2025-05-28 17:59:14,168 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-SECURITY-001' 执行完毕,状态: 失败 2025-05-28 17:59:14,168 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-ERROR-4001-QUERY' for 'DELETE /api/dms/{dms_instance_code}/v1/cd_geo_unit' 2025-05-28 17:59:14,168 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. 2025-05-28 17:59:14,168 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['yapi_categories'] 2025-05-28 17:59:14,168 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... 2025-05-28 17:59:14,168 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... 2025-05-28 17:59:14,168 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[0] ('dms_instance_code') 的 schema... 2025-05-28 17:59:14,168 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[1] ('id') 的 schema... 2025-05-28 17:59:14,169 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[2] ('tenant-id') 的 schema... 2025-05-28 17:59:14,169 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[3] ('Authorization') 的 schema... 2025-05-28 17:59:14,169 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... 2025-05-28 17:59:14,169 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 2025-05-28 17:59:14,169 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: TypeMismatchQueryParamCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_yapi_id', '_yapi_raw_data', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['yapi_categories']) 2025-05-28 17:59:14,169 - testcase.TC-ERROR-4001-QUERY - DEBUG - Test case 'TC-ERROR-4001-QUERY' initialized for endpoint: DELETE /api/dms/{dms_instance_code}/v1/cd_geo_unit 2025-05-28 17:59:14,169 - testcase.TC-ERROR-4001-QUERY - INFO - [TC-ERROR-4001-QUERY] Initializing: Looking for a simple type query parameter for type mismatch test. 2025-05-28 17:59:14,169 - testcase.TC-ERROR-4001-QUERY - DEBUG - _find_first_simple_type_parameter: Checking query parameter 'id'. 2025-05-28 17:59:14,169 - testcase.TC-ERROR-4001-QUERY - INFO - _find_first_simple_type_parameter: Found simple type query parameter 'id' (type: string) via its 'schema'. 2025-05-28 17:59:14,169 - testcase.TC-ERROR-4001-QUERY - INFO - [TC-ERROR-4001-QUERY] Target for type mismatch (query): Param='id', Path='id', Type='string' 2025-05-28 17:59:14,169 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-ERROR-4001-QUERY' (Error Code 4001 - Query Parameter Type Mismatch Validation) for endpoint 'DELETE /api/dms/{dms_instance_code}/v1/cd_geo_unit' 2025-05-28 17:59:14,169 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial path param for 'delete__api_dms_dms_instance_code_v1_cd_geo_unit_135750': dms_instance_code = example_dms_instance_code 2025-05-28 17:59:14,169 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial query param for 'delete__api_dms_dms_instance_code_v1_cd_geo_unit_135750': id = dsid 2025-05-28 17:59:14,169 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial custom header param for 'delete__api_dms_dms_instance_code_v1_cd_geo_unit_135750': tenant-id = header_val_tenant-id 2025-05-28 17:59:14,169 - ddms_compliance_suite.test_orchestrator - DEBUG - Skipping standard header 'Authorization' in parameter processing for 'delete__api_dms_dms_instance_code_v1_cd_geo_unit_135750'. It will be handled separately. 2025-05-28 17:59:14,169 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'delete__api_dms_dms_instance_code_v1_cd_geo_unit_135750': application/json 2025-05-28 17:59:14,169 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'delete__api_dms_dms_instance_code_v1_cd_geo_unit_135750': application/json 2025-05-28 17:59:14,169 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete__api_dms_dms_instance_code_v1_cd_geo_unit_135750] 生成 object 类型数据 for (context: delete__api_dms_dms_instance_code_v1_cd_geo_unit_135750_body). Properties: ['version', 'data'] 2025-05-28 17:59:14,169 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete__api_dms_dms_instance_code_v1_cd_geo_unit_135750] 生成 string 类型数据 ('') for (context: delete__api_dms_dms_instance_code_v1_cd_geo_unit_135750_body.version): example_string 2025-05-28 17:59:14,169 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete__api_dms_dms_instance_code_v1_cd_geo_unit_135750] 生成 array 类型数据 for (context: delete__api_dms_dms_instance_code_v1_cd_geo_unit_135750_body.data). Items schema: {'type': 'string'}, minItems: 1 2025-05-28 17:59:14,169 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete__api_dms_dms_instance_code_v1_cd_geo_unit_135750] 生成 string 类型数据 ('') for (context: delete__api_dms_dms_instance_code_v1_cd_geo_unit_135750_body.data[0]): example_string 2025-05-28 17:59:14,169 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'delete__api_dms_dms_instance_code_v1_cd_geo_unit_135750' (type: ) 2025-05-28 17:59:14,169 - testcase.TC-ERROR-4001-QUERY - DEBUG - [TC-ERROR-4001-QUERY] Preparing to modify query params for type mismatch. Target path: ['id'], Original type: string 2025-05-28 17:59:14,169 - testcase.TC-ERROR-4001-QUERY - INFO - [TC-ERROR-4001-QUERY] Generated mismatched value '12345' for original type 'string' at query path 'id'. 2025-05-28 17:59:14,169 - ddms_compliance_suite.utils.schema_utils - INFO - [Util] 在路径 id (键 'id') 处设置值为 '12345' 2025-05-28 17:59:14,169 - testcase.TC-ERROR-4001-QUERY - DEBUG - [TC-ERROR-4001-QUERY] Successfully set mismatched value in query params using util_set_value_at_path. 2025-05-28 17:59:14,169 - testcase.TC-ERROR-4001-QUERY - DEBUG - Hook: generate_headers, current keys: ['tenant-id', 'Content-Type', 'Accept'] 2025-05-28 17:59:14,169 - testcase.TC-ERROR-4001-QUERY - DEBUG - TC-ERROR-4001-QUERY is focused on query parameters, generate_request_body will not modify the body. 2025-05-28 17:59:14,169 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {'dms_instance_code': 'example_dms_instance_code'} 2025-05-28 17:59:14,169 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit 2025-05-28 17:59:14,169 - testcase.TC-ERROR-4001-QUERY - DEBUG - Hook: modify_request_url, original URL: http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit 2025-05-28 17:59:14,170 - testcase.TC-ERROR-4001-QUERY - DEBUG - Test case 'TC-ERROR-4001-QUERY' did not modify the URL via modify_request_url hook. 2025-05-28 17:59:14,170 - testcase.TC-ERROR-4001-QUERY - DEBUG - Hook: validate_request_url, url: http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit 2025-05-28 17:59:14,170 - testcase.TC-ERROR-4001-QUERY - DEBUG - Hook: validate_request_headers, header keys: ['tenant-id', 'Content-Type', 'Accept'] 2025-05-28 17:59:14,170 - testcase.TC-ERROR-4001-QUERY - DEBUG - Hook: validate_request_body, body type: 2025-05-28 17:59:14,190 - testcase.TC-ERROR-4001-QUERY - WARNING - TC-ERROR-4001-QUERY: Failed. 当查询参数 'id' (路径: 'id') 类型不匹配时,期望API返回状态码在 [400, 422] 中,或返回4xx客户端错误且业务码为 '4001'. 实际收到状态码 200. 响应体中的业务码 ('code') 为 '86'. (Query param: id) 2025-05-28 17:59:14,191 - testcase.TC-ERROR-4001-QUERY - DEBUG - Hook: check_performance, elapsed: 0.020517826080322266 2025-05-28 17:59:14,191 - ddms_compliance_suite.test_orchestrator - DEBUG -  ❌ 测试用例 'TC-ERROR-4001-QUERY' 执行失败。 2025-05-28 17:59:14,191 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-ERROR-4001-QUERY' 执行完毕,状态: 失败 2025-05-28 17:59:14,191 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-ERROR-4001-BODY' for 'DELETE /api/dms/{dms_instance_code}/v1/cd_geo_unit' 2025-05-28 17:59:14,191 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. 2025-05-28 17:59:14,191 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['yapi_categories'] 2025-05-28 17:59:14,191 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... 2025-05-28 17:59:14,191 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... 2025-05-28 17:59:14,191 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[0] ('dms_instance_code') 的 schema... 2025-05-28 17:59:14,191 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[1] ('id') 的 schema... 2025-05-28 17:59:14,191 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[2] ('tenant-id') 的 schema... 2025-05-28 17:59:14,191 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[3] ('Authorization') 的 schema... 2025-05-28 17:59:14,191 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... 2025-05-28 17:59:14,191 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 2025-05-28 17:59:14,191 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: TypeMismatchBodyCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_yapi_id', '_yapi_raw_data', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['yapi_categories']) 2025-05-28 17:59:14,191 - testcase.TC-ERROR-4001-BODY - DEBUG - Test case 'TC-ERROR-4001-BODY' initialized for endpoint: DELETE /api/dms/{dms_instance_code}/v1/cd_geo_unit 2025-05-28 17:59:14,191 - testcase.TC-ERROR-4001-BODY - INFO - [TC-ERROR-4001-BODY] Initializing: Looking for a simple type field in request body for type mismatch test. 2025-05-28 17:59:14,191 - testcase.TC-ERROR-4001-BODY - DEBUG - Found request body schema under content type: application/json 2025-05-28 17:59:14,191 - testcase.TC-ERROR-4001-BODY - DEBUG - _find_simple_type_field_in_schema: Searching for simple type field in 'request body' schema... 2025-05-28 17:59:14,191 - testcase.TC-ERROR-4001-BODY - INFO - Found simple type field: Path=version, Type=string 2025-05-28 17:59:14,191 - testcase.TC-ERROR-4001-BODY - INFO - _find_simple_type_field_in_schema: Found simple type field in 'request body': Path=version, Type=string 2025-05-28 17:59:14,191 - testcase.TC-ERROR-4001-BODY - INFO - [TC-ERROR-4001-BODY] Target field for type mismatch (body): version, Original Type: string 2025-05-28 17:59:14,191 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-ERROR-4001-BODY' (Error Code 4001 - Request Body Type Mismatch Validation) for endpoint 'DELETE /api/dms/{dms_instance_code}/v1/cd_geo_unit' 2025-05-28 17:59:14,191 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial path param for 'delete__api_dms_dms_instance_code_v1_cd_geo_unit_135750': dms_instance_code = example_dms_instance_code 2025-05-28 17:59:14,191 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial query param for 'delete__api_dms_dms_instance_code_v1_cd_geo_unit_135750': id = dsid 2025-05-28 17:59:14,191 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial custom header param for 'delete__api_dms_dms_instance_code_v1_cd_geo_unit_135750': tenant-id = header_val_tenant-id 2025-05-28 17:59:14,191 - ddms_compliance_suite.test_orchestrator - DEBUG - Skipping standard header 'Authorization' in parameter processing for 'delete__api_dms_dms_instance_code_v1_cd_geo_unit_135750'. It will be handled separately. 2025-05-28 17:59:14,191 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'delete__api_dms_dms_instance_code_v1_cd_geo_unit_135750': application/json 2025-05-28 17:59:14,191 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'delete__api_dms_dms_instance_code_v1_cd_geo_unit_135750': application/json 2025-05-28 17:59:14,191 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete__api_dms_dms_instance_code_v1_cd_geo_unit_135750] 生成 object 类型数据 for (context: delete__api_dms_dms_instance_code_v1_cd_geo_unit_135750_body). Properties: ['version', 'data'] 2025-05-28 17:59:14,191 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete__api_dms_dms_instance_code_v1_cd_geo_unit_135750] 生成 string 类型数据 ('') for (context: delete__api_dms_dms_instance_code_v1_cd_geo_unit_135750_body.version): example_string 2025-05-28 17:59:14,191 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete__api_dms_dms_instance_code_v1_cd_geo_unit_135750] 生成 array 类型数据 for (context: delete__api_dms_dms_instance_code_v1_cd_geo_unit_135750_body.data). Items schema: {'type': 'string'}, minItems: 1 2025-05-28 17:59:14,191 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete__api_dms_dms_instance_code_v1_cd_geo_unit_135750] 生成 string 类型数据 ('') for (context: delete__api_dms_dms_instance_code_v1_cd_geo_unit_135750_body.data[0]): example_string 2025-05-28 17:59:14,192 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'delete__api_dms_dms_instance_code_v1_cd_geo_unit_135750' (type: ) 2025-05-28 17:59:14,192 - testcase.TC-ERROR-4001-BODY - DEBUG - TC-ERROR-4001-BODY is focused on request body, generate_query_params will not modify query parameters. 2025-05-28 17:59:14,192 - testcase.TC-ERROR-4001-BODY - DEBUG - Hook: generate_headers, current keys: ['tenant-id', 'Content-Type', 'Accept'] 2025-05-28 17:59:14,192 - testcase.TC-ERROR-4001-BODY - DEBUG - [TC-ERROR-4001-BODY] Preparing to modify request body for type mismatch. Target path: ['version'], Original type: string 2025-05-28 17:59:14,192 - testcase.TC-ERROR-4001-BODY - INFO - [TC-ERROR-4001-BODY] Generated mismatched value '12345' for original type 'string' at path 'version'. 2025-05-28 17:59:14,192 - ddms_compliance_suite.utils.schema_utils - INFO - [Util] 在路径 version (键 'version') 处设置值为 '12345' 2025-05-28 17:59:14,192 - testcase.TC-ERROR-4001-BODY - DEBUG - [TC-ERROR-4001-BODY] Successfully set mismatched value at path using util_set_value_at_path. 2025-05-28 17:59:14,192 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {'dms_instance_code': 'example_dms_instance_code'} 2025-05-28 17:59:14,192 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit 2025-05-28 17:59:14,192 - testcase.TC-ERROR-4001-BODY - DEBUG - Hook: modify_request_url, original URL: http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit 2025-05-28 17:59:14,192 - testcase.TC-ERROR-4001-BODY - DEBUG - Test case 'TC-ERROR-4001-BODY' did not modify the URL via modify_request_url hook. 2025-05-28 17:59:14,192 - testcase.TC-ERROR-4001-BODY - DEBUG - Hook: validate_request_url, url: http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit 2025-05-28 17:59:14,192 - testcase.TC-ERROR-4001-BODY - DEBUG - Hook: validate_request_headers, header keys: ['tenant-id', 'Content-Type', 'Accept'] 2025-05-28 17:59:14,192 - testcase.TC-ERROR-4001-BODY - DEBUG - Hook: validate_request_body, body type: 2025-05-28 17:59:14,206 - testcase.TC-ERROR-4001-BODY - WARNING - TC-ERROR-4001-BODY: Failed. 当请求体字段 'version' 类型不匹配时,期望API返回状态码在 [400, 422] 中,或返回4xx客户端错误且业务码为 '4001'. 实际收到状态码 200. 响应体中的业务码 ('code') 为 '11'. (Field: body.version) 2025-05-28 17:59:14,206 - testcase.TC-ERROR-4001-BODY - DEBUG - Hook: check_performance, elapsed: 0.013798952102661133 2025-05-28 17:59:14,206 - ddms_compliance_suite.test_orchestrator - DEBUG -  ❌ 测试用例 'TC-ERROR-4001-BODY' 执行失败。 2025-05-28 17:59:14,206 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-ERROR-4001-BODY' 执行完毕,状态: 失败 2025-05-28 17:59:14,206 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-ERROR-4003-BODY' for 'DELETE /api/dms/{dms_instance_code}/v1/cd_geo_unit' 2025-05-28 17:59:14,206 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. 2025-05-28 17:59:14,206 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['yapi_categories'] 2025-05-28 17:59:14,206 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... 2025-05-28 17:59:14,206 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... 2025-05-28 17:59:14,206 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[0] ('dms_instance_code') 的 schema... 2025-05-28 17:59:14,206 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[1] ('id') 的 schema... 2025-05-28 17:59:14,206 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[2] ('tenant-id') 的 schema... 2025-05-28 17:59:14,206 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[3] ('Authorization') 的 schema... 2025-05-28 17:59:14,206 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... 2025-05-28 17:59:14,206 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 2025-05-28 17:59:14,207 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: MissingRequiredFieldBodyCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_yapi_id', '_yapi_raw_data', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['yapi_categories']) 2025-05-28 17:59:14,207 - ddms_compliance_suite.utils.schema_utils - DEBUG - [Util] 递归查找路径: [], 当前层级必填字段: [], 属性: ['version', 'data'] 2025-05-28 17:59:14,207 - ddms_compliance_suite.utils.schema_utils - DEBUG - [Util] 在路径 root 未通过任何策略找到可移除的必填字段。 2025-05-28 17:59:14,207 - testcase.TC-ERROR-4003-BODY - INFO - No removable (required) field path found in 'request body' schema. 2025-05-28 17:59:14,207 - testcase.TC-ERROR-4003-BODY - INFO - 在请求体 schema 中未找到可用于测试 "必填字段缺失" 的字段(通过基类方法)。 2025-05-28 17:59:14,207 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-ERROR-4003-BODY' (Error Code 4003 - Missing Required Request Body Field Validation) for endpoint 'DELETE /api/dms/{dms_instance_code}/v1/cd_geo_unit' 2025-05-28 17:59:14,207 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial path param for 'delete__api_dms_dms_instance_code_v1_cd_geo_unit_135750': dms_instance_code = example_dms_instance_code 2025-05-28 17:59:14,207 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial query param for 'delete__api_dms_dms_instance_code_v1_cd_geo_unit_135750': id = dsid 2025-05-28 17:59:14,207 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial custom header param for 'delete__api_dms_dms_instance_code_v1_cd_geo_unit_135750': tenant-id = header_val_tenant-id 2025-05-28 17:59:14,207 - ddms_compliance_suite.test_orchestrator - DEBUG - Skipping standard header 'Authorization' in parameter processing for 'delete__api_dms_dms_instance_code_v1_cd_geo_unit_135750'. It will be handled separately. 2025-05-28 17:59:14,207 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'delete__api_dms_dms_instance_code_v1_cd_geo_unit_135750': application/json 2025-05-28 17:59:14,207 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'delete__api_dms_dms_instance_code_v1_cd_geo_unit_135750': application/json 2025-05-28 17:59:14,207 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete__api_dms_dms_instance_code_v1_cd_geo_unit_135750] 生成 object 类型数据 for (context: delete__api_dms_dms_instance_code_v1_cd_geo_unit_135750_body). Properties: ['version', 'data'] 2025-05-28 17:59:14,207 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete__api_dms_dms_instance_code_v1_cd_geo_unit_135750] 生成 string 类型数据 ('') for (context: delete__api_dms_dms_instance_code_v1_cd_geo_unit_135750_body.version): example_string 2025-05-28 17:59:14,207 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete__api_dms_dms_instance_code_v1_cd_geo_unit_135750] 生成 array 类型数据 for (context: delete__api_dms_dms_instance_code_v1_cd_geo_unit_135750_body.data). Items schema: {'type': 'string'}, minItems: 1 2025-05-28 17:59:14,207 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete__api_dms_dms_instance_code_v1_cd_geo_unit_135750] 生成 string 类型数据 ('') for (context: delete__api_dms_dms_instance_code_v1_cd_geo_unit_135750_body.data[0]): example_string 2025-05-28 17:59:14,207 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'delete__api_dms_dms_instance_code_v1_cd_geo_unit_135750' (type: ) 2025-05-28 17:59:14,207 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {'dms_instance_code': 'example_dms_instance_code'} 2025-05-28 17:59:14,207 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit 2025-05-28 17:59:14,222 - testcase.TC-ERROR-4003-BODY - INFO - 由于未识别到可移除的必填请求体字段,跳过此测试用例的验证。 2025-05-28 17:59:14,222 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-ERROR-4003-BODY' 执行成功。 2025-05-28 17:59:14,222 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-ERROR-4003-BODY' 执行完毕,状态: 通过 2025-05-28 17:59:14,222 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-ERROR-4003-QUERY' for 'DELETE /api/dms/{dms_instance_code}/v1/cd_geo_unit' 2025-05-28 17:59:14,222 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. 2025-05-28 17:59:14,222 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['yapi_categories'] 2025-05-28 17:59:14,222 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... 2025-05-28 17:59:14,222 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... 2025-05-28 17:59:14,222 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[0] ('dms_instance_code') 的 schema... 2025-05-28 17:59:14,222 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[1] ('id') 的 schema... 2025-05-28 17:59:14,222 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[2] ('tenant-id') 的 schema... 2025-05-28 17:59:14,222 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[3] ('Authorization') 的 schema... 2025-05-28 17:59:14,222 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... 2025-05-28 17:59:14,222 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 2025-05-28 17:59:14,222 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: MissingRequiredFieldQueryCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_yapi_id', '_yapi_raw_data', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['yapi_categories']) 2025-05-28 17:59:14,223 - testcase.TC-ERROR-4003-QUERY - INFO - Found required 'query' parameter: 'id'. 2025-05-28 17:59:14,223 - testcase.TC-ERROR-4003-QUERY - INFO - 测试用例 TC-ERROR-4003-QUERY (Error Code 4003 - Missing Required Query Parameter Validation) 已针对端点 'DELETE /api/dms/{dms_instance_code}/v1/cd_geo_unit' 初始化。Target param to remove: id 2025-05-28 17:59:14,223 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-ERROR-4003-QUERY' (Error Code 4003 - Missing Required Query Parameter Validation) for endpoint 'DELETE /api/dms/{dms_instance_code}/v1/cd_geo_unit' 2025-05-28 17:59:14,223 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial path param for 'delete__api_dms_dms_instance_code_v1_cd_geo_unit_135750': dms_instance_code = example_dms_instance_code 2025-05-28 17:59:14,223 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial query param for 'delete__api_dms_dms_instance_code_v1_cd_geo_unit_135750': id = dsid 2025-05-28 17:59:14,223 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial custom header param for 'delete__api_dms_dms_instance_code_v1_cd_geo_unit_135750': tenant-id = header_val_tenant-id 2025-05-28 17:59:14,223 - ddms_compliance_suite.test_orchestrator - DEBUG - Skipping standard header 'Authorization' in parameter processing for 'delete__api_dms_dms_instance_code_v1_cd_geo_unit_135750'. It will be handled separately. 2025-05-28 17:59:14,223 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'delete__api_dms_dms_instance_code_v1_cd_geo_unit_135750': application/json 2025-05-28 17:59:14,223 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'delete__api_dms_dms_instance_code_v1_cd_geo_unit_135750': application/json 2025-05-28 17:59:14,223 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete__api_dms_dms_instance_code_v1_cd_geo_unit_135750] 生成 object 类型数据 for (context: delete__api_dms_dms_instance_code_v1_cd_geo_unit_135750_body). Properties: ['version', 'data'] 2025-05-28 17:59:14,223 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete__api_dms_dms_instance_code_v1_cd_geo_unit_135750] 生成 string 类型数据 ('') for (context: delete__api_dms_dms_instance_code_v1_cd_geo_unit_135750_body.version): example_string 2025-05-28 17:59:14,223 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete__api_dms_dms_instance_code_v1_cd_geo_unit_135750] 生成 array 类型数据 for (context: delete__api_dms_dms_instance_code_v1_cd_geo_unit_135750_body.data). Items schema: {'type': 'string'}, minItems: 1 2025-05-28 17:59:14,223 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete__api_dms_dms_instance_code_v1_cd_geo_unit_135750] 生成 string 类型数据 ('') for (context: delete__api_dms_dms_instance_code_v1_cd_geo_unit_135750_body.data[0]): example_string 2025-05-28 17:59:14,223 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'delete__api_dms_dms_instance_code_v1_cd_geo_unit_135750' (type: ) 2025-05-28 17:59:14,223 - testcase.TC-ERROR-4003-QUERY - INFO - 为进行必填查询参数缺失测试,已从查询参数中移除 'id' (原值: 'dsid')。 2025-05-28 17:59:14,223 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {'dms_instance_code': 'example_dms_instance_code'} 2025-05-28 17:59:14,223 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit DEBUG: curlify generated command (repr): 'curl -X PUT -H \'User-Agent: python-requests/2.32.3\' -H \'Accept-Encoding: gzip, deflate, br, zstd\' -H \'Accept: application/json\' -H \'Connection: keep-alive\' -H \'tenant-id: header_val_tenant-id\' -H \'Content-Type: application/json\' -H \'Content-Length: 42\' -d \'{"id": 12345, "version": "example_string"}\' --insecure \'http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit?id=dsid\'' DEBUG: curlify generated command (raw): curl -X PUT -H 'User-Agent: python-requests/2.32.3' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'tenant-id: header_val_tenant-id' -H 'Content-Type: application/json' -H 'Content-Length: 29' -d '{"version": "example_string"}' --insecure 'http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit?id=dsid' DEBUG: curlify generated command (repr): 'curl -X PUT -H \'User-Agent: python-requests/2.32.3\' -H \'Accept-Encoding: gzip, deflate, br, zstd\' -H \'Accept: application/json\' -H \'Connection: keep-alive\' -H \'tenant-id: header_val_tenant-id\' -H \'Content-Type: application/json\' -H \'Content-Length: 29\' -d \'{"version": "example_string"}\' --insecure \'http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit?id=dsid\'' DEBUG: curlify generated command (raw): curl -X PUT -H 'User-Agent: python-requests/2.32.3' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'tenant-id: header_val_tenant-id' -H 'Content-Type: application/json' -H 'Content-Length: 53' -d '{"id": "example_string", "version": "example_string"}' --insecure http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit DEBUG: curlify generated command (repr): 'curl -X PUT -H \'User-Agent: python-requests/2.32.3\' -H \'Accept-Encoding: gzip, deflate, br, zstd\' -H \'Accept: application/json\' -H \'Connection: keep-alive\' -H \'tenant-id: header_val_tenant-id\' -H \'Content-Type: application/json\' -H \'Content-Length: 53\' -d \'{"id": "example_string", "version": "example_string"}\' --insecure http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit' DEBUG: curlify generated command (raw): curl -X DELETE -H 'User-Agent: python-requests/2.32.3' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'tenant-id: header_val_tenant-id' -H 'Content-Type: application/json' -H 'Content-Length: 57' -d '{"version": "example_string", "data": ["example_string"]}' --insecure 'http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit?id=dsid' DEBUG: curlify generated command (repr): 'curl -X DELETE -H \'User-Agent: python-requests/2.32.3\' -H \'Accept-Encoding: gzip, deflate, br, zstd\' -H \'Accept: application/json\' -H \'Connection: keep-alive\' -H \'tenant-id: header_val_tenant-id\' -H \'Content-Type: application/json\' -H \'Content-Length: 57\' -d \'{"version": "example_string", "data": ["example_string"]}\' --insecure \'http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit?id=dsid\'' DEBUG: curlify generated command (raw): curl -X DELETE -H 'User-Agent: python-requests/2.32.3' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'tenant-id: header_val_tenant-id' -H 'Content-Type: application/json' -H 'Content-Length: 57' -d '{"version": "example_string", "data": ["example_string"]}' --insecure 'http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit?id=dsid' DEBUG: curlify generated command (repr): 'curl -X DELETE -H \'User-Agent: python-requests/2.32.3\' -H \'Accept-Encoding: gzip, deflate, br, zstd\' -H \'Accept: application/json\' -H \'Connection: keep-alive\' -H \'tenant-id: header_val_tenant-id\' -H \'Content-Type: application/json\' -H \'Content-Length: 57\' -d \'{"version": "example_string", "data": ["example_string"]}\' --insecure \'http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit?id=dsid\'' DEBUG: curlify generated command (raw): curl -X DELETE -H 'User-Agent: python-requests/2.32.3' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'tenant-id: header_val_tenant-id' -H 'Content-Type: application/json' -H 'Content-Length: 57' -d '{"version": "example_string", "data": ["example_string"]}' --insecure 'http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit?id=dsid' DEBUG: curlify generated command (repr): 'curl -X DELETE -H \'User-Agent: python-requests/2.32.3\' -H \'Accept-Encoding: gzip, deflate, br, zstd\' -H \'Accept: application/json\' -H \'Connection: keep-alive\' -H \'tenant-id: header_val_tenant-id\' -H \'Content-Type: application/json\' -H \'Content-Length: 57\' -d \'{"version": "example_string", "data": ["example_string"]}\' --insecure \'http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit?id=dsid\'' DEBUG: curlify generated command (raw): curl -X DELETE -H 'User-Agent: python-requests/2.32.3' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'tenant-id: header_val_tenant-id' -H 'Content-Type: application/json' -H 'Content-Length: 57' -d '{"version": "example_string", "data": ["example_string"]}' --insecure 'http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit?id=12345' DEBUG: curlify generated command (repr): 'curl -X DELETE -H \'User-Agent: python-requests/2.32.3\' -H \'Accept-Encoding: gzip, deflate, br, zstd\' -H \'Accept: application/json\' -H \'Connection: keep-alive\' -H \'tenant-id: header_val_tenant-id\' -H \'Content-Type: application/json\' -H \'Content-Length: 57\' -d \'{"version": "example_string", "data": ["example_string"]}\' --insecure \'http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit?id=12345\'' DEBUG: curlify generated command (raw): curl -X DELETE -H 'User-Agent: python-requests/2.32.3' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'tenant-id: header_val_tenant-id' -H 'Content-Type: application/json' -H 'Content-Length: 46' -d '{"version": 12345, "data": ["example_string"]}' --insecure 'http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit?id=dsid' DEBUG: curlify generated command (repr): 'curl -X DELETE -H \'User-Agent: python-requests/2.32.3\' -H \'Accept-Encoding: gzip, deflate, br, zstd\' -H \'Accept: application/json\' -H \'Connection: keep-alive\' -H \'tenant-id: header_val_tenant-id\' -H \'Content-Type: application/json\' -H \'Content-Length: 46\' -d \'{"version": 12345, "data": ["example_string"]}\' --insecure \'http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit?id=dsid\'' DEBUG: curlify generated command (raw): curl -X DELETE -H 'User-Agent: python-requests/2.32.3' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'tenant-id: header_val_tenant-id' -H 'Content-Type: application/json' -H 'Content-Length: 57' -d '{"version": "example_string", "data": ["example_string"]}' --insecure 'http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit?id=dsid' DEBUG: curlify generated command (repr): 'curl -X DELETE -H \'User-Agent: python-requests/2.32.3\' -H \'Accept-Encoding: gzip, deflate, br, zstd\' -H \'Accept: application/json\' -H \'Connection: keep-alive\' -H \'tenant-id: header_val_tenant-id\' -H \'Content-Type: application/json\' -H \'Content-Length: 57\' -d \'{"version": "example_string", "data": ["example_string"]}\' --insecure \'http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit?id=dsid\'' 2025-05-28 17:59:14,238 - testcase.TC-ERROR-4003-QUERY - WARNING - TC-ERROR-4003-QUERY: Failed. 当移除必填查询参数 'id' 时,期望API返回状态码在 [400, 422] 中,或返回4xx客户端错误且业务码为 '4003'. 实际收到状态码 200. 响应体中的业务码 ('code') 为 '52'. (Removed query param: id) 2025-05-28 17:59:14,238 - ddms_compliance_suite.test_orchestrator - DEBUG -  ❌ 测试用例 'TC-ERROR-4003-QUERY' 执行失败。 2025-05-28 17:59:14,238 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-ERROR-4003-QUERY' 执行完毕,状态: 失败 2025-05-28 17:59:14,239 - ddms_compliance_suite.test_orchestrator - INFO - 端点 'DELETE /api/dms/{dms_instance_code}/v1/cd_geo_unit' 测试完成,最终状态: 失败 2025-05-28 17:59:14,239 - ddms_compliance_suite.test_orchestrator - INFO - 开始为端点测试: POST /api/dms/{dms_instance_code}/v1/cd_geo_unit (地质单元数据添加) 2025-05-28 17:59:14,239 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-STATUS-001' 适用于端点 'POST /api/dms/{dms_instance_code}/v1/cd_geo_unit'。 2025-05-28 17:59:14,239 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-CORE-FUNC-001' 适用于端点 'POST /api/dms/{dms_instance_code}/v1/cd_geo_unit'。 2025-05-28 17:59:14,239 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-SECURITY-001' 适用于端点 'POST /api/dms/{dms_instance_code}/v1/cd_geo_unit'。 2025-05-28 17:59:14,239 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4001-QUERY' 适用于端点 'POST /api/dms/{dms_instance_code}/v1/cd_geo_unit'。 2025-05-28 17:59:14,239 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4001-BODY' 适用于端点 'POST /api/dms/{dms_instance_code}/v1/cd_geo_unit'。 2025-05-28 17:59:14,239 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4003-BODY' 适用于端点 'POST /api/dms/{dms_instance_code}/v1/cd_geo_unit'。 2025-05-28 17:59:14,239 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4003-QUERY' 适用于端点 'POST /api/dms/{dms_instance_code}/v1/cd_geo_unit'。 2025-05-28 17:59:14,239 - ddms_compliance_suite.test_orchestrator - INFO - 端点 'POST /api/dms/{dms_instance_code}/v1/cd_geo_unit' 发现了 7 个适用的测试用例 (已排序): ['TC-STATUS-001', 'TC-CORE-FUNC-001', 'TC-SECURITY-001', 'TC-ERROR-4001-QUERY', 'TC-ERROR-4001-BODY', 'TC-ERROR-4003-BODY', 'TC-ERROR-4003-QUERY'] 2025-05-28 17:59:14,239 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-STATUS-001' for 'POST /api/dms/{dms_instance_code}/v1/cd_geo_unit' 2025-05-28 17:59:14,239 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. 2025-05-28 17:59:14,239 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['yapi_categories'] 2025-05-28 17:59:14,239 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... 2025-05-28 17:59:14,239 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... 2025-05-28 17:59:14,239 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[0] ('dms_instance_code') 的 schema... 2025-05-28 17:59:14,239 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[1] ('tenant-id') 的 schema... 2025-05-28 17:59:14,239 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[2] ('Authorization') 的 schema... 2025-05-28 17:59:14,239 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '201' content 'application/json' 的 schema... 2025-05-28 17:59:14,239 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 2025-05-28 17:59:14,239 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: StatusCode200Check 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_yapi_id', '_yapi_raw_data', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['yapi_categories']) 2025-05-28 17:59:14,240 - testcase.TC-STATUS-001 - INFO - 测试用例 TC-STATUS-001 (基本状态码 200 检查) 已针对端点 'POST /api/dms/{dms_instance_code}/v1/cd_geo_unit' 初始化。 2025-05-28 17:59:14,240 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-STATUS-001' (基本状态码 200 检查) for endpoint 'POST /api/dms/{dms_instance_code}/v1/cd_geo_unit' 2025-05-28 17:59:14,240 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial path param for 'post__api_dms_dms_instance_code_v1_cd_geo_unit_135748': dms_instance_code = example_dms_instance_code 2025-05-28 17:59:14,240 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial custom header param for 'post__api_dms_dms_instance_code_v1_cd_geo_unit_135748': tenant-id = header_val_tenant-id 2025-05-28 17:59:14,240 - ddms_compliance_suite.test_orchestrator - DEBUG - Skipping standard header 'Authorization' in parameter processing for 'post__api_dms_dms_instance_code_v1_cd_geo_unit_135748'. It will be handled separately. 2025-05-28 17:59:14,240 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'post__api_dms_dms_instance_code_v1_cd_geo_unit_135748': application/json 2025-05-28 17:59:14,240 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'post__api_dms_dms_instance_code_v1_cd_geo_unit_135748': application/json 2025-05-28 17:59:14,240 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_135748] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_135748_body). Properties: ['version', 'data'] 2025-05-28 17:59:14,240 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_135748] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_135748_body.version): example_string 2025-05-28 17:59:14,240 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_135748] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_135748_body.data). Items schema: {'type': 'object', 'properties': {'bsflag': {'type': 'number', 'title': '必填字段删除标记'}, 'wellCommonName': {'type': 'string'}, 'wellId': {'type': 'string'}, 'dataRegion': {'type': 'string'}}, 'required': ['bsflag', 'wellCommonName', 'wellId', 'dataRegion']}, minItems: 1 2025-05-28 17:59:14,240 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_135748] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_135748_body.data[0]). Properties: ['bsflag', 'wellCommonName', 'wellId', 'dataRegion'] 2025-05-28 17:59:14,240 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_135748] 生成 number/integer 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_135748_body.data[0].bsflag): 0.0 2025-05-28 17:59:14,240 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_135748] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_135748_body.data[0].wellCommonName): example_string 2025-05-28 17:59:14,240 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_135748] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_135748_body.data[0].wellId): example_string 2025-05-28 17:59:14,240 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_135748] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_135748_body.data[0].dataRegion): example_string 2025-05-28 17:59:14,240 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'post__api_dms_dms_instance_code_v1_cd_geo_unit_135748' (type: ) 2025-05-28 17:59:14,240 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {'dms_instance_code': 'example_dms_instance_code'} 2025-05-28 17:59:14,240 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit 2025-05-28 17:59:14,255 - testcase.TC-STATUS-001 - INFO - 状态码验证通过: 200 == 200 for http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit 2025-05-28 17:59:14,255 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-STATUS-001' 执行成功。 2025-05-28 17:59:14,255 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-STATUS-001' 执行完毕,状态: 通过 2025-05-28 17:59:14,255 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-CORE-FUNC-001' for 'POST /api/dms/{dms_instance_code}/v1/cd_geo_unit' 2025-05-28 17:59:14,255 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. 2025-05-28 17:59:14,255 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['yapi_categories'] 2025-05-28 17:59:14,256 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... 2025-05-28 17:59:14,256 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... 2025-05-28 17:59:14,256 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[0] ('dms_instance_code') 的 schema... 2025-05-28 17:59:14,256 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[1] ('tenant-id') 的 schema... 2025-05-28 17:59:14,256 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[2] ('Authorization') 的 schema... 2025-05-28 17:59:14,256 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '201' content 'application/json' 的 schema... 2025-05-28 17:59:14,256 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 2025-05-28 17:59:14,256 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: ResponseSchemaValidationCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_yapi_id', '_yapi_raw_data', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['yapi_categories']) 2025-05-28 17:59:14,256 - testcase.TC-CORE-FUNC-001 - INFO - 测试用例 'TC-CORE-FUNC-001' 已为端点 'POST /api/dms/{dms_instance_code}/v1/cd_geo_unit' 初始化。 2025-05-28 17:59:14,256 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-CORE-FUNC-001' (Response Body JSON Schema Validation) for endpoint 'POST /api/dms/{dms_instance_code}/v1/cd_geo_unit' 2025-05-28 17:59:14,256 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial path param for 'post__api_dms_dms_instance_code_v1_cd_geo_unit_135748': dms_instance_code = example_dms_instance_code 2025-05-28 17:59:14,256 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial custom header param for 'post__api_dms_dms_instance_code_v1_cd_geo_unit_135748': tenant-id = header_val_tenant-id 2025-05-28 17:59:14,256 - ddms_compliance_suite.test_orchestrator - DEBUG - Skipping standard header 'Authorization' in parameter processing for 'post__api_dms_dms_instance_code_v1_cd_geo_unit_135748'. It will be handled separately. 2025-05-28 17:59:14,256 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'post__api_dms_dms_instance_code_v1_cd_geo_unit_135748': application/json 2025-05-28 17:59:14,256 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'post__api_dms_dms_instance_code_v1_cd_geo_unit_135748': application/json 2025-05-28 17:59:14,256 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_135748] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_135748_body). Properties: ['version', 'data'] 2025-05-28 17:59:14,256 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_135748] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_135748_body.version): example_string 2025-05-28 17:59:14,256 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_135748] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_135748_body.data). Items schema: {'type': 'object', 'properties': {'bsflag': {'type': 'number', 'title': '必填字段删除标记'}, 'wellCommonName': {'type': 'string'}, 'wellId': {'type': 'string'}, 'dataRegion': {'type': 'string'}}, 'required': ['bsflag', 'wellCommonName', 'wellId', 'dataRegion']}, minItems: 1 2025-05-28 17:59:14,256 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_135748] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_135748_body.data[0]). Properties: ['bsflag', 'wellCommonName', 'wellId', 'dataRegion'] 2025-05-28 17:59:14,256 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_135748] 生成 number/integer 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_135748_body.data[0].bsflag): 0.0 2025-05-28 17:59:14,256 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_135748] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_135748_body.data[0].wellCommonName): example_string 2025-05-28 17:59:14,256 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_135748] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_135748_body.data[0].wellId): example_string 2025-05-28 17:59:14,256 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_135748] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_135748_body.data[0].dataRegion): example_string 2025-05-28 17:59:14,257 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'post__api_dms_dms_instance_code_v1_cd_geo_unit_135748' (type: ) 2025-05-28 17:59:14,257 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {'dms_instance_code': 'example_dms_instance_code'} 2025-05-28 17:59:14,257 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit 2025-05-28 17:59:14,273 - testcase.TC-CORE-FUNC-001 - INFO - 响应包含JSON体,但在API规范中未找到针对状态码 200 的JSON schema。跳过schema验证。 2025-05-28 17:59:14,274 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-CORE-FUNC-001' 执行成功。 2025-05-28 17:59:14,274 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-CORE-FUNC-001' 执行完毕,状态: 通过 2025-05-28 17:59:14,274 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-SECURITY-001' for 'POST /api/dms/{dms_instance_code}/v1/cd_geo_unit' 2025-05-28 17:59:14,274 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. 2025-05-28 17:59:14,274 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['yapi_categories'] 2025-05-28 17:59:14,274 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... 2025-05-28 17:59:14,274 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... 2025-05-28 17:59:14,274 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[0] ('dms_instance_code') 的 schema... 2025-05-28 17:59:14,274 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[1] ('tenant-id') 的 schema... 2025-05-28 17:59:14,274 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[2] ('Authorization') 的 schema... 2025-05-28 17:59:14,274 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '201' content 'application/json' 的 schema... 2025-05-28 17:59:14,274 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 2025-05-28 17:59:14,274 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: HTTPSMandatoryCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_yapi_id', '_yapi_raw_data', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['yapi_categories']) 2025-05-28 17:59:14,274 - testcase.TC-SECURITY-001 - INFO - 测试用例 'TC-SECURITY-001' 已为端点 'POST /api/dms/{dms_instance_code}/v1/cd_geo_unit' 初始化。 2025-05-28 17:59:14,274 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-SECURITY-001' (HTTPS Protocol Mandatory Verification) for endpoint 'POST /api/dms/{dms_instance_code}/v1/cd_geo_unit' 2025-05-28 17:59:14,274 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial path param for 'post__api_dms_dms_instance_code_v1_cd_geo_unit_135748': dms_instance_code = example_dms_instance_code 2025-05-28 17:59:14,274 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial custom header param for 'post__api_dms_dms_instance_code_v1_cd_geo_unit_135748': tenant-id = header_val_tenant-id 2025-05-28 17:59:14,274 - ddms_compliance_suite.test_orchestrator - DEBUG - Skipping standard header 'Authorization' in parameter processing for 'post__api_dms_dms_instance_code_v1_cd_geo_unit_135748'. It will be handled separately. 2025-05-28 17:59:14,274 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'post__api_dms_dms_instance_code_v1_cd_geo_unit_135748': application/json 2025-05-28 17:59:14,274 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'post__api_dms_dms_instance_code_v1_cd_geo_unit_135748': application/json 2025-05-28 17:59:14,274 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_135748] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_135748_body). Properties: ['version', 'data'] 2025-05-28 17:59:14,274 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_135748] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_135748_body.version): example_string 2025-05-28 17:59:14,274 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_135748] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_135748_body.data). Items schema: {'type': 'object', 'properties': {'bsflag': {'type': 'number', 'title': '必填字段删除标记'}, 'wellCommonName': {'type': 'string'}, 'wellId': {'type': 'string'}, 'dataRegion': {'type': 'string'}}, 'required': ['bsflag', 'wellCommonName', 'wellId', 'dataRegion']}, minItems: 1 2025-05-28 17:59:14,274 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_135748] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_135748_body.data[0]). Properties: ['bsflag', 'wellCommonName', 'wellId', 'dataRegion'] 2025-05-28 17:59:14,275 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_135748] 生成 number/integer 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_135748_body.data[0].bsflag): 0.0 2025-05-28 17:59:14,275 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_135748] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_135748_body.data[0].wellCommonName): example_string 2025-05-28 17:59:14,275 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_135748] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_135748_body.data[0].wellId): example_string 2025-05-28 17:59:14,275 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_135748] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_135748_body.data[0].dataRegion): example_string 2025-05-28 17:59:14,275 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'post__api_dms_dms_instance_code_v1_cd_geo_unit_135748' (type: ) 2025-05-28 17:59:14,275 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {'dms_instance_code': 'example_dms_instance_code'} 2025-05-28 17:59:14,275 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit 2025-05-28 17:59:14,275 - testcase.TC-SECURITY-001 - WARNING - 原始URL 'http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit' 不是HTTPS。跳过此测试用例的URL修改。 2025-05-28 17:59:14,294 - testcase.TC-SECURITY-001 - ERROR - 安全漏洞:API允许通过HTTP成功响应 (200)。 2025-05-28 17:59:14,294 - ddms_compliance_suite.test_orchestrator - DEBUG -  ❌ 测试用例 'TC-SECURITY-001' 执行失败。 2025-05-28 17:59:14,294 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-SECURITY-001' 执行完毕,状态: 失败 2025-05-28 17:59:14,294 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-ERROR-4001-QUERY' for 'POST /api/dms/{dms_instance_code}/v1/cd_geo_unit' 2025-05-28 17:59:14,294 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. 2025-05-28 17:59:14,294 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['yapi_categories'] 2025-05-28 17:59:14,294 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... 2025-05-28 17:59:14,294 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... 2025-05-28 17:59:14,294 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[0] ('dms_instance_code') 的 schema... 2025-05-28 17:59:14,294 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[1] ('tenant-id') 的 schema... 2025-05-28 17:59:14,294 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[2] ('Authorization') 的 schema... 2025-05-28 17:59:14,294 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '201' content 'application/json' 的 schema... 2025-05-28 17:59:14,294 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 2025-05-28 17:59:14,294 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: TypeMismatchQueryParamCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_yapi_id', '_yapi_raw_data', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['yapi_categories']) 2025-05-28 17:59:14,294 - testcase.TC-ERROR-4001-QUERY - DEBUG - Test case 'TC-ERROR-4001-QUERY' initialized for endpoint: POST /api/dms/{dms_instance_code}/v1/cd_geo_unit 2025-05-28 17:59:14,294 - testcase.TC-ERROR-4001-QUERY - INFO - [TC-ERROR-4001-QUERY] Initializing: Looking for a simple type query parameter for type mismatch test. 2025-05-28 17:59:14,294 - testcase.TC-ERROR-4001-QUERY - INFO - _find_first_simple_type_parameter: No suitable simple type field found for query parameters. 2025-05-28 17:59:14,294 - testcase.TC-ERROR-4001-QUERY - INFO - [TC-ERROR-4001-QUERY] No suitable simple type query parameter found for type mismatch test. 2025-05-28 17:59:14,294 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-ERROR-4001-QUERY' (Error Code 4001 - Query Parameter Type Mismatch Validation) for endpoint 'POST /api/dms/{dms_instance_code}/v1/cd_geo_unit' 2025-05-28 17:59:14,294 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial path param for 'post__api_dms_dms_instance_code_v1_cd_geo_unit_135748': dms_instance_code = example_dms_instance_code 2025-05-28 17:59:14,294 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial custom header param for 'post__api_dms_dms_instance_code_v1_cd_geo_unit_135748': tenant-id = header_val_tenant-id 2025-05-28 17:59:14,294 - ddms_compliance_suite.test_orchestrator - DEBUG - Skipping standard header 'Authorization' in parameter processing for 'post__api_dms_dms_instance_code_v1_cd_geo_unit_135748'. It will be handled separately. 2025-05-28 17:59:14,294 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'post__api_dms_dms_instance_code_v1_cd_geo_unit_135748': application/json 2025-05-28 17:59:14,294 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'post__api_dms_dms_instance_code_v1_cd_geo_unit_135748': application/json 2025-05-28 17:59:14,294 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_135748] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_135748_body). Properties: ['version', 'data'] 2025-05-28 17:59:14,294 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_135748] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_135748_body.version): example_string 2025-05-28 17:59:14,294 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_135748] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_135748_body.data). Items schema: {'type': 'object', 'properties': {'bsflag': {'type': 'number', 'title': '必填字段删除标记'}, 'wellCommonName': {'type': 'string'}, 'wellId': {'type': 'string'}, 'dataRegion': {'type': 'string'}}, 'required': ['bsflag', 'wellCommonName', 'wellId', 'dataRegion']}, minItems: 1 2025-05-28 17:59:14,294 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_135748] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_135748_body.data[0]). Properties: ['bsflag', 'wellCommonName', 'wellId', 'dataRegion'] 2025-05-28 17:59:14,294 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_135748] 生成 number/integer 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_135748_body.data[0].bsflag): 0.0 2025-05-28 17:59:14,294 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_135748] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_135748_body.data[0].wellCommonName): example_string 2025-05-28 17:59:14,294 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_135748] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_135748_body.data[0].wellId): example_string 2025-05-28 17:59:14,294 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_135748] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_135748_body.data[0].dataRegion): example_string 2025-05-28 17:59:14,294 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'post__api_dms_dms_instance_code_v1_cd_geo_unit_135748' (type: ) 2025-05-28 17:59:14,294 - testcase.TC-ERROR-4001-QUERY - INFO - [TC-ERROR-4001-QUERY] No target field or original type identified for query param type mismatch. Skipping query param modification. 2025-05-28 17:59:14,294 - testcase.TC-ERROR-4001-QUERY - DEBUG - Hook: generate_headers, current keys: ['tenant-id', 'Content-Type', 'Accept'] 2025-05-28 17:59:14,295 - testcase.TC-ERROR-4001-QUERY - DEBUG - TC-ERROR-4001-QUERY is focused on query parameters, generate_request_body will not modify the body. 2025-05-28 17:59:14,295 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {'dms_instance_code': 'example_dms_instance_code'} 2025-05-28 17:59:14,295 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit 2025-05-28 17:59:14,295 - testcase.TC-ERROR-4001-QUERY - DEBUG - Hook: modify_request_url, original URL: http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit 2025-05-28 17:59:14,295 - testcase.TC-ERROR-4001-QUERY - DEBUG - Test case 'TC-ERROR-4001-QUERY' did not modify the URL via modify_request_url hook. 2025-05-28 17:59:14,295 - testcase.TC-ERROR-4001-QUERY - DEBUG - Hook: validate_request_url, url: http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit 2025-05-28 17:59:14,295 - testcase.TC-ERROR-4001-QUERY - DEBUG - Hook: validate_request_headers, header keys: ['tenant-id', 'Content-Type', 'Accept'] 2025-05-28 17:59:14,295 - testcase.TC-ERROR-4001-QUERY - DEBUG - Hook: validate_request_body, body type: 2025-05-28 17:59:14,310 - testcase.TC-ERROR-4001-QUERY - INFO - [TC-ERROR-4001-QUERY] Skipped type mismatch (query) validation: No target query parameter was identified. 2025-05-28 17:59:14,310 - testcase.TC-ERROR-4001-QUERY - DEBUG - Hook: check_performance, elapsed: 0.014919042587280273 2025-05-28 17:59:14,310 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-ERROR-4001-QUERY' 执行成功。 2025-05-28 17:59:14,310 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-ERROR-4001-QUERY' 执行完毕,状态: 通过 2025-05-28 17:59:14,310 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-ERROR-4001-BODY' for 'POST /api/dms/{dms_instance_code}/v1/cd_geo_unit' 2025-05-28 17:59:14,310 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. 2025-05-28 17:59:14,310 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['yapi_categories'] 2025-05-28 17:59:14,310 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... 2025-05-28 17:59:14,310 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... 2025-05-28 17:59:14,310 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[0] ('dms_instance_code') 的 schema... 2025-05-28 17:59:14,310 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[1] ('tenant-id') 的 schema... 2025-05-28 17:59:14,310 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[2] ('Authorization') 的 schema... 2025-05-28 17:59:14,310 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '201' content 'application/json' 的 schema... 2025-05-28 17:59:14,310 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 2025-05-28 17:59:14,310 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: TypeMismatchBodyCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_yapi_id', '_yapi_raw_data', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['yapi_categories']) 2025-05-28 17:59:14,310 - testcase.TC-ERROR-4001-BODY - DEBUG - Test case 'TC-ERROR-4001-BODY' initialized for endpoint: POST /api/dms/{dms_instance_code}/v1/cd_geo_unit 2025-05-28 17:59:14,310 - testcase.TC-ERROR-4001-BODY - INFO - [TC-ERROR-4001-BODY] Initializing: Looking for a simple type field in request body for type mismatch test. 2025-05-28 17:59:14,310 - testcase.TC-ERROR-4001-BODY - DEBUG - Found request body schema under content type: application/json 2025-05-28 17:59:14,310 - testcase.TC-ERROR-4001-BODY - DEBUG - _find_simple_type_field_in_schema: Searching for simple type field in 'request body' schema... 2025-05-28 17:59:14,310 - testcase.TC-ERROR-4001-BODY - INFO - Found simple type field: Path=version, Type=string 2025-05-28 17:59:14,310 - testcase.TC-ERROR-4001-BODY - INFO - _find_simple_type_field_in_schema: Found simple type field in 'request body': Path=version, Type=string 2025-05-28 17:59:14,310 - testcase.TC-ERROR-4001-BODY - INFO - [TC-ERROR-4001-BODY] Target field for type mismatch (body): version, Original Type: string 2025-05-28 17:59:14,310 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-ERROR-4001-BODY' (Error Code 4001 - Request Body Type Mismatch Validation) for endpoint 'POST /api/dms/{dms_instance_code}/v1/cd_geo_unit' 2025-05-28 17:59:14,310 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial path param for 'post__api_dms_dms_instance_code_v1_cd_geo_unit_135748': dms_instance_code = example_dms_instance_code 2025-05-28 17:59:14,310 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial custom header param for 'post__api_dms_dms_instance_code_v1_cd_geo_unit_135748': tenant-id = header_val_tenant-id 2025-05-28 17:59:14,310 - ddms_compliance_suite.test_orchestrator - DEBUG - Skipping standard header 'Authorization' in parameter processing for 'post__api_dms_dms_instance_code_v1_cd_geo_unit_135748'. It will be handled separately. 2025-05-28 17:59:14,310 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'post__api_dms_dms_instance_code_v1_cd_geo_unit_135748': application/json 2025-05-28 17:59:14,310 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'post__api_dms_dms_instance_code_v1_cd_geo_unit_135748': application/json 2025-05-28 17:59:14,310 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_135748] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_135748_body). Properties: ['version', 'data'] 2025-05-28 17:59:14,310 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_135748] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_135748_body.version): example_string 2025-05-28 17:59:14,310 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_135748] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_135748_body.data). Items schema: {'type': 'object', 'properties': {'bsflag': {'type': 'number', 'title': '必填字段删除标记'}, 'wellCommonName': {'type': 'string'}, 'wellId': {'type': 'string'}, 'dataRegion': {'type': 'string'}}, 'required': ['bsflag', 'wellCommonName', 'wellId', 'dataRegion']}, minItems: 1 2025-05-28 17:59:14,310 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_135748] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_135748_body.data[0]). Properties: ['bsflag', 'wellCommonName', 'wellId', 'dataRegion'] 2025-05-28 17:59:14,310 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_135748] 生成 number/integer 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_135748_body.data[0].bsflag): 0.0 2025-05-28 17:59:14,310 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_135748] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_135748_body.data[0].wellCommonName): example_string 2025-05-28 17:59:14,310 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_135748] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_135748_body.data[0].wellId): example_string 2025-05-28 17:59:14,310 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_135748] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_135748_body.data[0].dataRegion): example_string 2025-05-28 17:59:14,310 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'post__api_dms_dms_instance_code_v1_cd_geo_unit_135748' (type: ) 2025-05-28 17:59:14,310 - testcase.TC-ERROR-4001-BODY - DEBUG - TC-ERROR-4001-BODY is focused on request body, generate_query_params will not modify query parameters. 2025-05-28 17:59:14,310 - testcase.TC-ERROR-4001-BODY - DEBUG - Hook: generate_headers, current keys: ['tenant-id', 'Content-Type', 'Accept'] 2025-05-28 17:59:14,310 - testcase.TC-ERROR-4001-BODY - DEBUG - [TC-ERROR-4001-BODY] Preparing to modify request body for type mismatch. Target path: ['version'], Original type: string 2025-05-28 17:59:14,310 - testcase.TC-ERROR-4001-BODY - INFO - [TC-ERROR-4001-BODY] Generated mismatched value '12345' for original type 'string' at path 'version'. 2025-05-28 17:59:14,310 - ddms_compliance_suite.utils.schema_utils - INFO - [Util] 在路径 version (键 'version') 处设置值为 '12345' 2025-05-28 17:59:14,310 - testcase.TC-ERROR-4001-BODY - DEBUG - [TC-ERROR-4001-BODY] Successfully set mismatched value at path using util_set_value_at_path. 2025-05-28 17:59:14,310 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {'dms_instance_code': 'example_dms_instance_code'} 2025-05-28 17:59:14,310 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit 2025-05-28 17:59:14,310 - testcase.TC-ERROR-4001-BODY - DEBUG - Hook: modify_request_url, original URL: http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit 2025-05-28 17:59:14,310 - testcase.TC-ERROR-4001-BODY - DEBUG - Test case 'TC-ERROR-4001-BODY' did not modify the URL via modify_request_url hook. 2025-05-28 17:59:14,310 - testcase.TC-ERROR-4001-BODY - DEBUG - Hook: validate_request_url, url: http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit 2025-05-28 17:59:14,310 - testcase.TC-ERROR-4001-BODY - DEBUG - Hook: validate_request_headers, header keys: ['tenant-id', 'Content-Type', 'Accept'] 2025-05-28 17:59:14,310 - testcase.TC-ERROR-4001-BODY - DEBUG - Hook: validate_request_body, body type: 2025-05-28 17:59:14,324 - testcase.TC-ERROR-4001-BODY - WARNING - TC-ERROR-4001-BODY: Failed. 当请求体字段 'version' 类型不匹配时,期望API返回状态码在 [400, 422] 中,或返回4xx客户端错误且业务码为 '4001'. 实际收到状态码 200. 响应体中的业务码 ('code') 为 '64'. (Field: body.version) 2025-05-28 17:59:14,324 - testcase.TC-ERROR-4001-BODY - DEBUG - Hook: check_performance, elapsed: 0.013344049453735352 2025-05-28 17:59:14,324 - ddms_compliance_suite.test_orchestrator - DEBUG -  ❌ 测试用例 'TC-ERROR-4001-BODY' 执行失败。 2025-05-28 17:59:14,324 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-ERROR-4001-BODY' 执行完毕,状态: 失败 2025-05-28 17:59:14,324 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-ERROR-4003-BODY' for 'POST /api/dms/{dms_instance_code}/v1/cd_geo_unit' 2025-05-28 17:59:14,324 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. 2025-05-28 17:59:14,324 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['yapi_categories'] 2025-05-28 17:59:14,324 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... 2025-05-28 17:59:14,324 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... 2025-05-28 17:59:14,324 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[0] ('dms_instance_code') 的 schema... 2025-05-28 17:59:14,324 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[1] ('tenant-id') 的 schema... 2025-05-28 17:59:14,324 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[2] ('Authorization') 的 schema... 2025-05-28 17:59:14,324 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '201' content 'application/json' 的 schema... 2025-05-28 17:59:14,324 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 2025-05-28 17:59:14,324 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: MissingRequiredFieldBodyCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_yapi_id', '_yapi_raw_data', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['yapi_categories']) 2025-05-28 17:59:14,324 - ddms_compliance_suite.utils.schema_utils - DEBUG - [Util] 递归查找路径: [], 当前层级必填字段: [], 属性: ['version', 'data'] 2025-05-28 17:59:14,324 - ddms_compliance_suite.utils.schema_utils - INFO - [Util] 策略2: 在数组属性 'data' (路径 root) 的元素内找到必填字段: 'bsflag'. 路径: ['data', 0, 'bsflag'] 2025-05-28 17:59:14,324 - testcase.TC-ERROR-4003-BODY - INFO - Found a removable field path in 'request body' schema: 'data.0.bsflag' 2025-05-28 17:59:14,324 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-ERROR-4003-BODY' (Error Code 4003 - Missing Required Request Body Field Validation) for endpoint 'POST /api/dms/{dms_instance_code}/v1/cd_geo_unit' 2025-05-28 17:59:14,324 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial path param for 'post__api_dms_dms_instance_code_v1_cd_geo_unit_135748': dms_instance_code = example_dms_instance_code 2025-05-28 17:59:14,324 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial custom header param for 'post__api_dms_dms_instance_code_v1_cd_geo_unit_135748': tenant-id = header_val_tenant-id 2025-05-28 17:59:14,324 - ddms_compliance_suite.test_orchestrator - DEBUG - Skipping standard header 'Authorization' in parameter processing for 'post__api_dms_dms_instance_code_v1_cd_geo_unit_135748'. It will be handled separately. 2025-05-28 17:59:14,324 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'post__api_dms_dms_instance_code_v1_cd_geo_unit_135748': application/json 2025-05-28 17:59:14,324 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'post__api_dms_dms_instance_code_v1_cd_geo_unit_135748': application/json 2025-05-28 17:59:14,324 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_135748] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_135748_body). Properties: ['version', 'data'] 2025-05-28 17:59:14,324 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_135748] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_135748_body.version): example_string 2025-05-28 17:59:14,324 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_135748] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_135748_body.data). Items schema: {'type': 'object', 'properties': {'bsflag': {'type': 'number', 'title': '必填字段删除标记'}, 'wellCommonName': {'type': 'string'}, 'wellId': {'type': 'string'}, 'dataRegion': {'type': 'string'}}, 'required': ['bsflag', 'wellCommonName', 'wellId', 'dataRegion']}, minItems: 1 2025-05-28 17:59:14,324 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_135748] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_135748_body.data[0]). Properties: ['bsflag', 'wellCommonName', 'wellId', 'dataRegion'] 2025-05-28 17:59:14,324 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_135748] 生成 number/integer 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_135748_body.data[0].bsflag): 0.0 2025-05-28 17:59:14,324 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_135748] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_135748_body.data[0].wellCommonName): example_string 2025-05-28 17:59:14,324 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_135748] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_135748_body.data[0].wellId): example_string 2025-05-28 17:59:14,324 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_135748] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_135748_body.data[0].dataRegion): example_string 2025-05-28 17:59:14,324 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'post__api_dms_dms_instance_code_v1_cd_geo_unit_135748' (type: ) 2025-05-28 17:59:14,324 - ddms_compliance_suite.utils.schema_utils - INFO - [Util] 从路径 'data.0.bsflag' 成功移除字段 'bsflag' (原值: '0.0')。 2025-05-28 17:59:14,324 - testcase.TC-ERROR-4003-BODY - INFO - 为进行必填字段缺失测试,已通过工具方法从请求体中移除字段路径 'data.0.bsflag'。 2025-05-28 17:59:14,324 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {'dms_instance_code': 'example_dms_instance_code'} 2025-05-28 17:59:14,324 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit 2025-05-28 17:59:14,337 - testcase.TC-ERROR-4003-BODY - WARNING - TC-ERROR-4003-BODY: Failed. 当移除必填请求体字段 'data.0.bsflag' 时,期望API返回状态码在 [400, 422] 中,或返回4xx客户端错误且业务码为 '4003'. 实际收到状态码 200. 响应体中的业务码 ('code') 为 '41'. (Removed field: body.data.0.bsflag) 2025-05-28 17:59:14,337 - ddms_compliance_suite.test_orchestrator - DEBUG -  ❌ 测试用例 'TC-ERROR-4003-BODY' 执行失败。 2025-05-28 17:59:14,337 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-ERROR-4003-BODY' 执行完毕,状态: 失败 2025-05-28 17:59:14,337 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-ERROR-4003-QUERY' for 'POST /api/dms/{dms_instance_code}/v1/cd_geo_unit' 2025-05-28 17:59:14,337 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. 2025-05-28 17:59:14,337 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['yapi_categories'] 2025-05-28 17:59:14,337 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... 2025-05-28 17:59:14,337 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... 2025-05-28 17:59:14,337 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[0] ('dms_instance_code') 的 schema... 2025-05-28 17:59:14,337 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[1] ('tenant-id') 的 schema... 2025-05-28 17:59:14,337 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[2] ('Authorization') 的 schema... 2025-05-28 17:59:14,337 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '201' content 'application/json' 的 schema... 2025-05-28 17:59:14,337 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 2025-05-28 17:59:14,337 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: MissingRequiredFieldQueryCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_yapi_id', '_yapi_raw_data', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['yapi_categories']) 2025-05-28 17:59:14,337 - testcase.TC-ERROR-4003-QUERY - INFO - No required 'query' parameter found in endpoint_spec. 2025-05-28 17:59:14,337 - testcase.TC-ERROR-4003-QUERY - INFO - 测试用例 TC-ERROR-4003-QUERY (Error Code 4003 - Missing Required Query Parameter Validation) 已针对端点 'POST /api/dms/{dms_instance_code}/v1/cd_geo_unit' 初始化。Target param to remove: None 2025-05-28 17:59:14,337 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-ERROR-4003-QUERY' (Error Code 4003 - Missing Required Query Parameter Validation) for endpoint 'POST /api/dms/{dms_instance_code}/v1/cd_geo_unit' 2025-05-28 17:59:14,337 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial path param for 'post__api_dms_dms_instance_code_v1_cd_geo_unit_135748': dms_instance_code = example_dms_instance_code 2025-05-28 17:59:14,337 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial custom header param for 'post__api_dms_dms_instance_code_v1_cd_geo_unit_135748': tenant-id = header_val_tenant-id 2025-05-28 17:59:14,337 - ddms_compliance_suite.test_orchestrator - DEBUG - Skipping standard header 'Authorization' in parameter processing for 'post__api_dms_dms_instance_code_v1_cd_geo_unit_135748'. It will be handled separately. 2025-05-28 17:59:14,337 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'post__api_dms_dms_instance_code_v1_cd_geo_unit_135748': application/json 2025-05-28 17:59:14,337 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'post__api_dms_dms_instance_code_v1_cd_geo_unit_135748': application/json 2025-05-28 17:59:14,337 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_135748] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_135748_body). Properties: ['version', 'data'] 2025-05-28 17:59:14,337 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_135748] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_135748_body.version): example_string 2025-05-28 17:59:14,337 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_135748] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_135748_body.data). Items schema: {'type': 'object', 'properties': {'bsflag': {'type': 'number', 'title': '必填字段删除标记'}, 'wellCommonName': {'type': 'string'}, 'wellId': {'type': 'string'}, 'dataRegion': {'type': 'string'}}, 'required': ['bsflag', 'wellCommonName', 'wellId', 'dataRegion']}, minItems: 1 2025-05-28 17:59:14,337 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_135748] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_135748_body.data[0]). Properties: ['bsflag', 'wellCommonName', 'wellId', 'dataRegion'] 2025-05-28 17:59:14,337 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_135748] 生成 number/integer 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_135748_body.data[0].bsflag): 0.0 2025-05-28 17:59:14,337 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_135748] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_135748_body.data[0].wellCommonName): example_string 2025-05-28 17:59:14,337 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_135748] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_135748_body.data[0].wellId): example_string 2025-05-28 17:59:14,337 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_135748] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_135748_body.data[0].dataRegion): example_string 2025-05-28 17:59:14,337 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'post__api_dms_dms_instance_code_v1_cd_geo_unit_135748' (type: ) 2025-05-28 17:59:14,337 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {'dms_instance_code': 'example_dms_instance_code'} 2025-05-28 17:59:14,337 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit DEBUG: curlify generated command (raw): curl -X DELETE -H 'User-Agent: python-requests/2.32.3' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'tenant-id: header_val_tenant-id' -H 'Content-Type: application/json' -H 'Content-Length: 57' -d '{"version": "example_string", "data": ["example_string"]}' --insecure http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit DEBUG: curlify generated command (repr): 'curl -X DELETE -H \'User-Agent: python-requests/2.32.3\' -H \'Accept-Encoding: gzip, deflate, br, zstd\' -H \'Accept: application/json\' -H \'Connection: keep-alive\' -H \'tenant-id: header_val_tenant-id\' -H \'Content-Type: application/json\' -H \'Content-Length: 57\' -d \'{"version": "example_string", "data": ["example_string"]}\' --insecure http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit' DEBUG: curlify generated command (raw): curl -H 'User-Agent: python-requests/2.32.3' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'tenant-id: header_val_tenant-id' -H 'Content-Type: application/json' -H 'Content-Length: 152' -d '{"version": "example_string", "data": [{"bsflag": 0.0, "wellCommonName": "example_string", "wellId": "example_string", "dataRegion": "example_string"}]}' --insecure http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit DEBUG: curlify generated command (repr): 'curl -H \'User-Agent: python-requests/2.32.3\' -H \'Accept-Encoding: gzip, deflate, br, zstd\' -H \'Accept: application/json\' -H \'Connection: keep-alive\' -H \'tenant-id: header_val_tenant-id\' -H \'Content-Type: application/json\' -H \'Content-Length: 152\' -d \'{"version": "example_string", "data": [{"bsflag": 0.0, "wellCommonName": "example_string", "wellId": "example_string", "dataRegion": "example_string"}]}\' --insecure http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit' DEBUG: curlify generated command (raw): curl -H 'User-Agent: python-requests/2.32.3' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'tenant-id: header_val_tenant-id' -H 'Content-Type: application/json' -H 'Content-Length: 152' -d '{"version": "example_string", "data": [{"bsflag": 0.0, "wellCommonName": "example_string", "wellId": "example_string", "dataRegion": "example_string"}]}' --insecure http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit DEBUG: curlify generated command (repr): 'curl -H \'User-Agent: python-requests/2.32.3\' -H \'Accept-Encoding: gzip, deflate, br, zstd\' -H \'Accept: application/json\' -H \'Connection: keep-alive\' -H \'tenant-id: header_val_tenant-id\' -H \'Content-Type: application/json\' -H \'Content-Length: 152\' -d \'{"version": "example_string", "data": [{"bsflag": 0.0, "wellCommonName": "example_string", "wellId": "example_string", "dataRegion": "example_string"}]}\' --insecure http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit' DEBUG: curlify generated command (raw): curl -H 'User-Agent: python-requests/2.32.3' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'tenant-id: header_val_tenant-id' -H 'Content-Type: application/json' -H 'Content-Length: 152' -d '{"version": "example_string", "data": [{"bsflag": 0.0, "wellCommonName": "example_string", "wellId": "example_string", "dataRegion": "example_string"}]}' --insecure http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit DEBUG: curlify generated command (repr): 'curl -H \'User-Agent: python-requests/2.32.3\' -H \'Accept-Encoding: gzip, deflate, br, zstd\' -H \'Accept: application/json\' -H \'Connection: keep-alive\' -H \'tenant-id: header_val_tenant-id\' -H \'Content-Type: application/json\' -H \'Content-Length: 152\' -d \'{"version": "example_string", "data": [{"bsflag": 0.0, "wellCommonName": "example_string", "wellId": "example_string", "dataRegion": "example_string"}]}\' --insecure http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit' DEBUG: curlify generated command (raw): curl -H 'User-Agent: python-requests/2.32.3' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'tenant-id: header_val_tenant-id' -H 'Content-Type: application/json' -H 'Content-Length: 152' -d '{"version": "example_string", "data": [{"bsflag": 0.0, "wellCommonName": "example_string", "wellId": "example_string", "dataRegion": "example_string"}]}' --insecure http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit DEBUG: curlify generated command (repr): 'curl -H \'User-Agent: python-requests/2.32.3\' -H \'Accept-Encoding: gzip, deflate, br, zstd\' -H \'Accept: application/json\' -H \'Connection: keep-alive\' -H \'tenant-id: header_val_tenant-id\' -H \'Content-Type: application/json\' -H \'Content-Length: 152\' -d \'{"version": "example_string", "data": [{"bsflag": 0.0, "wellCommonName": "example_string", "wellId": "example_string", "dataRegion": "example_string"}]}\' --insecure http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit' DEBUG: curlify generated command (raw): curl -H 'User-Agent: python-requests/2.32.3' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'tenant-id: header_val_tenant-id' -H 'Content-Type: application/json' -H 'Content-Length: 141' -d '{"version": 12345, "data": [{"bsflag": 0.0, "wellCommonName": "example_string", "wellId": "example_string", "dataRegion": "example_string"}]}' --insecure http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit DEBUG: curlify generated command (repr): 'curl -H \'User-Agent: python-requests/2.32.3\' -H \'Accept-Encoding: gzip, deflate, br, zstd\' -H \'Accept: application/json\' -H \'Connection: keep-alive\' -H \'tenant-id: header_val_tenant-id\' -H \'Content-Type: application/json\' -H \'Content-Length: 141\' -d \'{"version": 12345, "data": [{"bsflag": 0.0, "wellCommonName": "example_string", "wellId": "example_string", "dataRegion": "example_string"}]}\' --insecure http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit' DEBUG: curlify generated command (raw): curl -H 'User-Agent: python-requests/2.32.3' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'tenant-id: header_val_tenant-id' -H 'Content-Type: application/json' -H 'Content-Length: 137' -d '{"version": "example_string", "data": [{"wellCommonName": "example_string", "wellId": "example_string", "dataRegion": "example_string"}]}' --insecure http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit DEBUG: curlify generated command (repr): 'curl -H \'User-Agent: python-requests/2.32.3\' -H \'Accept-Encoding: gzip, deflate, br, zstd\' -H \'Accept: application/json\' -H \'Connection: keep-alive\' -H \'tenant-id: header_val_tenant-id\' -H \'Content-Type: application/json\' -H \'Content-Length: 137\' -d \'{"version": "example_string", "data": [{"wellCommonName": "example_string", "wellId": "example_string", "dataRegion": "example_string"}]}\' --insecure http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit' 2025-05-28 17:59:14,350 - testcase.TC-ERROR-4003-QUERY - INFO - 由于未识别到可移除的必填查询参数,跳过此测试用例。 2025-05-28 17:59:14,350 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-ERROR-4003-QUERY' 执行成功。 2025-05-28 17:59:14,350 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-ERROR-4003-QUERY' 执行完毕,状态: 通过 2025-05-28 17:59:14,350 - ddms_compliance_suite.test_orchestrator - INFO - 端点 'POST /api/dms/{dms_instance_code}/v1/cd_geo_unit' 测试完成,最终状态: 失败 2025-05-28 17:59:14,350 - ddms_compliance_suite.test_orchestrator - INFO - 开始为端点测试: GET /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}/{id} (地质单元查询详情) 2025-05-28 17:59:14,350 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-STATUS-001' 适用于端点 'GET /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}/{id}'。 2025-05-28 17:59:14,350 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-CORE-FUNC-001' 适用于端点 'GET /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}/{id}'。 2025-05-28 17:59:14,350 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-SECURITY-001' 适用于端点 'GET /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}/{id}'。 2025-05-28 17:59:14,350 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4001-QUERY' 适用于端点 'GET /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}/{id}'。 2025-05-28 17:59:14,350 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4001-BODY' 适用于端点 'GET /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}/{id}'。 2025-05-28 17:59:14,350 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4003-BODY' 适用于端点 'GET /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}/{id}'。 2025-05-28 17:59:14,350 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4003-QUERY' 适用于端点 'GET /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}/{id}'。 2025-05-28 17:59:14,351 - ddms_compliance_suite.test_orchestrator - INFO - 端点 'GET /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}/{id}' 发现了 7 个适用的测试用例 (已排序): ['TC-STATUS-001', 'TC-CORE-FUNC-001', 'TC-SECURITY-001', 'TC-ERROR-4001-QUERY', 'TC-ERROR-4001-BODY', 'TC-ERROR-4003-BODY', 'TC-ERROR-4003-QUERY'] 2025-05-28 17:59:14,351 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-STATUS-001' for 'GET /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}/{id}' 2025-05-28 17:59:14,351 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. 2025-05-28 17:59:14,351 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['yapi_categories'] 2025-05-28 17:59:14,351 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... 2025-05-28 17:59:14,351 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... 2025-05-28 17:59:14,351 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True,丢弃 '$$ref': #/components/schemas/RdbQueryPageInput 2025-05-28 17:59:14,351 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True,丢弃 '$$ref': #/components/schemas/QueryVO 2025-05-28 17:59:14,351 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True,丢弃 '$$ref': #/components/schemas/FilterVO 2025-05-28 17:59:14,351 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True,丢弃 '$ref': #/components/schemas/FilterVO 2025-05-28 17:59:14,351 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True,丢弃 '$$ref': #/components/schemas/FilterVO 2025-05-28 17:59:14,351 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True,丢弃 '$ref': #/components/schemas/FilterVO 2025-05-28 17:59:14,351 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[0] ('dms_instance_code') 的 schema... 2025-05-28 17:59:14,351 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[1] ('version') 的 schema... 2025-05-28 17:59:14,351 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[2] ('id') 的 schema... 2025-05-28 17:59:14,351 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[3] ('tenant-id') 的 schema... 2025-05-28 17:59:14,351 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[4] ('Authorization') 的 schema... 2025-05-28 17:59:14,351 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... 2025-05-28 17:59:14,351 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 2025-05-28 17:59:14,351 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: StatusCode200Check 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_yapi_id', '_yapi_raw_data', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['yapi_categories']) 2025-05-28 17:59:14,351 - testcase.TC-STATUS-001 - INFO - 测试用例 TC-STATUS-001 (基本状态码 200 检查) 已针对端点 'GET /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}/{id}' 初始化。 2025-05-28 17:59:14,351 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-STATUS-001' (基本状态码 200 检查) for endpoint 'GET /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}/{id}' 2025-05-28 17:59:14,351 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial path param for 'get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752': dms_instance_code = example_dms_instance_code 2025-05-28 17:59:14,351 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial path param for 'get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752': version = 1.0.0 2025-05-28 17:59:14,351 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial path param for 'get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752': id = example_id 2025-05-28 17:59:14,351 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial custom header param for 'get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752': tenant-id = header_val_tenant-id 2025-05-28 17:59:14,351 - ddms_compliance_suite.test_orchestrator - DEBUG - Skipping standard header 'Authorization' in parameter processing for 'get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752'. It will be handled separately. 2025-05-28 17:59:14,351 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752': application/json 2025-05-28 17:59:14,351 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752': application/json 2025-05-28 17:59:14,351 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 object 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body). Properties: ['isSearchCount', 'query'] 2025-05-28 17:59:14,351 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 使用 schema 中的 'default' 值 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.isSearchCount): True 2025-05-28 17:59:14,351 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 object 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query). Properties: ['dataRegions', 'fields', 'filter', 'groupFields', 'groupFilter', 'sort'] 2025-05-28 17:59:14,351 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 array 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.dataRegions). Items schema: {'description': '数据域,如:JD、DG、TL', 'type': 'string'}, minItems: 1 2025-05-28 17:59:14,351 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 string 类型数据 ('') for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.dataRegions[0]): example_string 2025-05-28 17:59:14,351 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 array 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.fields). Items schema: {'description': '查询的字段', 'type': 'string'}, minItems: 1 2025-05-28 17:59:14,351 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 string 类型数据 ('') for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.fields[0]): example_string 2025-05-28 17:59:14,351 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 object 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.filter). Properties: ['key', 'logic', 'realValue', 'singleValue', 'subFilter', 'symbol'] 2025-05-28 17:59:14,351 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 string 类型数据 ('') for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.filter.key): example_string 2025-05-28 17:59:14,351 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 string 类型数据 ('') for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.filter.logic): example_string 2025-05-28 17:59:14,351 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 array 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.filter.realValue). Items schema: {'description': '条件值', 'type': 'object', 'properties': {}}, minItems: 1 2025-05-28 17:59:14,351 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 object 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.filter.realValue[0]). Properties: [] 2025-05-28 17:59:14,351 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 object 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.filter.singleValue). Properties: [] 2025-05-28 17:59:14,351 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 array 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.filter.subFilter). Items schema: {'type': 'string'}, minItems: 1 2025-05-28 17:59:14,351 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 string 类型数据 ('') for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.filter.subFilter[0]): example_string 2025-05-28 17:59:14,351 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 string 类型数据 ('') for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.filter.symbol): example_string 2025-05-28 17:59:14,351 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 array 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.groupFields). Items schema: {'description': '分组字段group by', 'type': 'string'}, minItems: 1 2025-05-28 17:59:14,351 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 string 类型数据 ('') for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.groupFields[0]): example_string 2025-05-28 17:59:14,351 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 object 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.groupFilter). Properties: ['key', 'logic', 'realValue', 'singleValue', 'subFilter', 'symbol'] 2025-05-28 17:59:14,351 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 string 类型数据 ('') for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.groupFilter.key): example_string 2025-05-28 17:59:14,351 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 string 类型数据 ('') for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.groupFilter.logic): example_string 2025-05-28 17:59:14,351 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 array 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.groupFilter.realValue). Items schema: {'description': '条件值', 'type': 'object', 'properties': {}}, minItems: 1 2025-05-28 17:59:14,351 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 object 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.groupFilter.realValue[0]). Properties: [] 2025-05-28 17:59:14,351 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 object 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.groupFilter.singleValue). Properties: [] 2025-05-28 17:59:14,351 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 array 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.groupFilter.subFilter). Items schema: {'type': 'string'}, minItems: 1 2025-05-28 17:59:14,351 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 string 类型数据 ('') for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.groupFilter.subFilter[0]): example_string 2025-05-28 17:59:14,351 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 string 类型数据 ('') for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.groupFilter.symbol): example_string 2025-05-28 17:59:14,351 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 object 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.sort). Properties: [] 2025-05-28 17:59:14,351 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752' (type: ) 2025-05-28 17:59:14,351 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {'dms_instance_code': 'example_dms_instance_code', 'version': '1.0.0', 'id': 'example_id'} 2025-05-28 17:59:14,351 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): 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 2025-05-28 17:59:14,367 - testcase.TC-STATUS-001 - INFO - 状态码验证通过: 200 == 200 for 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 2025-05-28 17:59:14,367 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-STATUS-001' 执行成功。 2025-05-28 17:59:14,367 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-STATUS-001' 执行完毕,状态: 通过 2025-05-28 17:59:14,367 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-CORE-FUNC-001' for 'GET /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}/{id}' 2025-05-28 17:59:14,367 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. 2025-05-28 17:59:14,367 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['yapi_categories'] 2025-05-28 17:59:14,367 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... 2025-05-28 17:59:14,367 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... 2025-05-28 17:59:14,367 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True,丢弃 '$$ref': #/components/schemas/RdbQueryPageInput 2025-05-28 17:59:14,367 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True,丢弃 '$$ref': #/components/schemas/QueryVO 2025-05-28 17:59:14,367 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True,丢弃 '$$ref': #/components/schemas/FilterVO 2025-05-28 17:59:14,367 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True,丢弃 '$ref': #/components/schemas/FilterVO 2025-05-28 17:59:14,368 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True,丢弃 '$$ref': #/components/schemas/FilterVO 2025-05-28 17:59:14,368 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True,丢弃 '$ref': #/components/schemas/FilterVO 2025-05-28 17:59:14,368 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[0] ('dms_instance_code') 的 schema... 2025-05-28 17:59:14,368 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[1] ('version') 的 schema... 2025-05-28 17:59:14,368 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[2] ('id') 的 schema... 2025-05-28 17:59:14,368 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[3] ('tenant-id') 的 schema... 2025-05-28 17:59:14,368 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[4] ('Authorization') 的 schema... 2025-05-28 17:59:14,368 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... 2025-05-28 17:59:14,368 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 2025-05-28 17:59:14,368 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: ResponseSchemaValidationCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_yapi_id', '_yapi_raw_data', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['yapi_categories']) 2025-05-28 17:59:14,368 - testcase.TC-CORE-FUNC-001 - INFO - 测试用例 'TC-CORE-FUNC-001' 已为端点 'GET /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}/{id}' 初始化。 2025-05-28 17:59:14,368 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-CORE-FUNC-001' (Response Body JSON Schema Validation) for endpoint 'GET /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}/{id}' 2025-05-28 17:59:14,368 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial path param for 'get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752': dms_instance_code = example_dms_instance_code 2025-05-28 17:59:14,368 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial path param for 'get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752': version = 1.0.0 2025-05-28 17:59:14,368 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial path param for 'get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752': id = example_id 2025-05-28 17:59:14,368 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial custom header param for 'get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752': tenant-id = header_val_tenant-id 2025-05-28 17:59:14,368 - ddms_compliance_suite.test_orchestrator - DEBUG - Skipping standard header 'Authorization' in parameter processing for 'get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752'. It will be handled separately. 2025-05-28 17:59:14,368 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752': application/json 2025-05-28 17:59:14,368 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752': application/json 2025-05-28 17:59:14,368 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 object 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body). Properties: ['isSearchCount', 'query'] 2025-05-28 17:59:14,368 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 使用 schema 中的 'default' 值 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.isSearchCount): True 2025-05-28 17:59:14,368 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 object 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query). Properties: ['dataRegions', 'fields', 'filter', 'groupFields', 'groupFilter', 'sort'] 2025-05-28 17:59:14,368 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 array 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.dataRegions). Items schema: {'description': '数据域,如:JD、DG、TL', 'type': 'string'}, minItems: 1 2025-05-28 17:59:14,368 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 string 类型数据 ('') for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.dataRegions[0]): example_string 2025-05-28 17:59:14,368 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 array 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.fields). Items schema: {'description': '查询的字段', 'type': 'string'}, minItems: 1 2025-05-28 17:59:14,368 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 string 类型数据 ('') for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.fields[0]): example_string 2025-05-28 17:59:14,368 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 object 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.filter). Properties: ['key', 'logic', 'realValue', 'singleValue', 'subFilter', 'symbol'] 2025-05-28 17:59:14,368 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 string 类型数据 ('') for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.filter.key): example_string 2025-05-28 17:59:14,368 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 string 类型数据 ('') for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.filter.logic): example_string 2025-05-28 17:59:14,368 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 array 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.filter.realValue). Items schema: {'description': '条件值', 'type': 'object', 'properties': {}}, minItems: 1 2025-05-28 17:59:14,368 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 object 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.filter.realValue[0]). Properties: [] 2025-05-28 17:59:14,368 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 object 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.filter.singleValue). Properties: [] 2025-05-28 17:59:14,368 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 array 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.filter.subFilter). Items schema: {'type': 'string'}, minItems: 1 2025-05-28 17:59:14,368 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 string 类型数据 ('') for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.filter.subFilter[0]): example_string 2025-05-28 17:59:14,368 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 string 类型数据 ('') for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.filter.symbol): example_string 2025-05-28 17:59:14,368 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 array 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.groupFields). Items schema: {'description': '分组字段group by', 'type': 'string'}, minItems: 1 2025-05-28 17:59:14,368 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 string 类型数据 ('') for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.groupFields[0]): example_string 2025-05-28 17:59:14,368 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 object 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.groupFilter). Properties: ['key', 'logic', 'realValue', 'singleValue', 'subFilter', 'symbol'] 2025-05-28 17:59:14,368 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 string 类型数据 ('') for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.groupFilter.key): example_string 2025-05-28 17:59:14,368 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 string 类型数据 ('') for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.groupFilter.logic): example_string 2025-05-28 17:59:14,368 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 array 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.groupFilter.realValue). Items schema: {'description': '条件值', 'type': 'object', 'properties': {}}, minItems: 1 2025-05-28 17:59:14,368 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 object 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.groupFilter.realValue[0]). Properties: [] 2025-05-28 17:59:14,368 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 object 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.groupFilter.singleValue). Properties: [] 2025-05-28 17:59:14,368 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 array 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.groupFilter.subFilter). Items schema: {'type': 'string'}, minItems: 1 2025-05-28 17:59:14,368 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 string 类型数据 ('') for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.groupFilter.subFilter[0]): example_string 2025-05-28 17:59:14,368 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 string 类型数据 ('') for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.groupFilter.symbol): example_string 2025-05-28 17:59:14,368 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 object 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.sort). Properties: [] 2025-05-28 17:59:14,368 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752' (type: ) 2025-05-28 17:59:14,368 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {'dms_instance_code': 'example_dms_instance_code', 'version': '1.0.0', 'id': 'example_id'} 2025-05-28 17:59:14,368 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): 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 2025-05-28 17:59:14,388 - testcase.TC-CORE-FUNC-001 - INFO - 将根据路径 'responses.200.content.application/json.schema' 的schema验证响应体。 2025-05-28 17:59:14,388 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-CORE-FUNC-001' 执行成功。 2025-05-28 17:59:14,388 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-CORE-FUNC-001' 执行完毕,状态: 通过 2025-05-28 17:59:14,388 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-SECURITY-001' for 'GET /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}/{id}' 2025-05-28 17:59:14,388 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. 2025-05-28 17:59:14,388 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['yapi_categories'] 2025-05-28 17:59:14,388 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... 2025-05-28 17:59:14,388 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... 2025-05-28 17:59:14,388 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True,丢弃 '$$ref': #/components/schemas/RdbQueryPageInput 2025-05-28 17:59:14,388 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True,丢弃 '$$ref': #/components/schemas/QueryVO 2025-05-28 17:59:14,388 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True,丢弃 '$$ref': #/components/schemas/FilterVO 2025-05-28 17:59:14,388 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True,丢弃 '$ref': #/components/schemas/FilterVO 2025-05-28 17:59:14,388 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True,丢弃 '$$ref': #/components/schemas/FilterVO 2025-05-28 17:59:14,388 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True,丢弃 '$ref': #/components/schemas/FilterVO 2025-05-28 17:59:14,388 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[0] ('dms_instance_code') 的 schema... 2025-05-28 17:59:14,388 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[1] ('version') 的 schema... 2025-05-28 17:59:14,388 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[2] ('id') 的 schema... 2025-05-28 17:59:14,388 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[3] ('tenant-id') 的 schema... 2025-05-28 17:59:14,388 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[4] ('Authorization') 的 schema... 2025-05-28 17:59:14,388 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... 2025-05-28 17:59:14,389 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 2025-05-28 17:59:14,389 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: HTTPSMandatoryCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_yapi_id', '_yapi_raw_data', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['yapi_categories']) 2025-05-28 17:59:14,389 - testcase.TC-SECURITY-001 - INFO - 测试用例 'TC-SECURITY-001' 已为端点 'GET /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}/{id}' 初始化。 2025-05-28 17:59:14,389 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-SECURITY-001' (HTTPS Protocol Mandatory Verification) for endpoint 'GET /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}/{id}' 2025-05-28 17:59:14,389 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial path param for 'get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752': dms_instance_code = example_dms_instance_code 2025-05-28 17:59:14,389 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial path param for 'get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752': version = 1.0.0 2025-05-28 17:59:14,389 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial path param for 'get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752': id = example_id 2025-05-28 17:59:14,389 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial custom header param for 'get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752': tenant-id = header_val_tenant-id 2025-05-28 17:59:14,389 - ddms_compliance_suite.test_orchestrator - DEBUG - Skipping standard header 'Authorization' in parameter processing for 'get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752'. It will be handled separately. 2025-05-28 17:59:14,389 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752': application/json 2025-05-28 17:59:14,389 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752': application/json 2025-05-28 17:59:14,389 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 object 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body). Properties: ['isSearchCount', 'query'] 2025-05-28 17:59:14,389 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 使用 schema 中的 'default' 值 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.isSearchCount): True 2025-05-28 17:59:14,389 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 object 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query). Properties: ['dataRegions', 'fields', 'filter', 'groupFields', 'groupFilter', 'sort'] 2025-05-28 17:59:14,389 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 array 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.dataRegions). Items schema: {'description': '数据域,如:JD、DG、TL', 'type': 'string'}, minItems: 1 2025-05-28 17:59:14,389 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 string 类型数据 ('') for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.dataRegions[0]): example_string 2025-05-28 17:59:14,389 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 array 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.fields). Items schema: {'description': '查询的字段', 'type': 'string'}, minItems: 1 2025-05-28 17:59:14,389 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 string 类型数据 ('') for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.fields[0]): example_string 2025-05-28 17:59:14,389 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 object 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.filter). Properties: ['key', 'logic', 'realValue', 'singleValue', 'subFilter', 'symbol'] 2025-05-28 17:59:14,389 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 string 类型数据 ('') for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.filter.key): example_string 2025-05-28 17:59:14,389 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 string 类型数据 ('') for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.filter.logic): example_string 2025-05-28 17:59:14,389 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 array 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.filter.realValue). Items schema: {'description': '条件值', 'type': 'object', 'properties': {}}, minItems: 1 2025-05-28 17:59:14,389 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 object 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.filter.realValue[0]). Properties: [] 2025-05-28 17:59:14,389 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 object 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.filter.singleValue). Properties: [] 2025-05-28 17:59:14,389 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 array 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.filter.subFilter). Items schema: {'type': 'string'}, minItems: 1 2025-05-28 17:59:14,389 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 string 类型数据 ('') for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.filter.subFilter[0]): example_string 2025-05-28 17:59:14,389 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 string 类型数据 ('') for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.filter.symbol): example_string 2025-05-28 17:59:14,389 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 array 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.groupFields). Items schema: {'description': '分组字段group by', 'type': 'string'}, minItems: 1 2025-05-28 17:59:14,389 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 string 类型数据 ('') for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.groupFields[0]): example_string 2025-05-28 17:59:14,389 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 object 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.groupFilter). Properties: ['key', 'logic', 'realValue', 'singleValue', 'subFilter', 'symbol'] 2025-05-28 17:59:14,389 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 string 类型数据 ('') for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.groupFilter.key): example_string 2025-05-28 17:59:14,389 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 string 类型数据 ('') for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.groupFilter.logic): example_string 2025-05-28 17:59:14,389 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 array 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.groupFilter.realValue). Items schema: {'description': '条件值', 'type': 'object', 'properties': {}}, minItems: 1 2025-05-28 17:59:14,389 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 object 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.groupFilter.realValue[0]). Properties: [] 2025-05-28 17:59:14,389 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 object 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.groupFilter.singleValue). Properties: [] 2025-05-28 17:59:14,389 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 array 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.groupFilter.subFilter). Items schema: {'type': 'string'}, minItems: 1 2025-05-28 17:59:14,389 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 string 类型数据 ('') for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.groupFilter.subFilter[0]): example_string 2025-05-28 17:59:14,389 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 string 类型数据 ('') for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.groupFilter.symbol): example_string 2025-05-28 17:59:14,389 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 object 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.sort). Properties: [] 2025-05-28 17:59:14,389 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752' (type: ) 2025-05-28 17:59:14,389 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {'dms_instance_code': 'example_dms_instance_code', 'version': '1.0.0', 'id': 'example_id'} 2025-05-28 17:59:14,389 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): 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 2025-05-28 17:59:14,389 - testcase.TC-SECURITY-001 - WARNING - 原始URL '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' 不是HTTPS。跳过此测试用例的URL修改。 2025-05-28 17:59:14,404 - testcase.TC-SECURITY-001 - ERROR - 安全漏洞:API允许通过HTTP成功响应 (200)。 2025-05-28 17:59:14,404 - ddms_compliance_suite.test_orchestrator - DEBUG -  ❌ 测试用例 'TC-SECURITY-001' 执行失败。 2025-05-28 17:59:14,404 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-SECURITY-001' 执行完毕,状态: 失败 2025-05-28 17:59:14,404 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-ERROR-4001-QUERY' for 'GET /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}/{id}' 2025-05-28 17:59:14,404 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. 2025-05-28 17:59:14,404 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['yapi_categories'] 2025-05-28 17:59:14,404 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... 2025-05-28 17:59:14,404 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... 2025-05-28 17:59:14,404 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True,丢弃 '$$ref': #/components/schemas/RdbQueryPageInput 2025-05-28 17:59:14,404 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True,丢弃 '$$ref': #/components/schemas/QueryVO 2025-05-28 17:59:14,404 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True,丢弃 '$$ref': #/components/schemas/FilterVO 2025-05-28 17:59:14,404 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True,丢弃 '$ref': #/components/schemas/FilterVO 2025-05-28 17:59:14,404 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True,丢弃 '$$ref': #/components/schemas/FilterVO 2025-05-28 17:59:14,404 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True,丢弃 '$ref': #/components/schemas/FilterVO 2025-05-28 17:59:14,404 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[0] ('dms_instance_code') 的 schema... 2025-05-28 17:59:14,404 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[1] ('version') 的 schema... 2025-05-28 17:59:14,404 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[2] ('id') 的 schema... 2025-05-28 17:59:14,404 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[3] ('tenant-id') 的 schema... 2025-05-28 17:59:14,404 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[4] ('Authorization') 的 schema... 2025-05-28 17:59:14,404 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... 2025-05-28 17:59:14,404 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 2025-05-28 17:59:14,404 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: TypeMismatchQueryParamCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_yapi_id', '_yapi_raw_data', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['yapi_categories']) 2025-05-28 17:59:14,404 - testcase.TC-ERROR-4001-QUERY - DEBUG - Test case 'TC-ERROR-4001-QUERY' initialized for endpoint: GET /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}/{id} 2025-05-28 17:59:14,404 - testcase.TC-ERROR-4001-QUERY - INFO - [TC-ERROR-4001-QUERY] Initializing: Looking for a simple type query parameter for type mismatch test. 2025-05-28 17:59:14,404 - testcase.TC-ERROR-4001-QUERY - INFO - _find_first_simple_type_parameter: No suitable simple type field found for query parameters. 2025-05-28 17:59:14,404 - testcase.TC-ERROR-4001-QUERY - INFO - [TC-ERROR-4001-QUERY] No suitable simple type query parameter found for type mismatch test. 2025-05-28 17:59:14,404 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-ERROR-4001-QUERY' (Error Code 4001 - Query Parameter Type Mismatch Validation) for endpoint 'GET /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}/{id}' 2025-05-28 17:59:14,404 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial path param for 'get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752': dms_instance_code = example_dms_instance_code 2025-05-28 17:59:14,404 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial path param for 'get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752': version = 1.0.0 2025-05-28 17:59:14,404 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial path param for 'get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752': id = example_id 2025-05-28 17:59:14,404 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial custom header param for 'get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752': tenant-id = header_val_tenant-id 2025-05-28 17:59:14,404 - ddms_compliance_suite.test_orchestrator - DEBUG - Skipping standard header 'Authorization' in parameter processing for 'get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752'. It will be handled separately. 2025-05-28 17:59:14,404 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752': application/json 2025-05-28 17:59:14,404 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752': application/json 2025-05-28 17:59:14,404 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 object 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body). Properties: ['isSearchCount', 'query'] 2025-05-28 17:59:14,404 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 使用 schema 中的 'default' 值 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.isSearchCount): True 2025-05-28 17:59:14,404 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 object 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query). Properties: ['dataRegions', 'fields', 'filter', 'groupFields', 'groupFilter', 'sort'] 2025-05-28 17:59:14,404 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 array 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.dataRegions). Items schema: {'description': '数据域,如:JD、DG、TL', 'type': 'string'}, minItems: 1 2025-05-28 17:59:14,404 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 string 类型数据 ('') for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.dataRegions[0]): example_string 2025-05-28 17:59:14,404 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 array 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.fields). Items schema: {'description': '查询的字段', 'type': 'string'}, minItems: 1 2025-05-28 17:59:14,404 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 string 类型数据 ('') for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.fields[0]): example_string 2025-05-28 17:59:14,404 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 object 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.filter). Properties: ['key', 'logic', 'realValue', 'singleValue', 'subFilter', 'symbol'] 2025-05-28 17:59:14,404 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 string 类型数据 ('') for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.filter.key): example_string 2025-05-28 17:59:14,404 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 string 类型数据 ('') for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.filter.logic): example_string 2025-05-28 17:59:14,404 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 array 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.filter.realValue). Items schema: {'description': '条件值', 'type': 'object', 'properties': {}}, minItems: 1 2025-05-28 17:59:14,404 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 object 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.filter.realValue[0]). Properties: [] 2025-05-28 17:59:14,404 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 object 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.filter.singleValue). Properties: [] 2025-05-28 17:59:14,404 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 array 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.filter.subFilter). Items schema: {'type': 'string'}, minItems: 1 2025-05-28 17:59:14,404 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 string 类型数据 ('') for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.filter.subFilter[0]): example_string 2025-05-28 17:59:14,404 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 string 类型数据 ('') for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.filter.symbol): example_string 2025-05-28 17:59:14,404 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 array 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.groupFields). Items schema: {'description': '分组字段group by', 'type': 'string'}, minItems: 1 2025-05-28 17:59:14,404 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 string 类型数据 ('') for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.groupFields[0]): example_string 2025-05-28 17:59:14,404 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 object 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.groupFilter). Properties: ['key', 'logic', 'realValue', 'singleValue', 'subFilter', 'symbol'] 2025-05-28 17:59:14,404 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 string 类型数据 ('') for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.groupFilter.key): example_string 2025-05-28 17:59:14,404 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 string 类型数据 ('') for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.groupFilter.logic): example_string 2025-05-28 17:59:14,404 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 array 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.groupFilter.realValue). Items schema: {'description': '条件值', 'type': 'object', 'properties': {}}, minItems: 1 2025-05-28 17:59:14,404 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 object 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.groupFilter.realValue[0]). Properties: [] 2025-05-28 17:59:14,404 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 object 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.groupFilter.singleValue). Properties: [] 2025-05-28 17:59:14,404 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 array 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.groupFilter.subFilter). Items schema: {'type': 'string'}, minItems: 1 2025-05-28 17:59:14,404 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 string 类型数据 ('') for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.groupFilter.subFilter[0]): example_string 2025-05-28 17:59:14,404 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 string 类型数据 ('') for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.groupFilter.symbol): example_string 2025-05-28 17:59:14,404 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 object 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.sort). Properties: [] 2025-05-28 17:59:14,404 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752' (type: ) 2025-05-28 17:59:14,404 - testcase.TC-ERROR-4001-QUERY - INFO - [TC-ERROR-4001-QUERY] No target field or original type identified for query param type mismatch. Skipping query param modification. 2025-05-28 17:59:14,404 - testcase.TC-ERROR-4001-QUERY - DEBUG - Hook: generate_headers, current keys: ['tenant-id', 'Content-Type', 'Accept'] 2025-05-28 17:59:14,405 - testcase.TC-ERROR-4001-QUERY - DEBUG - TC-ERROR-4001-QUERY is focused on query parameters, generate_request_body will not modify the body. 2025-05-28 17:59:14,405 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {'dms_instance_code': 'example_dms_instance_code', 'version': '1.0.0', 'id': 'example_id'} 2025-05-28 17:59:14,405 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): 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 2025-05-28 17:59:14,405 - testcase.TC-ERROR-4001-QUERY - DEBUG - Hook: modify_request_url, original URL: 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 2025-05-28 17:59:14,405 - testcase.TC-ERROR-4001-QUERY - DEBUG - Test case 'TC-ERROR-4001-QUERY' did not modify the URL via modify_request_url hook. 2025-05-28 17:59:14,405 - testcase.TC-ERROR-4001-QUERY - DEBUG - Hook: validate_request_url, url: 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 2025-05-28 17:59:14,405 - testcase.TC-ERROR-4001-QUERY - DEBUG - Hook: validate_request_headers, header keys: ['tenant-id', 'Content-Type', 'Accept'] 2025-05-28 17:59:14,405 - testcase.TC-ERROR-4001-QUERY - DEBUG - Hook: validate_request_body, body type: DEBUG: curlify generated command (raw): curl -H 'User-Agent: python-requests/2.32.3' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'tenant-id: header_val_tenant-id' -H 'Content-Type: application/json' -H 'Content-Length: 152' -d '{"version": "example_string", "data": [{"bsflag": 0.0, "wellCommonName": "example_string", "wellId": "example_string", "dataRegion": "example_string"}]}' --insecure http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit DEBUG: curlify generated command (repr): 'curl -H \'User-Agent: python-requests/2.32.3\' -H \'Accept-Encoding: gzip, deflate, br, zstd\' -H \'Accept: application/json\' -H \'Connection: keep-alive\' -H \'tenant-id: header_val_tenant-id\' -H \'Content-Type: application/json\' -H \'Content-Length: 152\' -d \'{"version": "example_string", "data": [{"bsflag": 0.0, "wellCommonName": "example_string", "wellId": "example_string", "dataRegion": "example_string"}]}\' --insecure http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit' DEBUG: curlify generated command (raw): curl -X GET -H 'User-Agent: python-requests/2.32.3' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'tenant-id: header_val_tenant-id' -H 'Content-Type: application/json' -H 'Content-Length: 477' -d '{"isSearchCount": true, "query": {"dataRegions": ["example_string"], "fields": ["example_string"], "filter": {"key": "example_string", "logic": "example_string", "realValue": [{}], "singleValue": {}, "subFilter": ["example_string"], "symbol": "example_string"}, "groupFields": ["example_string"], "groupFilter": {"key": "example_string", "logic": "example_string", "realValue": [{}], "singleValue": {}, "subFilter": ["example_string"], "symbol": "example_string"}, "sort": {}}}' --insecure 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 DEBUG: curlify generated command (repr): 'curl -X GET -H \'User-Agent: python-requests/2.32.3\' -H \'Accept-Encoding: gzip, deflate, br, zstd\' -H \'Accept: application/json\' -H \'Connection: keep-alive\' -H \'tenant-id: header_val_tenant-id\' -H \'Content-Type: application/json\' -H \'Content-Length: 477\' -d \'{"isSearchCount": true, "query": {"dataRegions": ["example_string"], "fields": ["example_string"], "filter": {"key": "example_string", "logic": "example_string", "realValue": [{}], "singleValue": {}, "subFilter": ["example_string"], "symbol": "example_string"}, "groupFields": ["example_string"], "groupFilter": {"key": "example_string", "logic": "example_string", "realValue": [{}], "singleValue": {}, "subFilter": ["example_string"], "symbol": "example_string"}, "sort": {}}}\' --insecure 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' DEBUG: curlify generated command (raw): curl -X GET -H 'User-Agent: python-requests/2.32.3' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'tenant-id: header_val_tenant-id' -H 'Content-Type: application/json' -H 'Content-Length: 477' -d '{"isSearchCount": true, "query": {"dataRegions": ["example_string"], "fields": ["example_string"], "filter": {"key": "example_string", "logic": "example_string", "realValue": [{}], "singleValue": {}, "subFilter": ["example_string"], "symbol": "example_string"}, "groupFields": ["example_string"], "groupFilter": {"key": "example_string", "logic": "example_string", "realValue": [{}], "singleValue": {}, "subFilter": ["example_string"], "symbol": "example_string"}, "sort": {}}}' --insecure 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 DEBUG: curlify generated command (repr): 'curl -X GET -H \'User-Agent: python-requests/2.32.3\' -H \'Accept-Encoding: gzip, deflate, br, zstd\' -H \'Accept: application/json\' -H \'Connection: keep-alive\' -H \'tenant-id: header_val_tenant-id\' -H \'Content-Type: application/json\' -H \'Content-Length: 477\' -d \'{"isSearchCount": true, "query": {"dataRegions": ["example_string"], "fields": ["example_string"], "filter": {"key": "example_string", "logic": "example_string", "realValue": [{}], "singleValue": {}, "subFilter": ["example_string"], "symbol": "example_string"}, "groupFields": ["example_string"], "groupFilter": {"key": "example_string", "logic": "example_string", "realValue": [{}], "singleValue": {}, "subFilter": ["example_string"], "symbol": "example_string"}, "sort": {}}}\' --insecure 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' DEBUG: curlify generated command (raw): curl -X GET -H 'User-Agent: python-requests/2.32.3' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'tenant-id: header_val_tenant-id' -H 'Content-Type: application/json' -H 'Content-Length: 477' -d '{"isSearchCount": true, "query": {"dataRegions": ["example_string"], "fields": ["example_string"], "filter": {"key": "example_string", "logic": "example_string", "realValue": [{}], "singleValue": {}, "subFilter": ["example_string"], "symbol": "example_string"}, "groupFields": ["example_string"], "groupFilter": {"key": "example_string", "logic": "example_string", "realValue": [{}], "singleValue": {}, "subFilter": ["example_string"], "symbol": "example_string"}, "sort": {}}}' --insecure 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 DEBUG: curlify generated command (repr): 'curl -X GET -H \'User-Agent: python-requests/2.32.3\' -H \'Accept-Encoding: gzip, deflate, br, zstd\' -H \'Accept: application/json\' -H \'Connection: keep-alive\' -H \'tenant-id: header_val_tenant-id\' -H \'Content-Type: application/json\' -H \'Content-Length: 477\' -d \'{"isSearchCount": true, "query": {"dataRegions": ["example_string"], "fields": ["example_string"], "filter": {"key": "example_string", "logic": "example_string", "realValue": [{}], "singleValue": {}, "subFilter": ["example_string"], "symbol": "example_string"}, "groupFields": ["example_string"], "groupFilter": {"key": "example_string", "logic": "example_string", "realValue": [{}], "singleValue": {}, "subFilter": ["example_string"], "symbol": "example_string"}, "sort": {}}}\' --insecure 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' DEBUG: curlify generated command (raw): curl -X GET -H 'User-Agent: python-requests/2.32.3' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'tenant-id: header_val_tenant-id' -H 'Content-Type: application/json' -H 'Content-Length: 477' -d '{"isSearchCount": true, "query": {"dataRegions": ["example_string"], "fields": ["example_string"], "filter": {"key": "example_string", "logic": "example_string", "realValue": [{}], "singleValue": {}, "subFilter": ["example_string"], "symbol": "example_string"}, "groupFields": ["example_string"], "groupFilter": {"key": "example_string", "logic": "example_string", "realValue": [{}], "singleValue": {}, "subFilter": ["example_string"], "symbol": "example_string"}, "sort": {}}}' --insecure 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 2025-05-28 17:59:14,420 - testcase.TC-ERROR-4001-QUERY - INFO - [TC-ERROR-4001-QUERY] Skipped type mismatch (query) validation: No target query parameter was identified. 2025-05-28 17:59:14,420 - testcase.TC-ERROR-4001-QUERY - DEBUG - Hook: check_performance, elapsed: 0.01571798324584961 2025-05-28 17:59:14,420 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-ERROR-4001-QUERY' 执行成功。 2025-05-28 17:59:14,420 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-ERROR-4001-QUERY' 执行完毕,状态: 通过 2025-05-28 17:59:14,420 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-ERROR-4001-BODY' for 'GET /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}/{id}' 2025-05-28 17:59:14,420 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. 2025-05-28 17:59:14,421 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['yapi_categories'] 2025-05-28 17:59:14,421 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... 2025-05-28 17:59:14,421 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... 2025-05-28 17:59:14,421 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True,丢弃 '$$ref': #/components/schemas/RdbQueryPageInput 2025-05-28 17:59:14,421 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True,丢弃 '$$ref': #/components/schemas/QueryVO 2025-05-28 17:59:14,421 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True,丢弃 '$$ref': #/components/schemas/FilterVO 2025-05-28 17:59:14,421 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True,丢弃 '$ref': #/components/schemas/FilterVO 2025-05-28 17:59:14,421 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True,丢弃 '$$ref': #/components/schemas/FilterVO 2025-05-28 17:59:14,421 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True,丢弃 '$ref': #/components/schemas/FilterVO 2025-05-28 17:59:14,421 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[0] ('dms_instance_code') 的 schema... 2025-05-28 17:59:14,421 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[1] ('version') 的 schema... 2025-05-28 17:59:14,421 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[2] ('id') 的 schema... 2025-05-28 17:59:14,421 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[3] ('tenant-id') 的 schema... 2025-05-28 17:59:14,421 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[4] ('Authorization') 的 schema... 2025-05-28 17:59:14,421 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... 2025-05-28 17:59:14,421 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 2025-05-28 17:59:14,421 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: TypeMismatchBodyCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_yapi_id', '_yapi_raw_data', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['yapi_categories']) 2025-05-28 17:59:14,421 - testcase.TC-ERROR-4001-BODY - DEBUG - Test case 'TC-ERROR-4001-BODY' initialized for endpoint: GET /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}/{id} 2025-05-28 17:59:14,421 - testcase.TC-ERROR-4001-BODY - INFO - [TC-ERROR-4001-BODY] Initializing: Looking for a simple type field in request body for type mismatch test. 2025-05-28 17:59:14,421 - testcase.TC-ERROR-4001-BODY - DEBUG - Found request body schema under content type: application/json 2025-05-28 17:59:14,421 - testcase.TC-ERROR-4001-BODY - DEBUG - _find_simple_type_field_in_schema: Searching for simple type field in 'request body' schema... 2025-05-28 17:59:14,421 - testcase.TC-ERROR-4001-BODY - INFO - Found simple type field: Path=isSearchCount, Type=boolean 2025-05-28 17:59:14,421 - testcase.TC-ERROR-4001-BODY - INFO - _find_simple_type_field_in_schema: Found simple type field in 'request body': Path=isSearchCount, Type=boolean 2025-05-28 17:59:14,421 - testcase.TC-ERROR-4001-BODY - INFO - [TC-ERROR-4001-BODY] Target field for type mismatch (body): isSearchCount, Original Type: boolean 2025-05-28 17:59:14,421 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-ERROR-4001-BODY' (Error Code 4001 - Request Body Type Mismatch Validation) for endpoint 'GET /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}/{id}' 2025-05-28 17:59:14,421 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial path param for 'get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752': dms_instance_code = example_dms_instance_code 2025-05-28 17:59:14,421 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial path param for 'get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752': version = 1.0.0 2025-05-28 17:59:14,421 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial path param for 'get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752': id = example_id 2025-05-28 17:59:14,421 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial custom header param for 'get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752': tenant-id = header_val_tenant-id 2025-05-28 17:59:14,421 - ddms_compliance_suite.test_orchestrator - DEBUG - Skipping standard header 'Authorization' in parameter processing for 'get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752'. It will be handled separately. 2025-05-28 17:59:14,421 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752': application/json 2025-05-28 17:59:14,421 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752': application/json 2025-05-28 17:59:14,421 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 object 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body). Properties: ['isSearchCount', 'query'] 2025-05-28 17:59:14,421 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 使用 schema 中的 'default' 值 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.isSearchCount): True 2025-05-28 17:59:14,421 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 object 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query). Properties: ['dataRegions', 'fields', 'filter', 'groupFields', 'groupFilter', 'sort'] 2025-05-28 17:59:14,421 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 array 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.dataRegions). Items schema: {'description': '数据域,如:JD、DG、TL', 'type': 'string'}, minItems: 1 2025-05-28 17:59:14,421 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 string 类型数据 ('') for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.dataRegions[0]): example_string 2025-05-28 17:59:14,421 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 array 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.fields). Items schema: {'description': '查询的字段', 'type': 'string'}, minItems: 1 2025-05-28 17:59:14,421 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 string 类型数据 ('') for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.fields[0]): example_string 2025-05-28 17:59:14,421 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 object 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.filter). Properties: ['key', 'logic', 'realValue', 'singleValue', 'subFilter', 'symbol'] 2025-05-28 17:59:14,421 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 string 类型数据 ('') for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.filter.key): example_string 2025-05-28 17:59:14,421 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 string 类型数据 ('') for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.filter.logic): example_string 2025-05-28 17:59:14,421 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 array 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.filter.realValue). Items schema: {'description': '条件值', 'type': 'object', 'properties': {}}, minItems: 1 2025-05-28 17:59:14,421 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 object 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.filter.realValue[0]). Properties: [] 2025-05-28 17:59:14,421 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 object 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.filter.singleValue). Properties: [] 2025-05-28 17:59:14,421 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 array 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.filter.subFilter). Items schema: {'type': 'string'}, minItems: 1 2025-05-28 17:59:14,421 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 string 类型数据 ('') for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.filter.subFilter[0]): example_string 2025-05-28 17:59:14,421 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 string 类型数据 ('') for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.filter.symbol): example_string 2025-05-28 17:59:14,421 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 array 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.groupFields). Items schema: {'description': '分组字段group by', 'type': 'string'}, minItems: 1 2025-05-28 17:59:14,421 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 string 类型数据 ('') for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.groupFields[0]): example_string 2025-05-28 17:59:14,421 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 object 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.groupFilter). Properties: ['key', 'logic', 'realValue', 'singleValue', 'subFilter', 'symbol'] 2025-05-28 17:59:14,421 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 string 类型数据 ('') for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.groupFilter.key): example_string 2025-05-28 17:59:14,421 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 string 类型数据 ('') for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.groupFilter.logic): example_string 2025-05-28 17:59:14,421 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 array 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.groupFilter.realValue). Items schema: {'description': '条件值', 'type': 'object', 'properties': {}}, minItems: 1 2025-05-28 17:59:14,421 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 object 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.groupFilter.realValue[0]). Properties: [] 2025-05-28 17:59:14,421 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 object 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.groupFilter.singleValue). Properties: [] 2025-05-28 17:59:14,421 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 array 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.groupFilter.subFilter). Items schema: {'type': 'string'}, minItems: 1 2025-05-28 17:59:14,421 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 string 类型数据 ('') for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.groupFilter.subFilter[0]): example_string 2025-05-28 17:59:14,421 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 string 类型数据 ('') for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.groupFilter.symbol): example_string 2025-05-28 17:59:14,421 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 object 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.sort). Properties: [] 2025-05-28 17:59:14,421 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752' (type: ) 2025-05-28 17:59:14,421 - testcase.TC-ERROR-4001-BODY - DEBUG - TC-ERROR-4001-BODY is focused on request body, generate_query_params will not modify query parameters. 2025-05-28 17:59:14,421 - testcase.TC-ERROR-4001-BODY - DEBUG - Hook: generate_headers, current keys: ['tenant-id', 'Content-Type', 'Accept'] 2025-05-28 17:59:14,421 - testcase.TC-ERROR-4001-BODY - DEBUG - [TC-ERROR-4001-BODY] Preparing to modify request body for type mismatch. Target path: ['isSearchCount'], Original type: boolean 2025-05-28 17:59:14,421 - testcase.TC-ERROR-4001-BODY - INFO - [TC-ERROR-4001-BODY] Generated mismatched value 'not-a-boolean' for original type 'boolean' at path 'isSearchCount'. 2025-05-28 17:59:14,421 - ddms_compliance_suite.utils.schema_utils - INFO - [Util] 在路径 isSearchCount (键 'isSearchCount') 处设置值为 'not-a-boolean' 2025-05-28 17:59:14,421 - testcase.TC-ERROR-4001-BODY - DEBUG - [TC-ERROR-4001-BODY] Successfully set mismatched value at path using util_set_value_at_path. 2025-05-28 17:59:14,421 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {'dms_instance_code': 'example_dms_instance_code', 'version': '1.0.0', 'id': 'example_id'} 2025-05-28 17:59:14,421 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): 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 2025-05-28 17:59:14,421 - testcase.TC-ERROR-4001-BODY - DEBUG - Hook: modify_request_url, original URL: 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 2025-05-28 17:59:14,421 - testcase.TC-ERROR-4001-BODY - DEBUG - Test case 'TC-ERROR-4001-BODY' did not modify the URL via modify_request_url hook. 2025-05-28 17:59:14,421 - testcase.TC-ERROR-4001-BODY - DEBUG - Hook: validate_request_url, url: 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 2025-05-28 17:59:14,421 - testcase.TC-ERROR-4001-BODY - DEBUG - Hook: validate_request_headers, header keys: ['tenant-id', 'Content-Type', 'Accept'] 2025-05-28 17:59:14,421 - testcase.TC-ERROR-4001-BODY - DEBUG - Hook: validate_request_body, body type: 2025-05-28 17:59:14,436 - testcase.TC-ERROR-4001-BODY - WARNING - TC-ERROR-4001-BODY: Failed. 当请求体字段 'isSearchCount' 类型不匹配时,期望API返回状态码在 [400, 422] 中,或返回4xx客户端错误且业务码为 '4001'. 实际收到状态码 200. 响应体中的业务码 ('code') 为 '96'. (Field: body.isSearchCount) 2025-05-28 17:59:14,436 - testcase.TC-ERROR-4001-BODY - DEBUG - Hook: check_performance, elapsed: 0.014831066131591797 2025-05-28 17:59:14,436 - ddms_compliance_suite.test_orchestrator - DEBUG -  ❌ 测试用例 'TC-ERROR-4001-BODY' 执行失败。 2025-05-28 17:59:14,436 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-ERROR-4001-BODY' 执行完毕,状态: 失败 2025-05-28 17:59:14,436 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-ERROR-4003-BODY' for 'GET /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}/{id}' 2025-05-28 17:59:14,437 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. 2025-05-28 17:59:14,437 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['yapi_categories'] 2025-05-28 17:59:14,437 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... 2025-05-28 17:59:14,437 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... 2025-05-28 17:59:14,437 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True,丢弃 '$$ref': #/components/schemas/RdbQueryPageInput 2025-05-28 17:59:14,437 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True,丢弃 '$$ref': #/components/schemas/QueryVO 2025-05-28 17:59:14,437 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True,丢弃 '$$ref': #/components/schemas/FilterVO 2025-05-28 17:59:14,437 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True,丢弃 '$ref': #/components/schemas/FilterVO 2025-05-28 17:59:14,437 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True,丢弃 '$$ref': #/components/schemas/FilterVO 2025-05-28 17:59:14,437 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True,丢弃 '$ref': #/components/schemas/FilterVO 2025-05-28 17:59:14,437 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[0] ('dms_instance_code') 的 schema... 2025-05-28 17:59:14,437 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[1] ('version') 的 schema... 2025-05-28 17:59:14,437 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[2] ('id') 的 schema... 2025-05-28 17:59:14,437 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[3] ('tenant-id') 的 schema... 2025-05-28 17:59:14,437 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[4] ('Authorization') 的 schema... 2025-05-28 17:59:14,437 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... 2025-05-28 17:59:14,437 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 2025-05-28 17:59:14,437 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: MissingRequiredFieldBodyCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_yapi_id', '_yapi_raw_data', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['yapi_categories']) 2025-05-28 17:59:14,437 - ddms_compliance_suite.utils.schema_utils - DEBUG - [Util] 递归查找路径: [], 当前层级必填字段: [], 属性: ['isSearchCount', 'query'] 2025-05-28 17:59:14,437 - ddms_compliance_suite.utils.schema_utils - DEBUG - [Util] 在路径 root 未通过任何策略找到可移除的必填字段。 2025-05-28 17:59:14,437 - testcase.TC-ERROR-4003-BODY - INFO - No removable (required) field path found in 'request body' schema. 2025-05-28 17:59:14,437 - testcase.TC-ERROR-4003-BODY - INFO - 在请求体 schema 中未找到可用于测试 "必填字段缺失" 的字段(通过基类方法)。 2025-05-28 17:59:14,437 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-ERROR-4003-BODY' (Error Code 4003 - Missing Required Request Body Field Validation) for endpoint 'GET /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}/{id}' 2025-05-28 17:59:14,437 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial path param for 'get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752': dms_instance_code = example_dms_instance_code 2025-05-28 17:59:14,437 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial path param for 'get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752': version = 1.0.0 2025-05-28 17:59:14,437 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial path param for 'get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752': id = example_id 2025-05-28 17:59:14,437 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial custom header param for 'get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752': tenant-id = header_val_tenant-id 2025-05-28 17:59:14,437 - ddms_compliance_suite.test_orchestrator - DEBUG - Skipping standard header 'Authorization' in parameter processing for 'get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752'. It will be handled separately. 2025-05-28 17:59:14,437 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752': application/json 2025-05-28 17:59:14,437 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752': application/json 2025-05-28 17:59:14,437 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 object 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body). Properties: ['isSearchCount', 'query'] 2025-05-28 17:59:14,437 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 使用 schema 中的 'default' 值 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.isSearchCount): True 2025-05-28 17:59:14,437 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 object 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query). Properties: ['dataRegions', 'fields', 'filter', 'groupFields', 'groupFilter', 'sort'] 2025-05-28 17:59:14,437 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 array 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.dataRegions). Items schema: {'description': '数据域,如:JD、DG、TL', 'type': 'string'}, minItems: 1 2025-05-28 17:59:14,437 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 string 类型数据 ('') for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.dataRegions[0]): example_string 2025-05-28 17:59:14,437 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 array 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.fields). Items schema: {'description': '查询的字段', 'type': 'string'}, minItems: 1 2025-05-28 17:59:14,437 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 string 类型数据 ('') for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.fields[0]): example_string 2025-05-28 17:59:14,437 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 object 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.filter). Properties: ['key', 'logic', 'realValue', 'singleValue', 'subFilter', 'symbol'] 2025-05-28 17:59:14,437 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 string 类型数据 ('') for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.filter.key): example_string 2025-05-28 17:59:14,437 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 string 类型数据 ('') for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.filter.logic): example_string 2025-05-28 17:59:14,437 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 array 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.filter.realValue). Items schema: {'description': '条件值', 'type': 'object', 'properties': {}}, minItems: 1 2025-05-28 17:59:14,437 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 object 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.filter.realValue[0]). Properties: [] 2025-05-28 17:59:14,437 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 object 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.filter.singleValue). Properties: [] 2025-05-28 17:59:14,437 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 array 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.filter.subFilter). Items schema: {'type': 'string'}, minItems: 1 2025-05-28 17:59:14,437 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 string 类型数据 ('') for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.filter.subFilter[0]): example_string 2025-05-28 17:59:14,437 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 string 类型数据 ('') for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.filter.symbol): example_string 2025-05-28 17:59:14,437 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 array 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.groupFields). Items schema: {'description': '分组字段group by', 'type': 'string'}, minItems: 1 2025-05-28 17:59:14,437 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 string 类型数据 ('') for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.groupFields[0]): example_string 2025-05-28 17:59:14,437 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 object 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.groupFilter). Properties: ['key', 'logic', 'realValue', 'singleValue', 'subFilter', 'symbol'] 2025-05-28 17:59:14,437 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 string 类型数据 ('') for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.groupFilter.key): example_string 2025-05-28 17:59:14,437 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 string 类型数据 ('') for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.groupFilter.logic): example_string 2025-05-28 17:59:14,438 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 array 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.groupFilter.realValue). Items schema: {'description': '条件值', 'type': 'object', 'properties': {}}, minItems: 1 2025-05-28 17:59:14,438 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 object 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.groupFilter.realValue[0]). Properties: [] 2025-05-28 17:59:14,438 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 object 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.groupFilter.singleValue). Properties: [] 2025-05-28 17:59:14,438 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 array 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.groupFilter.subFilter). Items schema: {'type': 'string'}, minItems: 1 2025-05-28 17:59:14,438 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 string 类型数据 ('') for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.groupFilter.subFilter[0]): example_string 2025-05-28 17:59:14,438 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 string 类型数据 ('') for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.groupFilter.symbol): example_string 2025-05-28 17:59:14,438 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 object 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.sort). Properties: [] 2025-05-28 17:59:14,438 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752' (type: ) 2025-05-28 17:59:14,438 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {'dms_instance_code': 'example_dms_instance_code', 'version': '1.0.0', 'id': 'example_id'} 2025-05-28 17:59:14,438 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): 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 2025-05-28 17:59:14,453 - testcase.TC-ERROR-4003-BODY - INFO - 由于未识别到可移除的必填请求体字段,跳过此测试用例的验证。 2025-05-28 17:59:14,453 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-ERROR-4003-BODY' 执行成功。 2025-05-28 17:59:14,453 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-ERROR-4003-BODY' 执行完毕,状态: 通过 2025-05-28 17:59:14,453 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-ERROR-4003-QUERY' for 'GET /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}/{id}' 2025-05-28 17:59:14,453 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. 2025-05-28 17:59:14,453 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['yapi_categories'] 2025-05-28 17:59:14,453 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... 2025-05-28 17:59:14,453 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... 2025-05-28 17:59:14,453 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True,丢弃 '$$ref': #/components/schemas/RdbQueryPageInput 2025-05-28 17:59:14,453 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True,丢弃 '$$ref': #/components/schemas/QueryVO 2025-05-28 17:59:14,453 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True,丢弃 '$$ref': #/components/schemas/FilterVO 2025-05-28 17:59:14,453 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True,丢弃 '$ref': #/components/schemas/FilterVO 2025-05-28 17:59:14,453 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True,丢弃 '$$ref': #/components/schemas/FilterVO 2025-05-28 17:59:14,453 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True,丢弃 '$ref': #/components/schemas/FilterVO 2025-05-28 17:59:14,453 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[0] ('dms_instance_code') 的 schema... 2025-05-28 17:59:14,453 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[1] ('version') 的 schema... 2025-05-28 17:59:14,453 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[2] ('id') 的 schema... 2025-05-28 17:59:14,453 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[3] ('tenant-id') 的 schema... 2025-05-28 17:59:14,453 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[4] ('Authorization') 的 schema... 2025-05-28 17:59:14,453 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... 2025-05-28 17:59:14,453 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 2025-05-28 17:59:14,454 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: MissingRequiredFieldQueryCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_yapi_id', '_yapi_raw_data', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['yapi_categories']) 2025-05-28 17:59:14,454 - testcase.TC-ERROR-4003-QUERY - INFO - No required 'query' parameter found in endpoint_spec. 2025-05-28 17:59:14,454 - testcase.TC-ERROR-4003-QUERY - INFO - 测试用例 TC-ERROR-4003-QUERY (Error Code 4003 - Missing Required Query Parameter Validation) 已针对端点 'GET /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}/{id}' 初始化。Target param to remove: None 2025-05-28 17:59:14,454 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-ERROR-4003-QUERY' (Error Code 4003 - Missing Required Query Parameter Validation) for endpoint 'GET /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}/{id}' 2025-05-28 17:59:14,454 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial path param for 'get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752': dms_instance_code = example_dms_instance_code 2025-05-28 17:59:14,454 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial path param for 'get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752': version = 1.0.0 2025-05-28 17:59:14,454 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial path param for 'get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752': id = example_id 2025-05-28 17:59:14,454 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial custom header param for 'get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752': tenant-id = header_val_tenant-id 2025-05-28 17:59:14,454 - ddms_compliance_suite.test_orchestrator - DEBUG - Skipping standard header 'Authorization' in parameter processing for 'get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752'. It will be handled separately. 2025-05-28 17:59:14,454 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752': application/json 2025-05-28 17:59:14,454 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752': application/json 2025-05-28 17:59:14,454 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 object 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body). Properties: ['isSearchCount', 'query'] 2025-05-28 17:59:14,454 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 使用 schema 中的 'default' 值 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.isSearchCount): True 2025-05-28 17:59:14,454 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 object 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query). Properties: ['dataRegions', 'fields', 'filter', 'groupFields', 'groupFilter', 'sort'] 2025-05-28 17:59:14,454 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 array 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.dataRegions). Items schema: {'description': '数据域,如:JD、DG、TL', 'type': 'string'}, minItems: 1 2025-05-28 17:59:14,454 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 string 类型数据 ('') for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.dataRegions[0]): example_string 2025-05-28 17:59:14,454 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 array 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.fields). Items schema: {'description': '查询的字段', 'type': 'string'}, minItems: 1 2025-05-28 17:59:14,454 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 string 类型数据 ('') for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.fields[0]): example_string 2025-05-28 17:59:14,454 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 object 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.filter). Properties: ['key', 'logic', 'realValue', 'singleValue', 'subFilter', 'symbol'] 2025-05-28 17:59:14,454 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 string 类型数据 ('') for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.filter.key): example_string 2025-05-28 17:59:14,454 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 string 类型数据 ('') for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.filter.logic): example_string 2025-05-28 17:59:14,454 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 array 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.filter.realValue). Items schema: {'description': '条件值', 'type': 'object', 'properties': {}}, minItems: 1 2025-05-28 17:59:14,454 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 object 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.filter.realValue[0]). Properties: [] 2025-05-28 17:59:14,454 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 object 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.filter.singleValue). Properties: [] 2025-05-28 17:59:14,454 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 array 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.filter.subFilter). Items schema: {'type': 'string'}, minItems: 1 2025-05-28 17:59:14,454 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 string 类型数据 ('') for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.filter.subFilter[0]): example_string 2025-05-28 17:59:14,454 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 string 类型数据 ('') for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.filter.symbol): example_string 2025-05-28 17:59:14,454 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 array 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.groupFields). Items schema: {'description': '分组字段group by', 'type': 'string'}, minItems: 1 2025-05-28 17:59:14,454 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 string 类型数据 ('') for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.groupFields[0]): example_string 2025-05-28 17:59:14,454 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 object 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.groupFilter). Properties: ['key', 'logic', 'realValue', 'singleValue', 'subFilter', 'symbol'] 2025-05-28 17:59:14,454 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 string 类型数据 ('') for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.groupFilter.key): example_string 2025-05-28 17:59:14,454 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 string 类型数据 ('') for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.groupFilter.logic): example_string 2025-05-28 17:59:14,454 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 array 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.groupFilter.realValue). Items schema: {'description': '条件值', 'type': 'object', 'properties': {}}, minItems: 1 2025-05-28 17:59:14,454 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 object 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.groupFilter.realValue[0]). Properties: [] 2025-05-28 17:59:14,454 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 object 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.groupFilter.singleValue). Properties: [] 2025-05-28 17:59:14,454 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 array 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.groupFilter.subFilter). Items schema: {'type': 'string'}, minItems: 1 2025-05-28 17:59:14,454 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 string 类型数据 ('') for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.groupFilter.subFilter[0]): example_string 2025-05-28 17:59:14,454 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 string 类型数据 ('') for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.groupFilter.symbol): example_string 2025-05-28 17:59:14,454 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 object 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.sort). Properties: [] 2025-05-28 17:59:14,454 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752' (type: ) 2025-05-28 17:59:14,454 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {'dms_instance_code': 'example_dms_instance_code', 'version': '1.0.0', 'id': 'example_id'} 2025-05-28 17:59:14,454 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): 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 2025-05-28 17:59:14,471 - testcase.TC-ERROR-4003-QUERY - INFO - 由于未识别到可移除的必填查询参数,跳过此测试用例。 2025-05-28 17:59:14,471 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-ERROR-4003-QUERY' 执行成功。 2025-05-28 17:59:14,471 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-ERROR-4003-QUERY' 执行完毕,状态: 通过 2025-05-28 17:59:14,471 - ddms_compliance_suite.test_orchestrator - INFO - 端点 'GET /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}/{id}' 测试完成,最终状态: 失败 DEBUG: curlify generated command (repr): 'curl -X GET -H \'User-Agent: python-requests/2.32.3\' -H \'Accept-Encoding: gzip, deflate, br, zstd\' -H \'Accept: application/json\' -H \'Connection: keep-alive\' -H \'tenant-id: header_val_tenant-id\' -H \'Content-Type: application/json\' -H \'Content-Length: 477\' -d \'{"isSearchCount": true, "query": {"dataRegions": ["example_string"], "fields": ["example_string"], "filter": {"key": "example_string", "logic": "example_string", "realValue": [{}], "singleValue": {}, "subFilter": ["example_string"], "symbol": "example_string"}, "groupFields": ["example_string"], "groupFilter": {"key": "example_string", "logic": "example_string", "realValue": [{}], "singleValue": {}, "subFilter": ["example_string"], "symbol": "example_string"}, "sort": {}}}\' --insecure 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' DEBUG: curlify generated command (raw): curl -X GET -H 'User-Agent: python-requests/2.32.3' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'tenant-id: header_val_tenant-id' -H 'Content-Type: application/json' -H 'Content-Length: 488' -d '{"isSearchCount": "not-a-boolean", "query": {"dataRegions": ["example_string"], "fields": ["example_string"], "filter": {"key": "example_string", "logic": "example_string", "realValue": [{}], "singleValue": {}, "subFilter": ["example_string"], "symbol": "example_string"}, "groupFields": ["example_string"], "groupFilter": {"key": "example_string", "logic": "example_string", "realValue": [{}], "singleValue": {}, "subFilter": ["example_string"], "symbol": "example_string"}, "sort": {}}}' --insecure 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 DEBUG: curlify generated command (repr): 'curl -X GET -H \'User-Agent: python-requests/2.32.3\' -H \'Accept-Encoding: gzip, deflate, br, zstd\' -H \'Accept: application/json\' -H \'Connection: keep-alive\' -H \'tenant-id: header_val_tenant-id\' -H \'Content-Type: application/json\' -H \'Content-Length: 488\' -d \'{"isSearchCount": "not-a-boolean", "query": {"dataRegions": ["example_string"], "fields": ["example_string"], "filter": {"key": "example_string", "logic": "example_string", "realValue": [{}], "singleValue": {}, "subFilter": ["example_string"], "symbol": "example_string"}, "groupFields": ["example_string"], "groupFilter": {"key": "example_string", "logic": "example_string", "realValue": [{}], "singleValue": {}, "subFilter": ["example_string"], "symbol": "example_string"}, "sort": {}}}\' --insecure 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' DEBUG: curlify generated command (raw): curl -X GET -H 'User-Agent: python-requests/2.32.3' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'tenant-id: header_val_tenant-id' -H 'Content-Type: application/json' -H 'Content-Length: 477' -d '{"isSearchCount": true, "query": {"dataRegions": ["example_string"], "fields": ["example_string"], "filter": {"key": "example_string", "logic": "example_string", "realValue": [{}], "singleValue": {}, "subFilter": ["example_string"], "symbol": "example_string"}, "groupFields": ["example_string"], "groupFilter": {"key": "example_string", "logic": "example_string", "realValue": [{}], "singleValue": {}, "subFilter": ["example_string"], "symbol": "example_string"}, "sort": {}}}' --insecure 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 DEBUG: curlify generated command (repr): 'curl -X GET -H \'User-Agent: python-requests/2.32.3\' -H \'Accept-Encoding: gzip, deflate, br, zstd\' -H \'Accept: application/json\' -H \'Connection: keep-alive\' -H \'tenant-id: header_val_tenant-id\' -H \'Content-Type: application/json\' -H \'Content-Length: 477\' -d \'{"isSearchCount": true, "query": {"dataRegions": ["example_string"], "fields": ["example_string"], "filter": {"key": "example_string", "logic": "example_string", "realValue": [{}], "singleValue": {}, "subFilter": ["example_string"], "symbol": "example_string"}, "groupFields": ["example_string"], "groupFilter": {"key": "example_string", "logic": "example_string", "realValue": [{}], "singleValue": {}, "subFilter": ["example_string"], "symbol": "example_string"}, "sort": {}}}\' --insecure 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' DEBUG: curlify generated command (raw): curl -X GET -H 'User-Agent: python-requests/2.32.3' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'tenant-id: header_val_tenant-id' -H 'Content-Type: application/json' -H 'Content-Length: 477' -d '{"isSearchCount": true, "query": {"dataRegions": ["example_string"], "fields": ["example_string"], "filter": {"key": "example_string", "logic": "example_string", "realValue": [{}], "singleValue": {}, "subFilter": ["example_string"], "symbol": "example_string"}, "groupFields": ["example_string"], "groupFilter": {"key": "example_string", "logic": "example_string", "realValue": [{}], "singleValue": {}, "subFilter": ["example_string"], "symbol": "example_string"}, "sort": {}}}' --insecure 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 DEBUG: curlify generated command (repr): 'curl -X GET -H \'User-Agent: python-requests/2.32.3\' -H \'Accept-Encoding: gzip, deflate, br, zstd\' -H \'Accept: application/json\' -H \'Connection: keep-alive\' -H \'tenant-id: header_val_tenant-id\' -H \'Content-Type: application/json\' -H \'Content-Length: 477\' -d \'{"isSearchCount": true, "query": {"dataRegions": ["example_string"], "fields": ["example_string"], "filter": {"key": "example_string", "logic": "example_string", "realValue": [{}], "singleValue": {}, "subFilter": ["example_string"], "symbol": "example_string"}, "groupFields": ["example_string"], "groupFilter": {"key": "example_string", "logic": "example_string", "realValue": [{}], "singleValue": {}, "subFilter": ["example_string"], "symbol": "example_string"}, "sort": {}}}\' --insecure 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' ===== 测试运行摘要 ===== 开始时间: 2025-05-28T17:59:13.671258 结束时间: 2025-05-28T17:59:14.471277 总耗时: 0.80 秒 --- 端点统计 --- 定义的端点总数: 6 实际测试的端点数: 6 通过: 0 失败: 6 部分成功: 0 执行错误: 0 跳过执行: 0 端点通过率: 0.00% --- 测试用例统计 --- 适用的测试用例总数 (计划执行): 42 实际执行的测试用例总数: 42 通过: 24 失败: 18 执行错误 (测试用例代码问题): 0 跳过 (在端点内被跳过): 0 测试用例通过率: 57.14% --- 失败的端点摘要 --- 端点: POST /api/dms/{dms_instance_code}/v1/message/push/{schema}/{version} (数据推送接口) - 状态: 失败 - 测试用例失败: TC-SECURITY-001 (HTTPS Protocol Mandatory Verification) - 验证点: 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强制策略。 - 测试用例失败: TC-ERROR-4001-BODY (Error Code 4001 - Request Body Type Mismatch Validation) - 验证点: 当请求体字段 'isSearchCount' 类型不匹配时,期望API返回状态码在 [400, 422] 中,或返回4xx客户端错误且业务码为 '4001'. 实际收到状态码 200. 响应体中的业务码 ('code') 为 '67'. 端点: POST /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version} (地质单元列表查询) - 状态: 失败 - 测试用例失败: TC-SECURITY-001 (HTTPS Protocol Mandatory Verification) - 验证点: 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强制策略。 2025-05-28 17:59:14,472 - __main__ - INFO - 测试结果已保存为JSON: test_report.json 2025-05-28 17:59:14,472 - __main__ - INFO - API调用详情将以 Markdown 格式保存到: api_calls.md 2025-05-28 17:59:14,474 - __main__ - INFO - API调用详情已保存为 Markdown: api_calls.md 2025-05-28 17:59:14,474 - __main__ - INFO - 部分测试失败或出错,请检查报告。 - 测试用例失败: TC-ERROR-4001-QUERY (Error Code 4001 - Query Parameter Type Mismatch Validation) - 验证点: 当查询参数 'pageNo' (路径: 'pageNo') 类型不匹配时,期望API返回状态码在 [400, 422] 中,或返回4xx客户端错误且业务码为 '4001'. 实际收到状态码 200. 响应体中的业务码 ('code') 为 '81'. - 测试用例失败: TC-ERROR-4001-BODY (Error Code 4001 - Request Body Type Mismatch Validation) - 验证点: 当请求体字段 'isSearchCount' 类型不匹配时,期望API返回状态码在 [400, 422] 中,或返回4xx客户端错误且业务码为 '4001'. 实际收到状态码 200. 响应体中的业务码 ('code') 为 '64'. 端点: PUT /api/dms/{dms_instance_code}/v1/cd_geo_unit (地质单元数据修改) - 状态: 失败 - 测试用例失败: TC-SECURITY-001 (HTTPS Protocol Mandatory Verification) - 验证点: API通过HTTP (http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit) 响应了成功的状态码 200,这违反了HTTPS强制策略。 - 测试用例失败: TC-ERROR-4001-QUERY (Error Code 4001 - Query Parameter Type Mismatch Validation) - 验证点: 当查询参数 'id' (路径: 'id') 类型不匹配时,期望API返回状态码在 [400, 422] 中,或返回4xx客户端错误且业务码为 '4001'. 实际收到状态码 200. 响应体中的业务码 ('code') 为 '61'. - 测试用例失败: TC-ERROR-4001-BODY (Error Code 4001 - Request Body Type Mismatch Validation) - 验证点: 当请求体字段 'id' 类型不匹配时,期望API返回状态码在 [400, 422] 中,或返回4xx客户端错误且业务码为 '4001'. 实际收到状态码 200. 响应体中的业务码 ('code') 为 '38'. - 测试用例失败: TC-ERROR-4003-QUERY (Error Code 4003 - Missing Required Query Parameter Validation) - 验证点: 当移除必填查询参数 'id' 时,期望API返回状态码在 [400, 422] 中,或返回4xx客户端错误且业务码为 '4003'. 实际收到状态码 200. 响应体中的业务码 ('code') 为 '95'. 端点: DELETE /api/dms/{dms_instance_code}/v1/cd_geo_unit (地质单元数据删除) - 状态: 失败 - 测试用例失败: TC-SECURITY-001 (HTTPS Protocol Mandatory Verification) - 验证点: API通过HTTP (http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit) 响应了成功的状态码 200,这违反了HTTPS强制策略。 - 测试用例失败: TC-ERROR-4001-QUERY (Error Code 4001 - Query Parameter Type Mismatch Validation) - 验证点: 当查询参数 'id' (路径: 'id') 类型不匹配时,期望API返回状态码在 [400, 422] 中,或返回4xx客户端错误且业务码为 '4001'. 实际收到状态码 200. 响应体中的业务码 ('code') 为 '86'. - 测试用例失败: TC-ERROR-4001-BODY (Error Code 4001 - Request Body Type Mismatch Validation) - 验证点: 当请求体字段 'version' 类型不匹配时,期望API返回状态码在 [400, 422] 中,或返回4xx客户端错误且业务码为 '4001'. 实际收到状态码 200. 响应体中的业务码 ('code') 为 '11'. - 测试用例失败: TC-ERROR-4003-QUERY (Error Code 4003 - Missing Required Query Parameter Validation) - 验证点: 当移除必填查询参数 'id' 时,期望API返回状态码在 [400, 422] 中,或返回4xx客户端错误且业务码为 '4003'. 实际收到状态码 200. 响应体中的业务码 ('code') 为 '52'. 端点: POST /api/dms/{dms_instance_code}/v1/cd_geo_unit (地质单元数据添加) - 状态: 失败 - 测试用例失败: TC-SECURITY-001 (HTTPS Protocol Mandatory Verification) - 验证点: API通过HTTP (http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit) 响应了成功的状态码 200,这违反了HTTPS强制策略。 - 测试用例失败: TC-ERROR-4001-BODY (Error Code 4001 - Request Body Type Mismatch Validation) - 验证点: 当请求体字段 'version' 类型不匹配时,期望API返回状态码在 [400, 422] 中,或返回4xx客户端错误且业务码为 '4001'. 实际收到状态码 200. 响应体中的业务码 ('code') 为 '64'. - 测试用例失败: TC-ERROR-4003-BODY (Error Code 4003 - Missing Required Request Body Field Validation) - 验证点: 当移除必填请求体字段 'data.0.bsflag' 时,期望API返回状态码在 [400, 422] 中,或返回4xx客户端错误且业务码为 '4003'. 实际收到状态码 200. 响应体中的业务码 ('code') 为 '41'. 端点: GET /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}/{id} (地质单元查询详情) - 状态: 失败 - 测试用例失败: TC-SECURITY-001 (HTTPS Protocol Mandatory Verification) - 验证点: 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强制策略。 - 测试用例失败: TC-ERROR-4001-BODY (Error Code 4001 - Request Body Type Mismatch Validation) - 验证点: 当请求体字段 'isSearchCount' 类型不匹配时,期望API返回状态码在 [400, 422] 中,或返回4xx客户端错误且业务码为 '4001'. 实际收到状态码 200. 响应体中的业务码 ('code') 为 '96'.